Lines Matching refs:a7gc
5613 atlas7_gpio_bank *atlas7_gpio_to_bank(struct atlas7_gpio_chip *a7gc, u32 gpio) in atlas7_gpio_to_bank() argument
5615 return &a7gc->banks[GPIO_TO_BANK(gpio)]; in atlas7_gpio_to_bank()
5618 static int __atlas7_gpio_to_pin(struct atlas7_gpio_chip *a7gc, u32 gpio) in __atlas7_gpio_to_pin() argument
5623 bank = atlas7_gpio_to_bank(a7gc, gpio); in __atlas7_gpio_to_pin()
5634 struct atlas7_gpio_chip *a7gc = gpiochip_get_data(gc); in atlas7_gpio_irq_ack() local
5640 bank = atlas7_gpio_to_bank(a7gc, d->hwirq); in atlas7_gpio_irq_ack()
5644 raw_spin_lock_irqsave(&a7gc->lock, flags); in atlas7_gpio_irq_ack()
5650 raw_spin_unlock_irqrestore(&a7gc->lock, flags); in atlas7_gpio_irq_ack()
5653 static void __atlas7_gpio_irq_mask(struct atlas7_gpio_chip *a7gc, int idx) in __atlas7_gpio_irq_mask() argument
5659 bank = atlas7_gpio_to_bank(a7gc, idx); in __atlas7_gpio_irq_mask()
5672 struct atlas7_gpio_chip *a7gc = gpiochip_get_data(gc); in atlas7_gpio_irq_mask() local
5675 raw_spin_lock_irqsave(&a7gc->lock, flags); in atlas7_gpio_irq_mask()
5677 __atlas7_gpio_irq_mask(a7gc, d->hwirq); in atlas7_gpio_irq_mask()
5679 raw_spin_unlock_irqrestore(&a7gc->lock, flags); in atlas7_gpio_irq_mask()
5685 struct atlas7_gpio_chip *a7gc = gpiochip_get_data(gc); in atlas7_gpio_irq_unmask() local
5691 bank = atlas7_gpio_to_bank(a7gc, d->hwirq); in atlas7_gpio_irq_unmask()
5695 raw_spin_lock_irqsave(&a7gc->lock, flags); in atlas7_gpio_irq_unmask()
5702 raw_spin_unlock_irqrestore(&a7gc->lock, flags); in atlas7_gpio_irq_unmask()
5709 struct atlas7_gpio_chip *a7gc = gpiochip_get_data(gc); in atlas7_gpio_irq_type() local
5715 bank = atlas7_gpio_to_bank(a7gc, d->hwirq); in atlas7_gpio_irq_type()
5719 raw_spin_lock_irqsave(&a7gc->lock, flags); in atlas7_gpio_irq_type()
5762 raw_spin_unlock_irqrestore(&a7gc->lock, flags); in atlas7_gpio_irq_type()
5778 struct atlas7_gpio_chip *a7gc = gpiochip_get_data(gc); in atlas7_gpio_handle_irq() local
5785 for (idx = 0; idx < a7gc->nbank; idx++) { in atlas7_gpio_handle_irq()
5786 bank = &a7gc->banks[idx]; in atlas7_gpio_handle_irq()
5790 BUG_ON(idx == a7gc->nbank); in atlas7_gpio_handle_irq()
5827 static void __atlas7_gpio_set_input(struct atlas7_gpio_chip *a7gc, in __atlas7_gpio_set_input() argument
5834 bank = atlas7_gpio_to_bank(a7gc, gpio); in __atlas7_gpio_set_input()
5846 struct atlas7_gpio_chip *a7gc = gpiochip_get_data(chip); in atlas7_gpio_request() local
5850 ret = __atlas7_gpio_to_pin(a7gc, gpio); in atlas7_gpio_request()
5857 raw_spin_lock_irqsave(&a7gc->lock, flags); in atlas7_gpio_request()
5863 __atlas7_gpio_set_input(a7gc, gpio); in atlas7_gpio_request()
5864 __atlas7_gpio_irq_mask(a7gc, gpio); in atlas7_gpio_request()
5866 raw_spin_unlock_irqrestore(&a7gc->lock, flags); in atlas7_gpio_request()
5874 struct atlas7_gpio_chip *a7gc = gpiochip_get_data(chip); in atlas7_gpio_free() local
5877 raw_spin_lock_irqsave(&a7gc->lock, flags); in atlas7_gpio_free()
5879 __atlas7_gpio_irq_mask(a7gc, gpio); in atlas7_gpio_free()
5880 __atlas7_gpio_set_input(a7gc, gpio); in atlas7_gpio_free()
5882 raw_spin_unlock_irqrestore(&a7gc->lock, flags); in atlas7_gpio_free()
5890 struct atlas7_gpio_chip *a7gc = gpiochip_get_data(chip); in atlas7_gpio_direction_input() local
5893 raw_spin_lock_irqsave(&a7gc->lock, flags); in atlas7_gpio_direction_input()
5895 __atlas7_gpio_set_input(a7gc, gpio); in atlas7_gpio_direction_input()
5897 raw_spin_unlock_irqrestore(&a7gc->lock, flags); in atlas7_gpio_direction_input()
5902 static void __atlas7_gpio_set_output(struct atlas7_gpio_chip *a7gc, in __atlas7_gpio_set_output() argument
5909 bank = atlas7_gpio_to_bank(a7gc, gpio); in __atlas7_gpio_set_output()
5927 struct atlas7_gpio_chip *a7gc = gpiochip_get_data(chip); in atlas7_gpio_direction_output() local
5930 raw_spin_lock_irqsave(&a7gc->lock, flags); in atlas7_gpio_direction_output()
5932 __atlas7_gpio_set_output(a7gc, gpio, value); in atlas7_gpio_direction_output()
5934 raw_spin_unlock_irqrestore(&a7gc->lock, flags); in atlas7_gpio_direction_output()
5942 struct atlas7_gpio_chip *a7gc = gpiochip_get_data(chip); in atlas7_gpio_get_value() local
5947 bank = atlas7_gpio_to_bank(a7gc, gpio); in atlas7_gpio_get_value()
5950 raw_spin_lock_irqsave(&a7gc->lock, flags); in atlas7_gpio_get_value()
5954 raw_spin_unlock_irqrestore(&a7gc->lock, flags); in atlas7_gpio_get_value()
5962 struct atlas7_gpio_chip *a7gc = gpiochip_get_data(chip); in atlas7_gpio_set_value() local
5968 bank = atlas7_gpio_to_bank(a7gc, gpio); in atlas7_gpio_set_value()
5972 raw_spin_lock_irqsave(&a7gc->lock, flags); in atlas7_gpio_set_value()
5981 raw_spin_unlock_irqrestore(&a7gc->lock, flags); in atlas7_gpio_set_value()
5992 struct atlas7_gpio_chip *a7gc; in atlas7_gpio_probe() local
6007 a7gc = devm_kzalloc(&pdev->dev, struct_size(a7gc, banks, nbank), in atlas7_gpio_probe()
6009 if (!a7gc) in atlas7_gpio_probe()
6013 a7gc->clk = of_clk_get(np, 0); in atlas7_gpio_probe()
6014 if (!IS_ERR(a7gc->clk)) { in atlas7_gpio_probe()
6015 ret = clk_prepare_enable(a7gc->clk); in atlas7_gpio_probe()
6024 a7gc->reg = of_iomap(np, 0); in atlas7_gpio_probe()
6025 if (!a7gc->reg) { in atlas7_gpio_probe()
6030 a7gc->nbank = nbank; in atlas7_gpio_probe()
6031 raw_spin_lock_init(&a7gc->lock); in atlas7_gpio_probe()
6034 chip = &a7gc->chip; in atlas7_gpio_probe()
6061 bank = &a7gc->banks[idx]; in atlas7_gpio_probe()
6063 bank->base = ATLAS7_GPIO_BASE(a7gc, idx); in atlas7_gpio_probe()
6082 ret = gpiochip_add_data(chip, a7gc); in atlas7_gpio_probe()
6090 platform_set_drvdata(pdev, a7gc); in atlas7_gpio_probe()
6100 struct atlas7_gpio_chip *a7gc = dev_get_drvdata(dev); in atlas7_gpio_suspend_noirq() local
6105 for (idx = 0; idx < a7gc->nbank; idx++) { in atlas7_gpio_suspend_noirq()
6106 bank = &a7gc->banks[idx]; in atlas7_gpio_suspend_noirq()
6118 struct atlas7_gpio_chip *a7gc = dev_get_drvdata(dev); in atlas7_gpio_resume_noirq() local
6123 for (idx = 0; idx < a7gc->nbank; idx++) { in atlas7_gpio_resume_noirq()
6124 bank = &a7gc->banks[idx]; in atlas7_gpio_resume_noirq()