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