Lines Matching defs:gpio_dev
43 struct amd_gpio *gpio_dev = gpiochip_get_data(gc);
45 raw_spin_lock_irqsave(&gpio_dev->lock, flags);
46 pin_reg = readl(gpio_dev->base + offset * 4);
47 raw_spin_unlock_irqrestore(&gpio_dev->lock, flags);
59 struct amd_gpio *gpio_dev = gpiochip_get_data(gc);
61 raw_spin_lock_irqsave(&gpio_dev->lock, flags);
62 pin_reg = readl(gpio_dev->base + offset * 4);
64 writel(pin_reg, gpio_dev->base + offset * 4);
65 raw_spin_unlock_irqrestore(&gpio_dev->lock, flags);
75 struct amd_gpio *gpio_dev = gpiochip_get_data(gc);
77 raw_spin_lock_irqsave(&gpio_dev->lock, flags);
78 pin_reg = readl(gpio_dev->base + offset * 4);
84 writel(pin_reg, gpio_dev->base + offset * 4);
85 raw_spin_unlock_irqrestore(&gpio_dev->lock, flags);
94 struct amd_gpio *gpio_dev = gpiochip_get_data(gc);
96 raw_spin_lock_irqsave(&gpio_dev->lock, flags);
97 pin_reg = readl(gpio_dev->base + offset * 4);
98 raw_spin_unlock_irqrestore(&gpio_dev->lock, flags);
107 struct amd_gpio *gpio_dev = gpiochip_get_data(gc);
109 raw_spin_lock_irqsave(&gpio_dev->lock, flags);
110 pin_reg = readl(gpio_dev->base + offset * 4);
115 writel(pin_reg, gpio_dev->base + offset * 4);
116 raw_spin_unlock_irqrestore(&gpio_dev->lock, flags);
126 struct amd_gpio *gpio_dev = gpiochip_get_data(gc);
128 raw_spin_lock_irqsave(&gpio_dev->lock, flags);
132 pin_reg = readl(gpio_dev->base + WAKE_INT_MASTER_REG);
137 pin_reg = readl(gpio_dev->base + offset * 4);
186 writel(pin_reg, gpio_dev->base + offset * 4);
187 raw_spin_unlock_irqrestore(&gpio_dev->lock, flags);
198 struct amd_gpio *gpio_dev = gpiochip_get_data(gc);
214 seq_printf(s, "WAKE_INT_MASTER_REG: 0x%08x\n", readl(gpio_dev->base + WAKE_INT_MASTER_REG));
215 for (bank = 0; bank < gpio_dev->hwbank_num; bank++) {
241 raw_spin_lock_irqsave(&gpio_dev->lock, flags);
242 pin_reg = readl(gpio_dev->base + i * 4);
243 raw_spin_unlock_irqrestore(&gpio_dev->lock, flags);
346 struct amd_gpio *gpio_dev = gpiochip_get_data(gc);
348 raw_spin_lock_irqsave(&gpio_dev->lock, flags);
349 pin_reg = readl(gpio_dev->base + (d->hwirq)*4);
352 writel(pin_reg, gpio_dev->base + (d->hwirq)*4);
353 raw_spin_unlock_irqrestore(&gpio_dev->lock, flags);
361 struct amd_gpio *gpio_dev = gpiochip_get_data(gc);
363 raw_spin_lock_irqsave(&gpio_dev->lock, flags);
364 pin_reg = readl(gpio_dev->base + (d->hwirq)*4);
367 writel(pin_reg, gpio_dev->base + (d->hwirq)*4);
368 raw_spin_unlock_irqrestore(&gpio_dev->lock, flags);
376 struct amd_gpio *gpio_dev = gpiochip_get_data(gc);
378 raw_spin_lock_irqsave(&gpio_dev->lock, flags);
379 pin_reg = readl(gpio_dev->base + (d->hwirq)*4);
381 writel(pin_reg, gpio_dev->base + (d->hwirq)*4);
382 raw_spin_unlock_irqrestore(&gpio_dev->lock, flags);
390 struct amd_gpio *gpio_dev = gpiochip_get_data(gc);
392 raw_spin_lock_irqsave(&gpio_dev->lock, flags);
393 pin_reg = readl(gpio_dev->base + (d->hwirq)*4);
395 writel(pin_reg, gpio_dev->base + (d->hwirq)*4);
396 raw_spin_unlock_irqrestore(&gpio_dev->lock, flags);
404 struct amd_gpio *gpio_dev = gpiochip_get_data(gc);
406 raw_spin_lock_irqsave(&gpio_dev->lock, flags);
407 reg = readl(gpio_dev->base + WAKE_INT_MASTER_REG);
409 writel(reg, gpio_dev->base + WAKE_INT_MASTER_REG);
410 raw_spin_unlock_irqrestore(&gpio_dev->lock, flags);
419 struct amd_gpio *gpio_dev = gpiochip_get_data(gc);
421 raw_spin_lock_irqsave(&gpio_dev->lock, flags);
422 pin_reg = readl(gpio_dev->base + (d->hwirq)*4);
464 dev_err(&gpio_dev->pdev->dev, "Invalid type value\n");
488 writel(pin_reg_irq_en, gpio_dev->base + (d->hwirq)*4);
489 while ((readl(gpio_dev->base + (d->hwirq)*4) & mask) != mask)
491 writel(pin_reg, gpio_dev->base + (d->hwirq)*4);
492 raw_spin_unlock_irqrestore(&gpio_dev->lock, flags);
522 struct amd_gpio *gpio_dev = dev_id;
523 struct gpio_chip *gc = &gpio_dev->gc;
532 raw_spin_lock_irqsave(&gpio_dev->lock, flags);
533 status = readl(gpio_dev->base + WAKE_INT_STATUS_REG1);
535 status |= readl(gpio_dev->base + WAKE_INT_STATUS_REG0);
536 raw_spin_unlock_irqrestore(&gpio_dev->lock, flags);
540 regs = gpio_dev->base;
564 raw_spin_lock_irqsave(&gpio_dev->lock, flags);
568 dev_dbg(&gpio_dev->pdev->dev,
573 raw_spin_unlock_irqrestore(&gpio_dev->lock, flags);
579 raw_spin_lock_irqsave(&gpio_dev->lock, flags);
580 regval = readl(gpio_dev->base + WAKE_INT_MASTER_REG);
582 writel(regval, gpio_dev->base + WAKE_INT_MASTER_REG);
583 raw_spin_unlock_irqrestore(&gpio_dev->lock, flags);
590 struct amd_gpio *gpio_dev = pinctrl_dev_get_drvdata(pctldev);
592 return gpio_dev->ngroups;
598 struct amd_gpio *gpio_dev = pinctrl_dev_get_drvdata(pctldev);
600 return gpio_dev->groups[group].name;
608 struct amd_gpio *gpio_dev = pinctrl_dev_get_drvdata(pctldev);
610 *pins = gpio_dev->groups[group].pins;
611 *num_pins = gpio_dev->groups[group].npins;
632 struct amd_gpio *gpio_dev = pinctrl_dev_get_drvdata(pctldev);
635 raw_spin_lock_irqsave(&gpio_dev->lock, flags);
636 pin_reg = readl(gpio_dev->base + pin*4);
637 raw_spin_unlock_irqrestore(&gpio_dev->lock, flags);
656 dev_dbg(&gpio_dev->pdev->dev, "Invalid config param %04x\n",
675 struct amd_gpio *gpio_dev = pinctrl_dev_get_drvdata(pctldev);
677 raw_spin_lock_irqsave(&gpio_dev->lock, flags);
681 pin_reg = readl(gpio_dev->base + pin*4);
709 dev_dbg(&gpio_dev->pdev->dev,
714 writel(pin_reg, gpio_dev->base + pin*4);
716 raw_spin_unlock_irqrestore(&gpio_dev->lock, flags);
760 struct amd_gpio *gpio_dev = gpiochip_get_data(gc);
768 return amd_pinconf_set(gpio_dev->pctrl, pin, &config, 1);
778 static void amd_gpio_irq_init(struct amd_gpio *gpio_dev)
780 struct pinctrl_desc *desc = gpio_dev->pctrl->desc;
791 const struct pin_desc *pd = pin_desc_get(gpio_dev->pctrl, pin);
796 raw_spin_lock_irqsave(&gpio_dev->lock, flags);
798 pin_reg = readl(gpio_dev->base + pin * 4);
800 writel(pin_reg, gpio_dev->base + pin * 4);
802 raw_spin_unlock_irqrestore(&gpio_dev->lock, flags);
807 static bool amd_gpio_should_save(struct amd_gpio *gpio_dev, unsigned int pin)
809 const struct pin_desc *pd = pin_desc_get(gpio_dev->pctrl, pin);
819 gpiochip_line_is_irq(&gpio_dev->gc, pin))
827 struct amd_gpio *gpio_dev = dev_get_drvdata(dev);
828 struct pinctrl_desc *desc = gpio_dev->pctrl->desc;
835 if (!amd_gpio_should_save(gpio_dev, pin))
838 raw_spin_lock_irqsave(&gpio_dev->lock, flags);
839 gpio_dev->saved_regs[i] = readl(gpio_dev->base + pin * 4) & ~PIN_IRQ_PENDING;
840 raw_spin_unlock_irqrestore(&gpio_dev->lock, flags);
848 struct amd_gpio *gpio_dev = dev_get_drvdata(dev);
849 struct pinctrl_desc *desc = gpio_dev->pctrl->desc;
856 if (!amd_gpio_should_save(gpio_dev, pin))
859 raw_spin_lock_irqsave(&gpio_dev->lock, flags);
860 gpio_dev->saved_regs[i] |= readl(gpio_dev->base + pin * 4) & PIN_IRQ_PENDING;
861 writel(gpio_dev->saved_regs[i], gpio_dev->base + pin * 4);
862 raw_spin_unlock_irqrestore(&gpio_dev->lock, flags);
887 struct amd_gpio *gpio_dev;
890 gpio_dev = devm_kzalloc(&pdev->dev,
892 if (!gpio_dev)
895 raw_spin_lock_init(&gpio_dev->lock);
903 gpio_dev->base = devm_ioremap(&pdev->dev, res->start,
905 if (!gpio_dev->base)
913 gpio_dev->saved_regs = devm_kcalloc(&pdev->dev, amd_pinctrl_desc.npins,
914 sizeof(*gpio_dev->saved_regs),
916 if (!gpio_dev->saved_regs)
920 gpio_dev->pdev = pdev;
921 gpio_dev->gc.get_direction = amd_gpio_get_direction;
922 gpio_dev->gc.direction_input = amd_gpio_direction_input;
923 gpio_dev->gc.direction_output = amd_gpio_direction_output;
924 gpio_dev->gc.get = amd_gpio_get_value;
925 gpio_dev->gc.set = amd_gpio_set_value;
926 gpio_dev->gc.set_config = amd_gpio_set_config;
927 gpio_dev->gc.dbg_show = amd_gpio_dbg_show;
929 gpio_dev->gc.base = -1;
930 gpio_dev->gc.label = pdev->name;
931 gpio_dev->gc.owner = THIS_MODULE;
932 gpio_dev->gc.parent = &pdev->dev;
933 gpio_dev->gc.ngpio = resource_size(res) / 4;
935 gpio_dev->gc.of_node = pdev->dev.of_node;
938 gpio_dev->hwbank_num = gpio_dev->gc.ngpio / 64;
939 gpio_dev->groups = kerncz_groups;
940 gpio_dev->ngroups = ARRAY_SIZE(kerncz_groups);
943 gpio_dev->pctrl = devm_pinctrl_register(&pdev->dev, &amd_pinctrl_desc,
944 gpio_dev);
945 if (IS_ERR(gpio_dev->pctrl)) {
947 return PTR_ERR(gpio_dev->pctrl);
951 amd_gpio_irq_init(gpio_dev);
953 girq = &gpio_dev->gc.irq;
962 ret = gpiochip_add_data(&gpio_dev->gc, gpio_dev);
966 ret = gpiochip_add_pin_range(&gpio_dev->gc, dev_name(&pdev->dev),
967 0, 0, gpio_dev->gc.ngpio);
974 IRQF_SHARED, KBUILD_MODNAME, gpio_dev);
978 platform_set_drvdata(pdev, gpio_dev);
984 gpiochip_remove(&gpio_dev->gc);
991 struct amd_gpio *gpio_dev;
993 gpio_dev = platform_get_drvdata(pdev);
995 gpiochip_remove(&gpio_dev->gc);