[lkml]   [2012]   [Feb]   [22]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
SubjectRe: [PATCH 16/20] pinctrl: Refactor struct pinctrl handling in core.c vs pinmux.c
On Mon, Feb 20, 2012 at 7:45 AM, Stephen Warren <> wrote:

> This change separates two aspects of struct pinctrl:
> a) The data representation of the parsed mapping table, into:
>   1) The top-level struct pinctrl object, a single entity returned
>      by pinctrl_get().
>   2) The parsed version of each mapping table entry, struct
>      pinctrl_setting, of which there is one per mapping table entry.
> b) The code that handles this; the code for (1) above is in core.c, and
>   the code to parse/execute each entry in (2) above is in pinmux.c, while
>   the iteration over multiple settings is lifted to core.c.
> This will allow the following future changes:
> 1) pinctrl_get() API rework, so that struct pinctrl represents all states
>   for the device, and the device can select between them without calling
>   put()/get() again.
> 2) To support that, a struct pinctrl_state object will be inserted into
>   the data model between the struct pinctrl and struct pinctrl_setting.
> 3) The mapping table will be extended to allow specification of pin config
>   settings too. To support this, struct pinctrl_setting will be enhanced
>   to store either mux settings or config settings, and functions will be
>   added to pinconf.c to parse/execute pin configuration settings.
> Signed-off-by: Stephen Warren <>

This is elegant and exactly what we want to do.

Please rebase on top of well, whatever we agree upon for
handling the get(NULL) case, and we're set to merge this

Acked-by: Linus Walleij <>

Linus Walleij
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to
More majordomo info at
Please read the FAQ at

 \ /
  Last update: 2012-02-22 18:21    [W:0.285 / U:1.696 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site