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