cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

qcom,pmic-gpio.yaml (12941B)


      1# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
      2%YAML 1.2
      3---
      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 block
      8
      9maintainers:
     10  - Bjorn Andersson <bjorn.andersson@linaro.org>
     11
     12description:
     13  This binding describes the GPIO block(s) found in the 8xxx series of
     14  PMIC's from Qualcomm.
     15
     16properties:
     17  compatible:
     18    items:
     19      - enum:
     20          - qcom,pm2250-gpio
     21          - qcom,pm660-gpio
     22          - qcom,pm660l-gpio
     23          - qcom,pm6125-gpio
     24          - qcom,pm6150-gpio
     25          - qcom,pm6150l-gpio
     26          - qcom,pm6350-gpio
     27          - qcom,pm7325-gpio
     28          - qcom,pm8005-gpio
     29          - qcom,pm8008-gpio
     30          - qcom,pm8018-gpio
     31          - qcom,pm8019-gpio
     32          - qcom,pm8038-gpio
     33          - qcom,pm8058-gpio
     34          - qcom,pm8150-gpio
     35          - qcom,pm8150b-gpio
     36          - qcom,pm8150l-gpio
     37          - qcom,pm8226-gpio
     38          - qcom,pm8350-gpio
     39          - qcom,pm8350b-gpio
     40          - qcom,pm8350c-gpio
     41          - qcom,pm8450-gpio
     42          - qcom,pm8916-gpio
     43          - qcom,pm8917-gpio
     44          - qcom,pm8921-gpio
     45          - qcom,pm8941-gpio
     46          - qcom,pm8950-gpio
     47          - qcom,pm8994-gpio
     48          - qcom,pm8998-gpio
     49          - qcom,pma8084-gpio
     50          - qcom,pmi8950-gpio
     51          - qcom,pmi8994-gpio
     52          - qcom,pmi8998-gpio
     53          - qcom,pmk8350-gpio
     54          - qcom,pmm8155au-gpio
     55          - qcom,pmr735a-gpio
     56          - qcom,pmr735b-gpio
     57          - qcom,pms405-gpio
     58          - qcom,pmx55-gpio
     59          - qcom,pmx65-gpio
     60
     61      - enum:
     62          - qcom,spmi-gpio
     63          - qcom,ssbi-gpio
     64
     65  reg:
     66    maxItems: 1
     67
     68  interrupt-controller: true
     69
     70  '#interrupt-cells':
     71    const: 2
     72
     73  gpio-controller: true
     74
     75  gpio-ranges:
     76    maxItems: 1
     77
     78  gpio-line-names:
     79    minItems: 2
     80    maxItems: 44
     81
     82  gpio-reserved-ranges:
     83    minItems: 1
     84    # maxItems as half of total number of GPIOs, as there has to be at
     85    # least one usable GPIO between each reserved range.
     86    maxItems: 22
     87
     88  '#gpio-cells':
     89    const: 2
     90    description:
     91      The first cell will be used to define gpio number and the
     92      second denotes the flags for this gpio
     93
     94additionalProperties: false
     95
     96required:
     97  - compatible
     98  - reg
     99  - gpio-controller
    100  - '#gpio-cells'
    101  - gpio-ranges
    102  - interrupt-controller
    103
    104allOf:
    105  - if:
    106      properties:
    107        compatible:
    108          contains:
    109            enum:
    110              - qcom,pm8008-gpio
    111              - qcom,pmi8950-gpio
    112    then:
    113      properties:
    114        gpio-line-names:
    115          minItems: 2
    116          maxItems: 2
    117        gpio-reserved-ranges:
    118          maxItems: 1
    119
    120  - if:
    121      properties:
    122        compatible:
    123          contains:
    124            enum:
    125              - qcom,pm8005-gpio
    126              - qcom,pm8450-gpio
    127              - qcom,pm8916-gpio
    128              - qcom,pmk8350-gpio
    129              - qcom,pmr735a-gpio
    130              - qcom,pmr735b-gpio
    131    then:
    132      properties:
    133        gpio-line-names:
    134          minItems: 4
    135          maxItems: 4
    136        gpio-reserved-ranges:
    137          minItems: 1
    138          maxItems: 2
    139
    140  - if:
    141      properties:
    142        compatible:
    143          contains:
    144            enum:
    145              - qcom,pm8018-gpio
    146              - qcom,pm8019-gpio
    147    then:
    148      properties:
    149        gpio-line-names:
    150          minItems: 6
    151          maxItems: 6
    152        gpio-reserved-ranges:
    153          minItems: 1
    154          maxItems: 3
    155
    156  - if:
    157      properties:
    158        compatible:
    159          contains:
    160            enum:
    161              - qcom,pm8350b-gpio
    162              - qcom,pm8950-gpio
    163    then:
    164      properties:
    165        gpio-line-names:
    166          minItems: 8
    167          maxItems: 8
    168        gpio-reserved-ranges:
    169          minItems: 1
    170          maxItems: 4
    171
    172  - if:
    173      properties:
    174        compatible:
    175          contains:
    176            enum:
    177              - qcom,pm6350-gpio
    178              - qcom,pm8350c-gpio
    179    then:
    180      properties:
    181        gpio-line-names:
    182          minItems: 9
    183          maxItems: 9
    184        gpio-reserved-ranges:
    185          minItems: 1
    186          maxItems: 5
    187
    188  - if:
    189      properties:
    190        compatible:
    191          contains:
    192            enum:
    193              - qcom,pm2250-gpio
    194              - qcom,pm6150-gpio
    195              - qcom,pm7325-gpio
    196              - qcom,pm8150-gpio
    197              - qcom,pm8350-gpio
    198              - qcom,pmc8180-gpio
    199              - qcom,pmi8994-gpio
    200              - qcom,pmm8155au-gpio
    201    then:
    202      properties:
    203        gpio-line-names:
    204          minItems: 10
    205          maxItems: 10
    206        gpio-reserved-ranges:
    207          minItems: 1
    208          maxItems: 5
    209
    210  - if:
    211      properties:
    212        compatible:
    213          contains:
    214            enum:
    215              - qcom,pmx55-gpio
    216    then:
    217      properties:
    218        gpio-line-names:
    219          minItems: 11
    220          maxItems: 11
    221        gpio-reserved-ranges:
    222          minItems: 1
    223          maxItems: 6
    224
    225  - if:
    226      properties:
    227        compatible:
    228          contains:
    229            enum:
    230              - qcom,pm660l-gpio
    231              - qcom,pm6150l-gpio
    232              - qcom,pm8038-gpio
    233              - qcom,pm8150b-gpio
    234              - qcom,pm8150l-gpio
    235              - qcom,pmc8180c-gpio
    236              - qcom,pms405-gpio
    237    then:
    238      properties:
    239        gpio-line-names:
    240          minItems: 12
    241          maxItems: 12
    242        gpio-reserved-ranges:
    243          minItems: 1
    244          maxItems: 6
    245
    246  - if:
    247      properties:
    248        compatible:
    249          contains:
    250            enum:
    251              - qcom,pm660-gpio
    252    then:
    253      properties:
    254        gpio-line-names:
    255          minItems: 13
    256          maxItems: 13
    257        gpio-reserved-ranges:
    258          minItems: 1
    259          maxItems: 7
    260
    261  - if:
    262      properties:
    263        compatible:
    264          contains:
    265            enum:
    266              - qcom,pmi8998-gpio
    267    then:
    268      properties:
    269        gpio-line-names:
    270          minItems: 14
    271          maxItems: 14
    272        gpio-reserved-ranges:
    273          minItems: 1
    274          maxItems: 7
    275
    276  - if:
    277      properties:
    278        compatible:
    279          contains:
    280            enum:
    281              - qcom,pmx65-gpio
    282    then:
    283      properties:
    284        gpio-line-names:
    285          minItems: 16
    286          maxItems: 16
    287        gpio-reserved-ranges:
    288          minItems: 1
    289          maxItems: 8
    290
    291  - if:
    292      properties:
    293        compatible:
    294          contains:
    295            enum:
    296              - qcom,pm8994-gpio
    297              - qcom,pma8084-gpio
    298    then:
    299      properties:
    300        gpio-line-names:
    301          minItems: 22
    302          maxItems: 22
    303        gpio-reserved-ranges:
    304          minItems: 1
    305          maxItems: 11
    306
    307  - if:
    308      properties:
    309        compatible:
    310          contains:
    311            enum:
    312              - qcom,pm8998-gpio
    313    then:
    314      properties:
    315        gpio-line-names:
    316          minItems: 26
    317          maxItems: 26
    318        gpio-reserved-ranges:
    319          minItems: 1
    320          maxItems: 13
    321
    322  - if:
    323      properties:
    324        compatible:
    325          contains:
    326            enum:
    327              - qcom,pm8941-gpio
    328    then:
    329      properties:
    330        gpio-line-names:
    331          minItems: 36
    332          maxItems: 36
    333        gpio-reserved-ranges:
    334          minItems: 1
    335          maxItems: 18
    336
    337  - if:
    338      properties:
    339        compatible:
    340          contains:
    341            enum:
    342              - qcom,pm8917-gpio
    343    then:
    344      properties:
    345        gpio-line-names:
    346          minItems: 38
    347          maxItems: 38
    348        gpio-reserved-ranges:
    349          minItems: 1
    350          maxItems: 19
    351
    352  - if:
    353      properties:
    354        compatible:
    355          contains:
    356            enum:
    357              - qcom,pm8058-gpio
    358              - qcom,pm8921-gpio
    359    then:
    360      properties:
    361        gpio-line-names:
    362          minItems: 44
    363          maxItems: 44
    364        gpio-reserved-ranges:
    365          minItems: 1
    366          maxItems: 22
    367
    368patternProperties:
    369  '-state$':
    370    oneOf:
    371      - $ref: "#/$defs/qcom-pmic-gpio-state"
    372      - patternProperties:
    373          "(pinconf|-pins)$":
    374            $ref: "#/$defs/qcom-pmic-gpio-state"
    375        additionalProperties: false
    376
    377$defs:
    378  qcom-pmic-gpio-state:
    379    type: object
    380    allOf:
    381      - $ref: "pinmux-node.yaml"
    382      - $ref: "pincfg-node.yaml"
    383    properties:
    384      pins:
    385        description:
    386          List of gpio pins affected by the properties specified in
    387          this subnode.  Valid pins are
    388                 - gpio1-gpio9 for pm6125
    389                 - gpio1-gpio10 for pm6150
    390                 - gpio1-gpio12 for pm6150l
    391                 - gpio1-gpio9 for pm6350
    392                 - gpio1-gpio10 for pm7325
    393                 - gpio1-gpio4 for pm8005
    394                 - gpio1-gpio2 for pm8008
    395                 - gpio1-gpio6 for pm8018
    396                 - gpio1-gpio12 for pm8038
    397                 - gpio1-gpio40 for pm8058
    398                 - gpio1-gpio10 for pm8150 (holes on gpio2, gpio5,
    399                                            gpio7 and gpio8)
    400                 - gpio1-gpio12 for pm8150b (holes on gpio3, gpio4
    401                                             and gpio7)
    402                 - gpio1-gpio12 for pm8150l (hole on gpio7)
    403                 - gpio1-gpio4 for pm8916
    404                 - gpio1-gpio10 for pm8350
    405                 - gpio1-gpio8 for pm8350b
    406                 - gpio1-gpio9 for pm8350c
    407                 - gpio1-gpio38 for pm8917
    408                 - gpio1-gpio44 for pm8921
    409                 - gpio1-gpio36 for pm8941
    410                 - gpio1-gpio8 for pm8950 (hole on gpio3)
    411                 - gpio1-gpio22 for pm8994
    412                 - gpio1-gpio26 for pm8998
    413                 - gpio1-gpio22 for pma8084
    414                 - gpio1-gpio2 for pmi8950
    415                 - gpio1-gpio10 for pmi8994
    416                 - gpio1-gpio4 for pmk8350
    417                 - gpio1-gpio10 for pmm8155au
    418                 - gpio1-gpio4 for pmr735a
    419                 - gpio1-gpio4 for pmr735b
    420                 - gpio1-gpio12 for pms405 (holes on gpio1, gpio9
    421                                            and gpio10)
    422                 - gpio1-gpio11 for pmx55 (holes on gpio3, gpio7, gpio10
    423                                            and gpio11)
    424                 - gpio1-gpio16 for pmx65
    425
    426        items:
    427          pattern: "^gpio([0-9]+)$"
    428
    429      function:
    430        items:
    431          - enum:
    432              - normal
    433              - paired
    434              - func1
    435              - func2
    436              - dtest1
    437              - dtest2
    438              - dtest3
    439              - dtest4
    440              - func3  # supported by LV/MV GPIO subtypes
    441              - func4  # supported by LV/MV GPIO subtypes
    442
    443      bias-disable: true
    444      bias-pull-down: true
    445      bias-pull-up: true
    446
    447      qcom,pull-up-strength:
    448        $ref: /schemas/types.yaml#/definitions/uint32
    449        description:
    450          Specifies the strength to use for pull up, if selected.
    451          Valid values are defined in
    452          <dt-bindings/pinctrl/qcom,pmic-gpio.h>
    453          If this property is omitted 30uA strength will be used
    454          if pull up is selected
    455        enum: [0, 1, 2, 3]
    456
    457      bias-high-impedance: true
    458      input-enable: true
    459      input-disable: true
    460      output-high: true
    461      output-low: true
    462      output-enable: true
    463      output-disable: true
    464      power-source: true
    465
    466      qcom,drive-strength:
    467        $ref: /schemas/types.yaml#/definitions/uint32
    468        description:
    469          Selects the drive strength for the specified pins
    470          Valid drive strength values are defined in
    471          <dt-bindings/pinctrl/qcom,pmic-gpio.h>
    472        enum: [0, 1, 2, 3]
    473
    474      drive-push-pull: true
    475      drive-open-drain: true
    476      drive-open-source: true
    477
    478      qcom,analog-pass:
    479        $ref: /schemas/types.yaml#/definitions/flag
    480        description:
    481          The specified pins are configured in
    482          analog-pass-through mode.
    483
    484      qcom,atest:
    485        $ref: /schemas/types.yaml#/definitions/uint32
    486        description:
    487          Selects ATEST rail to route to GPIO when it's
    488          configured in analog-pass-through mode.
    489        enum: [1, 2, 3, 4]
    490
    491      qcom,dtest-buffer:
    492        $ref: /schemas/types.yaml#/definitions/uint32
    493        description:
    494          Selects DTEST rail to route to GPIO when it's
    495          configured as digital input.
    496        enum: [1, 2, 3, 4]
    497
    498    required:
    499      - pins
    500      - function
    501
    502    additionalProperties: false
    503
    504examples:
    505  - |
    506    #include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
    507
    508    pm8921_gpio: gpio@150 {
    509      compatible = "qcom,pm8921-gpio", "qcom,ssbi-gpio";
    510      reg = <0x150 0x160>;
    511      interrupt-controller;
    512      #interrupt-cells = <2>;
    513      gpio-controller;
    514      gpio-ranges = <&pm8921_gpio 0 0 44>;
    515      #gpio-cells = <2>;
    516
    517      pm8921_gpio_keys: gpio-keys-state {
    518        volume-keys-pins {
    519          pins = "gpio20", "gpio21";
    520          function = "normal";
    521
    522          input-enable;
    523          bias-pull-up;
    524          drive-push-pull;
    525          qcom,drive-strength = <PMIC_GPIO_STRENGTH_NO>;
    526          power-source = <PM8921_GPIO_S4>;
    527        };
    528      };
    529    };
    530...