aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/pinctrl/pinctrl-st.c
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2014-08-07 20:20:53 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2014-08-07 20:20:53 -0400
commite0b8b78651350e8dcf9cc60a959ccbcfc5bc3061 (patch)
tree87cf0ed233021bb5c7486b35c2e34f1ea98b81c2 /drivers/pinctrl/pinctrl-st.c
parent54c72d5987ff9f3cf59529d5d4f5cf19eae3f695 (diff)
parente1ee5c578fb1fa24b7ccaf1a11237a2bd70b6f9a (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.c15
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
933static void st_pmx_disable(struct pinctrl_dev *pctldev, unsigned selector,
934 unsigned group)
935{
936}
937
938static int st_pmx_set_gpio_direction(struct pinctrl_dev *pctldev, 933static 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
1459static int st_gpiolib_register_bank(struct st_pinctrl *info, 1452static int st_gpiolib_register_bank(struct st_pinctrl *info,