static const struct pinctrl_map __initdata mapping[] = {
{
+ .dev_name = "foo-spi.0",
.ctrl_dev_name = "pinctrl-foo",
.function = "spi0",
- .dev_name = "foo-spi.0",
},
{
+ .dev_name = "foo-i2c.0",
.ctrl_dev_name = "pinctrl-foo",
.function = "i2c0",
- .dev_name = "foo-i2c.0",
},
{
+ .dev_name = "foo-mmc.0",
.ctrl_dev_name = "pinctrl-foo",
.function = "mmc0",
- .dev_name = "foo-mmc.0",
},
};
...
{
+ .dev_name = "foo-spi.0",
.name = "spi0-pos-A",
.ctrl_dev_name = "pinctrl-foo",
.function = "spi0",
.group = "spi0_0_grp",
- .dev_name = "foo-spi.0",
},
{
+ .dev_name = "foo-spi.0",
.name = "spi0-pos-B",
.ctrl_dev_name = "pinctrl-foo",
.function = "spi0",
.group = "spi0_1_grp",
- .dev_name = "foo-spi.0",
},
...
...
{
+ .dev_name = "foo-mmc.0",
.name = "2bit"
.ctrl_dev_name = "pinctrl-foo",
.function = "mmc0",
.group = "mmc0_1_grp",
- .dev_name = "foo-mmc.0",
},
{
+ .dev_name = "foo-mmc.0",
.name = "4bit"
.ctrl_dev_name = "pinctrl-foo",
.function = "mmc0",
.group = "mmc0_1_grp",
- .dev_name = "foo-mmc.0",
},
{
+ .dev_name = "foo-mmc.0",
.name = "4bit"
.ctrl_dev_name = "pinctrl-foo",
.function = "mmc0",
.group = "mmc0_2_grp",
- .dev_name = "foo-mmc.0",
},
{
+ .dev_name = "foo-mmc.0",
.name = "8bit"
.ctrl_dev_name = "pinctrl-foo",
.group = "mmc0_1_grp",
- .dev_name = "foo-mmc.0",
},
{
+ .dev_name = "foo-mmc.0",
.name = "8bit"
.ctrl_dev_name = "pinctrl-foo",
.function = "mmc0",
.group = "mmc0_2_grp",
- .dev_name = "foo-mmc.0",
},
{
+ .dev_name = "foo-mmc.0",
.name = "8bit"
.ctrl_dev_name = "pinctrl-foo",
.function = "mmc0",
.group = "mmc0_3_grp",
- .dev_name = "foo-mmc.0",
},
...
of the pin controller itself, like this:
{
+ .dev_name = "pinctrl-foo",
.name = "POWERMAP"
.ctrl_dev_name = "pinctrl-foo",
.function = "power_func",
- .dev_name = "pinctrl-foo",
},
Since it may be common to request the core to hog a few always-applicable
/**
* 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.
* This is the second parameter passed to pinmux_get() when you want
* to have several mappings to the same device
* @group: sometimes a function can map to different pin groups, so this
* selects a certain specific pin group to activate for the function, if
* 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 {
+ const char *dev_name;
const char *name;
const char *ctrl_dev_name;
const char *function;
const char *group;
- const char *dev_name;
};
/*