Merge remote-tracking branch 'origin/master' into drm-misc-fixes
[sfrench/cifs-2.6.git] / Documentation / devicetree / bindings / pinctrl / qcom,pmic-gpio.txt
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,pm8916-gpio"
14                     "qcom,pm8917-gpio"
15                     "qcom,pm8921-gpio"
16                     "qcom,pm8941-gpio"
17                     "qcom,pm8994-gpio"
18                     "qcom,pma8084-gpio"
19                     "qcom,pmi8994-gpio"
20
21                     And must contain either "qcom,spmi-gpio" or "qcom,ssbi-gpio"
22                     if the device is on an spmi bus or an ssbi bus respectively
23
24 - reg:
25         Usage: required
26         Value type: <prop-encoded-array>
27         Definition: Register base of the GPIO block and length.
28
29 - interrupts:
30         Usage: required
31         Value type: <prop-encoded-array>
32         Definition: Must contain an array of encoded interrupt specifiers for
33                     each available GPIO
34
35 - gpio-controller:
36         Usage: required
37         Value type: <none>
38         Definition: Mark the device node as a GPIO controller
39
40 - #gpio-cells:
41         Usage: required
42         Value type: <u32>
43         Definition: Must be 2;
44                     the first cell will be used to define gpio number and the
45                     second denotes the flags for this gpio
46
47 Please refer to ../gpio/gpio.txt and ../interrupt-controller/interrupts.txt for
48 a general description of GPIO and interrupt bindings.
49
50 Please refer to pinctrl-bindings.txt in this directory for details of the
51 common pinctrl bindings used by client devices, including the meaning of the
52 phrase "pin configuration node".
53
54 The pin configuration nodes act as a container for an arbitrary number of
55 subnodes. Each of these subnodes represents some desired configuration for a
56 pin or a list of pins. This configuration can include the
57 mux function to select on those pin(s), and various pin configuration
58 parameters, as listed below.
59
60
61 SUBNODES:
62
63 The name of each subnode is not important; all subnodes should be enumerated
64 and processed purely based on their content.
65
66 Each subnode only affects those parameters that are explicitly listed. In
67 other words, a subnode that lists a mux function but no pin configuration
68 parameters implies no information about any pin configuration parameters.
69 Similarly, a pin subnode that describes a pullup parameter implies no
70 information about e.g. the mux function.
71
72 The following generic properties as defined in pinctrl-bindings.txt are valid
73 to specify in a pin configuration subnode:
74
75 - pins:
76         Usage: required
77         Value type: <string-array>
78         Definition: List of gpio pins affected by the properties specified in
79                     this subnode.  Valid pins are:
80                     gpio1-gpio6 for pm8018
81                     gpio1-gpio12 for pm8038
82                     gpio1-gpio40 for pm8058
83                     gpio1-gpio4 for pm8916
84                     gpio1-gpio38 for pm8917
85                     gpio1-gpio44 for pm8921
86                     gpio1-gpio36 for pm8941
87                     gpio1-gpio22 for pm8994
88                     gpio1-gpio22 for pma8084
89                     gpio1-gpio10 for pmi8994
90
91 - function:
92         Usage: required
93         Value type: <string>
94         Definition: Specify the alternative function to be configured for the
95                     specified pins.  Valid values are:
96                     "normal",
97                     "paired",
98                     "func1",
99                     "func2",
100                     "dtest1",
101                     "dtest2",
102                     "dtest3",
103                     "dtest4",
104                     And following values are supported by LV/MV GPIO subtypes:
105                     "func3",
106                     "func4"
107
108 - bias-disable:
109         Usage: optional
110         Value type: <none>
111         Definition: The specified pins should be configured as no pull.
112
113 - bias-pull-down:
114         Usage: optional
115         Value type: <none>
116         Definition: The specified pins should be configured as pull down.
117
118 - bias-pull-up:
119         Usage: optional
120         Value type: <empty>
121         Definition: The specified pins should be configured as pull up.
122
123 - qcom,pull-up-strength:
124         Usage: optional
125         Value type: <u32>
126         Definition: Specifies the strength to use for pull up, if selected.
127                     Valid values are; as defined in
128                     <dt-bindings/pinctrl/qcom,pmic-gpio.h>:
129                     1: 30uA                     (PMIC_GPIO_PULL_UP_30)
130                     2: 1.5uA                    (PMIC_GPIO_PULL_UP_1P5)
131                     3: 31.5uA                   (PMIC_GPIO_PULL_UP_31P5)
132                     4: 1.5uA + 30uA boost       (PMIC_GPIO_PULL_UP_1P5_30)
133                     If this property is omitted 30uA strength will be used if
134                     pull up is selected
135
136 - bias-high-impedance:
137         Usage: optional
138         Value type: <none>
139         Definition: The specified pins will put in high-Z mode and disabled.
140
141 - input-enable:
142         Usage: optional
143         Value type: <none>
144         Definition: The specified pins are put in input mode.
145
146 - output-high:
147         Usage: optional
148         Value type: <none>
149         Definition: The specified pins are configured in output mode, driven
150                     high.
151
152 - output-low:
153         Usage: optional
154         Value type: <none>
155         Definition: The specified pins are configured in output mode, driven
156                     low.
157
158 - power-source:
159         Usage: optional
160         Value type: <u32>
161         Definition: Selects the power source for the specified pins. Valid
162                     power sources are defined per chip in
163                     <dt-bindings/pinctrl/qcom,pmic-gpio.h>
164
165 - qcom,drive-strength:
166         Usage: optional
167         Value type: <u32>
168         Definition: Selects the drive strength for the specified pins. Value
169                     drive strengths are:
170                     0: no (PMIC_GPIO_STRENGTH_NO)
171                     1: high (PMIC_GPIO_STRENGTH_HIGH) 0.9mA @ 1.8V - 1.9mA @ 2.6V
172                     2: medium (PMIC_GPIO_STRENGTH_MED) 0.6mA @ 1.8V - 1.25mA @ 2.6V
173                     3: low (PMIC_GPIO_STRENGTH_LOW) 0.15mA @ 1.8V - 0.3mA @ 2.6V
174                     as defined in <dt-bindings/pinctrl/qcom,pmic-gpio.h>
175
176 - drive-push-pull:
177         Usage: optional
178         Value type: <none>
179         Definition: The specified pins are configured in push-pull mode.
180
181 - drive-open-drain:
182         Usage: optional
183         Value type: <none>
184         Definition: The specified pins are configured in open-drain mode.
185
186 - drive-open-source:
187         Usage: optional
188         Value type: <none>
189         Definition: The specified pins are configured in open-source mode.
190
191 - qcom,analog-pass:
192         Usage: optional
193         Value type: <none>
194         Definition: The specified pins are configured in analog-pass-through mode.
195
196 - qcom,atest:
197         Usage: optional
198         Value type: <u32>
199         Definition: Selects ATEST rail to route to GPIO when it's configured
200                     in analog-pass-through mode.
201                     Valid values are 1-4 corresponding to ATEST1 to ATEST4.
202
203 - qcom,dtest-buffer:
204         Usage: optional
205         Value type: <u32>
206         Definition: Selects DTEST rail to route to GPIO when it's configured
207                     as digital input.
208                     Valid values are 1-4 corresponding to DTEST1 to DTEST4.
209
210 Example:
211
212         pm8921_gpio: gpio@150 {
213                 compatible = "qcom,pm8921-gpio", "qcom,ssbi-gpio";
214                 reg = <0x150 0x160>;
215                 interrupts = <192 1>, <193 1>, <194 1>,
216                              <195 1>, <196 1>, <197 1>,
217                              <198 1>, <199 1>, <200 1>,
218                              <201 1>, <202 1>, <203 1>,
219                              <204 1>, <205 1>, <206 1>,
220                              <207 1>, <208 1>, <209 1>,
221                              <210 1>, <211 1>, <212 1>,
222                              <213 1>, <214 1>, <215 1>,
223                              <216 1>, <217 1>, <218 1>,
224                              <219 1>, <220 1>, <221 1>,
225                              <222 1>, <223 1>, <224 1>,
226                              <225 1>, <226 1>, <227 1>,
227                              <228 1>, <229 1>, <230 1>,
228                              <231 1>, <232 1>, <233 1>,
229                              <234 1>, <235 1>;
230
231                 gpio-controller;
232                 #gpio-cells = <2>;
233
234                 pm8921_gpio_keys: gpio-keys {
235                         volume-keys {
236                                 pins = "gpio20", "gpio21";
237                                 function = "normal";
238
239                                 input-enable;
240                                 bias-pull-up;
241                                 drive-push-pull;
242                                 qcom,drive-strength = <PMIC_GPIO_STRENGTH_NO>;
243                                 power-source = <PM8921_GPIO_S4>;
244                         };
245                 };
246         };