lkml.org 
[lkml]   [2012]   [Feb]   [23]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH 2/3] pinctrl: Re-order struct pinctrl_map
On Thu, Feb 23, 2012 at 05:04:39PM -0700, Stephen Warren wrote:
> 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.
>

Not only better reflects the llokup process, i think the map name meaning
is a litlle different as before since it represents states now rather than
a map name, right?
And a map entry becomes a specific device's map entry, here the device
becomes the main entity, so it's reasonable to me to put it in the first.

Acked-by: Dong Aisheng <dong.aisheng@linaro.org>

Regards
Dong Aisheng

> 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: Stephen Warren <swarren@nvidia.com>
> ---
> Documentation/pinctrl.txt | 24 ++++++++++++------------
> include/linux/pinctrl/machine.h | 10 +++++-----
> 2 files changed, 17 insertions(+), 17 deletions(-)
>
> diff --git a/Documentation/pinctrl.txt b/Documentation/pinctrl.txt
> index 8bf46bc..6fe3232 100644
> --- a/Documentation/pinctrl.txt
> +++ b/Documentation/pinctrl.txt
> @@ -781,19 +781,19 @@ spi on the second function mapping:
>
> 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",
> },
> };
>
> @@ -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",
> .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",
> },
> ...
>
> @@ -852,45 +852,45 @@ case), we define a mapping like this:
>
> ...
> {
> + .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",
> },
> ...
>
> @@ -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:
>
> {
> + .dev_name = "pinctrl-foo",
> .name = PINCTRL_STATE_DEFAULT,
> .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
> diff --git a/include/linux/pinctrl/machine.h b/include/linux/pinctrl/machine.h
> index 4743f84..20e9735 100644
> --- a/include/linux/pinctrl/machine.h
> +++ b/include/linux/pinctrl/machine.h
> @@ -16,6 +16,10 @@
>
> /**
> * 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
> @@ -27,17 +31,13 @@
> * @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;
> };
>
> /*
> --
> 1.7.0.4
>
>



\
 
 \ /
  Last update: 2012-02-24 04:27    [W:0.073 / U:4.792 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site