@@ -692,7 +692,7 @@ static int bcm2835_pctl_dt_node_to_map_func(struct bcm2835_pinctrl *pc,
}
map->type = PIN_MAP_TYPE_MUX_GROUP;
- map->data.mux.group = bcm2835_gpio_groups[pin];
+ map->data.mux.group_or_pin = bcm2835_gpio_groups[pin];
map->data.mux.function = bcm2835_functions[fnum];
(*maps)++;
@@ -102,7 +102,7 @@ struct pinctrl_state {
* @func: the function selector to program
*/
struct pinctrl_setting_mux {
- unsigned group;
+ unsigned group_or_pin;
unsigned func;
};
@@ -102,7 +102,7 @@ static int imx_dt_node_to_map(struct pinctrl_dev *pctldev,
}
new_map[0].type = PIN_MAP_TYPE_MUX_GROUP;
new_map[0].data.mux.function = parent->name;
- new_map[0].data.mux.group = np->name;
+ new_map[0].data.mux.group_or_pin = np->name;
of_node_put(parent);
/* create config map */
@@ -121,7 +121,8 @@ static int imx_dt_node_to_map(struct pinctrl_dev *pctldev,
}
dev_dbg(pctldev->dev, "maps: function %s group %s num %d\n",
- (*map)->data.mux.function, (*map)->data.mux.group, map_num);
+ (*map)->data.mux.function, (*map)->data.mux.group_or_pin,
+ map_num);
return 0;
}
@@ -261,7 +261,7 @@ static int imx1_dt_node_to_map(struct pinctrl_dev *pctldev,
}
new_map[0].type = PIN_MAP_TYPE_MUX_GROUP;
new_map[0].data.mux.function = parent->name;
- new_map[0].data.mux.group = np->name;
+ new_map[0].data.mux.group_or_pin = np->name;
of_node_put(parent);
/* create config map */
@@ -276,7 +276,8 @@ static int imx1_dt_node_to_map(struct pinctrl_dev *pctldev,
}
dev_dbg(pctldev->dev, "maps: function %s group %s num %d\n",
- (*map)->data.mux.function, (*map)->data.mux.group, map_num);
+ (*map)->data.mux.function, (*map)->data.mux.group_or_pin,
+ map_num);
return 0;
}
@@ -111,7 +111,7 @@ static int mxs_dt_node_to_map(struct pinctrl_dev *pctldev,
goto free;
}
snprintf(group, length, "%s.%d", np->name, reg);
- new_map[i].data.mux.group = group;
+ new_map[i].data.mux.group_or_pin = group;
i++;
}
@@ -149,7 +149,7 @@ static void mxs_dt_free_map(struct pinctrl_dev *pctldev,
for (i = 0; i < num_maps; i++) {
if (map[i].type == PIN_MAP_TYPE_MUX_GROUP)
- kfree(map[i].data.mux.group);
+ kfree(map[i].data.mux.group_or_pin);
if (map[i].type == PIN_MAP_TYPE_CONFIGS_GROUP)
kfree(map[i].data.configs.configs);
}
@@ -475,7 +475,7 @@ static int mtk_pctrl_dt_node_to_map_func(struct mtk_pinctrl *pctl,
return -ENOSPC;
(*map)[*num_maps].type = PIN_MAP_TYPE_MUX_GROUP;
- (*map)[*num_maps].data.mux.group = grp->name;
+ (*map)[*num_maps].data.mux.group_or_pin = grp->name;
ret = mtk_pctrl_is_function_valid(pctl, pin, fnum);
if (!ret) {
@@ -445,7 +445,7 @@ static int mvebu_pinctrl_dt_node_to_map(struct pinctrl_dev *pctldev,
}
(*map)[n].type = PIN_MAP_TYPE_MUX_GROUP;
- (*map)[n].data.mux.group = group;
+ (*map)[n].data.mux.group_or_pin = group;
(*map)[n].data.mux.function = function;
n++;
}
@@ -815,7 +815,7 @@ static int abx500_dt_add_map_mux(struct pinctrl_map **map,
return -ENOSPC;
(*map)[*num_maps].type = PIN_MAP_TYPE_MUX_GROUP;
- (*map)[*num_maps].data.mux.group = group;
+ (*map)[*num_maps].data.mux.group_or_pin = group;
(*map)[*num_maps].data.mux.function = function;
(*num_maps)++;
@@ -1270,7 +1270,7 @@ static int nmk_dt_add_map_mux(struct pinctrl_map **map, unsigned *reserved_maps,
return -ENOSPC;
(*map)[*num_maps].type = PIN_MAP_TYPE_MUX_GROUP;
- (*map)[*num_maps].data.mux.group = group;
+ (*map)[*num_maps].data.mux.group_or_pin = group;
(*map)[*num_maps].data.mux.function = function;
(*num_maps)++;
@@ -284,7 +284,7 @@ static int at91_dt_node_to_map(struct pinctrl_dev *pctldev,
}
new_map[0].type = PIN_MAP_TYPE_MUX_GROUP;
new_map[0].data.mux.function = parent->name;
- new_map[0].data.mux.group = np->name;
+ new_map[0].data.mux.group_or_pin = np->name;
of_node_put(parent);
/* create config map */
@@ -298,7 +298,8 @@ static int at91_dt_node_to_map(struct pinctrl_dev *pctldev,
}
dev_dbg(pctldev->dev, "maps: function %s group %s num %d\n",
- (*map)->data.mux.function, (*map)->data.mux.group, map_num);
+ (*map)->data.mux.function, (*map)->data.mux.group_or_pin,
+ map_num);
return 0;
}
@@ -96,7 +96,7 @@ static void ltq_pinctrl_dt_subnode_to_map(struct pinctrl_dev *pctldev,
of_property_for_each_string(np, "lantiq,groups", prop, group) {
(*map)->type = PIN_MAP_TYPE_MUX_GROUP;
(*map)->name = function;
- (*map)->data.mux.group = group;
+ (*map)->data.mux.group_or_pin = group;
(*map)->data.mux.function = function;
(*map)++;
}
@@ -522,7 +522,7 @@ static int rockchip_dt_node_to_map(struct pinctrl_dev *pctldev,
}
new_map[0].type = PIN_MAP_TYPE_MUX_GROUP;
new_map[0].data.mux.function = parent->name;
- new_map[0].data.mux.group = np->name;
+ new_map[0].data.mux.group_or_pin = np->name;
of_node_put(parent);
/* create config map */
@@ -536,7 +536,8 @@ static int rockchip_dt_node_to_map(struct pinctrl_dev *pctldev,
}
dev_dbg(pctldev->dev, "maps: function %s group %s num %d\n",
- (*map)->data.mux.function, (*map)->data.mux.group, map_num);
+ (*map)->data.mux.function, (*map)->data.mux.group_or_pin,
+ map_num);
return 0;
}
@@ -952,7 +952,7 @@ static int rza1_dt_node_to_map(struct pinctrl_dev *pctldev,
}
(*map)->type = PIN_MAP_TYPE_MUX_GROUP;
- (*map)->data.mux.group = np->name;
+ (*map)->data.mux.group_or_pin = np->name;
(*map)->data.mux.function = np->name;
*num_maps = 1;
@@ -1019,7 +1019,7 @@ static int pcs_parse_one_pinctrl_entry(struct pcs_device *pcs,
goto free_function;
(*map)->type = PIN_MAP_TYPE_MUX_GROUP;
- (*map)->data.mux.group = np->name;
+ (*map)->data.mux.group_or_pin = np->name;
(*map)->data.mux.function = np->name;
if (PCS_HAS_PINCONF) {
@@ -1153,7 +1153,7 @@ static int pcs_parse_bits_in_pinctrl_entry(struct pcs_device *pcs,
goto free_function;
(*map)->type = PIN_MAP_TYPE_MUX_GROUP;
- (*map)->data.mux.group = np->name;
+ (*map)->data.mux.group_or_pin = np->name;
(*map)->data.mux.function = np->name;
if (PCS_HAS_PINCONF) {
@@ -838,7 +838,7 @@ static int st_pctl_dt_node_to_map(struct pinctrl_dev *pctldev,
*num_maps = map_num;
new_map[0].type = PIN_MAP_TYPE_MUX_GROUP;
new_map[0].data.mux.function = parent->name;
- new_map[0].data.mux.group = np->name;
+ new_map[0].data.mux.group_or_pin = np->name;
of_node_put(parent);
/* create config map per pin */
@@ -318,7 +318,7 @@ static int add_map_mux(struct pinctrl_map **map, unsigned int *reserved_maps,
return -ENOSPC;
(*map)[*num_maps].type = PIN_MAP_TYPE_MUX_GROUP;
- (*map)[*num_maps].data.mux.group = group;
+ (*map)[*num_maps].data.mux.group_or_pin = group;
(*map)[*num_maps].data.mux.function = function;
(*num_maps)++;
@@ -1062,7 +1062,7 @@ static int add_map_mux(struct pinctrl_map **map, unsigned int *reserved_maps,
return -ENOSPC;
(*map)[*num_maps].type = PIN_MAP_TYPE_MUX_GROUP;
- (*map)[*num_maps].data.mux.group = group;
+ (*map)[*num_maps].data.mux.group_or_pin = group;
(*map)[*num_maps].data.mux.function = function;
(*num_maps)++;
@@ -62,7 +62,7 @@ int pinctrl_utils_add_map_mux(struct pinctrl_dev *pctldev,
return -ENOSPC;
(*map)[*num_maps].type = PIN_MAP_TYPE_MUX_GROUP;
- (*map)[*num_maps].data.mux.group = group;
+ (*map)[*num_maps].data.mux.group_or_pin = group;
(*map)[*num_maps].data.mux.function = function;
(*num_maps)++;
@@ -348,8 +348,8 @@ int pinmux_map_to_setting(const struct pinctrl_map *map,
map->data.mux.function);
return -EINVAL;
}
- if (map->data.mux.group) {
- group = map->data.mux.group;
+ if (map->data.mux.group_or_pin) {
+ group = map->data.mux.group_or_pin;
ret = match_string(groups, num_groups, group);
if (ret < 0) {
dev_err(pctldev->dev,
@@ -364,10 +364,10 @@ int pinmux_map_to_setting(const struct pinctrl_map *map,
ret = pinctrl_get_group_selector(pctldev, group);
if (ret < 0) {
dev_err(pctldev->dev, "invalid group %s in map table\n",
- map->data.mux.group);
+ map->data.mux.group_or_pin);
return ret;
}
- setting->data.mux.group = ret;
+ setting->data.mux.group_or_pin = ret;
return 0;
}
@@ -389,7 +389,8 @@ int pinmux_enable_setting(const struct pinctrl_setting *setting)
struct pin_desc *desc;
if (pctlops->get_group_pins)
- ret = pctlops->get_group_pins(pctldev, setting->data.mux.group,
+ ret = pctlops->get_group_pins(pctldev,
+ setting->data.mux.group_or_pin,
&pins, &num_pins);
if (ret) {
@@ -397,7 +398,7 @@ int pinmux_enable_setting(const struct pinctrl_setting *setting)
/* errors only affect debug data, so just warn */
gname = pctlops->get_group_name(pctldev,
- setting->data.mux.group);
+ setting->data.mux.group_or_pin);
dev_warn(pctldev->dev,
"could not get pins for group %s\n",
gname);
@@ -414,7 +415,7 @@ int pinmux_enable_setting(const struct pinctrl_setting *setting)
desc = pin_desc_get(pctldev, pins[i]);
pname = desc ? desc->name : "non-existing";
gname = pctlops->get_group_name(pctldev,
- setting->data.mux.group);
+ setting->data.mux.group_or_pin);
dev_err(pctldev->dev,
"could not request pin %d (%s) from group %s "
" on device %s\n",
@@ -437,7 +438,7 @@ int pinmux_enable_setting(const struct pinctrl_setting *setting)
}
ret = ops->set_mux(pctldev, setting->data.mux.func,
- setting->data.mux.group);
+ setting->data.mux.group_or_pin);
if (ret)
goto err_set_mux;
@@ -469,14 +470,15 @@ void pinmux_disable_setting(const struct pinctrl_setting *setting)
struct pin_desc *desc;
if (pctlops->get_group_pins)
- ret = pctlops->get_group_pins(pctldev, setting->data.mux.group,
+ ret = pctlops->get_group_pins(pctldev,
+ setting->data.mux.group_or_pin,
&pins, &num_pins);
if (ret) {
const char *gname;
/* errors only affect debug data, so just warn */
gname = pctlops->get_group_name(pctldev,
- setting->data.mux.group);
+ setting->data.mux.group_or_pin);
dev_warn(pctldev->dev,
"could not get pins for group %s\n",
gname);
@@ -500,7 +502,7 @@ void pinmux_disable_setting(const struct pinctrl_setting *setting)
const char *gname;
gname = pctlops->get_group_name(pctldev,
- setting->data.mux.group);
+ setting->data.mux.group_or_pin);
dev_warn(pctldev->dev,
"not freeing pin %d (%s) as part of "
"deactivating group %s - it is already "
@@ -598,7 +600,7 @@ static int pinmux_pin_show(struct seq_file *s, unsigned int pin)
pmxops->get_function_name(pctldev,
desc->mux_setting->func),
pctlops->get_group_name(pctldev,
- desc->mux_setting->group));
+ desc->mux_setting->group_or_pin));
else
seq_puts(s, "\n");
@@ -635,9 +637,11 @@ static int pinmux_pins_show(struct seq_file *s, void *what)
void pinmux_show_map(struct seq_file *s, const struct pinctrl_map *map)
{
+ const struct pinctrl_map_mux *mux = &map->data.mux;
+
seq_printf(s, "group %s\nfunction %s\n",
- map->data.mux.group ? map->data.mux.group : "(default)",
- map->data.mux.function);
+ mux->group_or_pin ? mux->group_or_pin : "(default)",
+ mux->function);
}
void pinmux_show_setting(struct seq_file *s,
@@ -648,8 +652,9 @@ void pinmux_show_setting(struct seq_file *s,
const struct pinctrl_ops *pctlops = pctldev->desc->pctlops;
seq_printf(s, "group: %s (%u) function: %s (%u)\n",
- pctlops->get_group_name(pctldev, setting->data.mux.group),
- setting->data.mux.group,
+ pctlops->get_group_name(pctldev,
+ setting->data.mux.group_or_pin),
+ setting->data.mux.group_or_pin,
pmxops->get_function_name(pctldev, setting->data.mux.func),
setting->data.mux.func);
}
@@ -254,7 +254,7 @@ static int exynos5440_dt_node_to_map(struct pinctrl_dev *pctldev,
if (!fname)
goto free_cfg;
- map[*nmaps].data.mux.group = gname;
+ map[*nmaps].data.mux.group_or_pin = gname;
map[*nmaps].data.mux.function = fname;
map[*nmaps].type = PIN_MAP_TYPE_MUX_GROUP;
*nmaps += 1;
@@ -282,7 +282,7 @@ static void exynos5440_dt_free_map(struct pinctrl_dev *pctldev,
if (map[idx].type == PIN_MAP_TYPE_MUX_GROUP) {
kfree(map[idx].data.mux.function);
if (!idx)
- kfree(map[idx].data.mux.group);
+ kfree(map[idx].data.mux.group_or_pin);
} else if (map->type == PIN_MAP_TYPE_CONFIGS_GROUP) {
kfree(map[idx].data.configs.configs);
if (!idx)
@@ -111,7 +111,7 @@ static int add_map_mux(struct pinctrl_map **map, unsigned *reserved_maps,
return -ENOSPC;
(*map)[*num_maps].type = PIN_MAP_TYPE_MUX_GROUP;
- (*map)[*num_maps].data.mux.group = group;
+ (*map)[*num_maps].data.mux.group_or_pin = group;
(*map)[*num_maps].data.mux.function = function;
(*num_maps)++;
@@ -202,7 +202,7 @@ static int sh_pfc_dt_subnode_to_map(struct pinctrl_dev *pctldev,
of_property_for_each_string(np, pmx->groups_prop_name, prop, group) {
if (function) {
maps[idx].type = PIN_MAP_TYPE_MUX_GROUP;
- maps[idx].data.mux.group = group;
+ maps[idx].data.mux.group_or_pin = group;
maps[idx].data.mux.function = function;
idx++;
}
@@ -116,7 +116,7 @@ static int sirfsoc_dt_node_to_map(struct pinctrl_dev *pctldev,
of_property_read_string(np, "sirf,function", &function);
of_property_for_each_string(np, "sirf,pins", prop, group) {
(*map)[index].type = PIN_MAP_TYPE_MUX_GROUP;
- (*map)[index].data.mux.group = group;
+ (*map)[index].data.mux.group_or_pin = group;
(*map)[index].data.mux.function = function;
index++;
}
@@ -180,7 +180,7 @@ static int spear_pinctrl_dt_node_to_map(struct pinctrl_dev *pctldev,
of_property_read_string(np, "st,function", &function);
of_property_for_each_string(np, "st,pins", prop, group) {
(*map)[index].type = PIN_MAP_TYPE_MUX_GROUP;
- (*map)[index].data.mux.group = group;
+ (*map)[index].data.mux.group_or_pin = group;
(*map)[index].data.mux.function = function;
index++;
}
@@ -375,7 +375,7 @@ static int stm32_pctrl_dt_node_to_map_func(struct stm32_pinctrl *pctl,
return -ENOSPC;
(*map)[*num_maps].type = PIN_MAP_TYPE_MUX_GROUP;
- (*map)[*num_maps].data.mux.group = grp->name;
+ (*map)[*num_maps].data.mux.group_or_pin = grp->name;
if (!stm32_pctrl_is_function_valid(pctl, pin, fnum)) {
dev_err(pctl->dev, "invalid function %d on pin %d .\n",
@@ -377,7 +377,7 @@ static int sunxi_pctrl_dt_node_to_map(struct pinctrl_dev *pctldev,
}
(*map)[i].type = PIN_MAP_TYPE_MUX_GROUP;
- (*map)[i].data.mux.group = group;
+ (*map)[i].data.mux.group_or_pin = group;
(*map)[i].data.mux.function = function;
i++;
@@ -232,7 +232,7 @@ static int wmt_pctl_dt_node_to_map_func(struct wmt_pinctrl_data *data,
}
map->type = PIN_MAP_TYPE_MUX_GROUP;
- map->data.mux.group = data->groups[group];
+ map->data.mux.group_or_pin = data->groups[group];
map->data.mux.function = wmt_functions[fnum];
(*maps)++;
@@ -32,7 +32,7 @@ enum pinctrl_map_type {
* @function: the mux function to select for the group
*/
struct pinctrl_map_mux {
- const char *group;
+ const char *group_or_pin;
const char *function;
};