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