The Design and Implementation of the FreeBSD Operating System, Second Edition
Now available: The Design and Implementation of the FreeBSD Operating System (Second Edition)


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]

FreeBSD/Linux Kernel Cross Reference
sys/contrib/device-tree/Bindings/pinctrl/qcom,pmic-gpio.yaml

Version: -  FREEBSD  -  FREEBSD-13-STABLE  -  FREEBSD-13-0  -  FREEBSD-12-STABLE  -  FREEBSD-12-0  -  FREEBSD-11-STABLE  -  FREEBSD-11-0  -  FREEBSD-10-STABLE  -  FREEBSD-10-0  -  FREEBSD-9-STABLE  -  FREEBSD-9-0  -  FREEBSD-8-STABLE  -  FREEBSD-8-0  -  FREEBSD-7-STABLE  -  FREEBSD-7-0  -  FREEBSD-6-STABLE  -  FREEBSD-6-0  -  FREEBSD-5-STABLE  -  FREEBSD-5-0  -  FREEBSD-4-STABLE  -  FREEBSD-3-STABLE  -  FREEBSD22  -  l41  -  OPENBSD  -  linux-2.6  -  MK84  -  PLAN9  -  xnu-8792 
SearchContext: -  none  -  3  -  10 

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

Cache object: 8606e9a2af0d1770767fc7014ddc9744


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]


This page is part of the FreeBSD/Linux Linux Kernel Cross-Reference, and was automatically generated using a modified version of the LXR engine.