diff options
Diffstat (limited to 'drivers/pinctrl/pinctrl-st.c')
-rw-r--r-- | drivers/pinctrl/pinctrl-st.c | 27 |
1 files changed, 14 insertions, 13 deletions
diff --git a/drivers/pinctrl/pinctrl-st.c b/drivers/pinctrl/pinctrl-st.c index 04d4506ae18d..9cadc68ee572 100644 --- a/drivers/pinctrl/pinctrl-st.c +++ b/drivers/pinctrl/pinctrl-st.c @@ -288,8 +288,8 @@ struct st_pinctrl { /* SOC specific data */ /* STiH415 data */ -unsigned int stih415_input_delays[] = {0, 500, 1000, 1500}; -unsigned int stih415_output_delays[] = {0, 1000, 2000, 3000}; +static unsigned int stih415_input_delays[] = {0, 500, 1000, 1500}; +static unsigned int stih415_output_delays[] = {0, 1000, 2000, 3000}; #define STIH415_PCTRL_COMMON_DATA \ .rt_style = st_retime_style_packed, \ @@ -324,7 +324,7 @@ static const struct st_pctl_data stih415_right_data = { }; /* STiH416 data */ -unsigned int stih416_delays[] = {0, 300, 500, 750, 1000, 1250, 1500, +static unsigned int stih416_delays[] = {0, 300, 500, 750, 1000, 1250, 1500, 1750, 2000, 2250, 2500, 2750, 3000, 3250 }; static const struct st_pctl_data stih416_data = { @@ -811,7 +811,7 @@ static int st_pmx_get_funcs_count(struct pinctrl_dev *pctldev) return info->nfunctions; } -const char *st_pmx_get_fname(struct pinctrl_dev *pctldev, +static const char *st_pmx_get_fname(struct pinctrl_dev *pctldev, unsigned selector) { struct st_pinctrl *info = pinctrl_dev_get_drvdata(pctldev); @@ -909,15 +909,18 @@ static void st_pinconf_set_retime(struct st_pinctrl *info, config, pin); } -static int st_pinconf_set(struct pinctrl_dev *pctldev, - unsigned pin_id, unsigned long config) +static int st_pinconf_set(struct pinctrl_dev *pctldev, unsigned pin_id, + unsigned long *configs, unsigned num_configs) { int pin = st_gpio_pin(pin_id); struct st_pinctrl *info = pinctrl_dev_get_drvdata(pctldev); struct st_pio_control *pc = st_get_pio_control(pctldev, pin_id); + int i; - st_pinconf_set_config(pc, pin, config); - st_pinconf_set_retime(info, pc, pin, config); + for (i = 0; i < num_configs; i++) { + st_pinconf_set_config(pc, pin, configs[i]); + st_pinconf_set_retime(info, pc, pin, configs[i]); + } /* for each config */ return 0; } @@ -1222,11 +1225,9 @@ static int st_gpiolib_register_bank(struct st_pinctrl *info, if (of_address_to_resource(np, 0, &res)) return -ENODEV; - bank->base = devm_request_and_ioremap(dev, &res); - if (!bank->base) { - dev_err(dev, "Can't get IO memory mapping!\n"); - return -ENODEV; - } + bank->base = devm_ioremap_resource(dev, &res); + if (IS_ERR(bank->base)) + return PTR_ERR(bank->base); bank->gpio_chip = st_gpio_template; bank->gpio_chip.base = bank_num * ST_GPIO_PINS_PER_BANK; |