aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/pinctrl
diff options
context:
space:
mode:
authorLinus Walleij <linus.walleij@linaro.org>2015-12-17 08:57:46 -0500
committerLinus Walleij <linus.walleij@linaro.org>2015-12-17 08:57:46 -0500
commit4dccc93f1e7f4e2fd92a48c40a7ac9211a029352 (patch)
tree717a183f0dba200a882126cf095f38e319302c51 /drivers/pinctrl
parentd4eed63bb8a3749a6cf19bbc98c943fafb4a826d (diff)
parent9f9499ae8e6415cefc4fe0a96ad0e27864353c89 (diff)
Merge tag 'v4.4-rc5' into devel
Linux 4.4-rc5
Diffstat (limited to 'drivers/pinctrl')
-rw-r--r--drivers/pinctrl/Kconfig4
-rw-r--r--drivers/pinctrl/freescale/pinctrl-imx1-core.c8
-rw-r--r--drivers/pinctrl/mediatek/pinctrl-mtk-common.c11
-rw-r--r--drivers/pinctrl/sh-pfc/pfc-sh7734.c6
4 files changed, 13 insertions, 16 deletions
diff --git a/drivers/pinctrl/Kconfig b/drivers/pinctrl/Kconfig
index 2b80a796d966..99a4c10ed43f 100644
--- a/drivers/pinctrl/Kconfig
+++ b/drivers/pinctrl/Kconfig
@@ -5,8 +5,6 @@
5config PINCTRL 5config PINCTRL
6 bool 6 bool
7 7
8if PINCTRL
9
10menu "Pin controllers" 8menu "Pin controllers"
11 depends on PINCTRL 9 depends on PINCTRL
12 10
@@ -275,5 +273,3 @@ config PINCTRL_TB10X
275 select GPIOLIB 273 select GPIOLIB
276 274
277endmenu 275endmenu
278
279endif
diff --git a/drivers/pinctrl/freescale/pinctrl-imx1-core.c b/drivers/pinctrl/freescale/pinctrl-imx1-core.c
index 88a7fac11bd4..acaf84cadca3 100644
--- a/drivers/pinctrl/freescale/pinctrl-imx1-core.c
+++ b/drivers/pinctrl/freescale/pinctrl-imx1-core.c
@@ -538,8 +538,10 @@ static int imx1_pinctrl_parse_functions(struct device_node *np,
538 func->groups[i] = child->name; 538 func->groups[i] = child->name;
539 grp = &info->groups[grp_index++]; 539 grp = &info->groups[grp_index++];
540 ret = imx1_pinctrl_parse_groups(child, grp, info, i++); 540 ret = imx1_pinctrl_parse_groups(child, grp, info, i++);
541 if (ret == -ENOMEM) 541 if (ret == -ENOMEM) {
542 of_node_put(child);
542 return ret; 543 return ret;
544 }
543 } 545 }
544 546
545 return 0; 547 return 0;
@@ -582,8 +584,10 @@ static int imx1_pinctrl_parse_dt(struct platform_device *pdev,
582 584
583 for_each_child_of_node(np, child) { 585 for_each_child_of_node(np, child) {
584 ret = imx1_pinctrl_parse_functions(child, info, ifunc++); 586 ret = imx1_pinctrl_parse_functions(child, info, ifunc++);
585 if (ret == -ENOMEM) 587 if (ret == -ENOMEM) {
588 of_node_put(child);
586 return -ENOMEM; 589 return -ENOMEM;
590 }
587 } 591 }
588 592
589 return 0; 593 return 0;
diff --git a/drivers/pinctrl/mediatek/pinctrl-mtk-common.c b/drivers/pinctrl/mediatek/pinctrl-mtk-common.c
index 3bb4a2ae8ee4..8db7cdfbfbc6 100644
--- a/drivers/pinctrl/mediatek/pinctrl-mtk-common.c
+++ b/drivers/pinctrl/mediatek/pinctrl-mtk-common.c
@@ -754,7 +754,7 @@ static int mtk_gpio_get_direction(struct gpio_chip *chip, unsigned offset)
754 reg_addr = mtk_get_port(pctl, offset) + pctl->devdata->dir_offset; 754 reg_addr = mtk_get_port(pctl, offset) + pctl->devdata->dir_offset;
755 bit = BIT(offset & 0xf); 755 bit = BIT(offset & 0xf);
756 regmap_read(pctl->regmap1, reg_addr, &read_val); 756 regmap_read(pctl->regmap1, reg_addr, &read_val);
757 return !!(read_val & bit); 757 return !(read_val & bit);
758} 758}
759 759
760static int mtk_gpio_get(struct gpio_chip *chip, unsigned offset) 760static int mtk_gpio_get(struct gpio_chip *chip, unsigned offset)
@@ -764,12 +764,8 @@ static int mtk_gpio_get(struct gpio_chip *chip, unsigned offset)
764 unsigned int read_val = 0; 764 unsigned int read_val = 0;
765 struct mtk_pinctrl *pctl = dev_get_drvdata(chip->dev); 765 struct mtk_pinctrl *pctl = dev_get_drvdata(chip->dev);
766 766
767 if (mtk_gpio_get_direction(chip, offset)) 767 reg_addr = mtk_get_port(pctl, offset) +
768 reg_addr = mtk_get_port(pctl, offset) + 768 pctl->devdata->din_offset;
769 pctl->devdata->dout_offset;
770 else
771 reg_addr = mtk_get_port(pctl, offset) +
772 pctl->devdata->din_offset;
773 769
774 bit = BIT(offset & 0xf); 770 bit = BIT(offset & 0xf);
775 regmap_read(pctl->regmap1, reg_addr, &read_val); 771 regmap_read(pctl->regmap1, reg_addr, &read_val);
@@ -1004,6 +1000,7 @@ static struct gpio_chip mtk_gpio_chip = {
1004 .owner = THIS_MODULE, 1000 .owner = THIS_MODULE,
1005 .request = gpiochip_generic_request, 1001 .request = gpiochip_generic_request,
1006 .free = gpiochip_generic_free, 1002 .free = gpiochip_generic_free,
1003 .get_direction = mtk_gpio_get_direction,
1007 .direction_input = mtk_gpio_direction_input, 1004 .direction_input = mtk_gpio_direction_input,
1008 .direction_output = mtk_gpio_direction_output, 1005 .direction_output = mtk_gpio_direction_output,
1009 .get = mtk_gpio_get, 1006 .get = mtk_gpio_get,
diff --git a/drivers/pinctrl/sh-pfc/pfc-sh7734.c b/drivers/pinctrl/sh-pfc/pfc-sh7734.c
index 20373a9c1710..b0b328b3130b 100644
--- a/drivers/pinctrl/sh-pfc/pfc-sh7734.c
+++ b/drivers/pinctrl/sh-pfc/pfc-sh7734.c
@@ -23,11 +23,11 @@
23 PORT_GP_12(5, fn, sfx) 23 PORT_GP_12(5, fn, sfx)
24 24
25#undef _GP_DATA 25#undef _GP_DATA
26#define _GP_DATA(bank, pin, name, sfx) \ 26#define _GP_DATA(bank, pin, name, sfx, cfg) \
27 PINMUX_DATA(name##_DATA, name##_FN, name##_IN, name##_OUT) 27 PINMUX_DATA(name##_DATA, name##_FN, name##_IN, name##_OUT)
28 28
29#define _GP_INOUTSEL(bank, pin, name, sfx) name##_IN, name##_OUT 29#define _GP_INOUTSEL(bank, pin, name, sfx, cfg) name##_IN, name##_OUT
30#define _GP_INDT(bank, pin, name, sfx) name##_DATA 30#define _GP_INDT(bank, pin, name, sfx, cfg) name##_DATA
31#define GP_INOUTSEL(bank) PORT_GP_32_REV(bank, _GP_INOUTSEL, unused) 31#define GP_INOUTSEL(bank) PORT_GP_32_REV(bank, _GP_INOUTSEL, unused)
32#define GP_INDT(bank) PORT_GP_32_REV(bank, _GP_INDT, unused) 32#define GP_INDT(bank) PORT_GP_32_REV(bank, _GP_INDT, unused)
33 33