diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2014-08-07 20:20:53 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2014-08-07 20:20:53 -0400 |
commit | e0b8b78651350e8dcf9cc60a959ccbcfc5bc3061 (patch) | |
tree | 87cf0ed233021bb5c7486b35c2e34f1ea98b81c2 /drivers/pinctrl/pinctrl-st.c | |
parent | 54c72d5987ff9f3cf59529d5d4f5cf19eae3f695 (diff) | |
parent | e1ee5c578fb1fa24b7ccaf1a11237a2bd70b6f9a (diff) |
Merge tag 'pinctrl-v3.17-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl
Pull pinctrl updates from Linus Walleij:
"This is the bulk pin control changes for the v3.17 merge development
cycle:
- get rid of the .disable() callback from the driver callback vtable.
This callback was abused and counterintuitive since a pin or group
of pins can be said to always be in some setting, and never really
disabled. We now only enable a certain muxing, and move between
some certain muxings, we never "disable" a mux setting
- some janitorial moving the MSM, Samsung and Nomadik and drivers to
their own subdirectories for a clearer view in the subsystem. This
will continue
- kill off the use of the return value from gpiochip_remove(), this
will be done in parallel in the GPIO subsystem and hopefully not
trigger too many unchecked return value warnings before we get rid
of this altogether
- a huge set of changes and improvements to the Allwinner sunxi
drivers especially for their latest A23 and A31 SoCs, and some
ground work for the new sun8i platform family
- a large set of Rockchip driver improvements adding support for the
RK3288 SoC
- advances in migration of older Freescale platforms to pin control,
especially i.MX1
- Samsung and Exynos improvements
- support for the Qualcomm MSM8960 SoC
- use the gpiolib irqchip helpers for the ST SPEAr and Intel Baytrail
drivers
- a bunch of nice janitorial work done with cppcheck"
* tag 'pinctrl-v3.17-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl: (61 commits)
pinctrl: baytrail: Convert to use gpiolib irqchip
pinctrl: sunxi: number gpio ranges starting from 0
pinctrl: sunxi: use gpiolib API to mark a GPIO used as an IRQ
pinctrl: rockchip: add drive-strength control for rk3288
pinctrl: rockchip: add separate type for rk3288
pinctrl: rockchip: set is_generic in pinconf_ops
pinctrl: msm: drop negativity check on unsigned value
pinctrl: remove all usage of gpio_remove ret val in driver/pinctl
pinctrl: qcom: Make muxing of gpio function explicit
pinctrl: nomadik: move all Nomadik drivers to subdir
pinctrl: samsung: Group all drivers in a sub-dir
sh-pfc: sh73a0: Introduce the use of devm_regulator_register
sh-pfc: Add renesas,pfc-r8a7791 to binding documentation
pinctrl: msm: move all qualcomm drivers to subdir
pinctrl: msm: Add msm8960 definitions
pinctrl: samsung: Allow pin value to be initialized using pinfunc
pinctrl: samsung: Allow grouping multiple pinmux/pinconf nodes
pinctrl: exynos: Consolidate irq_chips of GPIO and WKUP EINTs
pinctrl: samsung: Handle GPIO request and free using pinctrl helpers
pinctrl: samsung: Decouple direction setting from pinctrl
...
Diffstat (limited to 'drivers/pinctrl/pinctrl-st.c')
-rw-r--r-- | drivers/pinctrl/pinctrl-st.c | 15 |
1 files changed, 4 insertions, 11 deletions
diff --git a/drivers/pinctrl/pinctrl-st.c b/drivers/pinctrl/pinctrl-st.c index 9f43916637ca..5475374d803f 100644 --- a/drivers/pinctrl/pinctrl-st.c +++ b/drivers/pinctrl/pinctrl-st.c | |||
@@ -930,11 +930,6 @@ static int st_pmx_enable(struct pinctrl_dev *pctldev, unsigned fselector, | |||
930 | return 0; | 930 | return 0; |
931 | } | 931 | } |
932 | 932 | ||
933 | static void st_pmx_disable(struct pinctrl_dev *pctldev, unsigned selector, | ||
934 | unsigned group) | ||
935 | { | ||
936 | } | ||
937 | |||
938 | static int st_pmx_set_gpio_direction(struct pinctrl_dev *pctldev, | 933 | static int st_pmx_set_gpio_direction(struct pinctrl_dev *pctldev, |
939 | struct pinctrl_gpio_range *range, unsigned gpio, | 934 | struct pinctrl_gpio_range *range, unsigned gpio, |
940 | bool input) | 935 | bool input) |
@@ -957,7 +952,6 @@ static struct pinmux_ops st_pmxops = { | |||
957 | .get_function_name = st_pmx_get_fname, | 952 | .get_function_name = st_pmx_get_fname, |
958 | .get_function_groups = st_pmx_get_groups, | 953 | .get_function_groups = st_pmx_get_groups, |
959 | .enable = st_pmx_enable, | 954 | .enable = st_pmx_enable, |
960 | .disable = st_pmx_disable, | ||
961 | .gpio_set_direction = st_pmx_set_gpio_direction, | 955 | .gpio_set_direction = st_pmx_set_gpio_direction, |
962 | }; | 956 | }; |
963 | 957 | ||
@@ -1178,9 +1172,7 @@ static int st_pctl_dt_parse_groups(struct device_node *np, | |||
1178 | const __be32 *list; | 1172 | const __be32 *list; |
1179 | struct property *pp; | 1173 | struct property *pp; |
1180 | struct st_pinconf *conf; | 1174 | struct st_pinconf *conf; |
1181 | phandle phandle; | ||
1182 | struct device_node *pins; | 1175 | struct device_node *pins; |
1183 | u32 pin; | ||
1184 | int i = 0, npins = 0, nr_props; | 1176 | int i = 0, npins = 0, nr_props; |
1185 | 1177 | ||
1186 | pins = of_get_child_by_name(np, "st,pins"); | 1178 | pins = of_get_child_by_name(np, "st,pins"); |
@@ -1218,8 +1210,8 @@ static int st_pctl_dt_parse_groups(struct device_node *np, | |||
1218 | conf = &grp->pin_conf[i]; | 1210 | conf = &grp->pin_conf[i]; |
1219 | 1211 | ||
1220 | /* bank & offset */ | 1212 | /* bank & offset */ |
1221 | phandle = be32_to_cpup(list++); | 1213 | be32_to_cpup(list++); |
1222 | pin = be32_to_cpup(list++); | 1214 | be32_to_cpup(list++); |
1223 | conf->pin = of_get_named_gpio(pins, pp->name, 0); | 1215 | conf->pin = of_get_named_gpio(pins, pp->name, 0); |
1224 | conf->name = pp->name; | 1216 | conf->name = pp->name; |
1225 | grp->pins[i] = conf->pin; | 1217 | grp->pins[i] = conf->pin; |
@@ -1256,7 +1248,7 @@ static int st_pctl_parse_functions(struct device_node *np, | |||
1256 | func = &info->functions[index]; | 1248 | func = &info->functions[index]; |
1257 | func->name = np->name; | 1249 | func->name = np->name; |
1258 | func->ngroups = of_get_child_count(np); | 1250 | func->ngroups = of_get_child_count(np); |
1259 | if (func->ngroups <= 0) { | 1251 | if (func->ngroups == 0) { |
1260 | dev_err(info->dev, "No groups defined\n"); | 1252 | dev_err(info->dev, "No groups defined\n"); |
1261 | return -EINVAL; | 1253 | return -EINVAL; |
1262 | } | 1254 | } |
@@ -1454,6 +1446,7 @@ static struct irq_chip st_gpio_irqchip = { | |||
1454 | .irq_mask = st_gpio_irq_mask, | 1446 | .irq_mask = st_gpio_irq_mask, |
1455 | .irq_unmask = st_gpio_irq_unmask, | 1447 | .irq_unmask = st_gpio_irq_unmask, |
1456 | .irq_set_type = st_gpio_irq_set_type, | 1448 | .irq_set_type = st_gpio_irq_set_type, |
1449 | .flags = IRQCHIP_SKIP_SET_WAKE, | ||
1457 | }; | 1450 | }; |
1458 | 1451 | ||
1459 | static int st_gpiolib_register_bank(struct st_pinctrl *info, | 1452 | static int st_gpiolib_register_bank(struct st_pinctrl *info, |