Documentation / devicetree / bindings / regulator / ti,tps65219.yaml


Based on kernel version 6.8. Page generated on 2024-03-11 21:26 EST.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
%YAML 1.2
---
$id: http://devicetree.org/schemas/regulator/ti,tps65219.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: TI tps65219 Power Management Integrated Circuit regulators

maintainers:
  - Jerome Neanne <jerome.neanne@baylibre.com>

description: |
  Regulator nodes should be named to buck<number> and ldo<number>.

properties:
  compatible:
    enum:
      - ti,tps65219

  reg:
    maxItems: 1

  system-power-controller:
    type: boolean
    description: Optional property that indicates that this device is
      controlling system power.

  interrupts:
    description: Short-circuit, over-current, under-voltage for regulators, PB interrupts.
    maxItems: 1

  interrupt-controller: true
 
  '#interrupt-cells':
    description: Specifies the PIN numbers and Flags, as defined in
      include/dt-bindings/interrupt-controller/irq.h
    const: 1

  ti,power-button:
    type: boolean
    description: |
      Optional property that sets the EN/PB/VSENSE pin to be a
      power-button.
      TPS65219 has a multipurpose pin called EN/PB/VSENSE that can be either
      1. EN in which case it functions as an enable pin.
      2. VSENSE which compares the voltages and triggers an automatic
      on/off request.
      3. PB in which case it can be configured to trigger an interrupt
      to the SoC.
      ti,power-button reflects the last one of those options
      where the board has a button wired to the pin and triggers
      an interrupt on pressing it.

  regulators:
    type: object
    description: |
      list of regulators provided by this controller

    patternProperties:
      "^ldo[1-4]$":
        type: object
        $ref: regulator.yaml#
        description:
          Properties for single LDO regulator.

        unevaluatedProperties: false
 
      "^buck[1-3]$":
        type: object
        $ref: regulator.yaml#
        description:
          Properties for single BUCK regulator.

        unevaluatedProperties: false

    additionalProperties: false

patternProperties:
  "^buck[1-3]-supply$":
    description: Input supply phandle of one regulator.
 
  "^ldo[1-4]-supply$":
    description: Input supply phandle of one regulator.

required:
  - compatible
  - reg
  - interrupts
  - regulators

additionalProperties: false

examples:
  - |
    #include <dt-bindings/interrupt-controller/arm-gic.h>
    i2c {
        #address-cells = <1>;
        #size-cells = <0>;
 
        tps65219: pmic@30 {
            compatible = "ti,tps65219";
            reg = <0x30>;
            buck1-supply = <&vcc_3v3_sys>;
            buck2-supply = <&vcc_3v3_sys>;
            buck3-supply = <&vcc_3v3_sys>;
            ldo1-supply = <&vcc_3v3_sys>;
            ldo2-supply = <&buck2_reg>;
            ldo3-supply = <&vcc_3v3_sys>;
            ldo4-supply = <&vcc_3v3_sys>;
 
            pinctrl-0 = <&pmic_irq_pins_default>;
 
            interrupt-parent = <&gic500>;
            interrupts = <GIC_SPI 224 IRQ_TYPE_LEVEL_HIGH>;
            ti,power-button;
 
            regulators {
                buck1_reg: buck1 {
                    regulator-name = "VDD_CORE";
                    regulator-min-microvolt = <750000>;
                    regulator-max-microvolt = <750000>;
                    regulator-boot-on;
                    regulator-always-on;
                };
 
                buck2_reg: buck2 {
                    regulator-name = "VCC1V8";
                    regulator-min-microvolt = <1800000>;
                    regulator-max-microvolt = <1800000>;
                    regulator-boot-on;
                    regulator-always-on;
                };
 
                buck3_reg: buck3 {
                    regulator-name = "VDD_LPDDR4";
                    regulator-min-microvolt = <1100000>;
                    regulator-max-microvolt = <1100000>;
                    regulator-boot-on;
                    regulator-always-on;
                };
 
                ldo1_reg: ldo1 {
                    regulator-name = "VDDSHV_SD_IO_PMIC";
                    regulator-min-microvolt = <33000000>;
                    regulator-max-microvolt = <33000000>;
                };
 
                ldo2_reg: ldo2 {
                    regulator-name = "VDDAR_CORE";
                    regulator-min-microvolt = <850000>;
                    regulator-max-microvolt = <850000>;
                    regulator-boot-on;
                    regulator-always-on;
                };
 
                ldo3_reg: ldo3 {
                    regulator-name = "VDDA_1V8";
                    regulator-min-microvolt = <18000000>;
                    regulator-max-microvolt = <18000000>;
                    regulator-boot-on;
                    regulator-always-on;
                };
 
                ldo4_reg: ldo4 {
                    regulator-name = "VDD_PHY_2V5";
                    regulator-min-microvolt = <25000000>;
                    regulator-max-microvolt = <25000000>;
                    regulator-boot-on;
                    regulator-always-on;
                };
            };
        };
    };