diff options
author | Heiko Stübner <heiko@sntech.de> | 2013-06-10 15:40:29 -0400 |
---|---|---|
committer | Linus Walleij <linus.walleij@linaro.org> | 2013-06-16 05:57:32 -0400 |
commit | 7db9af4b6e41be599e0fcd50d687138a5add428c (patch) | |
tree | 222803dcf9b69980bf4398fc203b832dc2b1a6c8 /Documentation | |
parent | 5c0e3580cb988cf4688070d2d7ac56cf83fc6959 (diff) |
pinctrl: add function to parse generic pinconfig properties from a dt node
pinconf_generic_parse_dt_config() takes a node as input and generates an
array of generic pinconfig values from the properties of this node.
As I couldn't find a mechanism to count the number of properties of a node
the function uses internally an array to accept one of parameter and copies
the real present options to a smaller variable at its end.
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Diffstat (limited to 'Documentation')
-rw-r--r-- | Documentation/devicetree/bindings/pinctrl/pinctrl-bindings.txt | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/Documentation/devicetree/bindings/pinctrl/pinctrl-bindings.txt b/Documentation/devicetree/bindings/pinctrl/pinctrl-bindings.txt index c95ea8278f87..ef7cd572214c 100644 --- a/Documentation/devicetree/bindings/pinctrl/pinctrl-bindings.txt +++ b/Documentation/devicetree/bindings/pinctrl/pinctrl-bindings.txt | |||
@@ -126,3 +126,41 @@ device; they may be grandchildren, for example. Whether this is legal, and | |||
126 | whether there is any interaction between the child and intermediate parent | 126 | whether there is any interaction between the child and intermediate parent |
127 | nodes, is again defined entirely by the binding for the individual pin | 127 | nodes, is again defined entirely by the binding for the individual pin |
128 | controller device. | 128 | controller device. |
129 | |||
130 | == Using generic pinconfig options == | ||
131 | |||
132 | Generic pinconfig parameters can be used by defining a separate node containing | ||
133 | the applicable parameters (and optional values), like: | ||
134 | |||
135 | pcfg_pull_up: pcfg_pull_up { | ||
136 | bias-pull-up; | ||
137 | drive-strength = <20>; | ||
138 | }; | ||
139 | |||
140 | This node should then be referenced in the appropriate pinctrl node as a phandle | ||
141 | and parsed in the driver using the pinconf_generic_parse_dt_config function. | ||
142 | |||
143 | Supported configuration parameters are: | ||
144 | |||
145 | bias-disable - disable any pin bias | ||
146 | bias-high-impedance - high impedance mode ("third-state", "floating") | ||
147 | bias-bus-hold - latch weakly | ||
148 | bias-pull-up - pull up the pin | ||
149 | bias-pull-down - pull down the pin | ||
150 | bias-pull-pin-default - use pin-default pull state | ||
151 | drive-push-pull - drive actively high and low | ||
152 | drive-open-drain - drive with open drain | ||
153 | drive-open-source - drive with open source | ||
154 | drive-strength - sink or source at most X mA | ||
155 | input-schmitt-enable - enable schmitt-trigger mode | ||
156 | input-schmitt-disable - disable schmitt-trigger mode | ||
157 | input-schmitt - run in schmitt-trigger mode with hysteresis X | ||
158 | input-debounce - debounce mode with debound time X | ||
159 | power-source - select power source X | ||
160 | slew-rate - use slew-rate X | ||
161 | low-power-mode - low power mode | ||
162 | output-low - set the pin to output mode with low level | ||
163 | output-high - set the pin to output mode with high level | ||
164 | |||
165 | More in-depth documentation on these parameters can be found in | ||
166 | <include/linux/pinctrl/pinconfig-generic.h> | ||