diff options
author | Stephen Warren <swarren@wwwdotorg.org> | 2012-03-23 12:29:46 -0400 |
---|---|---|
committer | Linus Walleij <linus.walleij@linaro.org> | 2012-04-18 07:53:10 -0400 |
commit | 57291ce295c0aca738dd284c4a9c591c09ebee71 (patch) | |
tree | 6e687f329e7adf08b5d7dcaa3d6616ff1a9b8c27 /include/linux/pinctrl | |
parent | d26bc49fa401be2b71838b6a4b387196cd12a534 (diff) |
pinctrl: core device tree mapping table parsing support
During pinctrl_get(), if the client device has a device tree node, look
for the common pinctrl properties there. If found, parse the referenced
device tree nodes, with the help of the pinctrl drivers, and generate
mapping table entries from them.
During pinctrl_put(), free any results of device tree parsing.
Acked-by: Dong Aisheng <dong.aisheng@linaro.org>
Signed-off-by: Stephen Warren <swarren@wwwdotorg.org>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Diffstat (limited to 'include/linux/pinctrl')
-rw-r--r-- | include/linux/pinctrl/pinctrl.h | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/include/linux/pinctrl/pinctrl.h b/include/linux/pinctrl/pinctrl.h index 4e9f0788c221..aa92cdeb99fd 100644 --- a/include/linux/pinctrl/pinctrl.h +++ b/include/linux/pinctrl/pinctrl.h | |||
@@ -21,9 +21,11 @@ | |||
21 | 21 | ||
22 | struct device; | 22 | struct device; |
23 | struct pinctrl_dev; | 23 | struct pinctrl_dev; |
24 | struct pinctrl_map; | ||
24 | struct pinmux_ops; | 25 | struct pinmux_ops; |
25 | struct pinconf_ops; | 26 | struct pinconf_ops; |
26 | struct gpio_chip; | 27 | struct gpio_chip; |
28 | struct device_node; | ||
27 | 29 | ||
28 | /** | 30 | /** |
29 | * struct pinctrl_pin_desc - boards/machines provide information on their | 31 | * struct pinctrl_pin_desc - boards/machines provide information on their |
@@ -83,6 +85,11 @@ struct pinctrl_ops { | |||
83 | unsigned *num_pins); | 85 | unsigned *num_pins); |
84 | void (*pin_dbg_show) (struct pinctrl_dev *pctldev, struct seq_file *s, | 86 | void (*pin_dbg_show) (struct pinctrl_dev *pctldev, struct seq_file *s, |
85 | unsigned offset); | 87 | unsigned offset); |
88 | int (*dt_node_to_map) (struct pinctrl_dev *pctldev, | ||
89 | struct device_node *np_config, | ||
90 | struct pinctrl_map **map, unsigned *num_maps); | ||
91 | void (*dt_free_map) (struct pinctrl_dev *pctldev, | ||
92 | struct pinctrl_map *map, unsigned num_maps); | ||
86 | }; | 93 | }; |
87 | 94 | ||
88 | /** | 95 | /** |