Lines Matching refs:pchip
200 static inline int __gpio_is_occupied(struct pxa_gpio_chip *pchip, unsigned gpio) in __gpio_is_occupied() argument
206 base = gpio_bank_base(&pchip->chip, gpio); in __gpio_is_occupied()
231 struct pxa_gpio_chip *pchip = pxa_gpio_chip; in pxa_irq_to_gpio() local
234 irq_gpio0 = irq_find_mapping(pchip->irqdomain, 0); in pxa_irq_to_gpio()
255 struct pxa_gpio_chip *pchip = chip_to_pxachip(chip); in pxa_gpio_to_irq() local
257 return irq_find_mapping(pchip->irqdomain, offset); in pxa_gpio_to_irq()
346 static int pxa_init_gpio_chip(struct pxa_gpio_chip *pchip, int ngpio, in pxa_init_gpio_chip() argument
352 pchip->banks = devm_kcalloc(pchip->dev, nbanks, sizeof(*pchip->banks), in pxa_init_gpio_chip()
354 if (!pchip->banks) in pxa_init_gpio_chip()
357 pchip->chip.label = "gpio-pxa"; in pxa_init_gpio_chip()
358 pchip->chip.direction_input = pxa_gpio_direction_input; in pxa_init_gpio_chip()
359 pchip->chip.direction_output = pxa_gpio_direction_output; in pxa_init_gpio_chip()
360 pchip->chip.get = pxa_gpio_get; in pxa_init_gpio_chip()
361 pchip->chip.set = pxa_gpio_set; in pxa_init_gpio_chip()
362 pchip->chip.to_irq = pxa_gpio_to_irq; in pxa_init_gpio_chip()
363 pchip->chip.ngpio = ngpio; in pxa_init_gpio_chip()
364 pchip->chip.request = gpiochip_generic_request; in pxa_init_gpio_chip()
365 pchip->chip.free = gpiochip_generic_free; in pxa_init_gpio_chip()
368 pchip->chip.of_node = np; in pxa_init_gpio_chip()
369 pchip->chip.of_xlate = pxa_gpio_of_xlate; in pxa_init_gpio_chip()
370 pchip->chip.of_gpio_n_cells = 2; in pxa_init_gpio_chip()
374 bank = pchip->banks + i; in pxa_init_gpio_chip()
378 return gpiochip_add_data(&pchip->chip, pchip); in pxa_init_gpio_chip()
398 struct pxa_gpio_chip *pchip = irq_data_get_irq_chip_data(d); in pxa_gpio_irq_type() local
400 struct pxa_gpio_bank *c = gpio_to_pxabank(&pchip->chip, gpio); in pxa_gpio_irq_type()
410 if (__gpio_is_occupied(pchip, gpio)) in pxa_gpio_irq_type()
445 struct pxa_gpio_chip *pchip = d; in pxa_gpio_demux_handler() local
450 for_each_gpio_bank(gpio, c, pchip) { in pxa_gpio_demux_handler()
459 irq_find_mapping(pchip->irqdomain, in pxa_gpio_demux_handler()
471 struct pxa_gpio_chip *pchip = d; in pxa_gpio_direct_handler() local
473 if (in_irq == pchip->irq0) { in pxa_gpio_direct_handler()
474 generic_handle_irq(irq_find_mapping(pchip->irqdomain, 0)); in pxa_gpio_direct_handler()
475 } else if (in_irq == pchip->irq1) { in pxa_gpio_direct_handler()
476 generic_handle_irq(irq_find_mapping(pchip->irqdomain, 1)); in pxa_gpio_direct_handler()
486 struct pxa_gpio_chip *pchip = irq_data_get_irq_chip_data(d); in pxa_ack_muxed_gpio() local
488 void __iomem *base = gpio_bank_base(&pchip->chip, gpio); in pxa_ack_muxed_gpio()
495 struct pxa_gpio_chip *pchip = irq_data_get_irq_chip_data(d); in pxa_mask_muxed_gpio() local
497 struct pxa_gpio_bank *b = gpio_to_pxabank(&pchip->chip, gpio); in pxa_mask_muxed_gpio()
498 void __iomem *base = gpio_bank_base(&pchip->chip, gpio); in pxa_mask_muxed_gpio()
511 struct pxa_gpio_chip *pchip = irq_data_get_irq_chip_data(d); in pxa_gpio_set_wake() local
514 if (pchip->set_wake) in pxa_gpio_set_wake()
515 return pchip->set_wake(gpio, on); in pxa_gpio_set_wake()
522 struct pxa_gpio_chip *pchip = irq_data_get_irq_chip_data(d); in pxa_unmask_muxed_gpio() local
524 struct pxa_gpio_bank *c = gpio_to_pxabank(&pchip->chip, gpio); in pxa_unmask_muxed_gpio()
593 struct pxa_gpio_chip *pchip) in pxa_gpio_probe_dt() argument
612 #define pxa_gpio_probe_dt(pdev, pchip) (-1) argument
617 struct pxa_gpio_chip *pchip; in pxa_gpio_probe() local
625 pchip = devm_kzalloc(&pdev->dev, sizeof(*pchip), GFP_KERNEL); in pxa_gpio_probe()
626 if (!pchip) in pxa_gpio_probe()
628 pchip->dev = &pdev->dev; in pxa_gpio_probe()
636 pchip->set_wake = info->gpio_set_wake; in pxa_gpio_probe()
638 irq_base = pxa_gpio_probe_dt(pdev, pchip); in pxa_gpio_probe()
646 pchip->irqdomain = irq_domain_add_legacy(pdev->dev.of_node, in pxa_gpio_probe()
648 0, &pxa_irq_domain_ops, pchip); in pxa_gpio_probe()
649 if (!pchip->irqdomain) in pxa_gpio_probe()
659 pchip->irq0 = irq0; in pxa_gpio_probe()
660 pchip->irq1 = irq1; in pxa_gpio_probe()
679 ret = pxa_init_gpio_chip(pchip, pxa_last_gpio + 1, pdev->dev.of_node, in pxa_gpio_probe()
687 for_each_gpio_bank(gpio, c, pchip) { in pxa_gpio_probe()
699 "gpio-0", pchip); in pxa_gpio_probe()
707 "gpio-1", pchip); in pxa_gpio_probe()
714 "gpio-mux", pchip); in pxa_gpio_probe()
719 pxa_gpio_chip = pchip; in pxa_gpio_probe()
766 struct pxa_gpio_chip *pchip = pxa_gpio_chip; in pxa_gpio_suspend() local
770 if (!pchip) in pxa_gpio_suspend()
773 for_each_gpio_bank(gpio, c, pchip) { in pxa_gpio_suspend()
787 struct pxa_gpio_chip *pchip = pxa_gpio_chip; in pxa_gpio_resume() local
791 if (!pchip) in pxa_gpio_resume()
794 for_each_gpio_bank(gpio, c, pchip) { in pxa_gpio_resume()