162306a36Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
262306a36Sopenharmony_ci%YAML 1.2
362306a36Sopenharmony_ci---
462306a36Sopenharmony_ci$id: http://devicetree.org/schemas/mfd/qcom,pm8008.yaml#
562306a36Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml#
662306a36Sopenharmony_ci
762306a36Sopenharmony_cititle: Qualcomm Technologies, Inc. PM8008 PMIC
862306a36Sopenharmony_ci
962306a36Sopenharmony_cimaintainers:
1062306a36Sopenharmony_ci  - Guru Das Srinagesh <quic_gurus@quicinc.com>
1162306a36Sopenharmony_ci
1262306a36Sopenharmony_cidescription: |
1362306a36Sopenharmony_ci  Qualcomm Technologies, Inc. PM8008 is a dedicated camera PMIC that integrates
1462306a36Sopenharmony_ci  all the necessary power management, housekeeping, and interface support
1562306a36Sopenharmony_ci  functions into a single IC.
1662306a36Sopenharmony_ci
1762306a36Sopenharmony_ciproperties:
1862306a36Sopenharmony_ci  compatible:
1962306a36Sopenharmony_ci    const: qcom,pm8008
2062306a36Sopenharmony_ci
2162306a36Sopenharmony_ci  reg:
2262306a36Sopenharmony_ci    description:
2362306a36Sopenharmony_ci      I2C slave address.
2462306a36Sopenharmony_ci
2562306a36Sopenharmony_ci    maxItems: 1
2662306a36Sopenharmony_ci
2762306a36Sopenharmony_ci  interrupts:
2862306a36Sopenharmony_ci    maxItems: 1
2962306a36Sopenharmony_ci
3062306a36Sopenharmony_ci    description: Parent interrupt.
3162306a36Sopenharmony_ci
3262306a36Sopenharmony_ci  "#interrupt-cells":
3362306a36Sopenharmony_ci    const: 2
3462306a36Sopenharmony_ci
3562306a36Sopenharmony_ci    description: |
3662306a36Sopenharmony_ci      The first cell is the IRQ number, the second cell is the IRQ trigger
3762306a36Sopenharmony_ci      flag. All interrupts are listed in include/dt-bindings/mfd/qcom-pm8008.h.
3862306a36Sopenharmony_ci
3962306a36Sopenharmony_ci  interrupt-controller: true
4062306a36Sopenharmony_ci
4162306a36Sopenharmony_ci  "#address-cells":
4262306a36Sopenharmony_ci    const: 1
4362306a36Sopenharmony_ci
4462306a36Sopenharmony_ci  "#size-cells":
4562306a36Sopenharmony_ci    const: 0
4662306a36Sopenharmony_ci
4762306a36Sopenharmony_cipatternProperties:
4862306a36Sopenharmony_ci  "^gpio@[0-9a-f]+$":
4962306a36Sopenharmony_ci    type: object
5062306a36Sopenharmony_ci
5162306a36Sopenharmony_ci    description: |
5262306a36Sopenharmony_ci      The GPIO peripheral. This node may be specified twice, one for each GPIO.
5362306a36Sopenharmony_ci
5462306a36Sopenharmony_ci    properties:
5562306a36Sopenharmony_ci      compatible:
5662306a36Sopenharmony_ci        items:
5762306a36Sopenharmony_ci          - const: qcom,pm8008-gpio
5862306a36Sopenharmony_ci          - const: qcom,spmi-gpio
5962306a36Sopenharmony_ci
6062306a36Sopenharmony_ci      reg:
6162306a36Sopenharmony_ci        description: Peripheral address of one of the two GPIO peripherals.
6262306a36Sopenharmony_ci        maxItems: 1
6362306a36Sopenharmony_ci
6462306a36Sopenharmony_ci      gpio-controller: true
6562306a36Sopenharmony_ci
6662306a36Sopenharmony_ci      gpio-ranges:
6762306a36Sopenharmony_ci        maxItems: 1
6862306a36Sopenharmony_ci
6962306a36Sopenharmony_ci      interrupt-controller: true
7062306a36Sopenharmony_ci
7162306a36Sopenharmony_ci      "#interrupt-cells":
7262306a36Sopenharmony_ci        const: 2
7362306a36Sopenharmony_ci
7462306a36Sopenharmony_ci      "#gpio-cells":
7562306a36Sopenharmony_ci        const: 2
7662306a36Sopenharmony_ci
7762306a36Sopenharmony_ci    required:
7862306a36Sopenharmony_ci      - compatible
7962306a36Sopenharmony_ci      - reg
8062306a36Sopenharmony_ci      - gpio-controller
8162306a36Sopenharmony_ci      - interrupt-controller
8262306a36Sopenharmony_ci      - "#gpio-cells"
8362306a36Sopenharmony_ci      - gpio-ranges
8462306a36Sopenharmony_ci      - "#interrupt-cells"
8562306a36Sopenharmony_ci
8662306a36Sopenharmony_ci    additionalProperties: false
8762306a36Sopenharmony_ci
8862306a36Sopenharmony_cirequired:
8962306a36Sopenharmony_ci  - compatible
9062306a36Sopenharmony_ci  - reg
9162306a36Sopenharmony_ci  - interrupts
9262306a36Sopenharmony_ci  - "#address-cells"
9362306a36Sopenharmony_ci  - "#size-cells"
9462306a36Sopenharmony_ci  - "#interrupt-cells"
9562306a36Sopenharmony_ci
9662306a36Sopenharmony_ciadditionalProperties: false
9762306a36Sopenharmony_ci
9862306a36Sopenharmony_ciexamples:
9962306a36Sopenharmony_ci  - |
10062306a36Sopenharmony_ci    #include <dt-bindings/mfd/qcom-pm8008.h>
10162306a36Sopenharmony_ci    #include <dt-bindings/interrupt-controller/irq.h>
10262306a36Sopenharmony_ci    qupv3_se13_i2c {
10362306a36Sopenharmony_ci      #address-cells = <1>;
10462306a36Sopenharmony_ci      #size-cells = <0>;
10562306a36Sopenharmony_ci      pm8008i@8 {
10662306a36Sopenharmony_ci        compatible = "qcom,pm8008";
10762306a36Sopenharmony_ci        reg = <0x8>;
10862306a36Sopenharmony_ci        #address-cells = <1>;
10962306a36Sopenharmony_ci        #size-cells = <0>;
11062306a36Sopenharmony_ci        interrupt-controller;
11162306a36Sopenharmony_ci        #interrupt-cells = <2>;
11262306a36Sopenharmony_ci
11362306a36Sopenharmony_ci        interrupt-parent = <&tlmm>;
11462306a36Sopenharmony_ci        interrupts = <32 IRQ_TYPE_EDGE_RISING>;
11562306a36Sopenharmony_ci
11662306a36Sopenharmony_ci        pm8008_gpios: gpio@c000 {
11762306a36Sopenharmony_ci          compatible = "qcom,pm8008-gpio", "qcom,spmi-gpio";
11862306a36Sopenharmony_ci          reg = <0xc000>;
11962306a36Sopenharmony_ci          gpio-controller;
12062306a36Sopenharmony_ci          gpio-ranges = <&pm8008_gpios 0 0 2>;
12162306a36Sopenharmony_ci          #gpio-cells = <2>;
12262306a36Sopenharmony_ci          interrupt-controller;
12362306a36Sopenharmony_ci          #interrupt-cells = <2>;
12462306a36Sopenharmony_ci        };
12562306a36Sopenharmony_ci      };
12662306a36Sopenharmony_ci    };
12762306a36Sopenharmony_ci
12862306a36Sopenharmony_ci...
129