Lines Matching full:chips

159 	struct davinci_gpio_controller *chips;  in davinci_gpio_probe()  local
193 chips = devm_kzalloc(dev, sizeof(*chips), GFP_KERNEL); in davinci_gpio_probe()
194 if (!chips) in davinci_gpio_probe()
202 chips->irqs[i] = platform_get_irq(pdev, i); in davinci_gpio_probe()
203 if (chips->irqs[i] < 0) in davinci_gpio_probe()
204 return chips->irqs[i]; in davinci_gpio_probe()
207 chips->chip.label = dev_name(dev); in davinci_gpio_probe()
209 chips->chip.direction_input = davinci_direction_in; in davinci_gpio_probe()
210 chips->chip.get = davinci_gpio_get; in davinci_gpio_probe()
211 chips->chip.direction_output = davinci_direction_out; in davinci_gpio_probe()
212 chips->chip.set = davinci_gpio_set; in davinci_gpio_probe()
214 chips->chip.ngpio = ngpio; in davinci_gpio_probe()
215 chips->chip.base = -1; in davinci_gpio_probe()
218 chips->chip.parent = dev; in davinci_gpio_probe()
219 chips->chip.request = gpiochip_generic_request; in davinci_gpio_probe()
220 chips->chip.free = gpiochip_generic_free; in davinci_gpio_probe()
222 spin_lock_init(&chips->lock); in davinci_gpio_probe()
224 chips->gpio_unbanked = gpio_unbanked; in davinci_gpio_probe()
228 chips->regs[bank] = gpio_base + offset_array[bank]; in davinci_gpio_probe()
230 ret = devm_gpiochip_add_data(dev, &chips->chip, chips); in davinci_gpio_probe()
234 platform_set_drvdata(pdev, chips); in davinci_gpio_probe()
398 struct davinci_gpio_controller *chips = in davinci_gpio_irq_map() local
400 struct davinci_gpio_regs __iomem *g = chips->regs[hw / 32]; in davinci_gpio_irq_map()
451 struct davinci_gpio_controller *chips = platform_get_drvdata(pdev); in davinci_gpio_irq_setup() local
465 ngpio = chips->chip.ngpio; in davinci_gpio_irq_setup()
473 if (!chips->gpio_unbanked) { in davinci_gpio_irq_setup()
482 chips); in davinci_gpio_irq_setup()
495 chips->chip.to_irq = gpio_to_irq_banked; in davinci_gpio_irq_setup()
496 chips->irq_domain = irq_domain; in davinci_gpio_irq_setup()
503 if (chips->gpio_unbanked) { in davinci_gpio_irq_setup()
505 chips->chip.to_irq = gpio_to_irq_unbanked; in davinci_gpio_irq_setup()
507 binten = GENMASK(chips->gpio_unbanked / 16, 0); in davinci_gpio_irq_setup()
510 irq = chips->irqs[0]; in davinci_gpio_irq_setup()
516 g = chips->regs[0]; in davinci_gpio_irq_setup()
521 for (gpio = 0; gpio < chips->gpio_unbanked; gpio++) { in davinci_gpio_irq_setup()
522 irq_set_chip(chips->irqs[gpio], irq_chip); in davinci_gpio_irq_setup()
523 irq_set_handler_data(chips->irqs[gpio], chips); in davinci_gpio_irq_setup()
524 irq_set_status_flags(chips->irqs[gpio], in davinci_gpio_irq_setup()
540 g = chips->regs[bank / 2]; in davinci_gpio_irq_setup()
558 irqdata->chip = chips; in davinci_gpio_irq_setup()
560 irq_set_chained_handler_and_data(chips->irqs[bank], in davinci_gpio_irq_setup()
576 static void davinci_gpio_save_context(struct davinci_gpio_controller *chips, in davinci_gpio_save_context() argument
584 base = chips->regs[0] - offset_array[0]; in davinci_gpio_save_context()
585 chips->binten_context = readl_relaxed(base + BINTEN); in davinci_gpio_save_context()
588 g = chips->regs[bank]; in davinci_gpio_save_context()
589 context = &chips->context[bank]; in davinci_gpio_save_context()
600 static void davinci_gpio_restore_context(struct davinci_gpio_controller *chips, in davinci_gpio_restore_context() argument
608 base = chips->regs[0] - offset_array[0]; in davinci_gpio_restore_context()
610 if (readl_relaxed(base + BINTEN) != chips->binten_context) in davinci_gpio_restore_context()
611 writel_relaxed(chips->binten_context, base + BINTEN); in davinci_gpio_restore_context()
614 g = chips->regs[bank]; in davinci_gpio_restore_context()
615 context = &chips->context[bank]; in davinci_gpio_restore_context()
629 struct davinci_gpio_controller *chips = dev_get_drvdata(dev); in davinci_gpio_suspend() local
630 u32 nbank = DIV_ROUND_UP(chips->chip.ngpio, 32); in davinci_gpio_suspend()
632 davinci_gpio_save_context(chips, nbank); in davinci_gpio_suspend()
639 struct davinci_gpio_controller *chips = dev_get_drvdata(dev); in davinci_gpio_resume() local
640 u32 nbank = DIV_ROUND_UP(chips->chip.ngpio, 32); in davinci_gpio_resume()
642 davinci_gpio_restore_context(chips, nbank); in davinci_gpio_resume()