Lines Matching refs:stx104gpio

220 	struct stx104_gpio *const stx104gpio = gpiochip_get_data(chip);  in stx104_gpio_get()  local
225 return !!(inb(stx104gpio->base) & BIT(offset)); in stx104_gpio_get()
231 struct stx104_gpio *const stx104gpio = gpiochip_get_data(chip); in stx104_gpio_get_multiple() local
233 *bits = inb(stx104gpio->base); in stx104_gpio_get_multiple()
241 struct stx104_gpio *const stx104gpio = gpiochip_get_data(chip); in stx104_gpio_set() local
248 spin_lock_irqsave(&stx104gpio->lock, flags); in stx104_gpio_set()
251 stx104gpio->out_state |= mask; in stx104_gpio_set()
253 stx104gpio->out_state &= ~mask; in stx104_gpio_set()
255 outb(stx104gpio->out_state, stx104gpio->base); in stx104_gpio_set()
257 spin_unlock_irqrestore(&stx104gpio->lock, flags); in stx104_gpio_set()
268 struct stx104_gpio *const stx104gpio = gpiochip_get_data(chip); in stx104_gpio_set_multiple() local
278 spin_lock_irqsave(&stx104gpio->lock, flags); in stx104_gpio_set_multiple()
280 stx104gpio->out_state &= ~*mask; in stx104_gpio_set_multiple()
281 stx104gpio->out_state |= *mask & *bits; in stx104_gpio_set_multiple()
282 outb(stx104gpio->out_state, stx104gpio->base); in stx104_gpio_set_multiple()
284 spin_unlock_irqrestore(&stx104gpio->lock, flags); in stx104_gpio_set_multiple()
291 struct stx104_gpio *stx104gpio; in stx104_probe() local
298 stx104gpio = devm_kzalloc(dev, sizeof(*stx104gpio), GFP_KERNEL); in stx104_probe()
299 if (!stx104gpio) in stx104_probe()
336 stx104gpio->chip.label = dev_name(dev); in stx104_probe()
337 stx104gpio->chip.parent = dev; in stx104_probe()
338 stx104gpio->chip.owner = THIS_MODULE; in stx104_probe()
339 stx104gpio->chip.base = -1; in stx104_probe()
340 stx104gpio->chip.ngpio = STX104_NGPIO; in stx104_probe()
341 stx104gpio->chip.names = stx104_names; in stx104_probe()
342 stx104gpio->chip.get_direction = stx104_gpio_get_direction; in stx104_probe()
343 stx104gpio->chip.direction_input = stx104_gpio_direction_input; in stx104_probe()
344 stx104gpio->chip.direction_output = stx104_gpio_direction_output; in stx104_probe()
345 stx104gpio->chip.get = stx104_gpio_get; in stx104_probe()
346 stx104gpio->chip.get_multiple = stx104_gpio_get_multiple; in stx104_probe()
347 stx104gpio->chip.set = stx104_gpio_set; in stx104_probe()
348 stx104gpio->chip.set_multiple = stx104_gpio_set_multiple; in stx104_probe()
349 stx104gpio->base = base[id] + 3; in stx104_probe()
350 stx104gpio->out_state = 0x0; in stx104_probe()
352 spin_lock_init(&stx104gpio->lock); in stx104_probe()
354 err = devm_gpiochip_add_data(dev, &stx104gpio->chip, stx104gpio); in stx104_probe()