# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/pinctrl/qcom,pmic-gpio.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Qualcomm PMIC GPIO block

maintainers:
  - Bjorn Andersson <bjorn.andersson@linaro.org>

description:
  This binding describes the GPIO block(s) found in the 8xxx series of
  PMIC's from Qualcomm.

properties:
  compatible:
    items:
      - enum:
          - qcom,pm660-gpio
          - qcom,pm660l-gpio
          - qcom,pm6150-gpio
          - qcom,pm6150l-gpio
          - qcom,pm6350-gpio
          - qcom,pm7325-gpio
          - qcom,pm8005-gpio
          - qcom,pm8008-gpio
          - qcom,pm8018-gpio
          - qcom,pm8038-gpio
          - qcom,pm8058-gpio
          - qcom,pm8150-gpio
          - qcom,pm8150b-gpio
          - qcom,pm8350-gpio
          - qcom,pm8350b-gpio
          - qcom,pm8350c-gpio
          - qcom,pm8916-gpio
          - qcom,pm8917-gpio
          - qcom,pm8921-gpio
          - qcom,pm8941-gpio
          - qcom,pm8950-gpio
          - qcom,pm8994-gpio
          - qcom,pm8998-gpio
          - qcom,pma8084-gpio
          - qcom,pmi8950-gpio
          - qcom,pmi8994-gpio
          - qcom,pmi8998-gpio
          - qcom,pmk8350-gpio
          - qcom,pmr735a-gpio
          - qcom,pmr735b-gpio
          - qcom,pms405-gpio
          - qcom,pmx55-gpio

      - enum:
          - qcom,spmi-gpio
          - qcom,ssbi-gpio

  reg:
    maxItems: 1

  interrupt-controller: true

  '#interrupt-cells':
    const: 2

  gpio-controller: true

  gpio-ranges:
    maxItems: 1

  '#gpio-cells':
    const: 2
    description:
      The first cell will be used to define gpio number and the
      second denotes the flags for this gpio

additionalProperties: false

required:
  - compatible
  - reg
  - gpio-controller
  - '#gpio-cells'
  - gpio-ranges
  - interrupt-controller

patternProperties:
  '-state$':
    oneOf:
      - $ref: "#/$defs/qcom-pmic-gpio-state"
      - patternProperties:
          ".*":
            $ref: "#/$defs/qcom-pmic-gpio-state"

$defs:
  qcom-pmic-gpio-state:
    type: object
    allOf:
      - $ref: "pinmux-node.yaml"
      - $ref: "pincfg-node.yaml"
    properties:
      pins:
        description:
          List of gpio pins affected by the properties specified in
          this subnode.  Valid pins are
                 - gpio1-gpio10 for pm6150
                 - gpio1-gpio12 for pm6150l
                 - gpio1-gpio9 for pm6350
                 - gpio1-gpio10 for pm7325
                 - gpio1-gpio4 for pm8005
                 - gpio1-gpio2 for pm8008
                 - gpio1-gpio6 for pm8018
                 - gpio1-gpio12 for pm8038
                 - gpio1-gpio40 for pm8058
                 - gpio1-gpio10 for pm8150 (holes on gpio2, gpio5,
                                            gpio7 and gpio8)
                 - gpio1-gpio12 for pm8150b (holes on gpio3, gpio4
                                             and gpio7)
                 - gpio1-gpio12 for pm8150l (hole on gpio7)
                 - gpio1-gpio4 for pm8916
                 - gpio1-gpio10 for pm8350
                 - gpio1-gpio8 for pm8350b
                 - gpio1-gpio9 for pm8350c
                 - gpio1-gpio38 for pm8917
                 - gpio1-gpio44 for pm8921
                 - gpio1-gpio36 for pm8941
                 - gpio1-gpio8 for pm8950 (hole on gpio3)
                 - gpio1-gpio22 for pm8994
                 - gpio1-gpio26 for pm8998
                 - gpio1-gpio22 for pma8084
                 - gpio1-gpio2 for pmi8950
                 - gpio1-gpio10 for pmi8994
                 - gpio1-gpio4 for pmk8350
                 - gpio1-gpio4 for pmr735a
                 - gpio1-gpio4 for pmr735b
                 - gpio1-gpio12 for pms405 (holes on gpio1, gpio9
                                            and gpio10)
                 - gpio1-gpio11 for pmx55 (holes on gpio3, gpio7, gpio10
                                            and gpio11)

        items:
          pattern: "^gpio([0-9]+)$"

      function:
        items:
          - enum:
              - normal
              - paired
              - func1
              - func2
              - dtest1
              - dtest2
              - dtest3
              - dtest4
              - func3  # supported by LV/MV GPIO subtypes
              - func4  # supported by LV/MV GPIO subtypes

      bias-disable: true
      bias-pull-down: true
      bias-pull-up: true

      qcom,pull-up-strength:
        $ref: /schemas/types.yaml#/definitions/uint32
        description:
          Specifies the strength to use for pull up, if selected.
          Valid values are defined in
          <dt-bindings/pinctrl/qcom,pmic-gpio.h>
          If this property is omitted 30uA strength will be used
          if pull up is selected
        enum: [0, 1, 2, 3]

      bias-high-impedance: true
      input-enable: true
      output-high: true
      output-low: true
      output-enable: true
      output-disable: true
      power-source: true

      qcom,drive-strength:
        $ref: /schemas/types.yaml#/definitions/uint32
        description:
          Selects the drive strength for the specified pins
          Valid drive strength values are defined in
          <dt-bindings/pinctrl/qcom,pmic-gpio.h>
        enum: [0, 1, 2, 3]

      drive-push-pull: true
      drive-open-drain: true
      drive-open-source: true

      qcom,analog-pass:
        $ref: /schemas/types.yaml#/definitions/flag
        description:
          The specified pins are configured in
          analog-pass-through mode.

      qcom,atest:
        $ref: /schemas/types.yaml#/definitions/uint32
        description:
          Selects ATEST rail to route to GPIO when it's
          configured in analog-pass-through mode.
        enum: [1, 2, 3, 4]

      qcom,dtest-buffer:
        $ref: /schemas/types.yaml#/definitions/uint32
        description:
          Selects DTEST rail to route to GPIO when it's
          configured as digital input.
        enum: [1, 2, 3, 4]

    required:
      - pins
      - function

    additionalProperties: false

examples:
  - |
    #include <dt-bindings/pinctrl/qcom,pmic-gpio.h>

    pm8921_gpio: gpio@150 {
      compatible = "qcom,pm8921-gpio", "qcom,ssbi-gpio";
      reg = <0x150 0x160>;
      interrupt-controller;
      #interrupt-cells = <2>;
      gpio-controller;
      gpio-ranges = <&pm8921_gpio 0 0 44>;
      #gpio-cells = <2>;

      pm8921_gpio_keys: gpio-keys-state {
        volume-keys {
          pins = "gpio20", "gpio21";
          function = "normal";

          input-enable;
          bias-pull-up;
          drive-push-pull;
          qcom,drive-strength = <PMIC_GPIO_STRENGTH_NO>;
          power-source = <PM8921_GPIO_S4>;
        };
      };
    };
...
