# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
%YAML 1.2
---
$id: http://devicetree.org/schemas/mfd/ti,tps6594.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: TI TPS6594 Power Management Integrated Circuit

maintainers:
  - Julien Panis <jpanis@baylibre.com>

description:
  TPS6594 is a Power Management IC which provides regulators and others
  features like GPIOs, RTC, watchdog, ESMs (Error Signal Monitor), and
  PFSM (Pre-configurable Finite State Machine) managing the state of the device.
  TPS6594 is the super-set device while TPS6593 and LP8764 are derivatives.

properties:
  compatible:
    enum:
      - ti,lp8764-q1
      - ti,tps6593-q1
      - ti,tps6594-q1
      - ti,tps65224-q1

  reg:
    description: I2C slave address or SPI chip select number.
    maxItems: 1

  ti,primary-pmic:
    type: boolean
    description: |
      Identify the primary PMIC on SPMI bus.
      A multi-PMIC synchronization scheme is implemented in the PMIC device
      to synchronize the power state changes with other PMIC devices. This is
      accomplished through a SPMI bus: the primary PMIC is the controller
      device on the SPMI bus, and the secondary PMICs are the target devices
      on the SPMI bus.

  system-power-controller: true

  gpio-controller: true

  '#gpio-cells':
    const: 2
    description: |
      The first cell is the pin number, the second cell is used to specify flags.
      See ../gpio/gpio.txt for more information.

  interrupts:
    maxItems: 1

  regulators:
    type: object
    description: List of regulators provided by this controller.

    patternProperties:
      "^buck([1-5]|12|34|123|1234)$":
        type: object
        $ref: /schemas/regulator/regulator.yaml#

        unevaluatedProperties: false

      "^ldo[1-4]$":
        type: object
        $ref: /schemas/regulator/regulator.yaml#

        unevaluatedProperties: false

    allOf:
      - if:
          required:
            - buck12
        then:
          properties:
            buck123: false
            buck1234: false
      - if:
          required:
            - buck123
        then:
          properties:
            buck34: false
      - if:
          required:
            - buck1234
        then:
          properties:
            buck34: false

    additionalProperties: false

patternProperties:
  "^buck([1-5]|12|34|123|1234)-supply$":
    description: Input supply phandle for each buck.

  "^ldo[1-4]-supply$":
    description: Input supply phandle for each ldo.

required:
  - compatible
  - reg
  - interrupts

additionalProperties: false

examples:
  - |
    #include <dt-bindings/interrupt-controller/arm-gic.h>
    i2c {
        #address-cells = <1>;
        #size-cells = <0>;

        tps6593: pmic@48 {
            compatible = "ti,tps6593-q1";
            reg = <0x48>;
            ti,primary-pmic;
            system-power-controller;

            gpio-controller;
            #gpio-cells = <2>;

            pinctrl-names = "default";
            pinctrl-0 = <&pmic_irq_pins_default>;
            interrupt-parent = <&mcu_gpio0>;
            interrupts = <0 IRQ_TYPE_EDGE_FALLING>;

            buck123-supply = <&vcc_3v3_sys>;
            buck4-supply = <&vcc_3v3_sys>;
            buck5-supply = <&vcc_3v3_sys>;
            ldo1-supply = <&vcc_3v3_sys>;
            ldo2-supply = <&vcc_3v3_sys>;
            ldo3-supply = <&buck5>;
            ldo4-supply = <&vcc_3v3_sys>;

            regulators {
                buck123: buck123 {
                    regulator-name = "vcc_core";
                    regulator-min-microvolt = <750000>;
                    regulator-max-microvolt = <850000>;
                    regulator-boot-on;
                    regulator-always-on;
                };

                buck4: buck4 {
                    regulator-name = "vcc_1v1";
                    regulator-min-microvolt = <1100000>;
                    regulator-max-microvolt = <1100000>;
                    regulator-boot-on;
                    regulator-always-on;
                };

                buck5: buck5 {
                    regulator-name = "vcc_1v8_sys";
                    regulator-min-microvolt = <1800000>;
                    regulator-max-microvolt = <1800000>;
                    regulator-boot-on;
                    regulator-always-on;
                };

                ldo1: ldo1 {
                    regulator-name = "vddshv5_sdio";
                    regulator-min-microvolt = <3300000>;
                    regulator-max-microvolt = <3300000>;
                    regulator-boot-on;
                    regulator-always-on;
                };

                ldo2: ldo2 {
                    regulator-name = "vpp_1v8";
                    regulator-min-microvolt = <1800000>;
                    regulator-max-microvolt = <1800000>;
                    regulator-boot-on;
                    regulator-always-on;
                };

                ldo3: ldo3 {
                    regulator-name = "vcc_0v85";
                    regulator-min-microvolt = <850000>;
                    regulator-max-microvolt = <850000>;
                    regulator-boot-on;
                    regulator-always-on;
                };

                ldo4: ldo4 {
                    regulator-name = "vdda_1v8";
                    regulator-min-microvolt = <1800000>;
                    regulator-max-microvolt = <1800000>;
                    regulator-boot-on;
                    regulator-always-on;
                };
            };
        };
    };
