summaryrefslogtreecommitdiffstats
path: root/drivers/pinctrl/pinconf-generic.c
diff options
context:
space:
mode:
authorLaxman Dewangan <ldewangan@nvidia.com>2013-08-21 07:23:37 -0400
committerLinus Walleij <linus.walleij@linaro.org>2013-08-23 02:56:32 -0400
commit3287c24088abded9f111ca797fdd36f86912d199 (patch)
tree537d6a48cb062129171a9c491bc7add698aeb842 /drivers/pinctrl/pinconf-generic.c
parent529301c19cbc315929e1b39ee71859061910b652 (diff)
pinctrl: utils : add support to pass config type in generic util APIs
Add support to pass the config type like GROUP or PIN when using the utils or generic pin configuration APIs. This will make the APIs more generic. Added additional inline APIs such that it can be use directly as callback for the pinctrl_ops. Changes from V1: - Remove separate implementation for pins and group for pinctrl_utils_dt_free_map and improve this function to support both i.e. PINS and GROUPs. Signed-off-by: Laxman Dewangan <ldewangan@nvidia.com> Reviewed-by: Stephen Warren <swarren@nvidia.com> Tested-by: Stephen Warren <swarren@nvidia.com> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Diffstat (limited to 'drivers/pinctrl/pinconf-generic.c')
-rw-r--r--drivers/pinctrl/pinconf-generic.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/drivers/pinctrl/pinconf-generic.c b/drivers/pinctrl/pinconf-generic.c
index d9536caa9c41..2c62225bafab 100644
--- a/drivers/pinctrl/pinconf-generic.c
+++ b/drivers/pinctrl/pinconf-generic.c
@@ -240,7 +240,8 @@ out:
240 240
241int pinconf_generic_dt_subnode_to_map(struct pinctrl_dev *pctldev, 241int pinconf_generic_dt_subnode_to_map(struct pinctrl_dev *pctldev,
242 struct device_node *np, struct pinctrl_map **map, 242 struct device_node *np, struct pinctrl_map **map,
243 unsigned *reserved_maps, unsigned *num_maps) 243 unsigned *reserved_maps, unsigned *num_maps,
244 enum pinctrl_map_type type)
244{ 245{
245 int ret; 246 int ret;
246 const char *function; 247 const char *function;
@@ -295,7 +296,7 @@ int pinconf_generic_dt_subnode_to_map(struct pinctrl_dev *pctldev,
295 if (num_configs) { 296 if (num_configs) {
296 ret = pinctrl_utils_add_map_configs(pctldev, map, 297 ret = pinctrl_utils_add_map_configs(pctldev, map,
297 reserved_maps, num_maps, group, configs, 298 reserved_maps, num_maps, group, configs,
298 num_configs, PIN_MAP_TYPE_CONFIGS_PIN); 299 num_configs, type);
299 if (ret < 0) 300 if (ret < 0)
300 goto exit; 301 goto exit;
301 } 302 }
@@ -310,7 +311,7 @@ EXPORT_SYMBOL_GPL(pinconf_generic_dt_subnode_to_map);
310 311
311int pinconf_generic_dt_node_to_map(struct pinctrl_dev *pctldev, 312int pinconf_generic_dt_node_to_map(struct pinctrl_dev *pctldev,
312 struct device_node *np_config, struct pinctrl_map **map, 313 struct device_node *np_config, struct pinctrl_map **map,
313 unsigned *num_maps) 314 unsigned *num_maps, enum pinctrl_map_type type)
314{ 315{
315 unsigned reserved_maps; 316 unsigned reserved_maps;
316 struct device_node *np; 317 struct device_node *np;
@@ -322,7 +323,7 @@ int pinconf_generic_dt_node_to_map(struct pinctrl_dev *pctldev,
322 323
323 for_each_child_of_node(np_config, np) { 324 for_each_child_of_node(np_config, np) {
324 ret = pinconf_generic_dt_subnode_to_map(pctldev, np, map, 325 ret = pinconf_generic_dt_subnode_to_map(pctldev, np, map,
325 &reserved_maps, num_maps); 326 &reserved_maps, num_maps, type);
326 if (ret < 0) { 327 if (ret < 0) {
327 pinctrl_utils_dt_free_map(pctldev, *map, *num_maps); 328 pinctrl_utils_dt_free_map(pctldev, *map, *num_maps);
328 return ret; 329 return ret;