aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpio/gpio-moxart.c
diff options
context:
space:
mode:
authorVladimir Zapolskiy <vladimir_zapolskiy@mentor.com>2015-04-29 11:35:00 -0400
committerLinus Walleij <linus.walleij@linaro.org>2015-05-11 05:51:29 -0400
commitf30663398ee28ecd1b66ceeb6a73ef704d4abf78 (patch)
tree0606af3a510a6ef34d81d634d409eaf4fa4c7bb6 /drivers/gpio/gpio-moxart.c
parentb19e7f51a55fe740c18038d1d6957aedfc078d07 (diff)
gpio: moxart: get value of output gpio from generic driver
Adding a BGPIOF_READ_OUTPUT_REG_SET initialization flag to GPIO generic MMIO driver makes possible to remove a private get() value function from the driver. Signed-off-by: Vladimir Zapolskiy <vladimir_zapolskiy@mentor.com> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Diffstat (limited to 'drivers/gpio/gpio-moxart.c')
-rw-r--r--drivers/gpio/gpio-moxart.c17
1 files changed, 3 insertions, 14 deletions
diff --git a/drivers/gpio/gpio-moxart.c b/drivers/gpio/gpio-moxart.c
index c3ab46e595da..abd8676ce2b6 100644
--- a/drivers/gpio/gpio-moxart.c
+++ b/drivers/gpio/gpio-moxart.c
@@ -39,17 +39,6 @@ static void moxart_gpio_free(struct gpio_chip *chip, unsigned offset)
39 pinctrl_free_gpio(offset); 39 pinctrl_free_gpio(offset);
40} 40}
41 41
42static int moxart_gpio_get(struct gpio_chip *chip, unsigned offset)
43{
44 struct bgpio_chip *bgc = to_bgpio_chip(chip);
45 u32 ret = bgc->read_reg(bgc->reg_dir);
46
47 if (ret & BIT(offset))
48 return !!(bgc->read_reg(bgc->reg_set) & BIT(offset));
49 else
50 return !!(bgc->read_reg(bgc->reg_dat) & BIT(offset));
51}
52
53static int moxart_gpio_probe(struct platform_device *pdev) 42static int moxart_gpio_probe(struct platform_device *pdev)
54{ 43{
55 struct device *dev = &pdev->dev; 44 struct device *dev = &pdev->dev;
@@ -68,8 +57,9 @@ static int moxart_gpio_probe(struct platform_device *pdev)
68 return PTR_ERR(base); 57 return PTR_ERR(base);
69 58
70 ret = bgpio_init(bgc, dev, 4, base + GPIO_DATA_IN, 59 ret = bgpio_init(bgc, dev, 4, base + GPIO_DATA_IN,
71 base + GPIO_DATA_OUT, NULL, 60 base + GPIO_DATA_OUT, NULL,
72 base + GPIO_PIN_DIRECTION, NULL, 0); 61 base + GPIO_PIN_DIRECTION, NULL,
62 BGPIOF_READ_OUTPUT_REG_SET);
73 if (ret) { 63 if (ret) {
74 dev_err(&pdev->dev, "bgpio_init failed\n"); 64 dev_err(&pdev->dev, "bgpio_init failed\n");
75 return ret; 65 return ret;
@@ -78,7 +68,6 @@ static int moxart_gpio_probe(struct platform_device *pdev)
78 bgc->gc.label = "moxart-gpio"; 68 bgc->gc.label = "moxart-gpio";
79 bgc->gc.request = moxart_gpio_request; 69 bgc->gc.request = moxart_gpio_request;
80 bgc->gc.free = moxart_gpio_free; 70 bgc->gc.free = moxart_gpio_free;
81 bgc->gc.get = moxart_gpio_get;
82 bgc->data = bgc->read_reg(bgc->reg_set); 71 bgc->data = bgc->read_reg(bgc->reg_set);
83 bgc->gc.base = 0; 72 bgc->gc.base = 0;
84 bgc->gc.ngpio = 32; 73 bgc->gc.ngpio = 32;