diff options
author | Gustavo Padovan <gustavo.padovan@collabora.co.uk> | 2013-09-27 11:56:14 -0300 |
---|---|---|
committer | Gustavo Padovan <gustavo.padovan@collabora.co.uk> | 2013-09-27 11:56:14 -0300 |
commit | 1025c04cecd19882e28f16c4004034b475c372c5 (patch) | |
tree | 2b7402887e86d54bff5a123228c9059eae5e32bd /drivers/pinctrl/pinctrl-st.c | |
parent | 4375f1037d52602413142e290608d0d84671ad36 (diff) | |
parent | 5bcecf325378218a8e248bb6bcae96ec7362f8ef (diff) |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/bluetooth/bluetooth
Conflicts:
net/bluetooth/hci_core.c
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 04d4506ae18..9cadc68ee57 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; |