xref: /freebsd-src/sys/contrib/device-tree/Bindings/pinctrl/qcom,pmic-gpio.yaml (revision b2d2a78ad80ec68d4a17f5aef97d21686cb1e29b)
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
23d5b0e70fSEmmanuel Vadot          - qcom,pm6125-gpio
24354d7675SEmmanuel Vadot          - qcom,pm6150-gpio
25354d7675SEmmanuel Vadot          - qcom,pm6150l-gpio
268cc087a1SEmmanuel Vadot          - qcom,pm6350-gpio
277d0873ebSEmmanuel Vadot          - qcom,pm6450-gpio
287ef62cebSEmmanuel Vadot          - qcom,pm7250b-gpio
29354d7675SEmmanuel Vadot          - qcom,pm7325-gpio
30aa1a8ff2SEmmanuel Vadot          - qcom,pm7550ba-gpio
31354d7675SEmmanuel Vadot          - qcom,pm8005-gpio
32354d7675SEmmanuel Vadot          - qcom,pm8018-gpio
33e67e8565SEmmanuel Vadot          - qcom,pm8019-gpio
34354d7675SEmmanuel Vadot          - qcom,pm8038-gpio
35354d7675SEmmanuel Vadot          - qcom,pm8058-gpio
36354d7675SEmmanuel Vadot          - qcom,pm8150-gpio
37354d7675SEmmanuel Vadot          - qcom,pm8150b-gpio
38d5b0e70fSEmmanuel Vadot          - qcom,pm8150l-gpio
39e67e8565SEmmanuel Vadot          - qcom,pm8226-gpio
40354d7675SEmmanuel Vadot          - qcom,pm8350-gpio
41354d7675SEmmanuel Vadot          - qcom,pm8350b-gpio
42354d7675SEmmanuel Vadot          - qcom,pm8350c-gpio
43c9ccf3a3SEmmanuel Vadot          - qcom,pm8450-gpio
44cb7aa33aSEmmanuel Vadot          - qcom,pm8550-gpio
45cb7aa33aSEmmanuel Vadot          - qcom,pm8550b-gpio
46cb7aa33aSEmmanuel Vadot          - qcom,pm8550ve-gpio
47cb7aa33aSEmmanuel Vadot          - qcom,pm8550vs-gpio
48354d7675SEmmanuel Vadot          - qcom,pm8916-gpio
49354d7675SEmmanuel Vadot          - qcom,pm8917-gpio
50354d7675SEmmanuel Vadot          - qcom,pm8921-gpio
51354d7675SEmmanuel Vadot          - qcom,pm8941-gpio
52354d7675SEmmanuel Vadot          - qcom,pm8950-gpio
53f126890aSEmmanuel Vadot          - qcom,pm8953-gpio
54354d7675SEmmanuel Vadot          - qcom,pm8994-gpio
55354d7675SEmmanuel Vadot          - qcom,pm8998-gpio
56354d7675SEmmanuel Vadot          - qcom,pma8084-gpio
57aa1a8ff2SEmmanuel Vadot          - qcom,pmc8180-gpio
58aa1a8ff2SEmmanuel Vadot          - qcom,pmc8180c-gpio
590e8011faSEmmanuel Vadot          - qcom,pmc8380-gpio
607d0873ebSEmmanuel Vadot          - qcom,pmd8028-gpio
61fac71e4eSEmmanuel Vadot          - qcom,pmi632-gpio
62354d7675SEmmanuel Vadot          - qcom,pmi8950-gpio
63354d7675SEmmanuel Vadot          - qcom,pmi8994-gpio
64354d7675SEmmanuel Vadot          - qcom,pmi8998-gpio
657d0873ebSEmmanuel Vadot          - qcom,pmih0108-gpio
66354d7675SEmmanuel Vadot          - qcom,pmk8350-gpio
67cb7aa33aSEmmanuel Vadot          - qcom,pmk8550-gpio
68d5b0e70fSEmmanuel Vadot          - qcom,pmm8155au-gpio
69fac71e4eSEmmanuel Vadot          - qcom,pmm8654au-gpio
70b97ee269SEmmanuel Vadot          - qcom,pmp8074-gpio
71354d7675SEmmanuel Vadot          - qcom,pmr735a-gpio
72354d7675SEmmanuel Vadot          - qcom,pmr735b-gpio
73cb7aa33aSEmmanuel Vadot          - qcom,pmr735d-gpio
74354d7675SEmmanuel Vadot          - qcom,pms405-gpio
75354d7675SEmmanuel Vadot          - qcom,pmx55-gpio
76d5b0e70fSEmmanuel Vadot          - qcom,pmx65-gpio
77aa1a8ff2SEmmanuel Vadot          - qcom,pmx75-gpio
787d0873ebSEmmanuel Vadot          - qcom,pmxr2230-gpio
79354d7675SEmmanuel Vadot
80354d7675SEmmanuel Vadot      - enum:
81354d7675SEmmanuel Vadot          - qcom,spmi-gpio
82354d7675SEmmanuel Vadot          - qcom,ssbi-gpio
83354d7675SEmmanuel Vadot
84354d7675SEmmanuel Vadot  reg:
85354d7675SEmmanuel Vadot    maxItems: 1
86354d7675SEmmanuel Vadot
87354d7675SEmmanuel Vadot  interrupt-controller: true
88354d7675SEmmanuel Vadot
89354d7675SEmmanuel Vadot  '#interrupt-cells':
90354d7675SEmmanuel Vadot    const: 2
91354d7675SEmmanuel Vadot
92354d7675SEmmanuel Vadot  gpio-controller: true
93354d7675SEmmanuel Vadot
94354d7675SEmmanuel Vadot  gpio-ranges:
95354d7675SEmmanuel Vadot    maxItems: 1
96354d7675SEmmanuel Vadot
97d5b0e70fSEmmanuel Vadot  gpio-line-names:
98d5b0e70fSEmmanuel Vadot    minItems: 2
99d5b0e70fSEmmanuel Vadot    maxItems: 44
100d5b0e70fSEmmanuel Vadot
101d5b0e70fSEmmanuel Vadot  gpio-reserved-ranges:
102d5b0e70fSEmmanuel Vadot    minItems: 1
103d5b0e70fSEmmanuel Vadot    # maxItems as half of total number of GPIOs, as there has to be at
104d5b0e70fSEmmanuel Vadot    # least one usable GPIO between each reserved range.
105d5b0e70fSEmmanuel Vadot    maxItems: 22
106d5b0e70fSEmmanuel Vadot
107354d7675SEmmanuel Vadot  '#gpio-cells':
108354d7675SEmmanuel Vadot    const: 2
109354d7675SEmmanuel Vadot    description:
110354d7675SEmmanuel Vadot      The first cell will be used to define gpio number and the
111354d7675SEmmanuel Vadot      second denotes the flags for this gpio
112354d7675SEmmanuel Vadot
113354d7675SEmmanuel VadotadditionalProperties: false
114354d7675SEmmanuel Vadot
115354d7675SEmmanuel Vadotrequired:
116354d7675SEmmanuel Vadot  - compatible
117354d7675SEmmanuel Vadot  - reg
118354d7675SEmmanuel Vadot  - gpio-controller
119354d7675SEmmanuel Vadot  - '#gpio-cells'
120354d7675SEmmanuel Vadot  - gpio-ranges
121354d7675SEmmanuel Vadot  - interrupt-controller
122354d7675SEmmanuel Vadot
123d5b0e70fSEmmanuel VadotallOf:
124d5b0e70fSEmmanuel Vadot  - if:
125d5b0e70fSEmmanuel Vadot      properties:
126d5b0e70fSEmmanuel Vadot        compatible:
127d5b0e70fSEmmanuel Vadot          contains:
128d5b0e70fSEmmanuel Vadot            enum:
129d5b0e70fSEmmanuel Vadot              - qcom,pmi8950-gpio
130cb7aa33aSEmmanuel Vadot              - qcom,pmr735d-gpio
131d5b0e70fSEmmanuel Vadot    then:
132d5b0e70fSEmmanuel Vadot      properties:
133d5b0e70fSEmmanuel Vadot        gpio-line-names:
134d5b0e70fSEmmanuel Vadot          minItems: 2
135d5b0e70fSEmmanuel Vadot          maxItems: 2
136d5b0e70fSEmmanuel Vadot        gpio-reserved-ranges:
137d5b0e70fSEmmanuel Vadot          maxItems: 1
138d5b0e70fSEmmanuel Vadot
139d5b0e70fSEmmanuel Vadot  - if:
140d5b0e70fSEmmanuel Vadot      properties:
141d5b0e70fSEmmanuel Vadot        compatible:
142d5b0e70fSEmmanuel Vadot          contains:
143d5b0e70fSEmmanuel Vadot            enum:
144d5b0e70fSEmmanuel Vadot              - qcom,pm8005-gpio
145d5b0e70fSEmmanuel Vadot              - qcom,pm8450-gpio
146d5b0e70fSEmmanuel Vadot              - qcom,pm8916-gpio
1477d0873ebSEmmanuel Vadot              - qcom,pmd8028-gpio
148d5b0e70fSEmmanuel Vadot              - qcom,pmk8350-gpio
149d5b0e70fSEmmanuel Vadot              - qcom,pmr735a-gpio
150d5b0e70fSEmmanuel Vadot              - qcom,pmr735b-gpio
151d5b0e70fSEmmanuel Vadot    then:
152d5b0e70fSEmmanuel Vadot      properties:
153d5b0e70fSEmmanuel Vadot        gpio-line-names:
154d5b0e70fSEmmanuel Vadot          minItems: 4
155d5b0e70fSEmmanuel Vadot          maxItems: 4
156d5b0e70fSEmmanuel Vadot        gpio-reserved-ranges:
157d5b0e70fSEmmanuel Vadot          minItems: 1
158d5b0e70fSEmmanuel Vadot          maxItems: 2
159d5b0e70fSEmmanuel Vadot
160d5b0e70fSEmmanuel Vadot  - if:
161d5b0e70fSEmmanuel Vadot      properties:
162d5b0e70fSEmmanuel Vadot        compatible:
163d5b0e70fSEmmanuel Vadot          contains:
164d5b0e70fSEmmanuel Vadot            enum:
165d5b0e70fSEmmanuel Vadot              - qcom,pm8018-gpio
166d5b0e70fSEmmanuel Vadot              - qcom,pm8019-gpio
167cb7aa33aSEmmanuel Vadot              - qcom,pm8550vs-gpio
168cb7aa33aSEmmanuel Vadot              - qcom,pmk8550-gpio
169d5b0e70fSEmmanuel Vadot    then:
170d5b0e70fSEmmanuel Vadot      properties:
171d5b0e70fSEmmanuel Vadot        gpio-line-names:
172d5b0e70fSEmmanuel Vadot          minItems: 6
173d5b0e70fSEmmanuel Vadot          maxItems: 6
174d5b0e70fSEmmanuel Vadot        gpio-reserved-ranges:
175d5b0e70fSEmmanuel Vadot          minItems: 1
176d5b0e70fSEmmanuel Vadot          maxItems: 3
177d5b0e70fSEmmanuel Vadot
178d5b0e70fSEmmanuel Vadot  - if:
179d5b0e70fSEmmanuel Vadot      properties:
180d5b0e70fSEmmanuel Vadot        compatible:
181d5b0e70fSEmmanuel Vadot          contains:
182d5b0e70fSEmmanuel Vadot            enum:
183aa1a8ff2SEmmanuel Vadot              - qcom,pm7550ba-gpio
184b97ee269SEmmanuel Vadot              - qcom,pm8226-gpio
185d5b0e70fSEmmanuel Vadot              - qcom,pm8350b-gpio
186cb7aa33aSEmmanuel Vadot              - qcom,pm8550ve-gpio
187d5b0e70fSEmmanuel Vadot              - qcom,pm8950-gpio
188f126890aSEmmanuel Vadot              - qcom,pm8953-gpio
189fac71e4eSEmmanuel Vadot              - qcom,pmi632-gpio
190d5b0e70fSEmmanuel Vadot    then:
191d5b0e70fSEmmanuel Vadot      properties:
192d5b0e70fSEmmanuel Vadot        gpio-line-names:
193d5b0e70fSEmmanuel Vadot          minItems: 8
194d5b0e70fSEmmanuel Vadot          maxItems: 8
195d5b0e70fSEmmanuel Vadot        gpio-reserved-ranges:
196d5b0e70fSEmmanuel Vadot          minItems: 1
197d5b0e70fSEmmanuel Vadot          maxItems: 4
198d5b0e70fSEmmanuel Vadot
199d5b0e70fSEmmanuel Vadot  - if:
200d5b0e70fSEmmanuel Vadot      properties:
201d5b0e70fSEmmanuel Vadot        compatible:
202d5b0e70fSEmmanuel Vadot          contains:
203d5b0e70fSEmmanuel Vadot            enum:
204d5b0e70fSEmmanuel Vadot              - qcom,pm6350-gpio
2057d0873ebSEmmanuel Vadot              - qcom,pm6450-gpio
206d5b0e70fSEmmanuel Vadot              - qcom,pm8350c-gpio
207d5b0e70fSEmmanuel Vadot    then:
208d5b0e70fSEmmanuel Vadot      properties:
209d5b0e70fSEmmanuel Vadot        gpio-line-names:
210d5b0e70fSEmmanuel Vadot          minItems: 9
211d5b0e70fSEmmanuel Vadot          maxItems: 9
212d5b0e70fSEmmanuel Vadot        gpio-reserved-ranges:
213d5b0e70fSEmmanuel Vadot          minItems: 1
214d5b0e70fSEmmanuel Vadot          maxItems: 5
215d5b0e70fSEmmanuel Vadot
216d5b0e70fSEmmanuel Vadot  - if:
217d5b0e70fSEmmanuel Vadot      properties:
218d5b0e70fSEmmanuel Vadot        compatible:
219d5b0e70fSEmmanuel Vadot          contains:
220d5b0e70fSEmmanuel Vadot            enum:
221d5b0e70fSEmmanuel Vadot              - qcom,pm2250-gpio
222d5b0e70fSEmmanuel Vadot              - qcom,pm6150-gpio
223d5b0e70fSEmmanuel Vadot              - qcom,pm7325-gpio
224d5b0e70fSEmmanuel Vadot              - qcom,pm8150-gpio
225d5b0e70fSEmmanuel Vadot              - qcom,pm8350-gpio
226d5b0e70fSEmmanuel Vadot              - qcom,pmc8180-gpio
2270e8011faSEmmanuel Vadot              - qcom,pmc8380-gpio
228d5b0e70fSEmmanuel Vadot              - qcom,pmi8994-gpio
229d5b0e70fSEmmanuel Vadot              - qcom,pmm8155au-gpio
230d5b0e70fSEmmanuel Vadot    then:
231d5b0e70fSEmmanuel Vadot      properties:
232d5b0e70fSEmmanuel Vadot        gpio-line-names:
233d5b0e70fSEmmanuel Vadot          minItems: 10
234d5b0e70fSEmmanuel Vadot          maxItems: 10
235d5b0e70fSEmmanuel Vadot        gpio-reserved-ranges:
236d5b0e70fSEmmanuel Vadot          minItems: 1
237d5b0e70fSEmmanuel Vadot          maxItems: 5
238d5b0e70fSEmmanuel Vadot
239d5b0e70fSEmmanuel Vadot  - if:
240d5b0e70fSEmmanuel Vadot      properties:
241d5b0e70fSEmmanuel Vadot        compatible:
242d5b0e70fSEmmanuel Vadot          contains:
243d5b0e70fSEmmanuel Vadot            enum:
244d5b0e70fSEmmanuel Vadot              - qcom,pmx55-gpio
245d5b0e70fSEmmanuel Vadot    then:
246d5b0e70fSEmmanuel Vadot      properties:
247d5b0e70fSEmmanuel Vadot        gpio-line-names:
248d5b0e70fSEmmanuel Vadot          minItems: 11
249d5b0e70fSEmmanuel Vadot          maxItems: 11
250d5b0e70fSEmmanuel Vadot        gpio-reserved-ranges:
251d5b0e70fSEmmanuel Vadot          minItems: 1
252d5b0e70fSEmmanuel Vadot          maxItems: 6
253d5b0e70fSEmmanuel Vadot
254d5b0e70fSEmmanuel Vadot  - if:
255d5b0e70fSEmmanuel Vadot      properties:
256d5b0e70fSEmmanuel Vadot        compatible:
257d5b0e70fSEmmanuel Vadot          contains:
258d5b0e70fSEmmanuel Vadot            enum:
259d5b0e70fSEmmanuel Vadot              - qcom,pm660l-gpio
260d5b0e70fSEmmanuel Vadot              - qcom,pm6150l-gpio
2617ef62cebSEmmanuel Vadot              - qcom,pm7250b-gpio
262d5b0e70fSEmmanuel Vadot              - qcom,pm8038-gpio
263d5b0e70fSEmmanuel Vadot              - qcom,pm8150b-gpio
264d5b0e70fSEmmanuel Vadot              - qcom,pm8150l-gpio
265cb7aa33aSEmmanuel Vadot              - qcom,pm8550-gpio
266cb7aa33aSEmmanuel Vadot              - qcom,pm8550b-gpio
267d5b0e70fSEmmanuel Vadot              - qcom,pmc8180c-gpio
268b97ee269SEmmanuel Vadot              - qcom,pmp8074-gpio
269d5b0e70fSEmmanuel Vadot              - qcom,pms405-gpio
2707d0873ebSEmmanuel Vadot              - qcom,pmxr2230-gpio
271d5b0e70fSEmmanuel Vadot    then:
272d5b0e70fSEmmanuel Vadot      properties:
273d5b0e70fSEmmanuel Vadot        gpio-line-names:
274d5b0e70fSEmmanuel Vadot          minItems: 12
275d5b0e70fSEmmanuel Vadot          maxItems: 12
276d5b0e70fSEmmanuel Vadot        gpio-reserved-ranges:
277d5b0e70fSEmmanuel Vadot          minItems: 1
278d5b0e70fSEmmanuel Vadot          maxItems: 6
279d5b0e70fSEmmanuel Vadot
280d5b0e70fSEmmanuel Vadot  - if:
281d5b0e70fSEmmanuel Vadot      properties:
282d5b0e70fSEmmanuel Vadot        compatible:
283d5b0e70fSEmmanuel Vadot          contains:
284d5b0e70fSEmmanuel Vadot            enum:
285d5b0e70fSEmmanuel Vadot              - qcom,pm660-gpio
286d5b0e70fSEmmanuel Vadot    then:
287d5b0e70fSEmmanuel Vadot      properties:
288d5b0e70fSEmmanuel Vadot        gpio-line-names:
289d5b0e70fSEmmanuel Vadot          minItems: 13
290d5b0e70fSEmmanuel Vadot          maxItems: 13
291d5b0e70fSEmmanuel Vadot        gpio-reserved-ranges:
292d5b0e70fSEmmanuel Vadot          minItems: 1
293d5b0e70fSEmmanuel Vadot          maxItems: 7
294d5b0e70fSEmmanuel Vadot
295d5b0e70fSEmmanuel Vadot  - if:
296d5b0e70fSEmmanuel Vadot      properties:
297d5b0e70fSEmmanuel Vadot        compatible:
298d5b0e70fSEmmanuel Vadot          contains:
299d5b0e70fSEmmanuel Vadot            enum:
300d5b0e70fSEmmanuel Vadot              - qcom,pmi8998-gpio
301d5b0e70fSEmmanuel Vadot    then:
302d5b0e70fSEmmanuel Vadot      properties:
303d5b0e70fSEmmanuel Vadot        gpio-line-names:
304d5b0e70fSEmmanuel Vadot          minItems: 14
305d5b0e70fSEmmanuel Vadot          maxItems: 14
306d5b0e70fSEmmanuel Vadot        gpio-reserved-ranges:
307d5b0e70fSEmmanuel Vadot          minItems: 1
308d5b0e70fSEmmanuel Vadot          maxItems: 7
309d5b0e70fSEmmanuel Vadot
310d5b0e70fSEmmanuel Vadot  - if:
311d5b0e70fSEmmanuel Vadot      properties:
312d5b0e70fSEmmanuel Vadot        compatible:
313d5b0e70fSEmmanuel Vadot          contains:
314d5b0e70fSEmmanuel Vadot            enum:
3157d0873ebSEmmanuel Vadot              - qcom,pmih0108-gpio
3167d0873ebSEmmanuel Vadot    then:
3177d0873ebSEmmanuel Vadot      properties:
3187d0873ebSEmmanuel Vadot        gpio-line-names:
3197d0873ebSEmmanuel Vadot          minItems: 18
3207d0873ebSEmmanuel Vadot          maxItems: 18
3217d0873ebSEmmanuel Vadot        gpio-reserved-ranges:
3227d0873ebSEmmanuel Vadot          minItems: 1
3237d0873ebSEmmanuel Vadot          maxItems: 9
3247d0873ebSEmmanuel Vadot
3257d0873ebSEmmanuel Vadot  - if:
3267d0873ebSEmmanuel Vadot      properties:
3277d0873ebSEmmanuel Vadot        compatible:
3287d0873ebSEmmanuel Vadot          contains:
3297d0873ebSEmmanuel Vadot            enum:
330d5b0e70fSEmmanuel Vadot              - qcom,pmx65-gpio
331aa1a8ff2SEmmanuel Vadot              - qcom,pmx75-gpio
332d5b0e70fSEmmanuel Vadot    then:
333d5b0e70fSEmmanuel Vadot      properties:
334d5b0e70fSEmmanuel Vadot        gpio-line-names:
335d5b0e70fSEmmanuel Vadot          minItems: 16
336d5b0e70fSEmmanuel Vadot          maxItems: 16
337d5b0e70fSEmmanuel Vadot        gpio-reserved-ranges:
338d5b0e70fSEmmanuel Vadot          minItems: 1
339d5b0e70fSEmmanuel Vadot          maxItems: 8
340d5b0e70fSEmmanuel Vadot
341d5b0e70fSEmmanuel Vadot  - if:
342d5b0e70fSEmmanuel Vadot      properties:
343d5b0e70fSEmmanuel Vadot        compatible:
344d5b0e70fSEmmanuel Vadot          contains:
345d5b0e70fSEmmanuel Vadot            enum:
346d5b0e70fSEmmanuel Vadot              - qcom,pm8994-gpio
347d5b0e70fSEmmanuel Vadot              - qcom,pma8084-gpio
348d5b0e70fSEmmanuel Vadot    then:
349d5b0e70fSEmmanuel Vadot      properties:
350d5b0e70fSEmmanuel Vadot        gpio-line-names:
351d5b0e70fSEmmanuel Vadot          minItems: 22
352d5b0e70fSEmmanuel Vadot          maxItems: 22
353d5b0e70fSEmmanuel Vadot        gpio-reserved-ranges:
354d5b0e70fSEmmanuel Vadot          minItems: 1
355d5b0e70fSEmmanuel Vadot          maxItems: 11
356d5b0e70fSEmmanuel Vadot
357d5b0e70fSEmmanuel Vadot  - if:
358d5b0e70fSEmmanuel Vadot      properties:
359d5b0e70fSEmmanuel Vadot        compatible:
360d5b0e70fSEmmanuel Vadot          contains:
361d5b0e70fSEmmanuel Vadot            enum:
362d5b0e70fSEmmanuel Vadot              - qcom,pm8998-gpio
363d5b0e70fSEmmanuel Vadot    then:
364d5b0e70fSEmmanuel Vadot      properties:
365d5b0e70fSEmmanuel Vadot        gpio-line-names:
366d5b0e70fSEmmanuel Vadot          minItems: 26
367d5b0e70fSEmmanuel Vadot          maxItems: 26
368d5b0e70fSEmmanuel Vadot        gpio-reserved-ranges:
369d5b0e70fSEmmanuel Vadot          minItems: 1
370d5b0e70fSEmmanuel Vadot          maxItems: 13
371d5b0e70fSEmmanuel Vadot
372d5b0e70fSEmmanuel Vadot  - if:
373d5b0e70fSEmmanuel Vadot      properties:
374d5b0e70fSEmmanuel Vadot        compatible:
375d5b0e70fSEmmanuel Vadot          contains:
376d5b0e70fSEmmanuel Vadot            enum:
377d5b0e70fSEmmanuel Vadot              - qcom,pm8941-gpio
378d5b0e70fSEmmanuel Vadot    then:
379d5b0e70fSEmmanuel Vadot      properties:
380d5b0e70fSEmmanuel Vadot        gpio-line-names:
381d5b0e70fSEmmanuel Vadot          minItems: 36
382d5b0e70fSEmmanuel Vadot          maxItems: 36
383d5b0e70fSEmmanuel Vadot        gpio-reserved-ranges:
384d5b0e70fSEmmanuel Vadot          minItems: 1
385d5b0e70fSEmmanuel Vadot          maxItems: 18
386d5b0e70fSEmmanuel Vadot
387d5b0e70fSEmmanuel Vadot  - if:
388d5b0e70fSEmmanuel Vadot      properties:
389d5b0e70fSEmmanuel Vadot        compatible:
390d5b0e70fSEmmanuel Vadot          contains:
391d5b0e70fSEmmanuel Vadot            enum:
392d5b0e70fSEmmanuel Vadot              - qcom,pm8917-gpio
393d5b0e70fSEmmanuel Vadot    then:
394d5b0e70fSEmmanuel Vadot      properties:
395d5b0e70fSEmmanuel Vadot        gpio-line-names:
396d5b0e70fSEmmanuel Vadot          minItems: 38
397d5b0e70fSEmmanuel Vadot          maxItems: 38
398d5b0e70fSEmmanuel Vadot        gpio-reserved-ranges:
399d5b0e70fSEmmanuel Vadot          minItems: 1
400d5b0e70fSEmmanuel Vadot          maxItems: 19
401d5b0e70fSEmmanuel Vadot
402d5b0e70fSEmmanuel Vadot  - if:
403d5b0e70fSEmmanuel Vadot      properties:
404d5b0e70fSEmmanuel Vadot        compatible:
405d5b0e70fSEmmanuel Vadot          contains:
406d5b0e70fSEmmanuel Vadot            enum:
407d5b0e70fSEmmanuel Vadot              - qcom,pm8058-gpio
408d5b0e70fSEmmanuel Vadot              - qcom,pm8921-gpio
409d5b0e70fSEmmanuel Vadot    then:
410d5b0e70fSEmmanuel Vadot      properties:
411d5b0e70fSEmmanuel Vadot        gpio-line-names:
412d5b0e70fSEmmanuel Vadot          minItems: 44
413d5b0e70fSEmmanuel Vadot          maxItems: 44
414d5b0e70fSEmmanuel Vadot        gpio-reserved-ranges:
415d5b0e70fSEmmanuel Vadot          minItems: 1
416d5b0e70fSEmmanuel Vadot          maxItems: 22
417d5b0e70fSEmmanuel Vadot
418354d7675SEmmanuel VadotpatternProperties:
419354d7675SEmmanuel Vadot  '-state$':
420354d7675SEmmanuel Vadot    oneOf:
421354d7675SEmmanuel Vadot      - $ref: "#/$defs/qcom-pmic-gpio-state"
422354d7675SEmmanuel Vadot      - patternProperties:
423d5b0e70fSEmmanuel Vadot          "(pinconf|-pins)$":
424354d7675SEmmanuel Vadot            $ref: "#/$defs/qcom-pmic-gpio-state"
425d5b0e70fSEmmanuel Vadot        additionalProperties: false
426354d7675SEmmanuel Vadot
4277d0873ebSEmmanuel Vadot  "-hog(-[0-9]+)?$":
428*b2d2a78aSEmmanuel Vadot    type: object
4297d0873ebSEmmanuel Vadot    required:
4307d0873ebSEmmanuel Vadot      - gpio-hog
4317d0873ebSEmmanuel Vadot
432354d7675SEmmanuel Vadot$defs:
433354d7675SEmmanuel Vadot  qcom-pmic-gpio-state:
434354d7675SEmmanuel Vadot    type: object
435354d7675SEmmanuel Vadot    allOf:
436fac71e4eSEmmanuel Vadot      - $ref: pinmux-node.yaml
437fac71e4eSEmmanuel Vadot      - $ref: pincfg-node.yaml
438354d7675SEmmanuel Vadot    properties:
439354d7675SEmmanuel Vadot      pins:
440354d7675SEmmanuel Vadot        description:
441354d7675SEmmanuel Vadot          List of gpio pins affected by the properties specified in
442354d7675SEmmanuel Vadot          this subnode.  Valid pins are
443d5b0e70fSEmmanuel Vadot                 - gpio1-gpio9 for pm6125
444354d7675SEmmanuel Vadot                 - gpio1-gpio10 for pm6150
445354d7675SEmmanuel Vadot                 - gpio1-gpio12 for pm6150l
4468cc087a1SEmmanuel Vadot                 - gpio1-gpio9 for pm6350
4477d0873ebSEmmanuel Vadot                 - gpio1-gpio9 for pm6450
4487ef62cebSEmmanuel Vadot                 - gpio1-gpio12 for pm7250b
449354d7675SEmmanuel Vadot                 - gpio1-gpio10 for pm7325
450aa1a8ff2SEmmanuel Vadot                 - gpio1-gpio8 for pm7550ba
451354d7675SEmmanuel Vadot                 - gpio1-gpio4 for pm8005
452354d7675SEmmanuel Vadot                 - gpio1-gpio6 for pm8018
453354d7675SEmmanuel Vadot                 - gpio1-gpio12 for pm8038
454354d7675SEmmanuel Vadot                 - gpio1-gpio40 for pm8058
455354d7675SEmmanuel Vadot                 - gpio1-gpio10 for pm8150 (holes on gpio2, gpio5,
456354d7675SEmmanuel Vadot                                            gpio7 and gpio8)
457354d7675SEmmanuel Vadot                 - gpio1-gpio12 for pm8150b (holes on gpio3, gpio4
458354d7675SEmmanuel Vadot                                             and gpio7)
459354d7675SEmmanuel Vadot                 - gpio1-gpio12 for pm8150l (hole on gpio7)
460354d7675SEmmanuel Vadot                 - gpio1-gpio4 for pm8916
461354d7675SEmmanuel Vadot                 - gpio1-gpio10 for pm8350
462354d7675SEmmanuel Vadot                 - gpio1-gpio8 for pm8350b
463354d7675SEmmanuel Vadot                 - gpio1-gpio9 for pm8350c
4647ef62cebSEmmanuel Vadot                 - gpio1-gpio4 for pm8450
465cb7aa33aSEmmanuel Vadot                 - gpio1-gpio12 for pm8550
466cb7aa33aSEmmanuel Vadot                 - gpio1-gpio12 for pm8550b
467cb7aa33aSEmmanuel Vadot                 - gpio1-gpio8 for pm8550ve
468cb7aa33aSEmmanuel Vadot                 - gpio1-gpio6 for pm8550vs
469354d7675SEmmanuel Vadot                 - gpio1-gpio38 for pm8917
470354d7675SEmmanuel Vadot                 - gpio1-gpio44 for pm8921
471354d7675SEmmanuel Vadot                 - gpio1-gpio36 for pm8941
472354d7675SEmmanuel Vadot                 - gpio1-gpio8 for pm8950 (hole on gpio3)
473f126890aSEmmanuel Vadot                 - gpio1-gpio8 for pm8953 (hole on gpio3 and gpio6)
474354d7675SEmmanuel Vadot                 - gpio1-gpio22 for pm8994
475354d7675SEmmanuel Vadot                 - gpio1-gpio26 for pm8998
476354d7675SEmmanuel Vadot                 - gpio1-gpio22 for pma8084
4777d0873ebSEmmanuel Vadot                 - gpio1-gpio4 for pmd8028
478fac71e4eSEmmanuel Vadot                 - gpio1-gpio8 for pmi632
479354d7675SEmmanuel Vadot                 - gpio1-gpio2 for pmi8950
480354d7675SEmmanuel Vadot                 - gpio1-gpio10 for pmi8994
4817d0873ebSEmmanuel Vadot                 - gpio1-gpio18 for pmih0108
482354d7675SEmmanuel Vadot                 - gpio1-gpio4 for pmk8350
483cb7aa33aSEmmanuel Vadot                 - gpio1-gpio6 for pmk8550
484d5b0e70fSEmmanuel Vadot                 - gpio1-gpio10 for pmm8155au
485fac71e4eSEmmanuel Vadot                 - gpio1-gpio12 for pmm8654au
486b97ee269SEmmanuel Vadot                 - gpio1-gpio12 for pmp8074 (holes on gpio1 and gpio12)
487354d7675SEmmanuel Vadot                 - gpio1-gpio4 for pmr735a
488354d7675SEmmanuel Vadot                 - gpio1-gpio4 for pmr735b
489cb7aa33aSEmmanuel Vadot                 - gpio1-gpio2 for pmr735d
490354d7675SEmmanuel Vadot                 - gpio1-gpio12 for pms405 (holes on gpio1, gpio9
491354d7675SEmmanuel Vadot                                            and gpio10)
492354d7675SEmmanuel Vadot                 - gpio1-gpio11 for pmx55 (holes on gpio3, gpio7, gpio10
493354d7675SEmmanuel Vadot                                            and gpio11)
494d5b0e70fSEmmanuel Vadot                 - gpio1-gpio16 for pmx65
495aa1a8ff2SEmmanuel Vadot                 - gpio1-gpio16 for pmx75
4967d0873ebSEmmanuel Vadot                 - gpio1-gpio12 for pmxr2230
497354d7675SEmmanuel Vadot
498354d7675SEmmanuel Vadot        items:
499354d7675SEmmanuel Vadot          pattern: "^gpio([0-9]+)$"
500354d7675SEmmanuel Vadot
501354d7675SEmmanuel Vadot      function:
502354d7675SEmmanuel Vadot        items:
503354d7675SEmmanuel Vadot          - enum:
504354d7675SEmmanuel Vadot              - normal
505354d7675SEmmanuel Vadot              - paired
506354d7675SEmmanuel Vadot              - func1
507354d7675SEmmanuel Vadot              - func2
508354d7675SEmmanuel Vadot              - dtest1
509354d7675SEmmanuel Vadot              - dtest2
510354d7675SEmmanuel Vadot              - dtest3
511354d7675SEmmanuel Vadot              - dtest4
512354d7675SEmmanuel Vadot              - func3  # supported by LV/MV GPIO subtypes
513354d7675SEmmanuel Vadot              - func4  # supported by LV/MV GPIO subtypes
514354d7675SEmmanuel Vadot
515354d7675SEmmanuel Vadot      bias-disable: true
516354d7675SEmmanuel Vadot      bias-pull-down: true
517354d7675SEmmanuel Vadot      bias-pull-up: true
518354d7675SEmmanuel Vadot
519354d7675SEmmanuel Vadot      qcom,pull-up-strength:
520354d7675SEmmanuel Vadot        $ref: /schemas/types.yaml#/definitions/uint32
521354d7675SEmmanuel Vadot        description:
522354d7675SEmmanuel Vadot          Specifies the strength to use for pull up, if selected.
523354d7675SEmmanuel Vadot          Valid values are defined in
524354d7675SEmmanuel Vadot          <dt-bindings/pinctrl/qcom,pmic-gpio.h>
525354d7675SEmmanuel Vadot          If this property is omitted 30uA strength will be used
526354d7675SEmmanuel Vadot          if pull up is selected
527354d7675SEmmanuel Vadot        enum: [0, 1, 2, 3]
528354d7675SEmmanuel Vadot
529354d7675SEmmanuel Vadot      bias-high-impedance: true
530354d7675SEmmanuel Vadot      input-enable: true
531d5b0e70fSEmmanuel Vadot      input-disable: true
532354d7675SEmmanuel Vadot      output-high: true
533354d7675SEmmanuel Vadot      output-low: true
5348cc087a1SEmmanuel Vadot      output-enable: true
5358cc087a1SEmmanuel Vadot      output-disable: true
536354d7675SEmmanuel Vadot      power-source: true
537354d7675SEmmanuel Vadot
538354d7675SEmmanuel Vadot      qcom,drive-strength:
539354d7675SEmmanuel Vadot        $ref: /schemas/types.yaml#/definitions/uint32
540354d7675SEmmanuel Vadot        description:
541354d7675SEmmanuel Vadot          Selects the drive strength for the specified pins
542354d7675SEmmanuel Vadot          Valid drive strength values are defined in
543354d7675SEmmanuel Vadot          <dt-bindings/pinctrl/qcom,pmic-gpio.h>
544354d7675SEmmanuel Vadot        enum: [0, 1, 2, 3]
545354d7675SEmmanuel Vadot
546354d7675SEmmanuel Vadot      drive-push-pull: true
547354d7675SEmmanuel Vadot      drive-open-drain: true
548354d7675SEmmanuel Vadot      drive-open-source: true
549354d7675SEmmanuel Vadot
550354d7675SEmmanuel Vadot      qcom,analog-pass:
551354d7675SEmmanuel Vadot        $ref: /schemas/types.yaml#/definitions/flag
552354d7675SEmmanuel Vadot        description:
553354d7675SEmmanuel Vadot          The specified pins are configured in
554354d7675SEmmanuel Vadot          analog-pass-through mode.
555354d7675SEmmanuel Vadot
556354d7675SEmmanuel Vadot      qcom,atest:
557354d7675SEmmanuel Vadot        $ref: /schemas/types.yaml#/definitions/uint32
558354d7675SEmmanuel Vadot        description:
559354d7675SEmmanuel Vadot          Selects ATEST rail to route to GPIO when it's
560354d7675SEmmanuel Vadot          configured in analog-pass-through mode.
561354d7675SEmmanuel Vadot        enum: [1, 2, 3, 4]
562354d7675SEmmanuel Vadot
563354d7675SEmmanuel Vadot      qcom,dtest-buffer:
564354d7675SEmmanuel Vadot        $ref: /schemas/types.yaml#/definitions/uint32
565354d7675SEmmanuel Vadot        description:
566354d7675SEmmanuel Vadot          Selects DTEST rail to route to GPIO when it's
567354d7675SEmmanuel Vadot          configured as digital input.
568354d7675SEmmanuel Vadot        enum: [1, 2, 3, 4]
569354d7675SEmmanuel Vadot
570354d7675SEmmanuel Vadot    required:
571354d7675SEmmanuel Vadot      - pins
572354d7675SEmmanuel Vadot      - function
573354d7675SEmmanuel Vadot
574354d7675SEmmanuel Vadot    additionalProperties: false
575354d7675SEmmanuel Vadot
576354d7675SEmmanuel Vadotexamples:
577354d7675SEmmanuel Vadot  - |
5787d0873ebSEmmanuel Vadot    #include <dt-bindings/gpio/gpio.h>
579354d7675SEmmanuel Vadot    #include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
580354d7675SEmmanuel Vadot
581354d7675SEmmanuel Vadot    pm8921_gpio: gpio@150 {
582354d7675SEmmanuel Vadot      compatible = "qcom,pm8921-gpio", "qcom,ssbi-gpio";
583354d7675SEmmanuel Vadot      reg = <0x150 0x160>;
584354d7675SEmmanuel Vadot      interrupt-controller;
585354d7675SEmmanuel Vadot      #interrupt-cells = <2>;
586354d7675SEmmanuel Vadot      gpio-controller;
587354d7675SEmmanuel Vadot      gpio-ranges = <&pm8921_gpio 0 0 44>;
588354d7675SEmmanuel Vadot      #gpio-cells = <2>;
589354d7675SEmmanuel Vadot
590354d7675SEmmanuel Vadot      pm8921_gpio_keys: gpio-keys-state {
591d5b0e70fSEmmanuel Vadot        volume-keys-pins {
592354d7675SEmmanuel Vadot          pins = "gpio20", "gpio21";
593354d7675SEmmanuel Vadot          function = "normal";
594354d7675SEmmanuel Vadot
595354d7675SEmmanuel Vadot          input-enable;
596354d7675SEmmanuel Vadot          bias-pull-up;
597354d7675SEmmanuel Vadot          drive-push-pull;
598354d7675SEmmanuel Vadot          qcom,drive-strength = <PMIC_GPIO_STRENGTH_NO>;
599354d7675SEmmanuel Vadot          power-source = <PM8921_GPIO_S4>;
600354d7675SEmmanuel Vadot        };
601354d7675SEmmanuel Vadot      };
6027d0873ebSEmmanuel Vadot
6037d0873ebSEmmanuel Vadot      otg-hog {
6047d0873ebSEmmanuel Vadot        gpio-hog;
6057d0873ebSEmmanuel Vadot        gpios = <35 GPIO_ACTIVE_HIGH>;
6067d0873ebSEmmanuel Vadot        output-high;
6077d0873ebSEmmanuel Vadot        line-name = "otg-gpio";
6087d0873ebSEmmanuel Vadot      };
609354d7675SEmmanuel Vadot    };
610354d7675SEmmanuel Vadot...
611