]> git.karo-electronics.de Git - karo-tx-linux.git/blob - Documentation/devicetree/bindings/pinctrl/qcom,pmic-gpio.txt
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph...
[karo-tx-linux.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,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         };