diff options
author | Bjorn Andersson <bjorn.andersson@sonymobile.com> | 2014-10-22 05:58:44 -0400 |
---|---|---|
committer | Linus Walleij <linus.walleij@linaro.org> | 2014-10-29 04:28:36 -0400 |
commit | 43059f6ba21177f25ab1b10f95149cff1895806a (patch) | |
tree | 0e56f494e9885da42a04402a39d924570fe67cae /Documentation/devicetree/bindings/pinctrl | |
parent | c654b6bf2cda7e051d1d5ba7e696855511f1105a (diff) |
pinctrl: Device tree bindings for Qualcomm PMIC GPIO block
This introduced the device tree bindings for the GPIO block found
in PMIC's from Qualcomm.
Signed-off-by: Bjorn Andersson <bjorn.andersson@sonymobile.com>
Signed-off-by: Ivan T. Ivanov <iivanov@mm-sol.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Diffstat (limited to 'Documentation/devicetree/bindings/pinctrl')
-rw-r--r-- | Documentation/devicetree/bindings/pinctrl/qcom,pmic-gpio.txt | 215 |
1 files changed, 215 insertions, 0 deletions
diff --git a/Documentation/devicetree/bindings/pinctrl/qcom,pmic-gpio.txt b/Documentation/devicetree/bindings/pinctrl/qcom,pmic-gpio.txt new file mode 100644 index 000000000000..7ed08048516a --- /dev/null +++ b/Documentation/devicetree/bindings/pinctrl/qcom,pmic-gpio.txt | |||
@@ -0,0 +1,215 @@ | |||
1 | Qualcomm PMIC GPIO block | ||
2 | |||
3 | This binding describes the GPIO block(s) found in the 8xxx series of | ||
4 | PMIC's from Qualcomm. | ||
5 | |||
6 | - compatible: | ||
7 | Usage: required | ||
8 | Value type: <string> | ||
9 | Definition: must be one of: | ||
10 | "qcom,pm8018-gpio" | ||
11 | "qcom,pm8038-gpio" | ||
12 | "qcom,pm8058-gpio" | ||
13 | "qcom,pm8917-gpio" | ||
14 | "qcom,pm8921-gpio" | ||
15 | "qcom,pm8941-gpio" | ||
16 | "qcom,pma8084-gpio" | ||
17 | |||
18 | - reg: | ||
19 | Usage: required | ||
20 | Value type: <prop-encoded-array> | ||
21 | Definition: Register base of the GPIO block and length. | ||
22 | |||
23 | - interrupts: | ||
24 | Usage: required | ||
25 | Value type: <prop-encoded-array> | ||
26 | Definition: Must contain an array of encoded interrupt specifiers for | ||
27 | each available GPIO | ||
28 | |||
29 | - gpio-controller: | ||
30 | Usage: required | ||
31 | Value type: <none> | ||
32 | Definition: Mark the device node as a GPIO controller | ||
33 | |||
34 | - #gpio-cells: | ||
35 | Usage: required | ||
36 | Value type: <u32> | ||
37 | Definition: Must be 2; | ||
38 | the first cell will be used to define gpio number and the | ||
39 | second denotes the flags for this gpio | ||
40 | |||
41 | Please refer to ../gpio/gpio.txt and ../interrupt-controller/interrupts.txt for | ||
42 | a general description of GPIO and interrupt bindings. | ||
43 | |||
44 | Please refer to pinctrl-bindings.txt in this directory for details of the | ||
45 | common pinctrl bindings used by client devices, including the meaning of the | ||
46 | phrase "pin configuration node". | ||
47 | |||
48 | The pin configuration nodes act as a container for an arbitrary number of | ||
49 | subnodes. Each of these subnodes represents some desired configuration for a | ||
50 | pin or a list of pins. This configuration can include the | ||
51 | mux function to select on those pin(s), and various pin configuration | ||
52 | parameters, as listed below. | ||
53 | |||
54 | |||
55 | SUBNODES: | ||
56 | |||
57 | The name of each subnode is not important; all subnodes should be enumerated | ||
58 | and processed purely based on their content. | ||
59 | |||
60 | Each subnode only affects those parameters that are explicitly listed. In | ||
61 | other words, a subnode that lists a mux function but no pin configuration | ||
62 | parameters implies no information about any pin configuration parameters. | ||
63 | Similarly, a pin subnode that describes a pullup parameter implies no | ||
64 | information about e.g. the mux function. | ||
65 | |||
66 | The following generic properties as defined in pinctrl-bindings.txt are valid | ||
67 | to specify in a pin configuration subnode: | ||
68 | |||
69 | - pins: | ||
70 | Usage: required | ||
71 | Value type: <string-array> | ||
72 | Definition: List of gpio pins affected by the properties specified in | ||
73 | this subnode. Valid pins are: | ||
74 | gpio1-gpio6 for pm8018 | ||
75 | gpio1-gpio12 for pm8038 | ||
76 | gpio1-gpio40 for pm8058 | ||
77 | gpio1-gpio38 for pm8917 | ||
78 | gpio1-gpio44 for pm8921 | ||
79 | gpio1-gpio36 for pm8941 | ||
80 | gpio1-gpio22 for pma8084 | ||
81 | |||
82 | - function: | ||
83 | Usage: required | ||
84 | Value type: <string> | ||
85 | Definition: Specify the alternative function to be configured for the | ||
86 | specified pins. Valid values are: | ||
87 | "normal", | ||
88 | "paired", | ||
89 | "func1", | ||
90 | "func2", | ||
91 | "dtest1", | ||
92 | "dtest2", | ||
93 | "dtest3", | ||
94 | "dtest4" | ||
95 | |||
96 | - bias-disable: | ||
97 | Usage: optional | ||
98 | Value type: <none> | ||
99 | Definition: The specified pins should be configured as no pull. | ||
100 | |||
101 | - bias-pull-down: | ||
102 | Usage: optional | ||
103 | Value type: <none> | ||
104 | Definition: The specified pins should be configured as pull down. | ||
105 | |||
106 | - bias-pull-up: | ||
107 | Usage: optional | ||
108 | Value type: <empty> | ||
109 | Definition: The specified pins should be configured as pull up. | ||
110 | |||
111 | - qcom,pull-up-strength: | ||
112 | Usage: optional | ||
113 | Value type: <u32> | ||
114 | Definition: Specifies the strength to use for pull up, if selected. | ||
115 | Valid values are; as defined in | ||
116 | <dt-bindings/pinctrl/qcom,pmic-gpio.h>: | ||
117 | 1: 30uA (PMIC_GPIO_PULL_UP_30) | ||
118 | 2: 1.5uA (PMIC_GPIO_PULL_UP_1P5) | ||
119 | 3: 31.5uA (PMIC_GPIO_PULL_UP_31P5) | ||
120 | 4: 1.5uA + 30uA boost (PMIC_GPIO_PULL_UP_1P5_30) | ||
121 | If this property is ommited 30uA strength will be used if | ||
122 | pull up is selected | ||
123 | |||
124 | - bias-high-impedance: | ||
125 | Usage: optional | ||
126 | Value type: <none> | ||
127 | Definition: The specified pins will put in high-Z mode and disabled. | ||
128 | |||
129 | - input-enable: | ||
130 | Usage: optional | ||
131 | Value type: <none> | ||
132 | Definition: The specified pins are put in input mode. | ||
133 | |||
134 | - output-high: | ||
135 | Usage: optional | ||
136 | Value type: <none> | ||
137 | Definition: The specified pins are configured in output mode, driven | ||
138 | high. | ||
139 | |||
140 | - output-low: | ||
141 | Usage: optional | ||
142 | Value type: <none> | ||
143 | Definition: The specified pins are configured in output mode, driven | ||
144 | low. | ||
145 | |||
146 | - power-source: | ||
147 | Usage: optional | ||
148 | Value type: <u32> | ||
149 | Definition: Selects the power source for the specified pins. Valid | ||
150 | power sources are defined per chip in | ||
151 | <dt-bindings/pinctrl/qcom,pmic-gpio.h> | ||
152 | |||
153 | - qcom,drive-strength: | ||
154 | Usage: optional | ||
155 | Value type: <u32> | ||
156 | Definition: Selects the drive strength for the specified pins. Value | ||
157 | drive strengths are: | ||
158 | 0: no (PMIC_GPIO_STRENGTH_NO) | ||
159 | 1: high (PMIC_GPIO_STRENGTH_HIGH) 0.9mA @ 1.8V - 1.9mA @ 2.6V | ||
160 | 2: medium (PMIC_GPIO_STRENGTH_MED) 0.6mA @ 1.8V - 1.25mA @ 2.6V | ||
161 | 3: low (PMIC_GPIO_STRENGTH_LOW) 0.15mA @ 1.8V - 0.3mA @ 2.6V | ||
162 | as defined in <dt-bindings/pinctrl/qcom,pmic-gpio.h> | ||
163 | |||
164 | - drive-push-pull: | ||
165 | Usage: optional | ||
166 | Value type: <none> | ||
167 | Definition: The specified pins are configured in push-pull mode. | ||
168 | |||
169 | - drive-open-drain: | ||
170 | Usage: optional | ||
171 | Value type: <none> | ||
172 | Definition: The specified pins are configured in open-drain mode. | ||
173 | |||
174 | - drive-open-source: | ||
175 | Usage: optional | ||
176 | Value type: <none> | ||
177 | Definition: The specified pins are configured in open-source mode. | ||
178 | |||
179 | Example: | ||
180 | |||
181 | pm8921_gpio: gpio@150 { | ||
182 | compatible = "qcom,pm8921-gpio"; | ||
183 | reg = <0x150 0x160>; | ||
184 | interrupts = <192 1>, <193 1>, <194 1>, | ||
185 | <195 1>, <196 1>, <197 1>, | ||
186 | <198 1>, <199 1>, <200 1>, | ||
187 | <201 1>, <202 1>, <203 1>, | ||
188 | <204 1>, <205 1>, <206 1>, | ||
189 | <207 1>, <208 1>, <209 1>, | ||
190 | <210 1>, <211 1>, <212 1>, | ||
191 | <213 1>, <214 1>, <215 1>, | ||
192 | <216 1>, <217 1>, <218 1>, | ||
193 | <219 1>, <220 1>, <221 1>, | ||
194 | <222 1>, <223 1>, <224 1>, | ||
195 | <225 1>, <226 1>, <227 1>, | ||
196 | <228 1>, <229 1>, <230 1>, | ||
197 | <231 1>, <232 1>, <233 1>, | ||
198 | <234 1>, <235 1>; | ||
199 | |||
200 | gpio-controller; | ||
201 | #gpio-cells = <2>; | ||
202 | |||
203 | pm8921_gpio_keys: gpio-keys { | ||
204 | volume-keys { | ||
205 | pins = "gpio20", "gpio21"; | ||
206 | function = "normal"; | ||
207 | |||
208 | input-enable; | ||
209 | bias-pull-up; | ||
210 | drive-push-pull; | ||
211 | qcom,drive-strength = <PMIC_GPIO_STRENGTH_NO>; | ||
212 | power-source = <PM8921_GPIO_S4>; | ||
213 | }; | ||
214 | }; | ||
215 | }; | ||