[PATCH 08/10] gpio: Add gpio driver for Actions OWL S900 SoC
From: Andy Shevchenko <hidden>
Date: 2018-02-18 14:45:12
Also in:
linux-devicetree, lkml
On Sat, Feb 17, 2018 at 10:44 PM, Manivannan Sadhasivam [off-list ref] wrote:
Add gpio driver for Actions Semi OWL family S900 SoC. Set of registers controlling the gpio shares the same register range with pinctrl block. GPIO registers are organized as 6 banks and each bank controls the maximum of 32 gpios.
+#include <linux/init.h>
+#include <linux/module.h>
Choose one of them.
+ val = readl(gpio_base + GPIO_OUTEN); + val |= BIT(offset); + writel(val, gpio_base + GPIO_OUTEN);
out_en()
+ val = readl(gpio_base + GPIO_OUTEN); + val &= ~BIT(offset); + writel(val, gpio_base + GPIO_OUTEN);
out_dis()
+ val = readl(gpio_base + GPIO_INEN); + val &= ~BIT(offset); + writel(val, gpio_base + GPIO_INEN);
in_dis()
+ val = readl(gpio_base + GPIO_OUTEN); + val &= ~BIT(offset); + writel(val, gpio_base + GPIO_OUTEN);
out_dis()
+ val = readl(gpio_base + GPIO_INEN); + val |= BIT(offset); + writel(val, gpio_base + GPIO_INEN);
in_en()
+ val = readl(gpio_base + GPIO_INEN); + val &= ~BIT(pin); + writel(val, gpio_base + GPIO_INEN);
in_dis()
+ val = readl(gpio_base + GPIO_OUTEN); + val |= BIT(pin); + writel(val, gpio_base + GPIO_OUTEN);
out_en() Find above code duplication.
+static int owl_gpio_probe(struct platform_device *pdev)
+{+ gpio->base = of_iomap(pdev->dev.of_node, 0); + if (IS_ERR(gpio->base)) + return PTR_ERR(gpio->base);
+ gpio->gpio.of_node = pdev->dev.of_node;
Isn't this done by GPIO library?
+static int owl_gpio_remove(struct platform_device *pdev)
+{
+ return 0;
+}Useless stub. -- With Best Regards, Andy Shevchenko