brintos

brintos / linux-shallow public Read only

0
0
Text · 15.0 KiB · c1b7991 Raw
611 lines · yaml
1# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)2%YAML 1.23---4$id: http://devicetree.org/schemas/pinctrl/qcom,pmic-gpio.yaml#5$schema: http://devicetree.org/meta-schemas/core.yaml#6 7title: Qualcomm PMIC GPIO block8 9maintainers:10  - Bjorn Andersson <bjorn.andersson@linaro.org>11 12description:13  This binding describes the GPIO block(s) found in the 8xxx series of14  PMIC's from Qualcomm.15 16properties:17  compatible:18    items:19      - enum:20          - qcom,pm2250-gpio21          - qcom,pm660-gpio22          - qcom,pm660l-gpio23          - qcom,pm6125-gpio24          - qcom,pm6150-gpio25          - qcom,pm6150l-gpio26          - qcom,pm6350-gpio27          - qcom,pm6450-gpio28          - qcom,pm7250b-gpio29          - qcom,pm7325-gpio30          - qcom,pm7550ba-gpio31          - qcom,pm8005-gpio32          - qcom,pm8018-gpio33          - qcom,pm8019-gpio34          - qcom,pm8038-gpio35          - qcom,pm8058-gpio36          - qcom,pm8150-gpio37          - qcom,pm8150b-gpio38          - qcom,pm8150l-gpio39          - qcom,pm8226-gpio40          - qcom,pm8350-gpio41          - qcom,pm8350b-gpio42          - qcom,pm8350c-gpio43          - qcom,pm8450-gpio44          - qcom,pm8550-gpio45          - qcom,pm8550b-gpio46          - qcom,pm8550ve-gpio47          - qcom,pm8550vs-gpio48          - qcom,pm8916-gpio49          - qcom,pm8917-gpio50          - qcom,pm8921-gpio51          - qcom,pm8941-gpio52          - qcom,pm8950-gpio53          - qcom,pm8953-gpio54          - qcom,pm8994-gpio55          - qcom,pm8998-gpio56          - qcom,pma8084-gpio57          - qcom,pmc8180-gpio58          - qcom,pmc8180c-gpio59          - qcom,pmc8380-gpio60          - qcom,pmd8028-gpio61          - qcom,pmi632-gpio62          - qcom,pmi8950-gpio63          - qcom,pmi8994-gpio64          - qcom,pmi8998-gpio65          - qcom,pmih0108-gpio66          - qcom,pmk8350-gpio67          - qcom,pmk8550-gpio68          - qcom,pmm8155au-gpio69          - qcom,pmm8654au-gpio70          - qcom,pmp8074-gpio71          - qcom,pmr735a-gpio72          - qcom,pmr735b-gpio73          - qcom,pmr735d-gpio74          - qcom,pms405-gpio75          - qcom,pmx55-gpio76          - qcom,pmx65-gpio77          - qcom,pmx75-gpio78          - qcom,pmxr2230-gpio79 80      - enum:81          - qcom,spmi-gpio82          - qcom,ssbi-gpio83 84  reg:85    maxItems: 186 87  interrupt-controller: true88 89  '#interrupt-cells':90    const: 291 92  gpio-controller: true93 94  gpio-ranges:95    maxItems: 196 97  gpio-line-names:98    minItems: 299    maxItems: 44100 101  gpio-reserved-ranges:102    minItems: 1103    # maxItems as half of total number of GPIOs, as there has to be at104    # least one usable GPIO between each reserved range.105    maxItems: 22106 107  '#gpio-cells':108    const: 2109    description:110      The first cell will be used to define gpio number and the111      second denotes the flags for this gpio112 113additionalProperties: false114 115required:116  - compatible117  - reg118  - gpio-controller119  - '#gpio-cells'120  - gpio-ranges121  - interrupt-controller122 123allOf:124  - if:125      properties:126        compatible:127          contains:128            enum:129              - qcom,pmi8950-gpio130              - qcom,pmr735d-gpio131    then:132      properties:133        gpio-line-names:134          minItems: 2135          maxItems: 2136        gpio-reserved-ranges:137          maxItems: 1138 139  - if:140      properties:141        compatible:142          contains:143            enum:144              - qcom,pm8005-gpio145              - qcom,pm8450-gpio146              - qcom,pm8916-gpio147              - qcom,pmd8028-gpio148              - qcom,pmk8350-gpio149              - qcom,pmr735a-gpio150              - qcom,pmr735b-gpio151    then:152      properties:153        gpio-line-names:154          minItems: 4155          maxItems: 4156        gpio-reserved-ranges:157          minItems: 1158          maxItems: 2159 160  - if:161      properties:162        compatible:163          contains:164            enum:165              - qcom,pm8018-gpio166              - qcom,pm8019-gpio167              - qcom,pm8550vs-gpio168              - qcom,pmk8550-gpio169    then:170      properties:171        gpio-line-names:172          minItems: 6173          maxItems: 6174        gpio-reserved-ranges:175          minItems: 1176          maxItems: 3177 178  - if:179      properties:180        compatible:181          contains:182            enum:183              - qcom,pm7550ba-gpio184              - qcom,pm8226-gpio185              - qcom,pm8350b-gpio186              - qcom,pm8550ve-gpio187              - qcom,pm8950-gpio188              - qcom,pm8953-gpio189              - qcom,pmi632-gpio190    then:191      properties:192        gpio-line-names:193          minItems: 8194          maxItems: 8195        gpio-reserved-ranges:196          minItems: 1197          maxItems: 4198 199  - if:200      properties:201        compatible:202          contains:203            enum:204              - qcom,pm6350-gpio205              - qcom,pm6450-gpio206              - qcom,pm8350c-gpio207    then:208      properties:209        gpio-line-names:210          minItems: 9211          maxItems: 9212        gpio-reserved-ranges:213          minItems: 1214          maxItems: 5215 216  - if:217      properties:218        compatible:219          contains:220            enum:221              - qcom,pm2250-gpio222              - qcom,pm6150-gpio223              - qcom,pm7325-gpio224              - qcom,pm8150-gpio225              - qcom,pm8350-gpio226              - qcom,pmc8180-gpio227              - qcom,pmc8380-gpio228              - qcom,pmi8994-gpio229              - qcom,pmm8155au-gpio230    then:231      properties:232        gpio-line-names:233          minItems: 10234          maxItems: 10235        gpio-reserved-ranges:236          minItems: 1237          maxItems: 5238 239  - if:240      properties:241        compatible:242          contains:243            enum:244              - qcom,pmx55-gpio245    then:246      properties:247        gpio-line-names:248          minItems: 11249          maxItems: 11250        gpio-reserved-ranges:251          minItems: 1252          maxItems: 6253 254  - if:255      properties:256        compatible:257          contains:258            enum:259              - qcom,pm660l-gpio260              - qcom,pm6150l-gpio261              - qcom,pm7250b-gpio262              - qcom,pm8038-gpio263              - qcom,pm8150b-gpio264              - qcom,pm8150l-gpio265              - qcom,pm8550-gpio266              - qcom,pm8550b-gpio267              - qcom,pmc8180c-gpio268              - qcom,pmp8074-gpio269              - qcom,pms405-gpio270              - qcom,pmxr2230-gpio271    then:272      properties:273        gpio-line-names:274          minItems: 12275          maxItems: 12276        gpio-reserved-ranges:277          minItems: 1278          maxItems: 6279 280  - if:281      properties:282        compatible:283          contains:284            enum:285              - qcom,pm660-gpio286    then:287      properties:288        gpio-line-names:289          minItems: 13290          maxItems: 13291        gpio-reserved-ranges:292          minItems: 1293          maxItems: 7294 295  - if:296      properties:297        compatible:298          contains:299            enum:300              - qcom,pmi8998-gpio301    then:302      properties:303        gpio-line-names:304          minItems: 14305          maxItems: 14306        gpio-reserved-ranges:307          minItems: 1308          maxItems: 7309 310  - if:311      properties:312        compatible:313          contains:314            enum:315              - qcom,pmih0108-gpio316    then:317      properties:318        gpio-line-names:319          minItems: 18320          maxItems: 18321        gpio-reserved-ranges:322          minItems: 1323          maxItems: 9324 325  - if:326      properties:327        compatible:328          contains:329            enum:330              - qcom,pmx65-gpio331              - qcom,pmx75-gpio332    then:333      properties:334        gpio-line-names:335          minItems: 16336          maxItems: 16337        gpio-reserved-ranges:338          minItems: 1339          maxItems: 8340 341  - if:342      properties:343        compatible:344          contains:345            enum:346              - qcom,pm8994-gpio347              - qcom,pma8084-gpio348    then:349      properties:350        gpio-line-names:351          minItems: 22352          maxItems: 22353        gpio-reserved-ranges:354          minItems: 1355          maxItems: 11356 357  - if:358      properties:359        compatible:360          contains:361            enum:362              - qcom,pm8998-gpio363    then:364      properties:365        gpio-line-names:366          minItems: 26367          maxItems: 26368        gpio-reserved-ranges:369          minItems: 1370          maxItems: 13371 372  - if:373      properties:374        compatible:375          contains:376            enum:377              - qcom,pm8941-gpio378    then:379      properties:380        gpio-line-names:381          minItems: 36382          maxItems: 36383        gpio-reserved-ranges:384          minItems: 1385          maxItems: 18386 387  - if:388      properties:389        compatible:390          contains:391            enum:392              - qcom,pm8917-gpio393    then:394      properties:395        gpio-line-names:396          minItems: 38397          maxItems: 38398        gpio-reserved-ranges:399          minItems: 1400          maxItems: 19401 402  - if:403      properties:404        compatible:405          contains:406            enum:407              - qcom,pm8058-gpio408              - qcom,pm8921-gpio409    then:410      properties:411        gpio-line-names:412          minItems: 44413          maxItems: 44414        gpio-reserved-ranges:415          minItems: 1416          maxItems: 22417 418patternProperties:419  '-state$':420    oneOf:421      - $ref: "#/$defs/qcom-pmic-gpio-state"422      - patternProperties:423          "(pinconf|-pins)$":424            $ref: "#/$defs/qcom-pmic-gpio-state"425        additionalProperties: false426 427  "-hog(-[0-9]+)?$":428    type: object429    required:430      - gpio-hog431 432$defs:433  qcom-pmic-gpio-state:434    type: object435    allOf:436      - $ref: pinmux-node.yaml437      - $ref: pincfg-node.yaml438    properties:439      pins:440        description:441          List of gpio pins affected by the properties specified in442          this subnode.  Valid pins are443                 - gpio1-gpio9 for pm6125444                 - gpio1-gpio10 for pm6150445                 - gpio1-gpio12 for pm6150l446                 - gpio1-gpio9 for pm6350447                 - gpio1-gpio9 for pm6450448                 - gpio1-gpio12 for pm7250b449                 - gpio1-gpio10 for pm7325450                 - gpio1-gpio8 for pm7550ba451                 - gpio1-gpio4 for pm8005452                 - gpio1-gpio6 for pm8018453                 - gpio1-gpio12 for pm8038454                 - gpio1-gpio40 for pm8058455                 - gpio1-gpio10 for pm8150 (holes on gpio2, gpio5,456                                            gpio7 and gpio8)457                 - gpio1-gpio12 for pm8150b (holes on gpio3, gpio4458                                             and gpio7)459                 - gpio1-gpio12 for pm8150l (hole on gpio7)460                 - gpio1-gpio4 for pm8916461                 - gpio1-gpio10 for pm8350462                 - gpio1-gpio8 for pm8350b463                 - gpio1-gpio9 for pm8350c464                 - gpio1-gpio4 for pm8450465                 - gpio1-gpio12 for pm8550466                 - gpio1-gpio12 for pm8550b467                 - gpio1-gpio8 for pm8550ve468                 - gpio1-gpio6 for pm8550vs469                 - gpio1-gpio38 for pm8917470                 - gpio1-gpio44 for pm8921471                 - gpio1-gpio36 for pm8941472                 - gpio1-gpio8 for pm8950 (hole on gpio3)473                 - gpio1-gpio8 for pm8953 (hole on gpio3 and gpio6)474                 - gpio1-gpio22 for pm8994475                 - gpio1-gpio26 for pm8998476                 - gpio1-gpio22 for pma8084477                 - gpio1-gpio4 for pmd8028478                 - gpio1-gpio8 for pmi632479                 - gpio1-gpio2 for pmi8950480                 - gpio1-gpio10 for pmi8994481                 - gpio1-gpio18 for pmih0108482                 - gpio1-gpio4 for pmk8350483                 - gpio1-gpio6 for pmk8550484                 - gpio1-gpio10 for pmm8155au485                 - gpio1-gpio12 for pmm8654au486                 - gpio1-gpio12 for pmp8074 (holes on gpio1 and gpio12)487                 - gpio1-gpio4 for pmr735a488                 - gpio1-gpio4 for pmr735b489                 - gpio1-gpio2 for pmr735d490                 - gpio1-gpio12 for pms405 (holes on gpio1, gpio9491                                            and gpio10)492                 - gpio1-gpio11 for pmx55 (holes on gpio3, gpio7, gpio10493                                            and gpio11)494                 - gpio1-gpio16 for pmx65495                 - gpio1-gpio16 for pmx75496                 - gpio1-gpio12 for pmxr2230497 498        items:499          pattern: "^gpio([0-9]+)$"500 501      function:502        items:503          - enum:504              - normal505              - paired506              - func1507              - func2508              - dtest1509              - dtest2510              - dtest3511              - dtest4512              - func3  # supported by LV/MV GPIO subtypes513              - func4  # supported by LV/MV GPIO subtypes514 515      bias-disable: true516      bias-pull-down: true517      bias-pull-up: true518 519      qcom,pull-up-strength:520        $ref: /schemas/types.yaml#/definitions/uint32521        description:522          Specifies the strength to use for pull up, if selected.523          Valid values are defined in524          <dt-bindings/pinctrl/qcom,pmic-gpio.h>525          If this property is omitted 30uA strength will be used526          if pull up is selected527        enum: [0, 1, 2, 3]528 529      bias-high-impedance: true530      input-enable: true531      input-disable: true532      output-high: true533      output-low: true534      output-enable: true535      output-disable: true536      power-source: true537 538      qcom,drive-strength:539        $ref: /schemas/types.yaml#/definitions/uint32540        description:541          Selects the drive strength for the specified pins542          Valid drive strength values are defined in543          <dt-bindings/pinctrl/qcom,pmic-gpio.h>544        enum: [0, 1, 2, 3]545 546      drive-push-pull: true547      drive-open-drain: true548      drive-open-source: true549 550      qcom,analog-pass:551        $ref: /schemas/types.yaml#/definitions/flag552        description:553          The specified pins are configured in554          analog-pass-through mode.555 556      qcom,atest:557        $ref: /schemas/types.yaml#/definitions/uint32558        description:559          Selects ATEST rail to route to GPIO when it's560          configured in analog-pass-through mode.561        enum: [1, 2, 3, 4]562 563      qcom,dtest-buffer:564        $ref: /schemas/types.yaml#/definitions/uint32565        description:566          Selects DTEST rail to route to GPIO when it's567          configured as digital input.568        enum: [1, 2, 3, 4]569 570    required:571      - pins572      - function573 574    additionalProperties: false575 576examples:577  - |578    #include <dt-bindings/gpio/gpio.h>579    #include <dt-bindings/pinctrl/qcom,pmic-gpio.h>580 581    pm8921_gpio: gpio@150 {582      compatible = "qcom,pm8921-gpio", "qcom,ssbi-gpio";583      reg = <0x150 0x160>;584      interrupt-controller;585      #interrupt-cells = <2>;586      gpio-controller;587      gpio-ranges = <&pm8921_gpio 0 0 44>;588      #gpio-cells = <2>;589 590      pm8921_gpio_keys: gpio-keys-state {591        volume-keys-pins {592          pins = "gpio20", "gpio21";593          function = "normal";594 595          input-enable;596          bias-pull-up;597          drive-push-pull;598          qcom,drive-strength = <PMIC_GPIO_STRENGTH_NO>;599          power-source = <PM8921_GPIO_S4>;600        };601      };602 603      otg-hog {604        gpio-hog;605        gpios = <35 GPIO_ACTIVE_HIGH>;606        output-high;607        line-name = "otg-gpio";608      };609    };610...611