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

title: Samsung S5M8767 Power Management IC

maintainers:
  - Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>

description: |
  This is a part of device tree bindings for S2M and S5M family of Power
  Management IC (PMIC).

  The Samsung S5M8767 is a Power Management IC which includes voltage
  and current regulators, RTC, clock outputs and other sub-blocks.

properties:
  compatible:
    const: samsung,s5m8767-pmic

  clocks:
    $ref: ../clock/samsung,s2mps11.yaml
    description:
      Child node describing clock provider.

  interrupts:
    maxItems: 1

  reg:
    maxItems: 1

  regulators:
    $ref: ../regulator/samsung,s5m8767.yaml
    description:
      List of child nodes that specify the regulators.

  s5m8767,pmic-buck2-dvs-voltage:
    $ref: /schemas/types.yaml#/definitions/uint32-array
    minItems: 8
    maxItems: 8
    description: |
      A set of 8 voltage values in micro-volt (uV) units for buck2 when
      changing voltage using gpio dvs.

  s5m8767,pmic-buck3-dvs-voltage:
    $ref: /schemas/types.yaml#/definitions/uint32-array
    minItems: 8
    maxItems: 8
    description: |
      A set of 8 voltage values in micro-volt (uV) units for buck3 when
      changing voltage using gpio dvs.

  s5m8767,pmic-buck4-dvs-voltage:
    $ref: /schemas/types.yaml#/definitions/uint32-array
    minItems: 8
    maxItems: 8
    description: |
      A set of 8 voltage values in micro-volt (uV) units for buck4 when
      changing voltage using gpio dvs.

  s5m8767,pmic-buck-ds-gpios:
    minItems: 3
    maxItems: 3
    description: |
      GPIO specifiers for three host gpio's used for selecting GPIO DVS lines.
      It is one-to-one mapped to dvs gpio lines.

  s5m8767,pmic-buck2-uses-gpio-dvs:
    type: boolean
    description: buck2 can be controlled by gpio dvs.

  s5m8767,pmic-buck3-uses-gpio-dvs:
    type: boolean
    description: buck3 can be controlled by gpio dvs.

  s5m8767,pmic-buck4-uses-gpio-dvs:
    type: boolean
    description: buck4 can be controlled by gpio dvs.

  s5m8767,pmic-buck-default-dvs-idx:
    $ref: /schemas/types.yaml#/definitions/uint32-array
    minimum: 0
    maximum: 7
    default: 0
    description: |
      Default voltage setting selected from the possible 8 options selectable
      by the dvs gpios. The value of this property should be between 0 and 7.
      If not specified or if out of range, the default value of this property
      is set to 0.

  s5m8767,pmic-buck-dvs-gpios:
    minItems: 3
    maxItems: 3
    description: |
      GPIO specifiers for three host gpio's used for dvs.

  vinb1-supply:
    description: Power supply for buck1
  vinb2-supply:
    description: Power supply for buck2
  vinb3-supply:
    description: Power supply for buck3
  vinb4-supply:
    description: Power supply for buck4
  vinb5-supply:
    description: Power supply for buck5
  vinb6-supply:
    description: Power supply for buck6
  vinb7-supply:
    description: Power supply for buck7
  vinb8-supply:
    description: Power supply for buck8
  vinb9-supply:
    description: Power supply for buck9

  vinl1-supply:
    description: Power supply for LDO3, LDO10, LDO26, LDO27
  vinl2-supply:
    description: Power supply for LDO13, LDO16, LDO25, LDO28
  vinl3-supply:
    description: Power supply for LDO11, LDO14
  vinl4-supply:
    description: Power supply for LDO4, LDO9
  vinl5-supply:
    description: Power supply for LDO12, LDO17, LDO19, LDO23
  vinl6-supply:
    description: Power supply for LDO18, LDO20, LDO21, LDO24
  vinl7-supply:
    description: Power supply for LDO5, LDO22
  vinl8-supply:
    description: Power supply for LDO1, LDO6, LDO7, LDO8, LDO15
  vinl9-supply:
    description: Power supply for LDO2

  wakeup-source: true

required:
  - compatible
  - reg
  - regulators
  - s5m8767,pmic-buck-ds-gpios

dependencies:
  s5m8767,pmic-buck2-dvs-voltage: [ 's5m8767,pmic-buck-dvs-gpios' ]
  s5m8767,pmic-buck3-dvs-voltage: [ 's5m8767,pmic-buck-dvs-gpios' ]
  s5m8767,pmic-buck4-dvs-voltage: [ 's5m8767,pmic-buck-dvs-gpios' ]
  s5m8767,pmic-buck2-uses-gpio-dvs: [ 's5m8767,pmic-buck-dvs-gpios', 's5m8767,pmic-buck2-dvs-voltage' ]
  s5m8767,pmic-buck3-uses-gpio-dvs: [ 's5m8767,pmic-buck-dvs-gpios', 's5m8767,pmic-buck3-dvs-voltage' ]
  s5m8767,pmic-buck4-uses-gpio-dvs: [ 's5m8767,pmic-buck-dvs-gpios', 's5m8767,pmic-buck4-dvs-voltage' ]

additionalProperties: false

allOf:
  - if:
      required:
        - s5m8767,pmic-buck2-uses-gpio-dvs
    then:
      properties:
        s5m8767,pmic-buck3-uses-gpio-dvs: false
        s5m8767,pmic-buck4-uses-gpio-dvs: false

  - if:
      required:
        - s5m8767,pmic-buck3-uses-gpio-dvs
    then:
      properties:
        s5m8767,pmic-buck2-uses-gpio-dvs: false
        s5m8767,pmic-buck4-uses-gpio-dvs: false

  - if:
      required:
        - s5m8767,pmic-buck4-uses-gpio-dvs
    then:
      properties:
        s5m8767,pmic-buck2-uses-gpio-dvs: false
        s5m8767,pmic-buck3-uses-gpio-dvs: false

examples:
  - |
    #include <dt-bindings/gpio/gpio.h>
    #include <dt-bindings/interrupt-controller/irq.h>

    i2c {
        #address-cells = <1>;
        #size-cells = <0>;

        pmic@66 {
            compatible = "samsung,s5m8767-pmic";
            reg = <0x66>;

            interrupt-parent = <&gpx3>;
            interrupts = <2 IRQ_TYPE_LEVEL_LOW>;
            pinctrl-names = "default";
            pinctrl-0 = <&s5m8767_irq &s5m8767_dvs &s5m8767_ds>;
            wakeup-source;

            s5m8767,pmic-buck-default-dvs-idx = <3>;
            s5m8767,pmic-buck2-uses-gpio-dvs;

            s5m8767,pmic-buck-dvs-gpios = <&gpd1 0 GPIO_ACTIVE_LOW>,
                                          <&gpd1 1 GPIO_ACTIVE_LOW>,
                                          <&gpd1 2 GPIO_ACTIVE_LOW>;

            s5m8767,pmic-buck-ds-gpios = <&gpx2 3 GPIO_ACTIVE_LOW>,
                                         <&gpx2 4 GPIO_ACTIVE_LOW>,
                                         <&gpx2 5 GPIO_ACTIVE_LOW>;

            s5m8767,pmic-buck2-dvs-voltage = <1350000>, <1300000>,
                                             <1250000>, <1200000>,
                                             <1150000>, <1100000>,
                                             <1000000>, <950000>;

            s5m8767,pmic-buck3-dvs-voltage = <1100000>, <1100000>,
                                             <1100000>, <1100000>,
                                             <1000000>, <1000000>,
                                             <1000000>, <1000000>;

            s5m8767,pmic-buck4-dvs-voltage = <1200000>, <1200000>,
                                             <1200000>, <1200000>,
                                             <1200000>, <1200000>,
                                             <1200000>, <1200000>;

            clocks {
                compatible = "samsung,s5m8767-clk";
                #clock-cells = <1>;
                clock-output-names = "en32khz_ap", "en32khz_cp", "en32khz_bt";
            };

            regulators {
                LDO1 {
                    regulator-name = "VDD_ALIVE";
                    regulator-min-microvolt = <1100000>;
                    regulator-max-microvolt = <1100000>;
                    regulator-always-on;
                    regulator-boot-on;
                    op_mode = <1>; /* Normal Mode */
                };

                // ...

                BUCK1 {
                    regulator-name = "VDD_MIF";
                    regulator-min-microvolt = <950000>;
                    regulator-max-microvolt = <1100000>;
                    regulator-always-on;
                    regulator-boot-on;
                    op_mode = <1>; /* Normal Mode */
                };

                BUCK2 {
                    regulator-name = "VDD_ARM";
                    regulator-min-microvolt = <900000>;
                    regulator-max-microvolt = <1350000>;
                    regulator-always-on;
                    regulator-boot-on;
                    op_mode = <1>; /* Normal Mode */
                };

                // ...
            };
        };
    };

  - |
    #include <dt-bindings/gpio/gpio.h>
    #include <dt-bindings/interrupt-controller/irq.h>

    i2c {
        #address-cells = <1>;
        #size-cells = <0>;

        pmic@66 {
            compatible = "samsung,s5m8767-pmic";
            reg = <0x66>;

            interrupt-parent = <&gpx3>;
            interrupts = <2 IRQ_TYPE_LEVEL_LOW>;
            pinctrl-names = "default";
            pinctrl-0 = <&s5m8767_irq &s5m8767_dvs &s5m8767_ds>;
            wakeup-source;

            s5m8767,pmic-buck-ds-gpios = <&gpx2 3 GPIO_ACTIVE_LOW>,
                                         <&gpx2 4 GPIO_ACTIVE_LOW>,
                                         <&gpx2 5 GPIO_ACTIVE_LOW>;

            clocks {
                compatible = "samsung,s5m8767-clk";
                #clock-cells = <1>;
                clock-output-names = "en32khz_ap", "en32khz_cp", "en32khz_bt";
            };

            regulators {
                LDO1 {
                    regulator-name = "VDD_ALIVE";
                    regulator-min-microvolt = <1100000>;
                    regulator-max-microvolt = <1100000>;
                    regulator-always-on;
                    regulator-boot-on;
                    op_mode = <1>; /* Normal Mode */
                };

                // ...
            };
        };
    };
