162306a36Sopenharmony_ci# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
262306a36Sopenharmony_ci%YAML 1.2
362306a36Sopenharmony_ci---
462306a36Sopenharmony_ci$id: http://devicetree.org/schemas/pinctrl/qcom,pmic-gpio.yaml#
562306a36Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml#
662306a36Sopenharmony_ci
762306a36Sopenharmony_cititle: Qualcomm PMIC GPIO block
862306a36Sopenharmony_ci
962306a36Sopenharmony_cimaintainers:
1062306a36Sopenharmony_ci  - Bjorn Andersson <bjorn.andersson@linaro.org>
1162306a36Sopenharmony_ci
1262306a36Sopenharmony_cidescription:
1362306a36Sopenharmony_ci  This binding describes the GPIO block(s) found in the 8xxx series of
1462306a36Sopenharmony_ci  PMIC's from Qualcomm.
1562306a36Sopenharmony_ci
1662306a36Sopenharmony_ciproperties:
1762306a36Sopenharmony_ci  compatible:
1862306a36Sopenharmony_ci    items:
1962306a36Sopenharmony_ci      - enum:
2062306a36Sopenharmony_ci          - qcom,pm2250-gpio
2162306a36Sopenharmony_ci          - qcom,pm660-gpio
2262306a36Sopenharmony_ci          - qcom,pm660l-gpio
2362306a36Sopenharmony_ci          - qcom,pm6125-gpio
2462306a36Sopenharmony_ci          - qcom,pm6150-gpio
2562306a36Sopenharmony_ci          - qcom,pm6150l-gpio
2662306a36Sopenharmony_ci          - qcom,pm6350-gpio
2762306a36Sopenharmony_ci          - qcom,pm7250b-gpio
2862306a36Sopenharmony_ci          - qcom,pm7325-gpio
2962306a36Sopenharmony_ci          - qcom,pm7550ba-gpio
3062306a36Sopenharmony_ci          - qcom,pm8005-gpio
3162306a36Sopenharmony_ci          - qcom,pm8008-gpio
3262306a36Sopenharmony_ci          - qcom,pm8018-gpio
3362306a36Sopenharmony_ci          - qcom,pm8019-gpio
3462306a36Sopenharmony_ci          - qcom,pm8038-gpio
3562306a36Sopenharmony_ci          - qcom,pm8058-gpio
3662306a36Sopenharmony_ci          - qcom,pm8150-gpio
3762306a36Sopenharmony_ci          - qcom,pm8150b-gpio
3862306a36Sopenharmony_ci          - qcom,pm8150l-gpio
3962306a36Sopenharmony_ci          - qcom,pm8226-gpio
4062306a36Sopenharmony_ci          - qcom,pm8350-gpio
4162306a36Sopenharmony_ci          - qcom,pm8350b-gpio
4262306a36Sopenharmony_ci          - qcom,pm8350c-gpio
4362306a36Sopenharmony_ci          - qcom,pm8450-gpio
4462306a36Sopenharmony_ci          - qcom,pm8550-gpio
4562306a36Sopenharmony_ci          - qcom,pm8550b-gpio
4662306a36Sopenharmony_ci          - qcom,pm8550ve-gpio
4762306a36Sopenharmony_ci          - qcom,pm8550vs-gpio
4862306a36Sopenharmony_ci          - qcom,pm8916-gpio
4962306a36Sopenharmony_ci          - qcom,pm8917-gpio
5062306a36Sopenharmony_ci          - qcom,pm8921-gpio
5162306a36Sopenharmony_ci          - qcom,pm8941-gpio
5262306a36Sopenharmony_ci          - qcom,pm8950-gpio
5362306a36Sopenharmony_ci          - qcom,pm8953-gpio
5462306a36Sopenharmony_ci          - qcom,pm8994-gpio
5562306a36Sopenharmony_ci          - qcom,pm8998-gpio
5662306a36Sopenharmony_ci          - qcom,pma8084-gpio
5762306a36Sopenharmony_ci          - qcom,pmc8180-gpio
5862306a36Sopenharmony_ci          - qcom,pmc8180c-gpio
5962306a36Sopenharmony_ci          - qcom,pmi632-gpio
6062306a36Sopenharmony_ci          - qcom,pmi8950-gpio
6162306a36Sopenharmony_ci          - qcom,pmi8994-gpio
6262306a36Sopenharmony_ci          - qcom,pmi8998-gpio
6362306a36Sopenharmony_ci          - qcom,pmk8350-gpio
6462306a36Sopenharmony_ci          - qcom,pmk8550-gpio
6562306a36Sopenharmony_ci          - qcom,pmm8155au-gpio
6662306a36Sopenharmony_ci          - qcom,pmm8654au-gpio
6762306a36Sopenharmony_ci          - qcom,pmp8074-gpio
6862306a36Sopenharmony_ci          - qcom,pmr735a-gpio
6962306a36Sopenharmony_ci          - qcom,pmr735b-gpio
7062306a36Sopenharmony_ci          - qcom,pmr735d-gpio
7162306a36Sopenharmony_ci          - qcom,pms405-gpio
7262306a36Sopenharmony_ci          - qcom,pmx55-gpio
7362306a36Sopenharmony_ci          - qcom,pmx65-gpio
7462306a36Sopenharmony_ci          - qcom,pmx75-gpio
7562306a36Sopenharmony_ci
7662306a36Sopenharmony_ci      - enum:
7762306a36Sopenharmony_ci          - qcom,spmi-gpio
7862306a36Sopenharmony_ci          - qcom,ssbi-gpio
7962306a36Sopenharmony_ci
8062306a36Sopenharmony_ci  reg:
8162306a36Sopenharmony_ci    maxItems: 1
8262306a36Sopenharmony_ci
8362306a36Sopenharmony_ci  interrupt-controller: true
8462306a36Sopenharmony_ci
8562306a36Sopenharmony_ci  '#interrupt-cells':
8662306a36Sopenharmony_ci    const: 2
8762306a36Sopenharmony_ci
8862306a36Sopenharmony_ci  gpio-controller: true
8962306a36Sopenharmony_ci
9062306a36Sopenharmony_ci  gpio-ranges:
9162306a36Sopenharmony_ci    maxItems: 1
9262306a36Sopenharmony_ci
9362306a36Sopenharmony_ci  gpio-line-names:
9462306a36Sopenharmony_ci    minItems: 2
9562306a36Sopenharmony_ci    maxItems: 44
9662306a36Sopenharmony_ci
9762306a36Sopenharmony_ci  gpio-reserved-ranges:
9862306a36Sopenharmony_ci    minItems: 1
9962306a36Sopenharmony_ci    # maxItems as half of total number of GPIOs, as there has to be at
10062306a36Sopenharmony_ci    # least one usable GPIO between each reserved range.
10162306a36Sopenharmony_ci    maxItems: 22
10262306a36Sopenharmony_ci
10362306a36Sopenharmony_ci  '#gpio-cells':
10462306a36Sopenharmony_ci    const: 2
10562306a36Sopenharmony_ci    description:
10662306a36Sopenharmony_ci      The first cell will be used to define gpio number and the
10762306a36Sopenharmony_ci      second denotes the flags for this gpio
10862306a36Sopenharmony_ci
10962306a36Sopenharmony_ciadditionalProperties: false
11062306a36Sopenharmony_ci
11162306a36Sopenharmony_cirequired:
11262306a36Sopenharmony_ci  - compatible
11362306a36Sopenharmony_ci  - reg
11462306a36Sopenharmony_ci  - gpio-controller
11562306a36Sopenharmony_ci  - '#gpio-cells'
11662306a36Sopenharmony_ci  - gpio-ranges
11762306a36Sopenharmony_ci  - interrupt-controller
11862306a36Sopenharmony_ci
11962306a36Sopenharmony_ciallOf:
12062306a36Sopenharmony_ci  - if:
12162306a36Sopenharmony_ci      properties:
12262306a36Sopenharmony_ci        compatible:
12362306a36Sopenharmony_ci          contains:
12462306a36Sopenharmony_ci            enum:
12562306a36Sopenharmony_ci              - qcom,pm8008-gpio
12662306a36Sopenharmony_ci              - qcom,pmi8950-gpio
12762306a36Sopenharmony_ci              - qcom,pmr735d-gpio
12862306a36Sopenharmony_ci    then:
12962306a36Sopenharmony_ci      properties:
13062306a36Sopenharmony_ci        gpio-line-names:
13162306a36Sopenharmony_ci          minItems: 2
13262306a36Sopenharmony_ci          maxItems: 2
13362306a36Sopenharmony_ci        gpio-reserved-ranges:
13462306a36Sopenharmony_ci          maxItems: 1
13562306a36Sopenharmony_ci
13662306a36Sopenharmony_ci  - if:
13762306a36Sopenharmony_ci      properties:
13862306a36Sopenharmony_ci        compatible:
13962306a36Sopenharmony_ci          contains:
14062306a36Sopenharmony_ci            enum:
14162306a36Sopenharmony_ci              - qcom,pm8005-gpio
14262306a36Sopenharmony_ci              - qcom,pm8450-gpio
14362306a36Sopenharmony_ci              - qcom,pm8916-gpio
14462306a36Sopenharmony_ci              - qcom,pmk8350-gpio
14562306a36Sopenharmony_ci              - qcom,pmr735a-gpio
14662306a36Sopenharmony_ci              - qcom,pmr735b-gpio
14762306a36Sopenharmony_ci    then:
14862306a36Sopenharmony_ci      properties:
14962306a36Sopenharmony_ci        gpio-line-names:
15062306a36Sopenharmony_ci          minItems: 4
15162306a36Sopenharmony_ci          maxItems: 4
15262306a36Sopenharmony_ci        gpio-reserved-ranges:
15362306a36Sopenharmony_ci          minItems: 1
15462306a36Sopenharmony_ci          maxItems: 2
15562306a36Sopenharmony_ci
15662306a36Sopenharmony_ci  - if:
15762306a36Sopenharmony_ci      properties:
15862306a36Sopenharmony_ci        compatible:
15962306a36Sopenharmony_ci          contains:
16062306a36Sopenharmony_ci            enum:
16162306a36Sopenharmony_ci              - qcom,pm8018-gpio
16262306a36Sopenharmony_ci              - qcom,pm8019-gpio
16362306a36Sopenharmony_ci              - qcom,pm8550vs-gpio
16462306a36Sopenharmony_ci              - qcom,pmk8550-gpio
16562306a36Sopenharmony_ci    then:
16662306a36Sopenharmony_ci      properties:
16762306a36Sopenharmony_ci        gpio-line-names:
16862306a36Sopenharmony_ci          minItems: 6
16962306a36Sopenharmony_ci          maxItems: 6
17062306a36Sopenharmony_ci        gpio-reserved-ranges:
17162306a36Sopenharmony_ci          minItems: 1
17262306a36Sopenharmony_ci          maxItems: 3
17362306a36Sopenharmony_ci
17462306a36Sopenharmony_ci  - if:
17562306a36Sopenharmony_ci      properties:
17662306a36Sopenharmony_ci        compatible:
17762306a36Sopenharmony_ci          contains:
17862306a36Sopenharmony_ci            enum:
17962306a36Sopenharmony_ci              - qcom,pm7550ba-gpio
18062306a36Sopenharmony_ci              - qcom,pm8226-gpio
18162306a36Sopenharmony_ci              - qcom,pm8350b-gpio
18262306a36Sopenharmony_ci              - qcom,pm8550ve-gpio
18362306a36Sopenharmony_ci              - qcom,pm8950-gpio
18462306a36Sopenharmony_ci              - qcom,pm8953-gpio
18562306a36Sopenharmony_ci              - qcom,pmi632-gpio
18662306a36Sopenharmony_ci    then:
18762306a36Sopenharmony_ci      properties:
18862306a36Sopenharmony_ci        gpio-line-names:
18962306a36Sopenharmony_ci          minItems: 8
19062306a36Sopenharmony_ci          maxItems: 8
19162306a36Sopenharmony_ci        gpio-reserved-ranges:
19262306a36Sopenharmony_ci          minItems: 1
19362306a36Sopenharmony_ci          maxItems: 4
19462306a36Sopenharmony_ci
19562306a36Sopenharmony_ci  - if:
19662306a36Sopenharmony_ci      properties:
19762306a36Sopenharmony_ci        compatible:
19862306a36Sopenharmony_ci          contains:
19962306a36Sopenharmony_ci            enum:
20062306a36Sopenharmony_ci              - qcom,pm6350-gpio
20162306a36Sopenharmony_ci              - qcom,pm8350c-gpio
20262306a36Sopenharmony_ci    then:
20362306a36Sopenharmony_ci      properties:
20462306a36Sopenharmony_ci        gpio-line-names:
20562306a36Sopenharmony_ci          minItems: 9
20662306a36Sopenharmony_ci          maxItems: 9
20762306a36Sopenharmony_ci        gpio-reserved-ranges:
20862306a36Sopenharmony_ci          minItems: 1
20962306a36Sopenharmony_ci          maxItems: 5
21062306a36Sopenharmony_ci
21162306a36Sopenharmony_ci  - if:
21262306a36Sopenharmony_ci      properties:
21362306a36Sopenharmony_ci        compatible:
21462306a36Sopenharmony_ci          contains:
21562306a36Sopenharmony_ci            enum:
21662306a36Sopenharmony_ci              - qcom,pm2250-gpio
21762306a36Sopenharmony_ci              - qcom,pm6150-gpio
21862306a36Sopenharmony_ci              - qcom,pm7325-gpio
21962306a36Sopenharmony_ci              - qcom,pm8150-gpio
22062306a36Sopenharmony_ci              - qcom,pm8350-gpio
22162306a36Sopenharmony_ci              - qcom,pmc8180-gpio
22262306a36Sopenharmony_ci              - qcom,pmi8994-gpio
22362306a36Sopenharmony_ci              - qcom,pmm8155au-gpio
22462306a36Sopenharmony_ci    then:
22562306a36Sopenharmony_ci      properties:
22662306a36Sopenharmony_ci        gpio-line-names:
22762306a36Sopenharmony_ci          minItems: 10
22862306a36Sopenharmony_ci          maxItems: 10
22962306a36Sopenharmony_ci        gpio-reserved-ranges:
23062306a36Sopenharmony_ci          minItems: 1
23162306a36Sopenharmony_ci          maxItems: 5
23262306a36Sopenharmony_ci
23362306a36Sopenharmony_ci  - if:
23462306a36Sopenharmony_ci      properties:
23562306a36Sopenharmony_ci        compatible:
23662306a36Sopenharmony_ci          contains:
23762306a36Sopenharmony_ci            enum:
23862306a36Sopenharmony_ci              - qcom,pmx55-gpio
23962306a36Sopenharmony_ci    then:
24062306a36Sopenharmony_ci      properties:
24162306a36Sopenharmony_ci        gpio-line-names:
24262306a36Sopenharmony_ci          minItems: 11
24362306a36Sopenharmony_ci          maxItems: 11
24462306a36Sopenharmony_ci        gpio-reserved-ranges:
24562306a36Sopenharmony_ci          minItems: 1
24662306a36Sopenharmony_ci          maxItems: 6
24762306a36Sopenharmony_ci
24862306a36Sopenharmony_ci  - if:
24962306a36Sopenharmony_ci      properties:
25062306a36Sopenharmony_ci        compatible:
25162306a36Sopenharmony_ci          contains:
25262306a36Sopenharmony_ci            enum:
25362306a36Sopenharmony_ci              - qcom,pm660l-gpio
25462306a36Sopenharmony_ci              - qcom,pm6150l-gpio
25562306a36Sopenharmony_ci              - qcom,pm7250b-gpio
25662306a36Sopenharmony_ci              - qcom,pm8038-gpio
25762306a36Sopenharmony_ci              - qcom,pm8150b-gpio
25862306a36Sopenharmony_ci              - qcom,pm8150l-gpio
25962306a36Sopenharmony_ci              - qcom,pm8550-gpio
26062306a36Sopenharmony_ci              - qcom,pm8550b-gpio
26162306a36Sopenharmony_ci              - qcom,pmc8180c-gpio
26262306a36Sopenharmony_ci              - qcom,pmp8074-gpio
26362306a36Sopenharmony_ci              - qcom,pms405-gpio
26462306a36Sopenharmony_ci    then:
26562306a36Sopenharmony_ci      properties:
26662306a36Sopenharmony_ci        gpio-line-names:
26762306a36Sopenharmony_ci          minItems: 12
26862306a36Sopenharmony_ci          maxItems: 12
26962306a36Sopenharmony_ci        gpio-reserved-ranges:
27062306a36Sopenharmony_ci          minItems: 1
27162306a36Sopenharmony_ci          maxItems: 6
27262306a36Sopenharmony_ci
27362306a36Sopenharmony_ci  - if:
27462306a36Sopenharmony_ci      properties:
27562306a36Sopenharmony_ci        compatible:
27662306a36Sopenharmony_ci          contains:
27762306a36Sopenharmony_ci            enum:
27862306a36Sopenharmony_ci              - qcom,pm660-gpio
27962306a36Sopenharmony_ci    then:
28062306a36Sopenharmony_ci      properties:
28162306a36Sopenharmony_ci        gpio-line-names:
28262306a36Sopenharmony_ci          minItems: 13
28362306a36Sopenharmony_ci          maxItems: 13
28462306a36Sopenharmony_ci        gpio-reserved-ranges:
28562306a36Sopenharmony_ci          minItems: 1
28662306a36Sopenharmony_ci          maxItems: 7
28762306a36Sopenharmony_ci
28862306a36Sopenharmony_ci  - if:
28962306a36Sopenharmony_ci      properties:
29062306a36Sopenharmony_ci        compatible:
29162306a36Sopenharmony_ci          contains:
29262306a36Sopenharmony_ci            enum:
29362306a36Sopenharmony_ci              - qcom,pmi8998-gpio
29462306a36Sopenharmony_ci    then:
29562306a36Sopenharmony_ci      properties:
29662306a36Sopenharmony_ci        gpio-line-names:
29762306a36Sopenharmony_ci          minItems: 14
29862306a36Sopenharmony_ci          maxItems: 14
29962306a36Sopenharmony_ci        gpio-reserved-ranges:
30062306a36Sopenharmony_ci          minItems: 1
30162306a36Sopenharmony_ci          maxItems: 7
30262306a36Sopenharmony_ci
30362306a36Sopenharmony_ci  - if:
30462306a36Sopenharmony_ci      properties:
30562306a36Sopenharmony_ci        compatible:
30662306a36Sopenharmony_ci          contains:
30762306a36Sopenharmony_ci            enum:
30862306a36Sopenharmony_ci              - qcom,pmx65-gpio
30962306a36Sopenharmony_ci              - qcom,pmx75-gpio
31062306a36Sopenharmony_ci    then:
31162306a36Sopenharmony_ci      properties:
31262306a36Sopenharmony_ci        gpio-line-names:
31362306a36Sopenharmony_ci          minItems: 16
31462306a36Sopenharmony_ci          maxItems: 16
31562306a36Sopenharmony_ci        gpio-reserved-ranges:
31662306a36Sopenharmony_ci          minItems: 1
31762306a36Sopenharmony_ci          maxItems: 8
31862306a36Sopenharmony_ci
31962306a36Sopenharmony_ci  - if:
32062306a36Sopenharmony_ci      properties:
32162306a36Sopenharmony_ci        compatible:
32262306a36Sopenharmony_ci          contains:
32362306a36Sopenharmony_ci            enum:
32462306a36Sopenharmony_ci              - qcom,pm8994-gpio
32562306a36Sopenharmony_ci              - qcom,pma8084-gpio
32662306a36Sopenharmony_ci    then:
32762306a36Sopenharmony_ci      properties:
32862306a36Sopenharmony_ci        gpio-line-names:
32962306a36Sopenharmony_ci          minItems: 22
33062306a36Sopenharmony_ci          maxItems: 22
33162306a36Sopenharmony_ci        gpio-reserved-ranges:
33262306a36Sopenharmony_ci          minItems: 1
33362306a36Sopenharmony_ci          maxItems: 11
33462306a36Sopenharmony_ci
33562306a36Sopenharmony_ci  - if:
33662306a36Sopenharmony_ci      properties:
33762306a36Sopenharmony_ci        compatible:
33862306a36Sopenharmony_ci          contains:
33962306a36Sopenharmony_ci            enum:
34062306a36Sopenharmony_ci              - qcom,pm8998-gpio
34162306a36Sopenharmony_ci    then:
34262306a36Sopenharmony_ci      properties:
34362306a36Sopenharmony_ci        gpio-line-names:
34462306a36Sopenharmony_ci          minItems: 26
34562306a36Sopenharmony_ci          maxItems: 26
34662306a36Sopenharmony_ci        gpio-reserved-ranges:
34762306a36Sopenharmony_ci          minItems: 1
34862306a36Sopenharmony_ci          maxItems: 13
34962306a36Sopenharmony_ci
35062306a36Sopenharmony_ci  - if:
35162306a36Sopenharmony_ci      properties:
35262306a36Sopenharmony_ci        compatible:
35362306a36Sopenharmony_ci          contains:
35462306a36Sopenharmony_ci            enum:
35562306a36Sopenharmony_ci              - qcom,pm8941-gpio
35662306a36Sopenharmony_ci    then:
35762306a36Sopenharmony_ci      properties:
35862306a36Sopenharmony_ci        gpio-line-names:
35962306a36Sopenharmony_ci          minItems: 36
36062306a36Sopenharmony_ci          maxItems: 36
36162306a36Sopenharmony_ci        gpio-reserved-ranges:
36262306a36Sopenharmony_ci          minItems: 1
36362306a36Sopenharmony_ci          maxItems: 18
36462306a36Sopenharmony_ci
36562306a36Sopenharmony_ci  - if:
36662306a36Sopenharmony_ci      properties:
36762306a36Sopenharmony_ci        compatible:
36862306a36Sopenharmony_ci          contains:
36962306a36Sopenharmony_ci            enum:
37062306a36Sopenharmony_ci              - qcom,pm8917-gpio
37162306a36Sopenharmony_ci    then:
37262306a36Sopenharmony_ci      properties:
37362306a36Sopenharmony_ci        gpio-line-names:
37462306a36Sopenharmony_ci          minItems: 38
37562306a36Sopenharmony_ci          maxItems: 38
37662306a36Sopenharmony_ci        gpio-reserved-ranges:
37762306a36Sopenharmony_ci          minItems: 1
37862306a36Sopenharmony_ci          maxItems: 19
37962306a36Sopenharmony_ci
38062306a36Sopenharmony_ci  - if:
38162306a36Sopenharmony_ci      properties:
38262306a36Sopenharmony_ci        compatible:
38362306a36Sopenharmony_ci          contains:
38462306a36Sopenharmony_ci            enum:
38562306a36Sopenharmony_ci              - qcom,pm8058-gpio
38662306a36Sopenharmony_ci              - qcom,pm8921-gpio
38762306a36Sopenharmony_ci    then:
38862306a36Sopenharmony_ci      properties:
38962306a36Sopenharmony_ci        gpio-line-names:
39062306a36Sopenharmony_ci          minItems: 44
39162306a36Sopenharmony_ci          maxItems: 44
39262306a36Sopenharmony_ci        gpio-reserved-ranges:
39362306a36Sopenharmony_ci          minItems: 1
39462306a36Sopenharmony_ci          maxItems: 22
39562306a36Sopenharmony_ci
39662306a36Sopenharmony_cipatternProperties:
39762306a36Sopenharmony_ci  '-state$':
39862306a36Sopenharmony_ci    oneOf:
39962306a36Sopenharmony_ci      - $ref: "#/$defs/qcom-pmic-gpio-state"
40062306a36Sopenharmony_ci      - patternProperties:
40162306a36Sopenharmony_ci          "(pinconf|-pins)$":
40262306a36Sopenharmony_ci            $ref: "#/$defs/qcom-pmic-gpio-state"
40362306a36Sopenharmony_ci        additionalProperties: false
40462306a36Sopenharmony_ci
40562306a36Sopenharmony_ci$defs:
40662306a36Sopenharmony_ci  qcom-pmic-gpio-state:
40762306a36Sopenharmony_ci    type: object
40862306a36Sopenharmony_ci    allOf:
40962306a36Sopenharmony_ci      - $ref: pinmux-node.yaml
41062306a36Sopenharmony_ci      - $ref: pincfg-node.yaml
41162306a36Sopenharmony_ci    properties:
41262306a36Sopenharmony_ci      pins:
41362306a36Sopenharmony_ci        description:
41462306a36Sopenharmony_ci          List of gpio pins affected by the properties specified in
41562306a36Sopenharmony_ci          this subnode.  Valid pins are
41662306a36Sopenharmony_ci                 - gpio1-gpio9 for pm6125
41762306a36Sopenharmony_ci                 - gpio1-gpio10 for pm6150
41862306a36Sopenharmony_ci                 - gpio1-gpio12 for pm6150l
41962306a36Sopenharmony_ci                 - gpio1-gpio9 for pm6350
42062306a36Sopenharmony_ci                 - gpio1-gpio12 for pm7250b
42162306a36Sopenharmony_ci                 - gpio1-gpio10 for pm7325
42262306a36Sopenharmony_ci                 - gpio1-gpio8 for pm7550ba
42362306a36Sopenharmony_ci                 - gpio1-gpio4 for pm8005
42462306a36Sopenharmony_ci                 - gpio1-gpio2 for pm8008
42562306a36Sopenharmony_ci                 - gpio1-gpio6 for pm8018
42662306a36Sopenharmony_ci                 - gpio1-gpio12 for pm8038
42762306a36Sopenharmony_ci                 - gpio1-gpio40 for pm8058
42862306a36Sopenharmony_ci                 - gpio1-gpio10 for pm8150 (holes on gpio2, gpio5,
42962306a36Sopenharmony_ci                                            gpio7 and gpio8)
43062306a36Sopenharmony_ci                 - gpio1-gpio12 for pm8150b (holes on gpio3, gpio4
43162306a36Sopenharmony_ci                                             and gpio7)
43262306a36Sopenharmony_ci                 - gpio1-gpio12 for pm8150l (hole on gpio7)
43362306a36Sopenharmony_ci                 - gpio1-gpio4 for pm8916
43462306a36Sopenharmony_ci                 - gpio1-gpio10 for pm8350
43562306a36Sopenharmony_ci                 - gpio1-gpio8 for pm8350b
43662306a36Sopenharmony_ci                 - gpio1-gpio9 for pm8350c
43762306a36Sopenharmony_ci                 - gpio1-gpio4 for pm8450
43862306a36Sopenharmony_ci                 - gpio1-gpio12 for pm8550
43962306a36Sopenharmony_ci                 - gpio1-gpio12 for pm8550b
44062306a36Sopenharmony_ci                 - gpio1-gpio8 for pm8550ve
44162306a36Sopenharmony_ci                 - gpio1-gpio6 for pm8550vs
44262306a36Sopenharmony_ci                 - gpio1-gpio38 for pm8917
44362306a36Sopenharmony_ci                 - gpio1-gpio44 for pm8921
44462306a36Sopenharmony_ci                 - gpio1-gpio36 for pm8941
44562306a36Sopenharmony_ci                 - gpio1-gpio8 for pm8950 (hole on gpio3)
44662306a36Sopenharmony_ci                 - gpio1-gpio8 for pm8953 (hole on gpio3 and gpio6)
44762306a36Sopenharmony_ci                 - gpio1-gpio22 for pm8994
44862306a36Sopenharmony_ci                 - gpio1-gpio26 for pm8998
44962306a36Sopenharmony_ci                 - gpio1-gpio22 for pma8084
45062306a36Sopenharmony_ci                 - gpio1-gpio8 for pmi632
45162306a36Sopenharmony_ci                 - gpio1-gpio2 for pmi8950
45262306a36Sopenharmony_ci                 - gpio1-gpio10 for pmi8994
45362306a36Sopenharmony_ci                 - gpio1-gpio4 for pmk8350
45462306a36Sopenharmony_ci                 - gpio1-gpio6 for pmk8550
45562306a36Sopenharmony_ci                 - gpio1-gpio10 for pmm8155au
45662306a36Sopenharmony_ci                 - gpio1-gpio12 for pmm8654au
45762306a36Sopenharmony_ci                 - gpio1-gpio12 for pmp8074 (holes on gpio1 and gpio12)
45862306a36Sopenharmony_ci                 - gpio1-gpio4 for pmr735a
45962306a36Sopenharmony_ci                 - gpio1-gpio4 for pmr735b
46062306a36Sopenharmony_ci                 - gpio1-gpio2 for pmr735d
46162306a36Sopenharmony_ci                 - gpio1-gpio12 for pms405 (holes on gpio1, gpio9
46262306a36Sopenharmony_ci                                            and gpio10)
46362306a36Sopenharmony_ci                 - gpio1-gpio11 for pmx55 (holes on gpio3, gpio7, gpio10
46462306a36Sopenharmony_ci                                            and gpio11)
46562306a36Sopenharmony_ci                 - gpio1-gpio16 for pmx65
46662306a36Sopenharmony_ci                 - gpio1-gpio16 for pmx75
46762306a36Sopenharmony_ci
46862306a36Sopenharmony_ci        items:
46962306a36Sopenharmony_ci          pattern: "^gpio([0-9]+)$"
47062306a36Sopenharmony_ci
47162306a36Sopenharmony_ci      function:
47262306a36Sopenharmony_ci        items:
47362306a36Sopenharmony_ci          - enum:
47462306a36Sopenharmony_ci              - normal
47562306a36Sopenharmony_ci              - paired
47662306a36Sopenharmony_ci              - func1
47762306a36Sopenharmony_ci              - func2
47862306a36Sopenharmony_ci              - dtest1
47962306a36Sopenharmony_ci              - dtest2
48062306a36Sopenharmony_ci              - dtest3
48162306a36Sopenharmony_ci              - dtest4
48262306a36Sopenharmony_ci              - func3  # supported by LV/MV GPIO subtypes
48362306a36Sopenharmony_ci              - func4  # supported by LV/MV GPIO subtypes
48462306a36Sopenharmony_ci
48562306a36Sopenharmony_ci      bias-disable: true
48662306a36Sopenharmony_ci      bias-pull-down: true
48762306a36Sopenharmony_ci      bias-pull-up: true
48862306a36Sopenharmony_ci
48962306a36Sopenharmony_ci      qcom,pull-up-strength:
49062306a36Sopenharmony_ci        $ref: /schemas/types.yaml#/definitions/uint32
49162306a36Sopenharmony_ci        description:
49262306a36Sopenharmony_ci          Specifies the strength to use for pull up, if selected.
49362306a36Sopenharmony_ci          Valid values are defined in
49462306a36Sopenharmony_ci          <dt-bindings/pinctrl/qcom,pmic-gpio.h>
49562306a36Sopenharmony_ci          If this property is omitted 30uA strength will be used
49662306a36Sopenharmony_ci          if pull up is selected
49762306a36Sopenharmony_ci        enum: [0, 1, 2, 3]
49862306a36Sopenharmony_ci
49962306a36Sopenharmony_ci      bias-high-impedance: true
50062306a36Sopenharmony_ci      input-enable: true
50162306a36Sopenharmony_ci      input-disable: true
50262306a36Sopenharmony_ci      output-high: true
50362306a36Sopenharmony_ci      output-low: true
50462306a36Sopenharmony_ci      output-enable: true
50562306a36Sopenharmony_ci      output-disable: true
50662306a36Sopenharmony_ci      power-source: true
50762306a36Sopenharmony_ci
50862306a36Sopenharmony_ci      qcom,drive-strength:
50962306a36Sopenharmony_ci        $ref: /schemas/types.yaml#/definitions/uint32
51062306a36Sopenharmony_ci        description:
51162306a36Sopenharmony_ci          Selects the drive strength for the specified pins
51262306a36Sopenharmony_ci          Valid drive strength values are defined in
51362306a36Sopenharmony_ci          <dt-bindings/pinctrl/qcom,pmic-gpio.h>
51462306a36Sopenharmony_ci        enum: [0, 1, 2, 3]
51562306a36Sopenharmony_ci
51662306a36Sopenharmony_ci      drive-push-pull: true
51762306a36Sopenharmony_ci      drive-open-drain: true
51862306a36Sopenharmony_ci      drive-open-source: true
51962306a36Sopenharmony_ci
52062306a36Sopenharmony_ci      qcom,analog-pass:
52162306a36Sopenharmony_ci        $ref: /schemas/types.yaml#/definitions/flag
52262306a36Sopenharmony_ci        description:
52362306a36Sopenharmony_ci          The specified pins are configured in
52462306a36Sopenharmony_ci          analog-pass-through mode.
52562306a36Sopenharmony_ci
52662306a36Sopenharmony_ci      qcom,atest:
52762306a36Sopenharmony_ci        $ref: /schemas/types.yaml#/definitions/uint32
52862306a36Sopenharmony_ci        description:
52962306a36Sopenharmony_ci          Selects ATEST rail to route to GPIO when it's
53062306a36Sopenharmony_ci          configured in analog-pass-through mode.
53162306a36Sopenharmony_ci        enum: [1, 2, 3, 4]
53262306a36Sopenharmony_ci
53362306a36Sopenharmony_ci      qcom,dtest-buffer:
53462306a36Sopenharmony_ci        $ref: /schemas/types.yaml#/definitions/uint32
53562306a36Sopenharmony_ci        description:
53662306a36Sopenharmony_ci          Selects DTEST rail to route to GPIO when it's
53762306a36Sopenharmony_ci          configured as digital input.
53862306a36Sopenharmony_ci        enum: [1, 2, 3, 4]
53962306a36Sopenharmony_ci
54062306a36Sopenharmony_ci    required:
54162306a36Sopenharmony_ci      - pins
54262306a36Sopenharmony_ci      - function
54362306a36Sopenharmony_ci
54462306a36Sopenharmony_ci    additionalProperties: false
54562306a36Sopenharmony_ci
54662306a36Sopenharmony_ciexamples:
54762306a36Sopenharmony_ci  - |
54862306a36Sopenharmony_ci    #include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
54962306a36Sopenharmony_ci
55062306a36Sopenharmony_ci    pm8921_gpio: gpio@150 {
55162306a36Sopenharmony_ci      compatible = "qcom,pm8921-gpio", "qcom,ssbi-gpio";
55262306a36Sopenharmony_ci      reg = <0x150 0x160>;
55362306a36Sopenharmony_ci      interrupt-controller;
55462306a36Sopenharmony_ci      #interrupt-cells = <2>;
55562306a36Sopenharmony_ci      gpio-controller;
55662306a36Sopenharmony_ci      gpio-ranges = <&pm8921_gpio 0 0 44>;
55762306a36Sopenharmony_ci      #gpio-cells = <2>;
55862306a36Sopenharmony_ci
55962306a36Sopenharmony_ci      pm8921_gpio_keys: gpio-keys-state {
56062306a36Sopenharmony_ci        volume-keys-pins {
56162306a36Sopenharmony_ci          pins = "gpio20", "gpio21";
56262306a36Sopenharmony_ci          function = "normal";
56362306a36Sopenharmony_ci
56462306a36Sopenharmony_ci          input-enable;
56562306a36Sopenharmony_ci          bias-pull-up;
56662306a36Sopenharmony_ci          drive-push-pull;
56762306a36Sopenharmony_ci          qcom,drive-strength = <PMIC_GPIO_STRENGTH_NO>;
56862306a36Sopenharmony_ci          power-source = <PM8921_GPIO_S4>;
56962306a36Sopenharmony_ci        };
57062306a36Sopenharmony_ci      };
57162306a36Sopenharmony_ci    };
57262306a36Sopenharmony_ci...
573