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()
63 writel(pin_reg, gpio_dev->base + offset * 4); in amd_gpio_direction_input()
64 spin_unlock_irqrestore(&gpio_dev->lock, flags); in amd_gpio_direction_input()
74 struct amd_gpio *gpio_dev = to_amd_gpio(gc); in amd_gpio_direction_output() local
76 spin_lock_irqsave(&gpio_dev->lock, flags); in amd_gpio_direction_output()
77 pin_reg = readl(gpio_dev->base + offset * 4); in amd_gpio_direction_output()
83 writel(pin_reg, gpio_dev->base + offset * 4); in amd_gpio_direction_output()
84 spin_unlock_irqrestore(&gpio_dev->lock, flags); in amd_gpio_direction_output()
93 struct amd_gpio *gpio_dev = to_amd_gpio(gc); in amd_gpio_get_value() local
95 spin_lock_irqsave(&gpio_dev->lock, flags); in amd_gpio_get_value()
96 pin_reg = readl(gpio_dev->base + offset * 4); in amd_gpio_get_value()
97 spin_unlock_irqrestore(&gpio_dev->lock, flags); in amd_gpio_get_value()
106 struct amd_gpio *gpio_dev = to_amd_gpio(gc); in amd_gpio_set_value() local
108 spin_lock_irqsave(&gpio_dev->lock, flags); in amd_gpio_set_value()
109 pin_reg = readl(gpio_dev->base + offset * 4); in amd_gpio_set_value()
114 writel(pin_reg, gpio_dev->base + offset * 4); in amd_gpio_set_value()
115 spin_unlock_irqrestore(&gpio_dev->lock, flags); in amd_gpio_set_value()
125 struct amd_gpio *gpio_dev = to_amd_gpio(gc); in amd_gpio_set_debounce() local
127 spin_lock_irqsave(&gpio_dev->lock, flags); in amd_gpio_set_debounce()
128 pin_reg = readl(gpio_dev->base + offset * 4); in amd_gpio_set_debounce()
177 writel(pin_reg, gpio_dev->base + offset * 4); in amd_gpio_set_debounce()
178 spin_unlock_irqrestore(&gpio_dev->lock, flags); in amd_gpio_set_debounce()
189 struct amd_gpio *gpio_dev = to_amd_gpio(gc); in amd_gpio_dbg_show() local
225 spin_lock_irqsave(&gpio_dev->lock, flags); in amd_gpio_dbg_show()
226 pin_reg = readl(gpio_dev->base + i * 4); in amd_gpio_dbg_show()
227 spin_unlock_irqrestore(&gpio_dev->lock, flags); in amd_gpio_dbg_show()
330 struct amd_gpio *gpio_dev = to_amd_gpio(gc); in amd_gpio_irq_enable() local
332 spin_lock_irqsave(&gpio_dev->lock, flags); in amd_gpio_irq_enable()
333 pin_reg = readl(gpio_dev->base + (d->hwirq)*4); in amd_gpio_irq_enable()
345 writel(pin_reg, gpio_dev->base + (d->hwirq)*4); in amd_gpio_irq_enable()
346 spin_unlock_irqrestore(&gpio_dev->lock, flags); in amd_gpio_irq_enable()
354 struct amd_gpio *gpio_dev = to_amd_gpio(gc); in amd_gpio_irq_disable() local
356 spin_lock_irqsave(&gpio_dev->lock, flags); in amd_gpio_irq_disable()
357 pin_reg = readl(gpio_dev->base + (d->hwirq)*4); in amd_gpio_irq_disable()
360 writel(pin_reg, gpio_dev->base + (d->hwirq)*4); in amd_gpio_irq_disable()
361 spin_unlock_irqrestore(&gpio_dev->lock, flags); in amd_gpio_irq_disable()
369 struct amd_gpio *gpio_dev = to_amd_gpio(gc); in amd_gpio_irq_mask() local
371 spin_lock_irqsave(&gpio_dev->lock, flags); in amd_gpio_irq_mask()
372 pin_reg = readl(gpio_dev->base + (d->hwirq)*4); in amd_gpio_irq_mask()
374 writel(pin_reg, gpio_dev->base + (d->hwirq)*4); in amd_gpio_irq_mask()
375 spin_unlock_irqrestore(&gpio_dev->lock, flags); in amd_gpio_irq_mask()
383 struct amd_gpio *gpio_dev = to_amd_gpio(gc); in amd_gpio_irq_unmask() local
385 spin_lock_irqsave(&gpio_dev->lock, flags); in amd_gpio_irq_unmask()
386 pin_reg = readl(gpio_dev->base + (d->hwirq)*4); in amd_gpio_irq_unmask()
388 writel(pin_reg, gpio_dev->base + (d->hwirq)*4); in amd_gpio_irq_unmask()
389 spin_unlock_irqrestore(&gpio_dev->lock, flags); in amd_gpio_irq_unmask()
397 struct amd_gpio *gpio_dev = to_amd_gpio(gc); in amd_gpio_irq_eoi() local
399 spin_lock_irqsave(&gpio_dev->lock, flags); in amd_gpio_irq_eoi()
400 reg = readl(gpio_dev->base + WAKE_INT_MASTER_REG); in amd_gpio_irq_eoi()
402 writel(reg, gpio_dev->base + WAKE_INT_MASTER_REG); in amd_gpio_irq_eoi()
403 spin_unlock_irqrestore(&gpio_dev->lock, flags); in amd_gpio_irq_eoi()
412 struct amd_gpio *gpio_dev = to_amd_gpio(gc); in amd_gpio_irq_set_type() local
414 spin_lock_irqsave(&gpio_dev->lock, flags); in amd_gpio_irq_set_type()
415 pin_reg = readl(gpio_dev->base + (d->hwirq)*4); in amd_gpio_irq_set_type()
464 dev_err(&gpio_dev->pdev->dev, "Invalid type value\n"); in amd_gpio_irq_set_type()
469 writel(pin_reg, gpio_dev->base + (d->hwirq)*4); in amd_gpio_irq_set_type()
470 spin_unlock_irqrestore(&gpio_dev->lock, flags); in amd_gpio_irq_set_type()
506 struct amd_gpio *gpio_dev = to_amd_gpio(gc); in amd_gpio_irq_handler() local
510 spin_lock_irqsave(&gpio_dev->lock, flags); in amd_gpio_irq_handler()
511 reg = readl(gpio_dev->base + WAKE_INT_STATUS_REG1); in amd_gpio_irq_handler()
515 reg = readl(gpio_dev->base + WAKE_INT_STATUS_REG0); in amd_gpio_irq_handler()
517 spin_unlock_irqrestore(&gpio_dev->lock, flags); in amd_gpio_irq_handler()
526 pin_reg = readl(gpio_dev->base + in amd_gpio_irq_handler()
534 gpio_dev->base in amd_gpio_irq_handler()
545 spin_lock_irqsave(&gpio_dev->lock, flags); in amd_gpio_irq_handler()
546 reg = readl(gpio_dev->base + WAKE_INT_MASTER_REG); in amd_gpio_irq_handler()
548 writel(reg, gpio_dev->base + WAKE_INT_MASTER_REG); in amd_gpio_irq_handler()
549 spin_unlock_irqrestore(&gpio_dev->lock, flags); in amd_gpio_irq_handler()
556 struct amd_gpio *gpio_dev = pinctrl_dev_get_drvdata(pctldev); in amd_get_groups_count() local
558 return gpio_dev->ngroups; in amd_get_groups_count()
564 struct amd_gpio *gpio_dev = pinctrl_dev_get_drvdata(pctldev); in amd_get_group_name() local
566 return gpio_dev->groups[group].name; in amd_get_group_name()
574 struct amd_gpio *gpio_dev = pinctrl_dev_get_drvdata(pctldev); in amd_get_group_pins() local
576 *pins = gpio_dev->groups[group].pins; in amd_get_group_pins()
577 *num_pins = gpio_dev->groups[group].npins; in amd_get_group_pins()
598 struct amd_gpio *gpio_dev = pinctrl_dev_get_drvdata(pctldev); in amd_pinconf_get() local
601 spin_lock_irqsave(&gpio_dev->lock, flags); in amd_pinconf_get()
602 pin_reg = readl(gpio_dev->base + pin*4); in amd_pinconf_get()
603 spin_unlock_irqrestore(&gpio_dev->lock, flags); in amd_pinconf_get()
622 dev_err(&gpio_dev->pdev->dev, "Invalid config param %04x\n", in amd_pinconf_get()
641 struct amd_gpio *gpio_dev = pinctrl_dev_get_drvdata(pctldev); in amd_pinconf_set() local
643 spin_lock_irqsave(&gpio_dev->lock, flags); in amd_pinconf_set()
647 pin_reg = readl(gpio_dev->base + pin*4); in amd_pinconf_set()
675 dev_err(&gpio_dev->pdev->dev, in amd_pinconf_set()
680 writel(pin_reg, gpio_dev->base + pin*4); in amd_pinconf_set()
682 spin_unlock_irqrestore(&gpio_dev->lock, flags); in amd_pinconf_set()
743 struct amd_gpio *gpio_dev; in amd_gpio_probe() local
745 gpio_dev = devm_kzalloc(&pdev->dev, in amd_gpio_probe()
747 if (!gpio_dev) in amd_gpio_probe()
750 spin_lock_init(&gpio_dev->lock); in amd_gpio_probe()
758 gpio_dev->base = devm_ioremap_nocache(&pdev->dev, res->start, in amd_gpio_probe()
760 if (IS_ERR(gpio_dev->base)) in amd_gpio_probe()
761 return PTR_ERR(gpio_dev->base); in amd_gpio_probe()
769 gpio_dev->pdev = pdev; in amd_gpio_probe()
770 gpio_dev->gc.direction_input = amd_gpio_direction_input; in amd_gpio_probe()
771 gpio_dev->gc.direction_output = amd_gpio_direction_output; in amd_gpio_probe()
772 gpio_dev->gc.get = amd_gpio_get_value; in amd_gpio_probe()
773 gpio_dev->gc.set = amd_gpio_set_value; in amd_gpio_probe()
774 gpio_dev->gc.set_debounce = amd_gpio_set_debounce; in amd_gpio_probe()
775 gpio_dev->gc.dbg_show = amd_gpio_dbg_show; in amd_gpio_probe()
777 gpio_dev->gc.base = 0; in amd_gpio_probe()
778 gpio_dev->gc.label = pdev->name; in amd_gpio_probe()
779 gpio_dev->gc.owner = THIS_MODULE; in amd_gpio_probe()
780 gpio_dev->gc.dev = &pdev->dev; in amd_gpio_probe()
781 gpio_dev->gc.ngpio = TOTAL_NUMBER_OF_PINS; in amd_gpio_probe()
783 gpio_dev->gc.of_node = pdev->dev.of_node; in amd_gpio_probe()
786 gpio_dev->groups = kerncz_groups; in amd_gpio_probe()
787 gpio_dev->ngroups = ARRAY_SIZE(kerncz_groups); in amd_gpio_probe()
790 gpio_dev->pctrl = pinctrl_register(&amd_pinctrl_desc, in amd_gpio_probe()
791 &pdev->dev, gpio_dev); in amd_gpio_probe()
792 if (!gpio_dev->pctrl) { in amd_gpio_probe()
797 ret = gpiochip_add(&gpio_dev->gc); in amd_gpio_probe()
801 ret = gpiochip_add_pin_range(&gpio_dev->gc, dev_name(&pdev->dev), in amd_gpio_probe()
808 ret = gpiochip_irqchip_add(&gpio_dev->gc, in amd_gpio_probe()
819 gpiochip_set_chained_irqchip(&gpio_dev->gc, in amd_gpio_probe()
824 platform_set_drvdata(pdev, gpio_dev); in amd_gpio_probe()
830 gpiochip_remove(&gpio_dev->gc); in amd_gpio_probe()
833 pinctrl_unregister(gpio_dev->pctrl); in amd_gpio_probe()
839 struct amd_gpio *gpio_dev; in amd_gpio_remove() local
841 gpio_dev = platform_get_drvdata(pdev); in amd_gpio_remove()
843 gpiochip_remove(&gpio_dev->gc); in amd_gpio_remove()
844 pinctrl_unregister(gpio_dev->pctrl); in amd_gpio_remove()