summaryrefslogtreecommitdiffstats
path: root/drivers/pinctrl
diff options
context:
space:
mode:
authorMika Westerberg <mika.westerberg@linux.intel.com>2017-01-23 07:34:32 -0500
committerLinus Walleij <linus.walleij@linaro.org>2017-01-26 09:22:32 -0500
commit58957d2edfa19e9b8f80385ba042495058e5e60e (patch)
treeac6041e8fe09315cba840d6e65fe1ca97effba14 /drivers/pinctrl
parent7ce7d89f48834cefece7804d38fc5d85382edf77 (diff)
pinctrl: Widen the generic pinconf argument from 16 to 24 bits
The current pinconf packed format allows only 16-bit argument limiting the maximum value 65535. For most types this is enough. However, debounce time can be in range of hundreths of milliseconds in case of mechanical switches so we cannot represent the worst case using the current format. In order to support larger values change the packed format so that the lower 8 bits are used as type which leaves 24 bits for the argument. This allows representing values up to 16777215 and debounce times up to 16 seconds. We also convert the existing users to use 32-bit integer when extracting argument from the packed configuration value. Signed-off-by: Mika Westerberg <mika.westerberg@linux.intel.com> Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Diffstat (limited to 'drivers/pinctrl')
-rw-r--r--drivers/pinctrl/bcm/pinctrl-bcm281xx.c6
-rw-r--r--drivers/pinctrl/bcm/pinctrl-iproc-gpio.c2
-rw-r--r--drivers/pinctrl/bcm/pinctrl-ns2-mux.c6
-rw-r--r--drivers/pinctrl/bcm/pinctrl-nsp-gpio.c6
-rw-r--r--drivers/pinctrl/intel/pinctrl-cherryview.c4
-rw-r--r--drivers/pinctrl/meson/pinctrl-meson.c2
-rw-r--r--drivers/pinctrl/pinctrl-da850-pupd.c2
-rw-r--r--drivers/pinctrl/pinctrl-lpc18xx.c10
-rw-r--r--drivers/pinctrl/pinctrl-max77620.c2
-rw-r--r--drivers/pinctrl/pinctrl-palmas.c2
-rw-r--r--drivers/pinctrl/pinctrl-rockchip.c2
-rw-r--r--drivers/pinctrl/pinctrl-single.c2
-rw-r--r--drivers/pinctrl/sirf/pinctrl-atlas7.c3
-rw-r--r--drivers/pinctrl/sunxi/pinctrl-sunxi.c2
-rw-r--r--drivers/pinctrl/uniphier/pinctrl-uniphier-core.c4
-rw-r--r--drivers/pinctrl/vt8500/pinctrl-wmt.c2
16 files changed, 27 insertions, 30 deletions
diff --git a/drivers/pinctrl/bcm/pinctrl-bcm281xx.c b/drivers/pinctrl/bcm/pinctrl-bcm281xx.c
index a5331fdfc795..810a81786f62 100644
--- a/drivers/pinctrl/bcm/pinctrl-bcm281xx.c
+++ b/drivers/pinctrl/bcm/pinctrl-bcm281xx.c
@@ -1106,7 +1106,7 @@ static int bcm281xx_std_pin_update(struct pinctrl_dev *pctldev,
1106 struct bcm281xx_pinctrl_data *pdata = pinctrl_dev_get_drvdata(pctldev); 1106 struct bcm281xx_pinctrl_data *pdata = pinctrl_dev_get_drvdata(pctldev);
1107 int i; 1107 int i;
1108 enum pin_config_param param; 1108 enum pin_config_param param;
1109 u16 arg; 1109 u32 arg;
1110 1110
1111 for (i = 0; i < num_configs; i++) { 1111 for (i = 0; i < num_configs; i++) {
1112 param = pinconf_to_config_param(configs[i]); 1112 param = pinconf_to_config_param(configs[i]);
@@ -1222,7 +1222,7 @@ static int bcm281xx_i2c_pin_update(struct pinctrl_dev *pctldev,
1222 struct bcm281xx_pinctrl_data *pdata = pinctrl_dev_get_drvdata(pctldev); 1222 struct bcm281xx_pinctrl_data *pdata = pinctrl_dev_get_drvdata(pctldev);
1223 int i, j; 1223 int i, j;
1224 enum pin_config_param param; 1224 enum pin_config_param param;
1225 u16 arg; 1225 u32 arg;
1226 1226
1227 for (i = 0; i < num_configs; i++) { 1227 for (i = 0; i < num_configs; i++) {
1228 param = pinconf_to_config_param(configs[i]); 1228 param = pinconf_to_config_param(configs[i]);
@@ -1292,7 +1292,7 @@ static int bcm281xx_hdmi_pin_update(struct pinctrl_dev *pctldev,
1292 struct bcm281xx_pinctrl_data *pdata = pinctrl_dev_get_drvdata(pctldev); 1292 struct bcm281xx_pinctrl_data *pdata = pinctrl_dev_get_drvdata(pctldev);
1293 int i; 1293 int i;
1294 enum pin_config_param param; 1294 enum pin_config_param param;
1295 u16 arg; 1295 u32 arg;
1296 1296
1297 for (i = 0; i < num_configs; i++) { 1297 for (i = 0; i < num_configs; i++) {
1298 param = pinconf_to_config_param(configs[i]); 1298 param = pinconf_to_config_param(configs[i]);
diff --git a/drivers/pinctrl/bcm/pinctrl-iproc-gpio.c b/drivers/pinctrl/bcm/pinctrl-iproc-gpio.c
index 5d1e505c3c63..3ca925dfefd1 100644
--- a/drivers/pinctrl/bcm/pinctrl-iproc-gpio.c
+++ b/drivers/pinctrl/bcm/pinctrl-iproc-gpio.c
@@ -619,7 +619,7 @@ static int iproc_pin_config_set(struct pinctrl_dev *pctldev, unsigned pin,
619{ 619{
620 struct iproc_gpio *chip = pinctrl_dev_get_drvdata(pctldev); 620 struct iproc_gpio *chip = pinctrl_dev_get_drvdata(pctldev);
621 enum pin_config_param param; 621 enum pin_config_param param;
622 u16 arg; 622 u32 arg;
623 unsigned i, gpio = iproc_pin_to_gpio(pin); 623 unsigned i, gpio = iproc_pin_to_gpio(pin);
624 int ret = -ENOTSUPP; 624 int ret = -ENOTSUPP;
625 625
diff --git a/drivers/pinctrl/bcm/pinctrl-ns2-mux.c b/drivers/pinctrl/bcm/pinctrl-ns2-mux.c
index 13a4c2774157..4b5cf0e0f16e 100644
--- a/drivers/pinctrl/bcm/pinctrl-ns2-mux.c
+++ b/drivers/pinctrl/bcm/pinctrl-ns2-mux.c
@@ -703,7 +703,7 @@ static int ns2_pin_get_enable(struct pinctrl_dev *pctrldev, unsigned int pin)
703} 703}
704 704
705static int ns2_pin_set_slew(struct pinctrl_dev *pctrldev, unsigned int pin, 705static int ns2_pin_set_slew(struct pinctrl_dev *pctrldev, unsigned int pin,
706 u16 slew) 706 u32 slew)
707{ 707{
708 struct ns2_pinctrl *pinctrl = pinctrl_dev_get_drvdata(pctrldev); 708 struct ns2_pinctrl *pinctrl = pinctrl_dev_get_drvdata(pctrldev);
709 struct ns2_pin *pin_data = pctrldev->desc->pins[pin].drv_data; 709 struct ns2_pin *pin_data = pctrldev->desc->pins[pin].drv_data;
@@ -793,7 +793,7 @@ static void ns2_pin_get_pull(struct pinctrl_dev *pctrldev,
793} 793}
794 794
795static int ns2_pin_set_strength(struct pinctrl_dev *pctrldev, unsigned int pin, 795static int ns2_pin_set_strength(struct pinctrl_dev *pctrldev, unsigned int pin,
796 u16 strength) 796 u32 strength)
797{ 797{
798 struct ns2_pinctrl *pinctrl = pinctrl_dev_get_drvdata(pctrldev); 798 struct ns2_pinctrl *pinctrl = pinctrl_dev_get_drvdata(pctrldev);
799 struct ns2_pin *pin_data = pctrldev->desc->pins[pin].drv_data; 799 struct ns2_pin *pin_data = pctrldev->desc->pins[pin].drv_data;
@@ -904,7 +904,7 @@ static int ns2_pin_config_set(struct pinctrl_dev *pctrldev, unsigned int pin,
904 struct ns2_pin *pin_data = pctrldev->desc->pins[pin].drv_data; 904 struct ns2_pin *pin_data = pctrldev->desc->pins[pin].drv_data;
905 enum pin_config_param param; 905 enum pin_config_param param;
906 unsigned int i; 906 unsigned int i;
907 u16 arg; 907 u32 arg;
908 int ret = -ENOTSUPP; 908 int ret = -ENOTSUPP;
909 909
910 if (pin_data->pin_conf.base == -1) 910 if (pin_data->pin_conf.base == -1)
diff --git a/drivers/pinctrl/bcm/pinctrl-nsp-gpio.c b/drivers/pinctrl/bcm/pinctrl-nsp-gpio.c
index c8deb8be1da7..91ea32dc1e7f 100644
--- a/drivers/pinctrl/bcm/pinctrl-nsp-gpio.c
+++ b/drivers/pinctrl/bcm/pinctrl-nsp-gpio.c
@@ -366,7 +366,7 @@ static const struct pinctrl_ops nsp_pctrl_ops = {
366 .dt_free_map = pinctrl_utils_free_map, 366 .dt_free_map = pinctrl_utils_free_map,
367}; 367};
368 368
369static int nsp_gpio_set_slew(struct nsp_gpio *chip, unsigned gpio, u16 slew) 369static int nsp_gpio_set_slew(struct nsp_gpio *chip, unsigned gpio, u32 slew)
370{ 370{
371 if (slew) 371 if (slew)
372 nsp_set_bit(chip, IO_CTRL, NSP_GPIO_SLEW_RATE_EN, gpio, true); 372 nsp_set_bit(chip, IO_CTRL, NSP_GPIO_SLEW_RATE_EN, gpio, true);
@@ -403,7 +403,7 @@ static void nsp_gpio_get_pull(struct nsp_gpio *chip, unsigned gpio,
403} 403}
404 404
405static int nsp_gpio_set_strength(struct nsp_gpio *chip, unsigned gpio, 405static int nsp_gpio_set_strength(struct nsp_gpio *chip, unsigned gpio,
406 u16 strength) 406 u32 strength)
407{ 407{
408 u32 offset, shift, i; 408 u32 offset, shift, i;
409 u32 val; 409 u32 val;
@@ -522,7 +522,7 @@ static int nsp_pin_config_set(struct pinctrl_dev *pctldev, unsigned pin,
522{ 522{
523 struct nsp_gpio *chip = pinctrl_dev_get_drvdata(pctldev); 523 struct nsp_gpio *chip = pinctrl_dev_get_drvdata(pctldev);
524 enum pin_config_param param; 524 enum pin_config_param param;
525 u16 arg; 525 u32 arg;
526 unsigned int i, gpio; 526 unsigned int i, gpio;
527 int ret = -ENOTSUPP; 527 int ret = -ENOTSUPP;
528 528
diff --git a/drivers/pinctrl/intel/pinctrl-cherryview.c b/drivers/pinctrl/intel/pinctrl-cherryview.c
index 5e66860a5e67..f80134e3e0b6 100644
--- a/drivers/pinctrl/intel/pinctrl-cherryview.c
+++ b/drivers/pinctrl/intel/pinctrl-cherryview.c
@@ -1059,7 +1059,7 @@ static int chv_config_get(struct pinctrl_dev *pctldev, unsigned pin,
1059} 1059}
1060 1060
1061static int chv_config_set_pull(struct chv_pinctrl *pctrl, unsigned pin, 1061static int chv_config_set_pull(struct chv_pinctrl *pctrl, unsigned pin,
1062 enum pin_config_param param, u16 arg) 1062 enum pin_config_param param, u32 arg)
1063{ 1063{
1064 void __iomem *reg = chv_padreg(pctrl, pin, CHV_PADCTRL0); 1064 void __iomem *reg = chv_padreg(pctrl, pin, CHV_PADCTRL0);
1065 unsigned long flags; 1065 unsigned long flags;
@@ -1151,7 +1151,7 @@ static int chv_config_set(struct pinctrl_dev *pctldev, unsigned pin,
1151 struct chv_pinctrl *pctrl = pinctrl_dev_get_drvdata(pctldev); 1151 struct chv_pinctrl *pctrl = pinctrl_dev_get_drvdata(pctldev);
1152 enum pin_config_param param; 1152 enum pin_config_param param;
1153 int i, ret; 1153 int i, ret;
1154 u16 arg; 1154 u32 arg;
1155 1155
1156 if (chv_pad_locked(pctrl, pin)) 1156 if (chv_pad_locked(pctrl, pin))
1157 return -EBUSY; 1157 return -EBUSY;
diff --git a/drivers/pinctrl/meson/pinctrl-meson.c b/drivers/pinctrl/meson/pinctrl-meson.c
index a579126832af..8fbb571f50de 100644
--- a/drivers/pinctrl/meson/pinctrl-meson.c
+++ b/drivers/pinctrl/meson/pinctrl-meson.c
@@ -260,7 +260,6 @@ static int meson_pinconf_set(struct pinctrl_dev *pcdev, unsigned int pin,
260 enum pin_config_param param; 260 enum pin_config_param param;
261 unsigned int reg, bit; 261 unsigned int reg, bit;
262 int i, ret; 262 int i, ret;
263 u16 arg;
264 263
265 ret = meson_get_bank(pc, pin, &bank); 264 ret = meson_get_bank(pc, pin, &bank);
266 if (ret) 265 if (ret)
@@ -268,7 +267,6 @@ static int meson_pinconf_set(struct pinctrl_dev *pcdev, unsigned int pin,
268 267
269 for (i = 0; i < num_configs; i++) { 268 for (i = 0; i < num_configs; i++) {
270 param = pinconf_to_config_param(configs[i]); 269 param = pinconf_to_config_param(configs[i]);
271 arg = pinconf_to_config_argument(configs[i]);
272 270
273 switch (param) { 271 switch (param) {
274 case PIN_CONFIG_BIAS_DISABLE: 272 case PIN_CONFIG_BIAS_DISABLE:
diff --git a/drivers/pinctrl/pinctrl-da850-pupd.c b/drivers/pinctrl/pinctrl-da850-pupd.c
index b36a90a3f3e4..44d5f5f5b07f 100644
--- a/drivers/pinctrl/pinctrl-da850-pupd.c
+++ b/drivers/pinctrl/pinctrl-da850-pupd.c
@@ -113,7 +113,6 @@ static int da850_pupd_pin_config_group_set(struct pinctrl_dev *pctldev,
113 struct da850_pupd_data *data = pinctrl_dev_get_drvdata(pctldev); 113 struct da850_pupd_data *data = pinctrl_dev_get_drvdata(pctldev);
114 u32 ena, sel; 114 u32 ena, sel;
115 enum pin_config_param param; 115 enum pin_config_param param;
116 u16 arg;
117 int i; 116 int i;
118 117
119 ena = readl(data->base + DA850_PUPD_ENA); 118 ena = readl(data->base + DA850_PUPD_ENA);
@@ -121,7 +120,6 @@ static int da850_pupd_pin_config_group_set(struct pinctrl_dev *pctldev,
121 120
122 for (i = 0; i < num_configs; i++) { 121 for (i = 0; i < num_configs; i++) {
123 param = pinconf_to_config_param(configs[i]); 122 param = pinconf_to_config_param(configs[i]);
124 arg = pinconf_to_config_argument(configs[i]);
125 123
126 switch (param) { 124 switch (param) {
127 case PIN_CONFIG_BIAS_DISABLE: 125 case PIN_CONFIG_BIAS_DISABLE:
diff --git a/drivers/pinctrl/pinctrl-lpc18xx.c b/drivers/pinctrl/pinctrl-lpc18xx.c
index e053f1fa5512..d090f37ca4a1 100644
--- a/drivers/pinctrl/pinctrl-lpc18xx.c
+++ b/drivers/pinctrl/pinctrl-lpc18xx.c
@@ -904,7 +904,7 @@ static int lpc18xx_pconf_get(struct pinctrl_dev *pctldev, unsigned pin,
904 904
905static int lpc18xx_pconf_set_usb1(struct pinctrl_dev *pctldev, 905static int lpc18xx_pconf_set_usb1(struct pinctrl_dev *pctldev,
906 enum pin_config_param param, 906 enum pin_config_param param,
907 u16 param_val, u32 *reg) 907 u32 param_val, u32 *reg)
908{ 908{
909 switch (param) { 909 switch (param) {
910 case PIN_CONFIG_LOW_POWER_MODE: 910 case PIN_CONFIG_LOW_POWER_MODE:
@@ -932,7 +932,7 @@ static int lpc18xx_pconf_set_usb1(struct pinctrl_dev *pctldev,
932 932
933static int lpc18xx_pconf_set_i2c0(struct pinctrl_dev *pctldev, 933static int lpc18xx_pconf_set_i2c0(struct pinctrl_dev *pctldev,
934 enum pin_config_param param, 934 enum pin_config_param param,
935 u16 param_val, u32 *reg, 935 u32 param_val, u32 *reg,
936 unsigned pin) 936 unsigned pin)
937{ 937{
938 u8 shift; 938 u8 shift;
@@ -982,7 +982,7 @@ static int lpc18xx_pconf_set_i2c0(struct pinctrl_dev *pctldev,
982} 982}
983 983
984static int lpc18xx_pconf_set_gpio_pin_int(struct pinctrl_dev *pctldev, 984static int lpc18xx_pconf_set_gpio_pin_int(struct pinctrl_dev *pctldev,
985 u16 param_val, unsigned pin) 985 u32 param_val, unsigned pin)
986{ 986{
987 struct lpc18xx_scu_data *scu = pinctrl_dev_get_drvdata(pctldev); 987 struct lpc18xx_scu_data *scu = pinctrl_dev_get_drvdata(pctldev);
988 u32 val, reg_val, reg_offset = LPC18XX_SCU_PINTSEL0; 988 u32 val, reg_val, reg_offset = LPC18XX_SCU_PINTSEL0;
@@ -1008,7 +1008,7 @@ static int lpc18xx_pconf_set_gpio_pin_int(struct pinctrl_dev *pctldev,
1008} 1008}
1009 1009
1010static int lpc18xx_pconf_set_pin(struct pinctrl_dev *pctldev, unsigned param, 1010static int lpc18xx_pconf_set_pin(struct pinctrl_dev *pctldev, unsigned param,
1011 u16 param_val, u32 *reg, unsigned pin, 1011 u32 param_val, u32 *reg, unsigned pin,
1012 struct lpc18xx_pin_caps *pin_cap) 1012 struct lpc18xx_pin_caps *pin_cap)
1013{ 1013{
1014 switch (param) { 1014 switch (param) {
@@ -1088,7 +1088,7 @@ static int lpc18xx_pconf_set(struct pinctrl_dev *pctldev, unsigned pin,
1088 struct lpc18xx_scu_data *scu = pinctrl_dev_get_drvdata(pctldev); 1088 struct lpc18xx_scu_data *scu = pinctrl_dev_get_drvdata(pctldev);
1089 struct lpc18xx_pin_caps *pin_cap; 1089 struct lpc18xx_pin_caps *pin_cap;
1090 enum pin_config_param param; 1090 enum pin_config_param param;
1091 u16 param_val; 1091 u32 param_val;
1092 u32 reg; 1092 u32 reg;
1093 int ret; 1093 int ret;
1094 int i; 1094 int i;
diff --git a/drivers/pinctrl/pinctrl-max77620.c b/drivers/pinctrl/pinctrl-max77620.c
index d9ff53e8f715..b8d2180a2bea 100644
--- a/drivers/pinctrl/pinctrl-max77620.c
+++ b/drivers/pinctrl/pinctrl-max77620.c
@@ -402,7 +402,7 @@ static int max77620_pinconf_set(struct pinctrl_dev *pctldev,
402 struct device *dev = mpci->dev; 402 struct device *dev = mpci->dev;
403 struct max77620_fps_config *fps_config; 403 struct max77620_fps_config *fps_config;
404 int param; 404 int param;
405 u16 param_val; 405 u32 param_val;
406 unsigned int val; 406 unsigned int val;
407 unsigned int pu_val; 407 unsigned int pu_val;
408 unsigned int pd_val; 408 unsigned int pd_val;
diff --git a/drivers/pinctrl/pinctrl-palmas.c b/drivers/pinctrl/pinctrl-palmas.c
index a30146da7ffd..4d6a5015b927 100644
--- a/drivers/pinctrl/pinctrl-palmas.c
+++ b/drivers/pinctrl/pinctrl-palmas.c
@@ -860,7 +860,7 @@ static int palmas_pinconf_set(struct pinctrl_dev *pctldev,
860{ 860{
861 struct palmas_pctrl_chip_info *pci = pinctrl_dev_get_drvdata(pctldev); 861 struct palmas_pctrl_chip_info *pci = pinctrl_dev_get_drvdata(pctldev);
862 enum pin_config_param param; 862 enum pin_config_param param;
863 u16 param_val; 863 u32 param_val;
864 const struct palmas_pingroup *g; 864 const struct palmas_pingroup *g;
865 const struct palmas_pin_info *opt; 865 const struct palmas_pin_info *opt;
866 int ret; 866 int ret;
diff --git a/drivers/pinctrl/pinctrl-rockchip.c b/drivers/pinctrl/pinctrl-rockchip.c
index 08765f58253c..7813599e43fa 100644
--- a/drivers/pinctrl/pinctrl-rockchip.c
+++ b/drivers/pinctrl/pinctrl-rockchip.c
@@ -1441,7 +1441,7 @@ static int rockchip_pinconf_set(struct pinctrl_dev *pctldev, unsigned int pin,
1441 struct rockchip_pinctrl *info = pinctrl_dev_get_drvdata(pctldev); 1441 struct rockchip_pinctrl *info = pinctrl_dev_get_drvdata(pctldev);
1442 struct rockchip_pin_bank *bank = pin_to_bank(info, pin); 1442 struct rockchip_pin_bank *bank = pin_to_bank(info, pin);
1443 enum pin_config_param param; 1443 enum pin_config_param param;
1444 u16 arg; 1444 u32 arg;
1445 int i; 1445 int i;
1446 int rc; 1446 int rc;
1447 1447
diff --git a/drivers/pinctrl/pinctrl-single.c b/drivers/pinctrl/pinctrl-single.c
index a5a0392ab817..f71f2e813ea6 100644
--- a/drivers/pinctrl/pinctrl-single.c
+++ b/drivers/pinctrl/pinctrl-single.c
@@ -622,7 +622,7 @@ static int pcs_pinconf_set(struct pinctrl_dev *pctldev,
622 struct pcs_device *pcs = pinctrl_dev_get_drvdata(pctldev); 622 struct pcs_device *pcs = pinctrl_dev_get_drvdata(pctldev);
623 struct pcs_function *func; 623 struct pcs_function *func;
624 unsigned offset = 0, shift = 0, i, data, ret; 624 unsigned offset = 0, shift = 0, i, data, ret;
625 u16 arg; 625 u32 arg;
626 int j; 626 int j;
627 627
628 ret = pcs_get_function(pctldev, pin, &func); 628 ret = pcs_get_function(pctldev, pin, &func);
diff --git a/drivers/pinctrl/sirf/pinctrl-atlas7.c b/drivers/pinctrl/sirf/pinctrl-atlas7.c
index 7f3041697813..82b8a429743d 100644
--- a/drivers/pinctrl/sirf/pinctrl-atlas7.c
+++ b/drivers/pinctrl/sirf/pinctrl-atlas7.c
@@ -5322,7 +5322,8 @@ static int atlas7_pin_config_set(struct pinctrl_dev *pctldev,
5322 unsigned pin, unsigned long *configs, 5322 unsigned pin, unsigned long *configs,
5323 unsigned num_configs) 5323 unsigned num_configs)
5324{ 5324{
5325 u16 param, arg; 5325 u16 param;
5326 u32 arg;
5326 int idx, err; 5327 int idx, err;
5327 5328
5328 for (idx = 0; idx < num_configs; idx++) { 5329 for (idx = 0; idx < num_configs; idx++) {
diff --git a/drivers/pinctrl/sunxi/pinctrl-sunxi.c b/drivers/pinctrl/sunxi/pinctrl-sunxi.c
index 0eb51e33cb1b..28bfa5f413e4 100644
--- a/drivers/pinctrl/sunxi/pinctrl-sunxi.c
+++ b/drivers/pinctrl/sunxi/pinctrl-sunxi.c
@@ -540,7 +540,7 @@ static int sunxi_pconf_group_set(struct pinctrl_dev *pctldev,
540 enum pin_config_param param; 540 enum pin_config_param param;
541 unsigned long flags; 541 unsigned long flags;
542 u32 offset, shift, mask, reg; 542 u32 offset, shift, mask, reg;
543 u16 arg, val; 543 u32 arg, val;
544 int ret; 544 int ret;
545 545
546 param = pinconf_to_config_param(configs[i]); 546 param = pinconf_to_config_param(configs[i]);
diff --git a/drivers/pinctrl/uniphier/pinctrl-uniphier-core.c b/drivers/pinctrl/uniphier/pinctrl-uniphier-core.c
index 9b2ee717bccc..546f23c9040c 100644
--- a/drivers/pinctrl/uniphier/pinctrl-uniphier-core.c
+++ b/drivers/pinctrl/uniphier/pinctrl-uniphier-core.c
@@ -297,7 +297,7 @@ static int uniphier_conf_pin_config_get(struct pinctrl_dev *pctldev,
297 297
298static int uniphier_conf_pin_bias_set(struct pinctrl_dev *pctldev, 298static int uniphier_conf_pin_bias_set(struct pinctrl_dev *pctldev,
299 const struct pin_desc *desc, 299 const struct pin_desc *desc,
300 enum pin_config_param param, u16 arg) 300 enum pin_config_param param, u32 arg)
301{ 301{
302 struct uniphier_pinctrl_priv *priv = pinctrl_dev_get_drvdata(pctldev); 302 struct uniphier_pinctrl_priv *priv = pinctrl_dev_get_drvdata(pctldev);
303 enum uniphier_pin_pull_dir pull_dir = 303 enum uniphier_pin_pull_dir pull_dir =
@@ -468,7 +468,7 @@ static int uniphier_conf_pin_config_set(struct pinctrl_dev *pctldev,
468 for (i = 0; i < num_configs; i++) { 468 for (i = 0; i < num_configs; i++) {
469 enum pin_config_param param = 469 enum pin_config_param param =
470 pinconf_to_config_param(configs[i]); 470 pinconf_to_config_param(configs[i]);
471 u16 arg = pinconf_to_config_argument(configs[i]); 471 u32 arg = pinconf_to_config_argument(configs[i]);
472 472
473 switch (param) { 473 switch (param) {
474 case PIN_CONFIG_BIAS_DISABLE: 474 case PIN_CONFIG_BIAS_DISABLE:
diff --git a/drivers/pinctrl/vt8500/pinctrl-wmt.c b/drivers/pinctrl/vt8500/pinctrl-wmt.c
index 270ca2a47a8c..c207e60b734f 100644
--- a/drivers/pinctrl/vt8500/pinctrl-wmt.c
+++ b/drivers/pinctrl/vt8500/pinctrl-wmt.c
@@ -428,7 +428,7 @@ static int wmt_pinconf_set(struct pinctrl_dev *pctldev, unsigned pin,
428{ 428{
429 struct wmt_pinctrl_data *data = pinctrl_dev_get_drvdata(pctldev); 429 struct wmt_pinctrl_data *data = pinctrl_dev_get_drvdata(pctldev);
430 enum pin_config_param param; 430 enum pin_config_param param;
431 u16 arg; 431 u32 arg;
432 u32 bank = WMT_BANK_FROM_PIN(pin); 432 u32 bank = WMT_BANK_FROM_PIN(pin);
433 u32 bit = WMT_BIT_FROM_PIN(pin); 433 u32 bit = WMT_BIT_FROM_PIN(pin);
434 u32 reg_pull_en = data->banks[bank].reg_pull_en; 434 u32 reg_pull_en = data->banks[bank].reg_pull_en;