Lines Matching refs:stmpe_gpio

28 struct stmpe_gpio {  struct
39 static inline struct stmpe_gpio *to_stmpe_gpio(struct gpio_chip *chip) in to_stmpe_gpio() argument
41 return container_of(chip, struct stmpe_gpio, chip); in to_stmpe_gpio()
46 struct stmpe_gpio *stmpe_gpio = to_stmpe_gpio(chip); in stmpe_gpio_get() local
47 struct stmpe *stmpe = stmpe_gpio->stmpe; in stmpe_gpio_get()
61 struct stmpe_gpio *stmpe_gpio = to_stmpe_gpio(chip); in stmpe_gpio_set() local
62 struct stmpe *stmpe = stmpe_gpio->stmpe; in stmpe_gpio_set()
80 struct stmpe_gpio *stmpe_gpio = to_stmpe_gpio(chip); in stmpe_gpio_direction_output() local
81 struct stmpe *stmpe = stmpe_gpio->stmpe; in stmpe_gpio_direction_output()
93 struct stmpe_gpio *stmpe_gpio = to_stmpe_gpio(chip); in stmpe_gpio_direction_input() local
94 struct stmpe *stmpe = stmpe_gpio->stmpe; in stmpe_gpio_direction_input()
103 struct stmpe_gpio *stmpe_gpio = to_stmpe_gpio(chip); in stmpe_gpio_request() local
104 struct stmpe *stmpe = stmpe_gpio->stmpe; in stmpe_gpio_request()
106 if (stmpe_gpio->norequest_mask & (1 << offset)) in stmpe_gpio_request()
126 struct stmpe_gpio *stmpe_gpio = to_stmpe_gpio(gc); in stmpe_gpio_irq_set_type() local
135 if (stmpe_gpio->stmpe->partnum == STMPE801) in stmpe_gpio_irq_set_type()
139 stmpe_gpio->regs[REG_RE][regoffset] |= mask; in stmpe_gpio_irq_set_type()
141 stmpe_gpio->regs[REG_RE][regoffset] &= ~mask; in stmpe_gpio_irq_set_type()
144 stmpe_gpio->regs[REG_FE][regoffset] |= mask; in stmpe_gpio_irq_set_type()
146 stmpe_gpio->regs[REG_FE][regoffset] &= ~mask; in stmpe_gpio_irq_set_type()
154 struct stmpe_gpio *stmpe_gpio = to_stmpe_gpio(gc); in stmpe_gpio_irq_lock() local
156 mutex_lock(&stmpe_gpio->irq_lock); in stmpe_gpio_irq_lock()
162 struct stmpe_gpio *stmpe_gpio = to_stmpe_gpio(gc); in stmpe_gpio_irq_sync_unlock() local
163 struct stmpe *stmpe = stmpe_gpio->stmpe; in stmpe_gpio_irq_sync_unlock()
179 u8 old = stmpe_gpio->oldregs[i][j]; in stmpe_gpio_irq_sync_unlock()
180 u8 new = stmpe_gpio->regs[i][j]; in stmpe_gpio_irq_sync_unlock()
185 stmpe_gpio->oldregs[i][j] = new; in stmpe_gpio_irq_sync_unlock()
190 mutex_unlock(&stmpe_gpio->irq_lock); in stmpe_gpio_irq_sync_unlock()
196 struct stmpe_gpio *stmpe_gpio = to_stmpe_gpio(gc); in stmpe_gpio_irq_mask() local
201 stmpe_gpio->regs[REG_IE][regoffset] &= ~mask; in stmpe_gpio_irq_mask()
207 struct stmpe_gpio *stmpe_gpio = to_stmpe_gpio(gc); in stmpe_gpio_irq_unmask() local
212 stmpe_gpio->regs[REG_IE][regoffset] |= mask; in stmpe_gpio_irq_unmask()
219 struct stmpe_gpio *stmpe_gpio = to_stmpe_gpio(gc); in stmpe_dbg_show_one() local
220 struct stmpe *stmpe = stmpe_gpio->stmpe; in stmpe_dbg_show_one()
297 struct stmpe_gpio *stmpe_gpio = dev; in stmpe_gpio_irq() local
298 struct stmpe *stmpe = stmpe_gpio->stmpe; in stmpe_gpio_irq()
311 unsigned int enabled = stmpe_gpio->regs[REG_IE][bank]; in stmpe_gpio_irq()
321 int child_irq = irq_find_mapping(stmpe_gpio->chip.irqdomain, in stmpe_gpio_irq()
343 struct stmpe_gpio *stmpe_gpio; in stmpe_gpio_probe() local
349 stmpe_gpio = kzalloc(sizeof(struct stmpe_gpio), GFP_KERNEL); in stmpe_gpio_probe()
350 if (!stmpe_gpio) in stmpe_gpio_probe()
353 mutex_init(&stmpe_gpio->irq_lock); in stmpe_gpio_probe()
355 stmpe_gpio->dev = &pdev->dev; in stmpe_gpio_probe()
356 stmpe_gpio->stmpe = stmpe; in stmpe_gpio_probe()
357 stmpe_gpio->chip = template_chip; in stmpe_gpio_probe()
358 stmpe_gpio->chip.ngpio = stmpe->num_gpios; in stmpe_gpio_probe()
359 stmpe_gpio->chip.dev = &pdev->dev; in stmpe_gpio_probe()
360 stmpe_gpio->chip.of_node = np; in stmpe_gpio_probe()
361 stmpe_gpio->chip.base = -1; in stmpe_gpio_probe()
364 stmpe_gpio->chip.dbg_show = stmpe_dbg_show; in stmpe_gpio_probe()
367 &stmpe_gpio->norequest_mask); in stmpe_gpio_probe()
378 ret = gpiochip_add(&stmpe_gpio->chip); in stmpe_gpio_probe()
387 "stmpe-gpio", stmpe_gpio); in stmpe_gpio_probe()
392 ret = gpiochip_irqchip_add(&stmpe_gpio->chip, in stmpe_gpio_probe()
403 gpiochip_set_chained_irqchip(&stmpe_gpio->chip, in stmpe_gpio_probe()
409 platform_set_drvdata(pdev, stmpe_gpio); in stmpe_gpio_probe()
415 gpiochip_remove(&stmpe_gpio->chip); in stmpe_gpio_probe()
417 kfree(stmpe_gpio); in stmpe_gpio_probe()
423 struct stmpe_gpio *stmpe_gpio = platform_get_drvdata(pdev); in stmpe_gpio_remove() local
424 struct stmpe *stmpe = stmpe_gpio->stmpe; in stmpe_gpio_remove()
426 gpiochip_remove(&stmpe_gpio->chip); in stmpe_gpio_remove()
428 kfree(stmpe_gpio); in stmpe_gpio_remove()