mirror of
https://github.com/torvalds/linux.git
synced 2026-07-13 17:03:34 +02:00
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 <swarren@nvidia.com>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
Acked-by: Dong Aisheng <dong.aisheng@linaro.org>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
|
||
|---|---|---|
| .. | ||
| core.c | ||
| core.h | ||
| Kconfig | ||
| Makefile | ||
| pinconf.c | ||
| pinconf.h | ||
| pinctrl-coh901.c | ||
| pinctrl-mmp2.c | ||
| pinctrl-pxa3xx.c | ||
| pinctrl-pxa3xx.h | ||
| pinctrl-pxa168.c | ||
| pinctrl-pxa910.c | ||
| pinctrl-sirf.c | ||
| pinctrl-u300.c | ||
| pinmux.c | ||
| pinmux.h | ||