Lines Matching refs:epg
80 static void ep93xx_gpio_update_int_params(struct ep93xx_gpio *epg, in ep93xx_gpio_update_int_params() argument
83 writeb_relaxed(0, epg->base + eic->irq_offset + EP93XX_INT_EN_OFFSET); in ep93xx_gpio_update_int_params()
86 epg->base + eic->irq_offset + EP93XX_INT_TYPE2_OFFSET); in ep93xx_gpio_update_int_params()
89 epg->base + eic->irq_offset + EP93XX_INT_TYPE1_OFFSET); in ep93xx_gpio_update_int_params()
92 epg->base + eic->irq_offset + EP93XX_INT_EN_OFFSET); in ep93xx_gpio_update_int_params()
98 struct ep93xx_gpio *epg = gpiochip_get_data(gc); in ep93xx_gpio_int_debounce() local
108 epg->base + eic->irq_offset + EP93XX_INT_DEBOUNCE_OFFSET); in ep93xx_gpio_int_debounce()
114 struct ep93xx_gpio *epg = gpiochip_get_data(gc); in ep93xx_gpio_ab_irq_handler() local
127 stat = readb(epg->base + EP93XX_GPIO_A_INT_STATUS); in ep93xx_gpio_ab_irq_handler()
129 generic_handle_irq(irq_find_mapping(epg->gc[0].gc.irq.domain, in ep93xx_gpio_ab_irq_handler()
132 stat = readb(epg->base + EP93XX_GPIO_B_INT_STATUS); in ep93xx_gpio_ab_irq_handler()
134 generic_handle_irq(irq_find_mapping(epg->gc[1].gc.irq.domain, in ep93xx_gpio_ab_irq_handler()
161 struct ep93xx_gpio *epg = gpiochip_get_data(gc); in ep93xx_gpio_irq_ack() local
166 ep93xx_gpio_update_int_params(epg, eic); in ep93xx_gpio_irq_ack()
169 writeb(port_mask, epg->base + eic->irq_offset + EP93XX_INT_EOI_OFFSET); in ep93xx_gpio_irq_ack()
176 struct ep93xx_gpio *epg = gpiochip_get_data(gc); in ep93xx_gpio_irq_mask_ack() local
183 ep93xx_gpio_update_int_params(epg, eic); in ep93xx_gpio_irq_mask_ack()
185 writeb(port_mask, epg->base + eic->irq_offset + EP93XX_INT_EOI_OFFSET); in ep93xx_gpio_irq_mask_ack()
192 struct ep93xx_gpio *epg = gpiochip_get_data(gc); in ep93xx_gpio_irq_mask() local
195 ep93xx_gpio_update_int_params(epg, eic); in ep93xx_gpio_irq_mask()
202 struct ep93xx_gpio *epg = gpiochip_get_data(gc); in ep93xx_gpio_irq_unmask() local
205 ep93xx_gpio_update_int_params(epg, eic); in ep93xx_gpio_irq_unmask()
217 struct ep93xx_gpio *epg = gpiochip_get_data(gc); in ep93xx_gpio_irq_type() local
262 ep93xx_gpio_update_int_params(epg, eic); in ep93xx_gpio_irq_type()
337 struct ep93xx_gpio *epg, in ep93xx_gpio_add_bank() argument
340 void __iomem *data = epg->base + bank->data; in ep93xx_gpio_add_bank()
341 void __iomem *dir = epg->base + bank->dir; in ep93xx_gpio_add_bank()
410 irq_set_chip_data(gpio_irq, &epg->gc[5]); in ep93xx_gpio_add_bank()
421 return devm_gpiochip_add_data(dev, gc, epg); in ep93xx_gpio_add_bank()
426 struct ep93xx_gpio *epg; in ep93xx_gpio_probe() local
429 epg = devm_kzalloc(&pdev->dev, sizeof(*epg), GFP_KERNEL); in ep93xx_gpio_probe()
430 if (!epg) in ep93xx_gpio_probe()
433 epg->base = devm_platform_ioremap_resource(pdev, 0); in ep93xx_gpio_probe()
434 if (IS_ERR(epg->base)) in ep93xx_gpio_probe()
435 return PTR_ERR(epg->base); in ep93xx_gpio_probe()
438 struct ep93xx_gpio_chip *gc = &epg->gc[i]; in ep93xx_gpio_probe()
441 if (ep93xx_gpio_add_bank(gc, pdev, epg, bank)) in ep93xx_gpio_probe()