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()
366 pchip->chip.request = gpiochip_generic_request; in pxa_init_gpio_chip()
367 pchip->chip.free = gpiochip_generic_free; in pxa_init_gpio_chip()
371 pchip->chip.of_node = np; in pxa_init_gpio_chip()
372 pchip->chip.of_xlate = pxa_gpio_of_xlate; in pxa_init_gpio_chip()
373 pchip->chip.of_gpio_n_cells = 2; in pxa_init_gpio_chip()
377 bank = pchip->banks + i; in pxa_init_gpio_chip()
381 return gpiochip_add_data(&pchip->chip, pchip); in pxa_init_gpio_chip()
401 struct pxa_gpio_chip *pchip = irq_data_get_irq_chip_data(d); in pxa_gpio_irq_type() local
403 struct pxa_gpio_bank *c = gpio_to_pxabank(&pchip->chip, gpio); in pxa_gpio_irq_type()
413 if (__gpio_is_occupied(pchip, gpio)) in pxa_gpio_irq_type()
448 struct pxa_gpio_chip *pchip = d; in pxa_gpio_demux_handler() local
453 for_each_gpio_bank(gpio, c, pchip) { in pxa_gpio_demux_handler()
462 irq_find_mapping(pchip->irqdomain, in pxa_gpio_demux_handler()
474 struct pxa_gpio_chip *pchip = d; in pxa_gpio_direct_handler() local
476 if (in_irq == pchip->irq0) { in pxa_gpio_direct_handler()
477 generic_handle_irq(irq_find_mapping(pchip->irqdomain, 0)); in pxa_gpio_direct_handler()
478 } else if (in_irq == pchip->irq1) { in pxa_gpio_direct_handler()
479 generic_handle_irq(irq_find_mapping(pchip->irqdomain, 1)); in pxa_gpio_direct_handler()
489 struct pxa_gpio_chip *pchip = irq_data_get_irq_chip_data(d); in pxa_ack_muxed_gpio() local
491 void __iomem *base = gpio_bank_base(&pchip->chip, gpio); in pxa_ack_muxed_gpio()
498 struct pxa_gpio_chip *pchip = irq_data_get_irq_chip_data(d); in pxa_mask_muxed_gpio() local
500 struct pxa_gpio_bank *b = gpio_to_pxabank(&pchip->chip, gpio); in pxa_mask_muxed_gpio()
501 void __iomem *base = gpio_bank_base(&pchip->chip, gpio); in pxa_mask_muxed_gpio()
514 struct pxa_gpio_chip *pchip = irq_data_get_irq_chip_data(d); in pxa_gpio_set_wake() local
517 if (pchip->set_wake) in pxa_gpio_set_wake()
518 return pchip->set_wake(gpio, on); in pxa_gpio_set_wake()
525 struct pxa_gpio_chip *pchip = irq_data_get_irq_chip_data(d); in pxa_unmask_muxed_gpio() local
527 struct pxa_gpio_bank *c = gpio_to_pxabank(&pchip->chip, gpio); in pxa_unmask_muxed_gpio()
596 struct pxa_gpio_chip *pchip) in pxa_gpio_probe_dt() argument
615 #define pxa_gpio_probe_dt(pdev, pchip) (-1) argument
620 struct pxa_gpio_chip *pchip; in pxa_gpio_probe() local
628 pchip = devm_kzalloc(&pdev->dev, sizeof(*pchip), GFP_KERNEL); in pxa_gpio_probe()
629 if (!pchip) in pxa_gpio_probe()
631 pchip->dev = &pdev->dev; in pxa_gpio_probe()
639 pchip->set_wake = info->gpio_set_wake; in pxa_gpio_probe()
641 irq_base = pxa_gpio_probe_dt(pdev, pchip); in pxa_gpio_probe()
649 pchip->irqdomain = irq_domain_add_legacy(pdev->dev.of_node, in pxa_gpio_probe()
651 0, &pxa_irq_domain_ops, pchip); in pxa_gpio_probe()
652 if (!pchip->irqdomain) in pxa_gpio_probe()
662 pchip->irq0 = irq0; in pxa_gpio_probe()
663 pchip->irq1 = irq1; in pxa_gpio_probe()
682 ret = pxa_init_gpio_chip(pchip, pxa_last_gpio + 1, pdev->dev.of_node, in pxa_gpio_probe()
690 for_each_gpio_bank(gpio, c, pchip) { in pxa_gpio_probe()
702 "gpio-0", pchip); in pxa_gpio_probe()
710 "gpio-1", pchip); in pxa_gpio_probe()
717 "gpio-mux", pchip); in pxa_gpio_probe()
722 pxa_gpio_chip = pchip; in pxa_gpio_probe()
769 struct pxa_gpio_chip *pchip = pxa_gpio_chip; in pxa_gpio_suspend() local
773 if (!pchip) in pxa_gpio_suspend()
776 for_each_gpio_bank(gpio, c, pchip) { in pxa_gpio_suspend()
790 struct pxa_gpio_chip *pchip = pxa_gpio_chip; in pxa_gpio_resume() local
794 if (!pchip) in pxa_gpio_resume()
797 for_each_gpio_bank(gpio, c, pchip) { in pxa_gpio_resume()