Lines Matching refs:gpio_dev
47 struct amd_gpio *gpio_dev = to_amd_gpio(gc); in amd_gpio_direction_input() local
49 spin_lock_irqsave(&gpio_dev->lock, flags); in amd_gpio_direction_input()
50 pin_reg = readl(gpio_dev->base + offset * 4); in amd_gpio_direction_input()
52 writel(pin_reg, gpio_dev->base + offset * 4); in amd_gpio_direction_input()
53 spin_unlock_irqrestore(&gpio_dev->lock, flags); in amd_gpio_direction_input()
63 struct amd_gpio *gpio_dev = to_amd_gpio(gc); in amd_gpio_direction_output() local
65 spin_lock_irqsave(&gpio_dev->lock, flags); in amd_gpio_direction_output()
66 pin_reg = readl(gpio_dev->base + offset * 4); in amd_gpio_direction_output()
72 writel(pin_reg, gpio_dev->base + offset * 4); in amd_gpio_direction_output()
73 spin_unlock_irqrestore(&gpio_dev->lock, flags); in amd_gpio_direction_output()
82 struct amd_gpio *gpio_dev = to_amd_gpio(gc); in amd_gpio_get_value() local
84 spin_lock_irqsave(&gpio_dev->lock, flags); in amd_gpio_get_value()
85 pin_reg = readl(gpio_dev->base + offset * 4); in amd_gpio_get_value()
86 spin_unlock_irqrestore(&gpio_dev->lock, flags); in amd_gpio_get_value()
95 struct amd_gpio *gpio_dev = to_amd_gpio(gc); in amd_gpio_set_value() local
97 spin_lock_irqsave(&gpio_dev->lock, flags); in amd_gpio_set_value()
98 pin_reg = readl(gpio_dev->base + offset * 4); in amd_gpio_set_value()
103 writel(pin_reg, gpio_dev->base + offset * 4); in amd_gpio_set_value()
104 spin_unlock_irqrestore(&gpio_dev->lock, flags); in amd_gpio_set_value()
114 struct amd_gpio *gpio_dev = to_amd_gpio(gc); in amd_gpio_set_debounce() local
116 spin_lock_irqsave(&gpio_dev->lock, flags); in amd_gpio_set_debounce()
117 pin_reg = readl(gpio_dev->base + offset * 4); in amd_gpio_set_debounce()
166 writel(pin_reg, gpio_dev->base + offset * 4); in amd_gpio_set_debounce()
167 spin_unlock_irqrestore(&gpio_dev->lock, flags); in amd_gpio_set_debounce()
178 struct amd_gpio *gpio_dev = to_amd_gpio(gc); in amd_gpio_dbg_show() local
214 spin_lock_irqsave(&gpio_dev->lock, flags); in amd_gpio_dbg_show()
215 pin_reg = readl(gpio_dev->base + i * 4); in amd_gpio_dbg_show()
216 spin_unlock_irqrestore(&gpio_dev->lock, flags); in amd_gpio_dbg_show()
319 struct amd_gpio *gpio_dev = to_amd_gpio(gc); in amd_gpio_irq_enable() local
321 spin_lock_irqsave(&gpio_dev->lock, flags); in amd_gpio_irq_enable()
322 pin_reg = readl(gpio_dev->base + (d->hwirq)*4); in amd_gpio_irq_enable()
325 writel(pin_reg, gpio_dev->base + (d->hwirq)*4); in amd_gpio_irq_enable()
326 spin_unlock_irqrestore(&gpio_dev->lock, flags); in amd_gpio_irq_enable()
334 struct amd_gpio *gpio_dev = to_amd_gpio(gc); in amd_gpio_irq_disable() local
336 spin_lock_irqsave(&gpio_dev->lock, flags); in amd_gpio_irq_disable()
337 pin_reg = readl(gpio_dev->base + (d->hwirq)*4); in amd_gpio_irq_disable()
340 writel(pin_reg, gpio_dev->base + (d->hwirq)*4); in amd_gpio_irq_disable()
341 spin_unlock_irqrestore(&gpio_dev->lock, flags); in amd_gpio_irq_disable()
349 struct amd_gpio *gpio_dev = to_amd_gpio(gc); in amd_gpio_irq_mask() local
351 spin_lock_irqsave(&gpio_dev->lock, flags); in amd_gpio_irq_mask()
352 pin_reg = readl(gpio_dev->base + (d->hwirq)*4); in amd_gpio_irq_mask()
354 writel(pin_reg, gpio_dev->base + (d->hwirq)*4); in amd_gpio_irq_mask()
355 spin_unlock_irqrestore(&gpio_dev->lock, flags); in amd_gpio_irq_mask()
363 struct amd_gpio *gpio_dev = to_amd_gpio(gc); in amd_gpio_irq_unmask() local
365 spin_lock_irqsave(&gpio_dev->lock, flags); in amd_gpio_irq_unmask()
366 pin_reg = readl(gpio_dev->base + (d->hwirq)*4); in amd_gpio_irq_unmask()
368 writel(pin_reg, gpio_dev->base + (d->hwirq)*4); in amd_gpio_irq_unmask()
369 spin_unlock_irqrestore(&gpio_dev->lock, flags); in amd_gpio_irq_unmask()
377 struct amd_gpio *gpio_dev = to_amd_gpio(gc); in amd_gpio_irq_eoi() local
379 spin_lock_irqsave(&gpio_dev->lock, flags); in amd_gpio_irq_eoi()
380 reg = readl(gpio_dev->base + WAKE_INT_MASTER_REG); in amd_gpio_irq_eoi()
382 writel(reg, gpio_dev->base + WAKE_INT_MASTER_REG); in amd_gpio_irq_eoi()
383 spin_unlock_irqrestore(&gpio_dev->lock, flags); in amd_gpio_irq_eoi()
392 struct amd_gpio *gpio_dev = to_amd_gpio(gc); in amd_gpio_irq_set_type() local
394 spin_lock_irqsave(&gpio_dev->lock, flags); in amd_gpio_irq_set_type()
395 pin_reg = readl(gpio_dev->base + (d->hwirq)*4); in amd_gpio_irq_set_type()
437 dev_err(&gpio_dev->pdev->dev, "Invalid type value\n"); in amd_gpio_irq_set_type()
442 writel(pin_reg, gpio_dev->base + (d->hwirq)*4); in amd_gpio_irq_set_type()
443 spin_unlock_irqrestore(&gpio_dev->lock, flags); in amd_gpio_irq_set_type()
480 struct amd_gpio *gpio_dev = to_amd_gpio(gc); in amd_gpio_irq_handler() local
484 spin_lock_irqsave(&gpio_dev->lock, flags); in amd_gpio_irq_handler()
485 reg = readl(gpio_dev->base + WAKE_INT_STATUS_REG1); in amd_gpio_irq_handler()
489 reg = readl(gpio_dev->base + WAKE_INT_STATUS_REG0); in amd_gpio_irq_handler()
491 spin_unlock_irqrestore(&gpio_dev->lock, flags); in amd_gpio_irq_handler()
500 pin_reg = readl(gpio_dev->base + in amd_gpio_irq_handler()
508 gpio_dev->base in amd_gpio_irq_handler()
519 spin_lock_irqsave(&gpio_dev->lock, flags); in amd_gpio_irq_handler()
520 reg = readl(gpio_dev->base + WAKE_INT_MASTER_REG); in amd_gpio_irq_handler()
522 writel(reg, gpio_dev->base + WAKE_INT_MASTER_REG); in amd_gpio_irq_handler()
523 spin_unlock_irqrestore(&gpio_dev->lock, flags); in amd_gpio_irq_handler()
530 struct amd_gpio *gpio_dev = pinctrl_dev_get_drvdata(pctldev); in amd_get_groups_count() local
532 return gpio_dev->ngroups; in amd_get_groups_count()
538 struct amd_gpio *gpio_dev = pinctrl_dev_get_drvdata(pctldev); in amd_get_group_name() local
540 return gpio_dev->groups[group].name; in amd_get_group_name()
548 struct amd_gpio *gpio_dev = pinctrl_dev_get_drvdata(pctldev); in amd_get_group_pins() local
550 *pins = gpio_dev->groups[group].pins; in amd_get_group_pins()
551 *num_pins = gpio_dev->groups[group].npins; in amd_get_group_pins()
572 struct amd_gpio *gpio_dev = pinctrl_dev_get_drvdata(pctldev); in amd_pinconf_get() local
575 spin_lock_irqsave(&gpio_dev->lock, flags); in amd_pinconf_get()
576 pin_reg = readl(gpio_dev->base + pin*4); in amd_pinconf_get()
577 spin_unlock_irqrestore(&gpio_dev->lock, flags); in amd_pinconf_get()
596 dev_err(&gpio_dev->pdev->dev, "Invalid config param %04x\n", in amd_pinconf_get()
615 struct amd_gpio *gpio_dev = pinctrl_dev_get_drvdata(pctldev); in amd_pinconf_set() local
617 spin_lock_irqsave(&gpio_dev->lock, flags); in amd_pinconf_set()
621 pin_reg = readl(gpio_dev->base + pin*4); in amd_pinconf_set()
649 dev_err(&gpio_dev->pdev->dev, in amd_pinconf_set()
654 writel(pin_reg, gpio_dev->base + pin*4); in amd_pinconf_set()
656 spin_unlock_irqrestore(&gpio_dev->lock, flags); in amd_pinconf_set()
717 struct amd_gpio *gpio_dev; in amd_gpio_probe() local
719 gpio_dev = devm_kzalloc(&pdev->dev, in amd_gpio_probe()
721 if (!gpio_dev) in amd_gpio_probe()
724 spin_lock_init(&gpio_dev->lock); in amd_gpio_probe()
732 gpio_dev->base = devm_ioremap_nocache(&pdev->dev, res->start, in amd_gpio_probe()
734 if (IS_ERR(gpio_dev->base)) in amd_gpio_probe()
735 return PTR_ERR(gpio_dev->base); in amd_gpio_probe()
743 gpio_dev->pdev = pdev; in amd_gpio_probe()
744 gpio_dev->gc.direction_input = amd_gpio_direction_input; in amd_gpio_probe()
745 gpio_dev->gc.direction_output = amd_gpio_direction_output; in amd_gpio_probe()
746 gpio_dev->gc.get = amd_gpio_get_value; in amd_gpio_probe()
747 gpio_dev->gc.set = amd_gpio_set_value; in amd_gpio_probe()
748 gpio_dev->gc.set_debounce = amd_gpio_set_debounce; in amd_gpio_probe()
749 gpio_dev->gc.dbg_show = amd_gpio_dbg_show; in amd_gpio_probe()
751 gpio_dev->gc.base = 0; in amd_gpio_probe()
752 gpio_dev->gc.label = pdev->name; in amd_gpio_probe()
753 gpio_dev->gc.owner = THIS_MODULE; in amd_gpio_probe()
754 gpio_dev->gc.dev = &pdev->dev; in amd_gpio_probe()
755 gpio_dev->gc.ngpio = TOTAL_NUMBER_OF_PINS; in amd_gpio_probe()
757 gpio_dev->gc.of_node = pdev->dev.of_node; in amd_gpio_probe()
760 gpio_dev->groups = kerncz_groups; in amd_gpio_probe()
761 gpio_dev->ngroups = ARRAY_SIZE(kerncz_groups); in amd_gpio_probe()
764 gpio_dev->pctrl = pinctrl_register(&amd_pinctrl_desc, in amd_gpio_probe()
765 &pdev->dev, gpio_dev); in amd_gpio_probe()
766 if (IS_ERR(gpio_dev->pctrl)) { in amd_gpio_probe()
768 return PTR_ERR(gpio_dev->pctrl); in amd_gpio_probe()
771 ret = gpiochip_add(&gpio_dev->gc); in amd_gpio_probe()
775 ret = gpiochip_add_pin_range(&gpio_dev->gc, dev_name(&pdev->dev), in amd_gpio_probe()
782 ret = gpiochip_irqchip_add(&gpio_dev->gc, in amd_gpio_probe()
793 gpiochip_set_chained_irqchip(&gpio_dev->gc, in amd_gpio_probe()
798 platform_set_drvdata(pdev, gpio_dev); in amd_gpio_probe()
804 gpiochip_remove(&gpio_dev->gc); in amd_gpio_probe()
807 pinctrl_unregister(gpio_dev->pctrl); in amd_gpio_probe()
813 struct amd_gpio *gpio_dev; in amd_gpio_remove() local
815 gpio_dev = platform_get_drvdata(pdev); in amd_gpio_remove()
817 gpiochip_remove(&gpio_dev->gc); in amd_gpio_remove()
818 pinctrl_unregister(gpio_dev->pctrl); in amd_gpio_remove()