Commit 806d3143 authored by Stephen Warren's avatar Stephen Warren Committed by Linus Walleij

pinctrl: re-order struct pinctrl_map

The lookup key in struct pinctrl_map is (.dev_name, .name). Re-order the
struct definition to put the lookup key fields first, and the result
values afterwards. To me at least, this slightly better reflects the
lookup process.

Update the documentation in a similar fashion.

Note: PIN_MAP*() macros aren't updated; I plan to update this once later
when enhancing the mapping table format to support pin config to reduce
churn.
Signed-off-by: default avatarStephen Warren <swarren@nvidia.com>
Acked-by: default avatarDong Aisheng <dong.aisheng@linaro.org>
[Rebased for cherry-picking]
Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
parent 1cf94c45
...@@ -781,19 +781,19 @@ spi on the second function mapping: ...@@ -781,19 +781,19 @@ spi on the second function mapping:
static const struct pinctrl_map __initdata mapping[] = { static const struct pinctrl_map __initdata mapping[] = {
{ {
.dev_name = "foo-spi.0",
.ctrl_dev_name = "pinctrl-foo", .ctrl_dev_name = "pinctrl-foo",
.function = "spi0", .function = "spi0",
.dev_name = "foo-spi.0",
}, },
{ {
.dev_name = "foo-i2c.0",
.ctrl_dev_name = "pinctrl-foo", .ctrl_dev_name = "pinctrl-foo",
.function = "i2c0", .function = "i2c0",
.dev_name = "foo-i2c.0",
}, },
{ {
.dev_name = "foo-mmc.0",
.ctrl_dev_name = "pinctrl-foo", .ctrl_dev_name = "pinctrl-foo",
.function = "mmc0", .function = "mmc0",
.dev_name = "foo-mmc.0",
}, },
}; };
...@@ -826,18 +826,18 @@ As it is possible to map a function to different groups of pins an optional ...@@ -826,18 +826,18 @@ As it is possible to map a function to different groups of pins an optional
... ...
{ {
.dev_name = "foo-spi.0",
.name = "spi0-pos-A", .name = "spi0-pos-A",
.ctrl_dev_name = "pinctrl-foo", .ctrl_dev_name = "pinctrl-foo",
.function = "spi0", .function = "spi0",
.group = "spi0_0_grp", .group = "spi0_0_grp",
.dev_name = "foo-spi.0",
}, },
{ {
.dev_name = "foo-spi.0",
.name = "spi0-pos-B", .name = "spi0-pos-B",
.ctrl_dev_name = "pinctrl-foo", .ctrl_dev_name = "pinctrl-foo",
.function = "spi0", .function = "spi0",
.group = "spi0_1_grp", .group = "spi0_1_grp",
.dev_name = "foo-spi.0",
}, },
... ...
...@@ -852,45 +852,45 @@ case), we define a mapping like this: ...@@ -852,45 +852,45 @@ case), we define a mapping like this:
... ...
{ {
.dev_name = "foo-mmc.0",
.name = "2bit" .name = "2bit"
.ctrl_dev_name = "pinctrl-foo", .ctrl_dev_name = "pinctrl-foo",
.function = "mmc0", .function = "mmc0",
.group = "mmc0_1_grp", .group = "mmc0_1_grp",
.dev_name = "foo-mmc.0",
}, },
{ {
.dev_name = "foo-mmc.0",
.name = "4bit" .name = "4bit"
.ctrl_dev_name = "pinctrl-foo", .ctrl_dev_name = "pinctrl-foo",
.function = "mmc0", .function = "mmc0",
.group = "mmc0_1_grp", .group = "mmc0_1_grp",
.dev_name = "foo-mmc.0",
}, },
{ {
.dev_name = "foo-mmc.0",
.name = "4bit" .name = "4bit"
.ctrl_dev_name = "pinctrl-foo", .ctrl_dev_name = "pinctrl-foo",
.function = "mmc0", .function = "mmc0",
.group = "mmc0_2_grp", .group = "mmc0_2_grp",
.dev_name = "foo-mmc.0",
}, },
{ {
.dev_name = "foo-mmc.0",
.name = "8bit" .name = "8bit"
.ctrl_dev_name = "pinctrl-foo", .ctrl_dev_name = "pinctrl-foo",
.group = "mmc0_1_grp", .group = "mmc0_1_grp",
.dev_name = "foo-mmc.0",
}, },
{ {
.dev_name = "foo-mmc.0",
.name = "8bit" .name = "8bit"
.ctrl_dev_name = "pinctrl-foo", .ctrl_dev_name = "pinctrl-foo",
.function = "mmc0", .function = "mmc0",
.group = "mmc0_2_grp", .group = "mmc0_2_grp",
.dev_name = "foo-mmc.0",
}, },
{ {
.dev_name = "foo-mmc.0",
.name = "8bit" .name = "8bit"
.ctrl_dev_name = "pinctrl-foo", .ctrl_dev_name = "pinctrl-foo",
.function = "mmc0", .function = "mmc0",
.group = "mmc0_3_grp", .group = "mmc0_3_grp",
.dev_name = "foo-mmc.0",
}, },
... ...
...@@ -988,10 +988,10 @@ This is enabled by simply setting the .dev_name field in the map to the name ...@@ -988,10 +988,10 @@ This is enabled by simply setting the .dev_name field in the map to the name
of the pin controller itself, like this: of the pin controller itself, like this:
{ {
.dev_name = "pinctrl-foo",
.name = "POWERMAP" .name = "POWERMAP"
.ctrl_dev_name = "pinctrl-foo", .ctrl_dev_name = "pinctrl-foo",
.function = "power_func", .function = "power_func",
.dev_name = "pinctrl-foo",
}, },
Since it may be common to request the core to hog a few always-applicable Since it may be common to request the core to hog a few always-applicable
......
...@@ -14,6 +14,10 @@ ...@@ -14,6 +14,10 @@
/** /**
* struct pinctrl_map - boards/machines shall provide this map for devices * struct pinctrl_map - boards/machines shall provide this map for devices
* @dev_name: the name of the device using this specific mapping, the name
* must be the same as in your struct device*. If this name is set to the
* same name as the pin controllers own dev_name(), the map entry will be
* hogged by the driver itself upon registration
* @name: the name of this specific map entry for the particular machine. * @name: the name of this specific map entry for the particular machine.
* This is the second parameter passed to pinmux_get() when you want * This is the second parameter passed to pinmux_get() when you want
* to have several mappings to the same device * to have several mappings to the same device
...@@ -25,17 +29,13 @@ ...@@ -25,17 +29,13 @@
* @group: sometimes a function can map to different pin groups, so this * @group: sometimes a function can map to different pin groups, so this
* selects a certain specific pin group to activate for the function, if * selects a certain specific pin group to activate for the function, if
* left as NULL, the first applicable group will be used * left as NULL, the first applicable group will be used
* @dev_name: the name of the device using this specific mapping, the name
* must be the same as in your struct device*. If this name is set to the
* same name as the pin controllers own dev_name(), the map entry will be
* hogged by the driver itself upon registration
*/ */
struct pinctrl_map { struct pinctrl_map {
const char *dev_name;
const char *name; const char *name;
const char *ctrl_dev_name; const char *ctrl_dev_name;
const char *function; const char *function;
const char *group; const char *group;
const char *dev_name;
}; };
/* /*
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment