Lines Matching refs:pchip

194 static inline int __gpio_is_occupied(struct pxa_gpio_chip *pchip, unsigned gpio)  in __gpio_is_occupied()  argument
200 base = gpio_bank_base(&pchip->chip, gpio); in __gpio_is_occupied()
225 struct pxa_gpio_chip *pchip = pxa_gpio_chip; in pxa_irq_to_gpio() local
228 irq_gpio0 = irq_find_mapping(pchip->irqdomain, 0); in pxa_irq_to_gpio()
250 struct pxa_gpio_chip *pchip = chip_to_pxachip(chip); in pxa_gpio_to_irq() local
252 return irq_find_mapping(pchip->irqdomain, offset); in pxa_gpio_to_irq()
341 static int pxa_init_gpio_chip(struct pxa_gpio_chip *pchip, int ngpio, void __iomem *regbase) in pxa_init_gpio_chip() argument
346 pchip->banks = devm_kcalloc(pchip->dev, nbanks, sizeof(*pchip->banks), in pxa_init_gpio_chip()
348 if (!pchip->banks) in pxa_init_gpio_chip()
351 pchip->chip.parent = pchip->dev; in pxa_init_gpio_chip()
352 pchip->chip.label = "gpio-pxa"; in pxa_init_gpio_chip()
353 pchip->chip.direction_input = pxa_gpio_direction_input; in pxa_init_gpio_chip()
354 pchip->chip.direction_output = pxa_gpio_direction_output; in pxa_init_gpio_chip()
355 pchip->chip.get = pxa_gpio_get; in pxa_init_gpio_chip()
356 pchip->chip.set = pxa_gpio_set; in pxa_init_gpio_chip()
357 pchip->chip.to_irq = pxa_gpio_to_irq; in pxa_init_gpio_chip()
358 pchip->chip.ngpio = ngpio; in pxa_init_gpio_chip()
359 pchip->chip.request = gpiochip_generic_request; in pxa_init_gpio_chip()
360 pchip->chip.free = gpiochip_generic_free; in pxa_init_gpio_chip()
363 pchip->chip.of_xlate = pxa_gpio_of_xlate; in pxa_init_gpio_chip()
364 pchip->chip.of_gpio_n_cells = 2; in pxa_init_gpio_chip()
368 bank = pchip->banks + i; in pxa_init_gpio_chip()
372 return gpiochip_add_data(&pchip->chip, pchip); in pxa_init_gpio_chip()
392 struct pxa_gpio_chip *pchip = irq_data_get_irq_chip_data(d); in pxa_gpio_irq_type() local
394 struct pxa_gpio_bank *c = gpio_to_pxabank(&pchip->chip, gpio); in pxa_gpio_irq_type()
404 if (__gpio_is_occupied(pchip, gpio)) in pxa_gpio_irq_type()
439 struct pxa_gpio_chip *pchip = d; in pxa_gpio_demux_handler() local
444 for_each_gpio_bank(gpio, c, pchip) { in pxa_gpio_demux_handler()
452 generic_handle_domain_irq(pchip->irqdomain, in pxa_gpio_demux_handler()
464 struct pxa_gpio_chip *pchip = d; in pxa_gpio_direct_handler() local
466 if (in_irq == pchip->irq0) { in pxa_gpio_direct_handler()
467 generic_handle_domain_irq(pchip->irqdomain, 0); in pxa_gpio_direct_handler()
468 } else if (in_irq == pchip->irq1) { in pxa_gpio_direct_handler()
469 generic_handle_domain_irq(pchip->irqdomain, 1); in pxa_gpio_direct_handler()
479 struct pxa_gpio_chip *pchip = irq_data_get_irq_chip_data(d); in pxa_ack_muxed_gpio() local
481 void __iomem *base = gpio_bank_base(&pchip->chip, gpio); in pxa_ack_muxed_gpio()
488 struct pxa_gpio_chip *pchip = irq_data_get_irq_chip_data(d); in pxa_mask_muxed_gpio() local
490 struct pxa_gpio_bank *b = gpio_to_pxabank(&pchip->chip, gpio); in pxa_mask_muxed_gpio()
491 void __iomem *base = gpio_bank_base(&pchip->chip, gpio); in pxa_mask_muxed_gpio()
504 struct pxa_gpio_chip *pchip = irq_data_get_irq_chip_data(d); in pxa_gpio_set_wake() local
507 if (pchip->set_wake) in pxa_gpio_set_wake()
508 return pchip->set_wake(gpio, on); in pxa_gpio_set_wake()
515 struct pxa_gpio_chip *pchip = irq_data_get_irq_chip_data(d); in pxa_unmask_muxed_gpio() local
517 struct pxa_gpio_bank *c = gpio_to_pxabank(&pchip->chip, gpio); in pxa_unmask_muxed_gpio()
586 struct pxa_gpio_chip *pchip) in pxa_gpio_probe_dt() argument
605 #define pxa_gpio_probe_dt(pdev, pchip) (-1) argument
610 struct pxa_gpio_chip *pchip; in pxa_gpio_probe() local
618 pchip = devm_kzalloc(&pdev->dev, sizeof(*pchip), GFP_KERNEL); in pxa_gpio_probe()
619 if (!pchip) in pxa_gpio_probe()
621 pchip->dev = &pdev->dev; in pxa_gpio_probe()
629 pchip->set_wake = info->gpio_set_wake; in pxa_gpio_probe()
631 irq_base = pxa_gpio_probe_dt(pdev, pchip); in pxa_gpio_probe()
639 pchip->irqdomain = irq_domain_add_legacy(pdev->dev.of_node, in pxa_gpio_probe()
641 0, &pxa_irq_domain_ops, pchip); in pxa_gpio_probe()
642 if (!pchip->irqdomain) in pxa_gpio_probe()
652 pchip->irq0 = irq0; in pxa_gpio_probe()
653 pchip->irq1 = irq1; in pxa_gpio_probe()
667 ret = pxa_init_gpio_chip(pchip, pxa_last_gpio + 1, gpio_reg_base); in pxa_gpio_probe()
672 for_each_gpio_bank(gpio, c, pchip) { in pxa_gpio_probe()
684 "gpio-0", pchip); in pxa_gpio_probe()
692 "gpio-1", pchip); in pxa_gpio_probe()
699 "gpio-mux", pchip); in pxa_gpio_probe()
704 pxa_gpio_chip = pchip; in pxa_gpio_probe()
751 struct pxa_gpio_chip *pchip = pxa_gpio_chip; in pxa_gpio_suspend() local
755 if (!pchip) in pxa_gpio_suspend()
758 for_each_gpio_bank(gpio, c, pchip) { in pxa_gpio_suspend()
772 struct pxa_gpio_chip *pchip = pxa_gpio_chip; in pxa_gpio_resume() local
776 if (!pchip) in pxa_gpio_resume()
779 for_each_gpio_bank(gpio, c, pchip) { in pxa_gpio_resume()