Lines Matching refs:pchip
203 static inline int __gpio_is_occupied(struct pxa_gpio_chip *pchip, unsigned gpio) in __gpio_is_occupied() argument
209 base = gpio_bank_base(&pchip->chip, gpio); in __gpio_is_occupied()
234 struct pxa_gpio_chip *pchip = pxa_gpio_chip; in pxa_irq_to_gpio() local
237 irq_gpio0 = irq_find_mapping(pchip->irqdomain, 0); in pxa_irq_to_gpio()
257 struct pxa_gpio_chip *pchip = chip_to_pxachip(chip); in pxa_gpio_to_irq() local
259 return irq_find_mapping(pchip->irqdomain, offset); in pxa_gpio_to_irq()
348 static int pxa_init_gpio_chip(struct pxa_gpio_chip *pchip, int ngpio, in pxa_init_gpio_chip() argument
354 pchip->banks = devm_kcalloc(pchip->dev, nbanks, sizeof(*pchip->banks), in pxa_init_gpio_chip()
356 if (!pchip->banks) in pxa_init_gpio_chip()
359 pchip->chip.label = "gpio-pxa"; in pxa_init_gpio_chip()
360 pchip->chip.direction_input = pxa_gpio_direction_input; in pxa_init_gpio_chip()
361 pchip->chip.direction_output = pxa_gpio_direction_output; in pxa_init_gpio_chip()
362 pchip->chip.get = pxa_gpio_get; in pxa_init_gpio_chip()
363 pchip->chip.set = pxa_gpio_set; in pxa_init_gpio_chip()
364 pchip->chip.to_irq = pxa_gpio_to_irq; in pxa_init_gpio_chip()
365 pchip->chip.ngpio = ngpio; in pxa_init_gpio_chip()
368 pchip->chip.request = gpiochip_generic_request; in pxa_init_gpio_chip()
369 pchip->chip.free = gpiochip_generic_free; in pxa_init_gpio_chip()
373 pchip->chip.of_node = np; in pxa_init_gpio_chip()
374 pchip->chip.of_xlate = pxa_gpio_of_xlate; in pxa_init_gpio_chip()
375 pchip->chip.of_gpio_n_cells = 2; in pxa_init_gpio_chip()
379 bank = pchip->banks + i; in pxa_init_gpio_chip()
383 return gpiochip_add_data(&pchip->chip, pchip); in pxa_init_gpio_chip()
403 struct pxa_gpio_chip *pchip = irq_data_get_irq_chip_data(d); in pxa_gpio_irq_type() local
405 struct pxa_gpio_bank *c = gpio_to_pxabank(&pchip->chip, gpio); in pxa_gpio_irq_type()
415 if (__gpio_is_occupied(pchip, gpio)) in pxa_gpio_irq_type()
450 struct pxa_gpio_chip *pchip = d; in pxa_gpio_demux_handler() local
455 for_each_gpio_bank(gpio, c, pchip) { in pxa_gpio_demux_handler()
464 irq_find_mapping(pchip->irqdomain, in pxa_gpio_demux_handler()
476 struct pxa_gpio_chip *pchip = d; in pxa_gpio_direct_handler() local
478 if (in_irq == pchip->irq0) { in pxa_gpio_direct_handler()
479 generic_handle_irq(irq_find_mapping(pchip->irqdomain, 0)); in pxa_gpio_direct_handler()
480 } else if (in_irq == pchip->irq1) { in pxa_gpio_direct_handler()
481 generic_handle_irq(irq_find_mapping(pchip->irqdomain, 1)); in pxa_gpio_direct_handler()
491 struct pxa_gpio_chip *pchip = irq_data_get_irq_chip_data(d); in pxa_ack_muxed_gpio() local
493 void __iomem *base = gpio_bank_base(&pchip->chip, gpio); in pxa_ack_muxed_gpio()
500 struct pxa_gpio_chip *pchip = irq_data_get_irq_chip_data(d); in pxa_mask_muxed_gpio() local
502 struct pxa_gpio_bank *b = gpio_to_pxabank(&pchip->chip, gpio); in pxa_mask_muxed_gpio()
503 void __iomem *base = gpio_bank_base(&pchip->chip, gpio); in pxa_mask_muxed_gpio()
516 struct pxa_gpio_chip *pchip = irq_data_get_irq_chip_data(d); in pxa_gpio_set_wake() local
519 if (pchip->set_wake) in pxa_gpio_set_wake()
520 return pchip->set_wake(gpio, on); in pxa_gpio_set_wake()
527 struct pxa_gpio_chip *pchip = irq_data_get_irq_chip_data(d); in pxa_unmask_muxed_gpio() local
529 struct pxa_gpio_bank *c = gpio_to_pxabank(&pchip->chip, gpio); in pxa_unmask_muxed_gpio()
598 struct pxa_gpio_chip *pchip) in pxa_gpio_probe_dt() argument
617 #define pxa_gpio_probe_dt(pdev, pchip) (-1) argument
622 struct pxa_gpio_chip *pchip; in pxa_gpio_probe() local
631 pchip = devm_kzalloc(&pdev->dev, sizeof(*pchip), GFP_KERNEL); in pxa_gpio_probe()
632 if (!pchip) in pxa_gpio_probe()
634 pchip->dev = &pdev->dev; in pxa_gpio_probe()
642 pchip->set_wake = info->gpio_set_wake; in pxa_gpio_probe()
644 irq_base = pxa_gpio_probe_dt(pdev, pchip); in pxa_gpio_probe()
652 pchip->irqdomain = irq_domain_add_legacy(pdev->dev.of_node, in pxa_gpio_probe()
654 0, &pxa_irq_domain_ops, pchip); in pxa_gpio_probe()
655 if (!pchip->irqdomain) in pxa_gpio_probe()
665 pchip->irq0 = irq0; in pxa_gpio_probe()
666 pchip->irq1 = irq1; in pxa_gpio_probe()
688 ret = pxa_init_gpio_chip(pchip, pxa_last_gpio + 1, pdev->dev.of_node, in pxa_gpio_probe()
696 for_each_gpio_bank(gpio, c, pchip) { in pxa_gpio_probe()
708 "gpio-0", pchip); in pxa_gpio_probe()
716 "gpio-1", pchip); in pxa_gpio_probe()
723 "gpio-mux", pchip); in pxa_gpio_probe()
728 pxa_gpio_chip = pchip; in pxa_gpio_probe()
775 struct pxa_gpio_chip *pchip = pxa_gpio_chip; in pxa_gpio_suspend() local
779 for_each_gpio_bank(gpio, c, pchip) { in pxa_gpio_suspend()
793 struct pxa_gpio_chip *pchip = pxa_gpio_chip; in pxa_gpio_resume() local
797 for_each_gpio_bank(gpio, c, pchip) { in pxa_gpio_resume()