xref: /freebsd/sys/contrib/device-tree/Bindings/pinctrl/qcom,pmic-gpio.yaml (revision d5b0e70f7e04d971691517ce1304d86a1e367e2e)
1354d7675SEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2354d7675SEmmanuel Vadot%YAML 1.2
3354d7675SEmmanuel Vadot---
4354d7675SEmmanuel Vadot$id: http://devicetree.org/schemas/pinctrl/qcom,pmic-gpio.yaml#
5354d7675SEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6354d7675SEmmanuel Vadot
7354d7675SEmmanuel Vadottitle: Qualcomm PMIC GPIO block
8354d7675SEmmanuel Vadot
9354d7675SEmmanuel Vadotmaintainers:
10354d7675SEmmanuel Vadot  - Bjorn Andersson <bjorn.andersson@linaro.org>
11354d7675SEmmanuel Vadot
12354d7675SEmmanuel Vadotdescription:
13354d7675SEmmanuel Vadot  This binding describes the GPIO block(s) found in the 8xxx series of
14354d7675SEmmanuel Vadot  PMIC's from Qualcomm.
15354d7675SEmmanuel Vadot
16354d7675SEmmanuel Vadotproperties:
17354d7675SEmmanuel Vadot  compatible:
18354d7675SEmmanuel Vadot    items:
19354d7675SEmmanuel Vadot      - enum:
20e67e8565SEmmanuel Vadot          - qcom,pm2250-gpio
21354d7675SEmmanuel Vadot          - qcom,pm660-gpio
22354d7675SEmmanuel Vadot          - qcom,pm660l-gpio
23*d5b0e70fSEmmanuel Vadot          - qcom,pm6125-gpio
24354d7675SEmmanuel Vadot          - qcom,pm6150-gpio
25354d7675SEmmanuel Vadot          - qcom,pm6150l-gpio
268cc087a1SEmmanuel Vadot          - qcom,pm6350-gpio
27354d7675SEmmanuel Vadot          - qcom,pm7325-gpio
28354d7675SEmmanuel Vadot          - qcom,pm8005-gpio
29354d7675SEmmanuel Vadot          - qcom,pm8008-gpio
30354d7675SEmmanuel Vadot          - qcom,pm8018-gpio
31e67e8565SEmmanuel Vadot          - qcom,pm8019-gpio
32354d7675SEmmanuel Vadot          - qcom,pm8038-gpio
33354d7675SEmmanuel Vadot          - qcom,pm8058-gpio
34354d7675SEmmanuel Vadot          - qcom,pm8150-gpio
35354d7675SEmmanuel Vadot          - qcom,pm8150b-gpio
36*d5b0e70fSEmmanuel Vadot          - qcom,pm8150l-gpio
37e67e8565SEmmanuel Vadot          - qcom,pm8226-gpio
38354d7675SEmmanuel Vadot          - qcom,pm8350-gpio
39354d7675SEmmanuel Vadot          - qcom,pm8350b-gpio
40354d7675SEmmanuel Vadot          - qcom,pm8350c-gpio
41c9ccf3a3SEmmanuel Vadot          - qcom,pm8450-gpio
42354d7675SEmmanuel Vadot          - qcom,pm8916-gpio
43354d7675SEmmanuel Vadot          - qcom,pm8917-gpio
44354d7675SEmmanuel Vadot          - qcom,pm8921-gpio
45354d7675SEmmanuel Vadot          - qcom,pm8941-gpio
46354d7675SEmmanuel Vadot          - qcom,pm8950-gpio
47354d7675SEmmanuel Vadot          - qcom,pm8994-gpio
48354d7675SEmmanuel Vadot          - qcom,pm8998-gpio
49354d7675SEmmanuel Vadot          - qcom,pma8084-gpio
50354d7675SEmmanuel Vadot          - qcom,pmi8950-gpio
51354d7675SEmmanuel Vadot          - qcom,pmi8994-gpio
52354d7675SEmmanuel Vadot          - qcom,pmi8998-gpio
53354d7675SEmmanuel Vadot          - qcom,pmk8350-gpio
54*d5b0e70fSEmmanuel Vadot          - qcom,pmm8155au-gpio
55354d7675SEmmanuel Vadot          - qcom,pmr735a-gpio
56354d7675SEmmanuel Vadot          - qcom,pmr735b-gpio
57354d7675SEmmanuel Vadot          - qcom,pms405-gpio
58354d7675SEmmanuel Vadot          - qcom,pmx55-gpio
59*d5b0e70fSEmmanuel Vadot          - qcom,pmx65-gpio
60354d7675SEmmanuel Vadot
61354d7675SEmmanuel Vadot      - enum:
62354d7675SEmmanuel Vadot          - qcom,spmi-gpio
63354d7675SEmmanuel Vadot          - qcom,ssbi-gpio
64354d7675SEmmanuel Vadot
65354d7675SEmmanuel Vadot  reg:
66354d7675SEmmanuel Vadot    maxItems: 1
67354d7675SEmmanuel Vadot
68354d7675SEmmanuel Vadot  interrupt-controller: true
69354d7675SEmmanuel Vadot
70354d7675SEmmanuel Vadot  '#interrupt-cells':
71354d7675SEmmanuel Vadot    const: 2
72354d7675SEmmanuel Vadot
73354d7675SEmmanuel Vadot  gpio-controller: true
74354d7675SEmmanuel Vadot
75354d7675SEmmanuel Vadot  gpio-ranges:
76354d7675SEmmanuel Vadot    maxItems: 1
77354d7675SEmmanuel Vadot
78*d5b0e70fSEmmanuel Vadot  gpio-line-names:
79*d5b0e70fSEmmanuel Vadot    minItems: 2
80*d5b0e70fSEmmanuel Vadot    maxItems: 44
81*d5b0e70fSEmmanuel Vadot
82*d5b0e70fSEmmanuel Vadot  gpio-reserved-ranges:
83*d5b0e70fSEmmanuel Vadot    minItems: 1
84*d5b0e70fSEmmanuel Vadot    # maxItems as half of total number of GPIOs, as there has to be at
85*d5b0e70fSEmmanuel Vadot    # least one usable GPIO between each reserved range.
86*d5b0e70fSEmmanuel Vadot    maxItems: 22
87*d5b0e70fSEmmanuel Vadot
88354d7675SEmmanuel Vadot  '#gpio-cells':
89354d7675SEmmanuel Vadot    const: 2
90354d7675SEmmanuel Vadot    description:
91354d7675SEmmanuel Vadot      The first cell will be used to define gpio number and the
92354d7675SEmmanuel Vadot      second denotes the flags for this gpio
93354d7675SEmmanuel Vadot
94354d7675SEmmanuel VadotadditionalProperties: false
95354d7675SEmmanuel Vadot
96354d7675SEmmanuel Vadotrequired:
97354d7675SEmmanuel Vadot  - compatible
98354d7675SEmmanuel Vadot  - reg
99354d7675SEmmanuel Vadot  - gpio-controller
100354d7675SEmmanuel Vadot  - '#gpio-cells'
101354d7675SEmmanuel Vadot  - gpio-ranges
102354d7675SEmmanuel Vadot  - interrupt-controller
103354d7675SEmmanuel Vadot
104*d5b0e70fSEmmanuel VadotallOf:
105*d5b0e70fSEmmanuel Vadot  - if:
106*d5b0e70fSEmmanuel Vadot      properties:
107*d5b0e70fSEmmanuel Vadot        compatible:
108*d5b0e70fSEmmanuel Vadot          contains:
109*d5b0e70fSEmmanuel Vadot            enum:
110*d5b0e70fSEmmanuel Vadot              - qcom,pm8008-gpio
111*d5b0e70fSEmmanuel Vadot              - qcom,pmi8950-gpio
112*d5b0e70fSEmmanuel Vadot    then:
113*d5b0e70fSEmmanuel Vadot      properties:
114*d5b0e70fSEmmanuel Vadot        gpio-line-names:
115*d5b0e70fSEmmanuel Vadot          minItems: 2
116*d5b0e70fSEmmanuel Vadot          maxItems: 2
117*d5b0e70fSEmmanuel Vadot        gpio-reserved-ranges:
118*d5b0e70fSEmmanuel Vadot          maxItems: 1
119*d5b0e70fSEmmanuel Vadot
120*d5b0e70fSEmmanuel Vadot  - if:
121*d5b0e70fSEmmanuel Vadot      properties:
122*d5b0e70fSEmmanuel Vadot        compatible:
123*d5b0e70fSEmmanuel Vadot          contains:
124*d5b0e70fSEmmanuel Vadot            enum:
125*d5b0e70fSEmmanuel Vadot              - qcom,pm8005-gpio
126*d5b0e70fSEmmanuel Vadot              - qcom,pm8450-gpio
127*d5b0e70fSEmmanuel Vadot              - qcom,pm8916-gpio
128*d5b0e70fSEmmanuel Vadot              - qcom,pmk8350-gpio
129*d5b0e70fSEmmanuel Vadot              - qcom,pmr735a-gpio
130*d5b0e70fSEmmanuel Vadot              - qcom,pmr735b-gpio
131*d5b0e70fSEmmanuel Vadot    then:
132*d5b0e70fSEmmanuel Vadot      properties:
133*d5b0e70fSEmmanuel Vadot        gpio-line-names:
134*d5b0e70fSEmmanuel Vadot          minItems: 4
135*d5b0e70fSEmmanuel Vadot          maxItems: 4
136*d5b0e70fSEmmanuel Vadot        gpio-reserved-ranges:
137*d5b0e70fSEmmanuel Vadot          minItems: 1
138*d5b0e70fSEmmanuel Vadot          maxItems: 2
139*d5b0e70fSEmmanuel Vadot
140*d5b0e70fSEmmanuel Vadot  - if:
141*d5b0e70fSEmmanuel Vadot      properties:
142*d5b0e70fSEmmanuel Vadot        compatible:
143*d5b0e70fSEmmanuel Vadot          contains:
144*d5b0e70fSEmmanuel Vadot            enum:
145*d5b0e70fSEmmanuel Vadot              - qcom,pm8018-gpio
146*d5b0e70fSEmmanuel Vadot              - qcom,pm8019-gpio
147*d5b0e70fSEmmanuel Vadot    then:
148*d5b0e70fSEmmanuel Vadot      properties:
149*d5b0e70fSEmmanuel Vadot        gpio-line-names:
150*d5b0e70fSEmmanuel Vadot          minItems: 6
151*d5b0e70fSEmmanuel Vadot          maxItems: 6
152*d5b0e70fSEmmanuel Vadot        gpio-reserved-ranges:
153*d5b0e70fSEmmanuel Vadot          minItems: 1
154*d5b0e70fSEmmanuel Vadot          maxItems: 3
155*d5b0e70fSEmmanuel Vadot
156*d5b0e70fSEmmanuel Vadot  - if:
157*d5b0e70fSEmmanuel Vadot      properties:
158*d5b0e70fSEmmanuel Vadot        compatible:
159*d5b0e70fSEmmanuel Vadot          contains:
160*d5b0e70fSEmmanuel Vadot            enum:
161*d5b0e70fSEmmanuel Vadot              - qcom,pm8350b-gpio
162*d5b0e70fSEmmanuel Vadot              - qcom,pm8950-gpio
163*d5b0e70fSEmmanuel Vadot    then:
164*d5b0e70fSEmmanuel Vadot      properties:
165*d5b0e70fSEmmanuel Vadot        gpio-line-names:
166*d5b0e70fSEmmanuel Vadot          minItems: 8
167*d5b0e70fSEmmanuel Vadot          maxItems: 8
168*d5b0e70fSEmmanuel Vadot        gpio-reserved-ranges:
169*d5b0e70fSEmmanuel Vadot          minItems: 1
170*d5b0e70fSEmmanuel Vadot          maxItems: 4
171*d5b0e70fSEmmanuel Vadot
172*d5b0e70fSEmmanuel Vadot  - if:
173*d5b0e70fSEmmanuel Vadot      properties:
174*d5b0e70fSEmmanuel Vadot        compatible:
175*d5b0e70fSEmmanuel Vadot          contains:
176*d5b0e70fSEmmanuel Vadot            enum:
177*d5b0e70fSEmmanuel Vadot              - qcom,pm6350-gpio
178*d5b0e70fSEmmanuel Vadot              - qcom,pm8350c-gpio
179*d5b0e70fSEmmanuel Vadot    then:
180*d5b0e70fSEmmanuel Vadot      properties:
181*d5b0e70fSEmmanuel Vadot        gpio-line-names:
182*d5b0e70fSEmmanuel Vadot          minItems: 9
183*d5b0e70fSEmmanuel Vadot          maxItems: 9
184*d5b0e70fSEmmanuel Vadot        gpio-reserved-ranges:
185*d5b0e70fSEmmanuel Vadot          minItems: 1
186*d5b0e70fSEmmanuel Vadot          maxItems: 5
187*d5b0e70fSEmmanuel Vadot
188*d5b0e70fSEmmanuel Vadot  - if:
189*d5b0e70fSEmmanuel Vadot      properties:
190*d5b0e70fSEmmanuel Vadot        compatible:
191*d5b0e70fSEmmanuel Vadot          contains:
192*d5b0e70fSEmmanuel Vadot            enum:
193*d5b0e70fSEmmanuel Vadot              - qcom,pm2250-gpio
194*d5b0e70fSEmmanuel Vadot              - qcom,pm6150-gpio
195*d5b0e70fSEmmanuel Vadot              - qcom,pm7325-gpio
196*d5b0e70fSEmmanuel Vadot              - qcom,pm8150-gpio
197*d5b0e70fSEmmanuel Vadot              - qcom,pm8350-gpio
198*d5b0e70fSEmmanuel Vadot              - qcom,pmc8180-gpio
199*d5b0e70fSEmmanuel Vadot              - qcom,pmi8994-gpio
200*d5b0e70fSEmmanuel Vadot              - qcom,pmm8155au-gpio
201*d5b0e70fSEmmanuel Vadot    then:
202*d5b0e70fSEmmanuel Vadot      properties:
203*d5b0e70fSEmmanuel Vadot        gpio-line-names:
204*d5b0e70fSEmmanuel Vadot          minItems: 10
205*d5b0e70fSEmmanuel Vadot          maxItems: 10
206*d5b0e70fSEmmanuel Vadot        gpio-reserved-ranges:
207*d5b0e70fSEmmanuel Vadot          minItems: 1
208*d5b0e70fSEmmanuel Vadot          maxItems: 5
209*d5b0e70fSEmmanuel Vadot
210*d5b0e70fSEmmanuel Vadot  - if:
211*d5b0e70fSEmmanuel Vadot      properties:
212*d5b0e70fSEmmanuel Vadot        compatible:
213*d5b0e70fSEmmanuel Vadot          contains:
214*d5b0e70fSEmmanuel Vadot            enum:
215*d5b0e70fSEmmanuel Vadot              - qcom,pmx55-gpio
216*d5b0e70fSEmmanuel Vadot    then:
217*d5b0e70fSEmmanuel Vadot      properties:
218*d5b0e70fSEmmanuel Vadot        gpio-line-names:
219*d5b0e70fSEmmanuel Vadot          minItems: 11
220*d5b0e70fSEmmanuel Vadot          maxItems: 11
221*d5b0e70fSEmmanuel Vadot        gpio-reserved-ranges:
222*d5b0e70fSEmmanuel Vadot          minItems: 1
223*d5b0e70fSEmmanuel Vadot          maxItems: 6
224*d5b0e70fSEmmanuel Vadot
225*d5b0e70fSEmmanuel Vadot  - if:
226*d5b0e70fSEmmanuel Vadot      properties:
227*d5b0e70fSEmmanuel Vadot        compatible:
228*d5b0e70fSEmmanuel Vadot          contains:
229*d5b0e70fSEmmanuel Vadot            enum:
230*d5b0e70fSEmmanuel Vadot              - qcom,pm660l-gpio
231*d5b0e70fSEmmanuel Vadot              - qcom,pm6150l-gpio
232*d5b0e70fSEmmanuel Vadot              - qcom,pm8038-gpio
233*d5b0e70fSEmmanuel Vadot              - qcom,pm8150b-gpio
234*d5b0e70fSEmmanuel Vadot              - qcom,pm8150l-gpio
235*d5b0e70fSEmmanuel Vadot              - qcom,pmc8180c-gpio
236*d5b0e70fSEmmanuel Vadot              - qcom,pms405-gpio
237*d5b0e70fSEmmanuel Vadot    then:
238*d5b0e70fSEmmanuel Vadot      properties:
239*d5b0e70fSEmmanuel Vadot        gpio-line-names:
240*d5b0e70fSEmmanuel Vadot          minItems: 12
241*d5b0e70fSEmmanuel Vadot          maxItems: 12
242*d5b0e70fSEmmanuel Vadot        gpio-reserved-ranges:
243*d5b0e70fSEmmanuel Vadot          minItems: 1
244*d5b0e70fSEmmanuel Vadot          maxItems: 6
245*d5b0e70fSEmmanuel Vadot
246*d5b0e70fSEmmanuel Vadot  - if:
247*d5b0e70fSEmmanuel Vadot      properties:
248*d5b0e70fSEmmanuel Vadot        compatible:
249*d5b0e70fSEmmanuel Vadot          contains:
250*d5b0e70fSEmmanuel Vadot            enum:
251*d5b0e70fSEmmanuel Vadot              - qcom,pm660-gpio
252*d5b0e70fSEmmanuel Vadot    then:
253*d5b0e70fSEmmanuel Vadot      properties:
254*d5b0e70fSEmmanuel Vadot        gpio-line-names:
255*d5b0e70fSEmmanuel Vadot          minItems: 13
256*d5b0e70fSEmmanuel Vadot          maxItems: 13
257*d5b0e70fSEmmanuel Vadot        gpio-reserved-ranges:
258*d5b0e70fSEmmanuel Vadot          minItems: 1
259*d5b0e70fSEmmanuel Vadot          maxItems: 7
260*d5b0e70fSEmmanuel Vadot
261*d5b0e70fSEmmanuel Vadot  - if:
262*d5b0e70fSEmmanuel Vadot      properties:
263*d5b0e70fSEmmanuel Vadot        compatible:
264*d5b0e70fSEmmanuel Vadot          contains:
265*d5b0e70fSEmmanuel Vadot            enum:
266*d5b0e70fSEmmanuel Vadot              - qcom,pmi8998-gpio
267*d5b0e70fSEmmanuel Vadot    then:
268*d5b0e70fSEmmanuel Vadot      properties:
269*d5b0e70fSEmmanuel Vadot        gpio-line-names:
270*d5b0e70fSEmmanuel Vadot          minItems: 14
271*d5b0e70fSEmmanuel Vadot          maxItems: 14
272*d5b0e70fSEmmanuel Vadot        gpio-reserved-ranges:
273*d5b0e70fSEmmanuel Vadot          minItems: 1
274*d5b0e70fSEmmanuel Vadot          maxItems: 7
275*d5b0e70fSEmmanuel Vadot
276*d5b0e70fSEmmanuel Vadot  - if:
277*d5b0e70fSEmmanuel Vadot      properties:
278*d5b0e70fSEmmanuel Vadot        compatible:
279*d5b0e70fSEmmanuel Vadot          contains:
280*d5b0e70fSEmmanuel Vadot            enum:
281*d5b0e70fSEmmanuel Vadot              - qcom,pmx65-gpio
282*d5b0e70fSEmmanuel Vadot    then:
283*d5b0e70fSEmmanuel Vadot      properties:
284*d5b0e70fSEmmanuel Vadot        gpio-line-names:
285*d5b0e70fSEmmanuel Vadot          minItems: 16
286*d5b0e70fSEmmanuel Vadot          maxItems: 16
287*d5b0e70fSEmmanuel Vadot        gpio-reserved-ranges:
288*d5b0e70fSEmmanuel Vadot          minItems: 1
289*d5b0e70fSEmmanuel Vadot          maxItems: 8
290*d5b0e70fSEmmanuel Vadot
291*d5b0e70fSEmmanuel Vadot  - if:
292*d5b0e70fSEmmanuel Vadot      properties:
293*d5b0e70fSEmmanuel Vadot        compatible:
294*d5b0e70fSEmmanuel Vadot          contains:
295*d5b0e70fSEmmanuel Vadot            enum:
296*d5b0e70fSEmmanuel Vadot              - qcom,pm8994-gpio
297*d5b0e70fSEmmanuel Vadot              - qcom,pma8084-gpio
298*d5b0e70fSEmmanuel Vadot    then:
299*d5b0e70fSEmmanuel Vadot      properties:
300*d5b0e70fSEmmanuel Vadot        gpio-line-names:
301*d5b0e70fSEmmanuel Vadot          minItems: 22
302*d5b0e70fSEmmanuel Vadot          maxItems: 22
303*d5b0e70fSEmmanuel Vadot        gpio-reserved-ranges:
304*d5b0e70fSEmmanuel Vadot          minItems: 1
305*d5b0e70fSEmmanuel Vadot          maxItems: 11
306*d5b0e70fSEmmanuel Vadot
307*d5b0e70fSEmmanuel Vadot  - if:
308*d5b0e70fSEmmanuel Vadot      properties:
309*d5b0e70fSEmmanuel Vadot        compatible:
310*d5b0e70fSEmmanuel Vadot          contains:
311*d5b0e70fSEmmanuel Vadot            enum:
312*d5b0e70fSEmmanuel Vadot              - qcom,pm8998-gpio
313*d5b0e70fSEmmanuel Vadot    then:
314*d5b0e70fSEmmanuel Vadot      properties:
315*d5b0e70fSEmmanuel Vadot        gpio-line-names:
316*d5b0e70fSEmmanuel Vadot          minItems: 26
317*d5b0e70fSEmmanuel Vadot          maxItems: 26
318*d5b0e70fSEmmanuel Vadot        gpio-reserved-ranges:
319*d5b0e70fSEmmanuel Vadot          minItems: 1
320*d5b0e70fSEmmanuel Vadot          maxItems: 13
321*d5b0e70fSEmmanuel Vadot
322*d5b0e70fSEmmanuel Vadot  - if:
323*d5b0e70fSEmmanuel Vadot      properties:
324*d5b0e70fSEmmanuel Vadot        compatible:
325*d5b0e70fSEmmanuel Vadot          contains:
326*d5b0e70fSEmmanuel Vadot            enum:
327*d5b0e70fSEmmanuel Vadot              - qcom,pm8941-gpio
328*d5b0e70fSEmmanuel Vadot    then:
329*d5b0e70fSEmmanuel Vadot      properties:
330*d5b0e70fSEmmanuel Vadot        gpio-line-names:
331*d5b0e70fSEmmanuel Vadot          minItems: 36
332*d5b0e70fSEmmanuel Vadot          maxItems: 36
333*d5b0e70fSEmmanuel Vadot        gpio-reserved-ranges:
334*d5b0e70fSEmmanuel Vadot          minItems: 1
335*d5b0e70fSEmmanuel Vadot          maxItems: 18
336*d5b0e70fSEmmanuel Vadot
337*d5b0e70fSEmmanuel Vadot  - if:
338*d5b0e70fSEmmanuel Vadot      properties:
339*d5b0e70fSEmmanuel Vadot        compatible:
340*d5b0e70fSEmmanuel Vadot          contains:
341*d5b0e70fSEmmanuel Vadot            enum:
342*d5b0e70fSEmmanuel Vadot              - qcom,pm8917-gpio
343*d5b0e70fSEmmanuel Vadot    then:
344*d5b0e70fSEmmanuel Vadot      properties:
345*d5b0e70fSEmmanuel Vadot        gpio-line-names:
346*d5b0e70fSEmmanuel Vadot          minItems: 38
347*d5b0e70fSEmmanuel Vadot          maxItems: 38
348*d5b0e70fSEmmanuel Vadot        gpio-reserved-ranges:
349*d5b0e70fSEmmanuel Vadot          minItems: 1
350*d5b0e70fSEmmanuel Vadot          maxItems: 19
351*d5b0e70fSEmmanuel Vadot
352*d5b0e70fSEmmanuel Vadot  - if:
353*d5b0e70fSEmmanuel Vadot      properties:
354*d5b0e70fSEmmanuel Vadot        compatible:
355*d5b0e70fSEmmanuel Vadot          contains:
356*d5b0e70fSEmmanuel Vadot            enum:
357*d5b0e70fSEmmanuel Vadot              - qcom,pm8058-gpio
358*d5b0e70fSEmmanuel Vadot              - qcom,pm8921-gpio
359*d5b0e70fSEmmanuel Vadot    then:
360*d5b0e70fSEmmanuel Vadot      properties:
361*d5b0e70fSEmmanuel Vadot        gpio-line-names:
362*d5b0e70fSEmmanuel Vadot          minItems: 44
363*d5b0e70fSEmmanuel Vadot          maxItems: 44
364*d5b0e70fSEmmanuel Vadot        gpio-reserved-ranges:
365*d5b0e70fSEmmanuel Vadot          minItems: 1
366*d5b0e70fSEmmanuel Vadot          maxItems: 22
367*d5b0e70fSEmmanuel Vadot
368354d7675SEmmanuel VadotpatternProperties:
369354d7675SEmmanuel Vadot  '-state$':
370354d7675SEmmanuel Vadot    oneOf:
371354d7675SEmmanuel Vadot      - $ref: "#/$defs/qcom-pmic-gpio-state"
372354d7675SEmmanuel Vadot      - patternProperties:
373*d5b0e70fSEmmanuel Vadot          "(pinconf|-pins)$":
374354d7675SEmmanuel Vadot            $ref: "#/$defs/qcom-pmic-gpio-state"
375*d5b0e70fSEmmanuel Vadot        additionalProperties: false
376354d7675SEmmanuel Vadot
377354d7675SEmmanuel Vadot$defs:
378354d7675SEmmanuel Vadot  qcom-pmic-gpio-state:
379354d7675SEmmanuel Vadot    type: object
380354d7675SEmmanuel Vadot    allOf:
381354d7675SEmmanuel Vadot      - $ref: "pinmux-node.yaml"
382354d7675SEmmanuel Vadot      - $ref: "pincfg-node.yaml"
383354d7675SEmmanuel Vadot    properties:
384354d7675SEmmanuel Vadot      pins:
385354d7675SEmmanuel Vadot        description:
386354d7675SEmmanuel Vadot          List of gpio pins affected by the properties specified in
387354d7675SEmmanuel Vadot          this subnode.  Valid pins are
388*d5b0e70fSEmmanuel Vadot                 - gpio1-gpio9 for pm6125
389354d7675SEmmanuel Vadot                 - gpio1-gpio10 for pm6150
390354d7675SEmmanuel Vadot                 - gpio1-gpio12 for pm6150l
3918cc087a1SEmmanuel Vadot                 - gpio1-gpio9 for pm6350
392354d7675SEmmanuel Vadot                 - gpio1-gpio10 for pm7325
393354d7675SEmmanuel Vadot                 - gpio1-gpio4 for pm8005
394354d7675SEmmanuel Vadot                 - gpio1-gpio2 for pm8008
395354d7675SEmmanuel Vadot                 - gpio1-gpio6 for pm8018
396354d7675SEmmanuel Vadot                 - gpio1-gpio12 for pm8038
397354d7675SEmmanuel Vadot                 - gpio1-gpio40 for pm8058
398354d7675SEmmanuel Vadot                 - gpio1-gpio10 for pm8150 (holes on gpio2, gpio5,
399354d7675SEmmanuel Vadot                                            gpio7 and gpio8)
400354d7675SEmmanuel Vadot                 - gpio1-gpio12 for pm8150b (holes on gpio3, gpio4
401354d7675SEmmanuel Vadot                                             and gpio7)
402354d7675SEmmanuel Vadot                 - gpio1-gpio12 for pm8150l (hole on gpio7)
403354d7675SEmmanuel Vadot                 - gpio1-gpio4 for pm8916
404354d7675SEmmanuel Vadot                 - gpio1-gpio10 for pm8350
405354d7675SEmmanuel Vadot                 - gpio1-gpio8 for pm8350b
406354d7675SEmmanuel Vadot                 - gpio1-gpio9 for pm8350c
407354d7675SEmmanuel Vadot                 - gpio1-gpio38 for pm8917
408354d7675SEmmanuel Vadot                 - gpio1-gpio44 for pm8921
409354d7675SEmmanuel Vadot                 - gpio1-gpio36 for pm8941
410354d7675SEmmanuel Vadot                 - gpio1-gpio8 for pm8950 (hole on gpio3)
411354d7675SEmmanuel Vadot                 - gpio1-gpio22 for pm8994
412354d7675SEmmanuel Vadot                 - gpio1-gpio26 for pm8998
413354d7675SEmmanuel Vadot                 - gpio1-gpio22 for pma8084
414354d7675SEmmanuel Vadot                 - gpio1-gpio2 for pmi8950
415354d7675SEmmanuel Vadot                 - gpio1-gpio10 for pmi8994
416354d7675SEmmanuel Vadot                 - gpio1-gpio4 for pmk8350
417*d5b0e70fSEmmanuel Vadot                 - gpio1-gpio10 for pmm8155au
418354d7675SEmmanuel Vadot                 - gpio1-gpio4 for pmr735a
419354d7675SEmmanuel Vadot                 - gpio1-gpio4 for pmr735b
420354d7675SEmmanuel Vadot                 - gpio1-gpio12 for pms405 (holes on gpio1, gpio9
421354d7675SEmmanuel Vadot                                            and gpio10)
422354d7675SEmmanuel Vadot                 - gpio1-gpio11 for pmx55 (holes on gpio3, gpio7, gpio10
423354d7675SEmmanuel Vadot                                            and gpio11)
424*d5b0e70fSEmmanuel Vadot                 - gpio1-gpio16 for pmx65
425354d7675SEmmanuel Vadot
426354d7675SEmmanuel Vadot        items:
427354d7675SEmmanuel Vadot          pattern: "^gpio([0-9]+)$"
428354d7675SEmmanuel Vadot
429354d7675SEmmanuel Vadot      function:
430354d7675SEmmanuel Vadot        items:
431354d7675SEmmanuel Vadot          - enum:
432354d7675SEmmanuel Vadot              - normal
433354d7675SEmmanuel Vadot              - paired
434354d7675SEmmanuel Vadot              - func1
435354d7675SEmmanuel Vadot              - func2
436354d7675SEmmanuel Vadot              - dtest1
437354d7675SEmmanuel Vadot              - dtest2
438354d7675SEmmanuel Vadot              - dtest3
439354d7675SEmmanuel Vadot              - dtest4
440354d7675SEmmanuel Vadot              - func3  # supported by LV/MV GPIO subtypes
441354d7675SEmmanuel Vadot              - func4  # supported by LV/MV GPIO subtypes
442354d7675SEmmanuel Vadot
443354d7675SEmmanuel Vadot      bias-disable: true
444354d7675SEmmanuel Vadot      bias-pull-down: true
445354d7675SEmmanuel Vadot      bias-pull-up: true
446354d7675SEmmanuel Vadot
447354d7675SEmmanuel Vadot      qcom,pull-up-strength:
448354d7675SEmmanuel Vadot        $ref: /schemas/types.yaml#/definitions/uint32
449354d7675SEmmanuel Vadot        description:
450354d7675SEmmanuel Vadot          Specifies the strength to use for pull up, if selected.
451354d7675SEmmanuel Vadot          Valid values are defined in
452354d7675SEmmanuel Vadot          <dt-bindings/pinctrl/qcom,pmic-gpio.h>
453354d7675SEmmanuel Vadot          If this property is omitted 30uA strength will be used
454354d7675SEmmanuel Vadot          if pull up is selected
455354d7675SEmmanuel Vadot        enum: [0, 1, 2, 3]
456354d7675SEmmanuel Vadot
457354d7675SEmmanuel Vadot      bias-high-impedance: true
458354d7675SEmmanuel Vadot      input-enable: true
459*d5b0e70fSEmmanuel Vadot      input-disable: true
460354d7675SEmmanuel Vadot      output-high: true
461354d7675SEmmanuel Vadot      output-low: true
4628cc087a1SEmmanuel Vadot      output-enable: true
4638cc087a1SEmmanuel Vadot      output-disable: true
464354d7675SEmmanuel Vadot      power-source: true
465354d7675SEmmanuel Vadot
466354d7675SEmmanuel Vadot      qcom,drive-strength:
467354d7675SEmmanuel Vadot        $ref: /schemas/types.yaml#/definitions/uint32
468354d7675SEmmanuel Vadot        description:
469354d7675SEmmanuel Vadot          Selects the drive strength for the specified pins
470354d7675SEmmanuel Vadot          Valid drive strength values are defined in
471354d7675SEmmanuel Vadot          <dt-bindings/pinctrl/qcom,pmic-gpio.h>
472354d7675SEmmanuel Vadot        enum: [0, 1, 2, 3]
473354d7675SEmmanuel Vadot
474354d7675SEmmanuel Vadot      drive-push-pull: true
475354d7675SEmmanuel Vadot      drive-open-drain: true
476354d7675SEmmanuel Vadot      drive-open-source: true
477354d7675SEmmanuel Vadot
478354d7675SEmmanuel Vadot      qcom,analog-pass:
479354d7675SEmmanuel Vadot        $ref: /schemas/types.yaml#/definitions/flag
480354d7675SEmmanuel Vadot        description:
481354d7675SEmmanuel Vadot          The specified pins are configured in
482354d7675SEmmanuel Vadot          analog-pass-through mode.
483354d7675SEmmanuel Vadot
484354d7675SEmmanuel Vadot      qcom,atest:
485354d7675SEmmanuel Vadot        $ref: /schemas/types.yaml#/definitions/uint32
486354d7675SEmmanuel Vadot        description:
487354d7675SEmmanuel Vadot          Selects ATEST rail to route to GPIO when it's
488354d7675SEmmanuel Vadot          configured in analog-pass-through mode.
489354d7675SEmmanuel Vadot        enum: [1, 2, 3, 4]
490354d7675SEmmanuel Vadot
491354d7675SEmmanuel Vadot      qcom,dtest-buffer:
492354d7675SEmmanuel Vadot        $ref: /schemas/types.yaml#/definitions/uint32
493354d7675SEmmanuel Vadot        description:
494354d7675SEmmanuel Vadot          Selects DTEST rail to route to GPIO when it's
495354d7675SEmmanuel Vadot          configured as digital input.
496354d7675SEmmanuel Vadot        enum: [1, 2, 3, 4]
497354d7675SEmmanuel Vadot
498354d7675SEmmanuel Vadot    required:
499354d7675SEmmanuel Vadot      - pins
500354d7675SEmmanuel Vadot      - function
501354d7675SEmmanuel Vadot
502354d7675SEmmanuel Vadot    additionalProperties: false
503354d7675SEmmanuel Vadot
504354d7675SEmmanuel Vadotexamples:
505354d7675SEmmanuel Vadot  - |
506354d7675SEmmanuel Vadot    #include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
507354d7675SEmmanuel Vadot
508354d7675SEmmanuel Vadot    pm8921_gpio: gpio@150 {
509354d7675SEmmanuel Vadot      compatible = "qcom,pm8921-gpio", "qcom,ssbi-gpio";
510354d7675SEmmanuel Vadot      reg = <0x150 0x160>;
511354d7675SEmmanuel Vadot      interrupt-controller;
512354d7675SEmmanuel Vadot      #interrupt-cells = <2>;
513354d7675SEmmanuel Vadot      gpio-controller;
514354d7675SEmmanuel Vadot      gpio-ranges = <&pm8921_gpio 0 0 44>;
515354d7675SEmmanuel Vadot      #gpio-cells = <2>;
516354d7675SEmmanuel Vadot
517354d7675SEmmanuel Vadot      pm8921_gpio_keys: gpio-keys-state {
518*d5b0e70fSEmmanuel Vadot        volume-keys-pins {
519354d7675SEmmanuel Vadot          pins = "gpio20", "gpio21";
520354d7675SEmmanuel Vadot          function = "normal";
521354d7675SEmmanuel Vadot
522354d7675SEmmanuel Vadot          input-enable;
523354d7675SEmmanuel Vadot          bias-pull-up;
524354d7675SEmmanuel Vadot          drive-push-pull;
525354d7675SEmmanuel Vadot          qcom,drive-strength = <PMIC_GPIO_STRENGTH_NO>;
526354d7675SEmmanuel Vadot          power-source = <PM8921_GPIO_S4>;
527354d7675SEmmanuel Vadot        };
528354d7675SEmmanuel Vadot      };
529354d7675SEmmanuel Vadot    };
530354d7675SEmmanuel Vadot...
531