xref: /linux/Documentation/devicetree/bindings/mfd/rohm,bd96801-pmic.yaml (revision 3a39d672e7f48b8d6b91a09afa4b55352773b4b5)
18b1a3936SMatti Vaittinen# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
28b1a3936SMatti Vaittinen%YAML 1.2
38b1a3936SMatti Vaittinen---
48b1a3936SMatti Vaittinen$id: http://devicetree.org/schemas/mfd/rohm,bd96801-pmic.yaml#
58b1a3936SMatti Vaittinen$schema: http://devicetree.org/meta-schemas/core.yaml#
68b1a3936SMatti Vaittinen
78b1a3936SMatti Vaittinentitle: ROHM BD96801 Scalable Power Management Integrated Circuit
88b1a3936SMatti Vaittinen
98b1a3936SMatti Vaittinenmaintainers:
108b1a3936SMatti Vaittinen  - Matti Vaittinen <matti.vaittinen@fi.rohmeurope.com>
118b1a3936SMatti Vaittinen
128b1a3936SMatti Vaittinendescription:
138b1a3936SMatti Vaittinen  BD96801 is an automotive grade single-chip power management IC.
148b1a3936SMatti Vaittinen  It integrates 4 buck converters and 3 LDOs with safety features like
158b1a3936SMatti Vaittinen  over-/under voltage and over current detection and a watchdog.
168b1a3936SMatti Vaittinen
178b1a3936SMatti Vaittinenproperties:
188b1a3936SMatti Vaittinen  compatible:
198b1a3936SMatti Vaittinen    const: rohm,bd96801
208b1a3936SMatti Vaittinen
218b1a3936SMatti Vaittinen  reg:
228b1a3936SMatti Vaittinen    maxItems: 1
238b1a3936SMatti Vaittinen
248b1a3936SMatti Vaittinen  interrupts:
258b1a3936SMatti Vaittinen    description:
268b1a3936SMatti Vaittinen      The PMIC provides intb and errb IRQ lines. The errb IRQ line is used
278b1a3936SMatti Vaittinen      for fatal IRQs which will cause the PMIC to shut down power outputs.
28*a7fcc232SYu-Chun Lin      In many systems this will shut down the SoC controlling the PMIC and
298b1a3936SMatti Vaittinen      connecting/handling the errb can be omitted. However, there are cases
308b1a3936SMatti Vaittinen      where the SoC is not powered by the PMIC or has a short time backup
318b1a3936SMatti Vaittinen      energy to handle shutdown of critical hardware. In that case it may be
328b1a3936SMatti Vaittinen      useful to connect the errb and handle errb events.
338b1a3936SMatti Vaittinen    minItems: 1
348b1a3936SMatti Vaittinen    maxItems: 2
358b1a3936SMatti Vaittinen
368b1a3936SMatti Vaittinen  interrupt-names:
378b1a3936SMatti Vaittinen    minItems: 1
388b1a3936SMatti Vaittinen    items:
398b1a3936SMatti Vaittinen      - enum: [intb, errb]
408b1a3936SMatti Vaittinen      - const: errb
418b1a3936SMatti Vaittinen
428b1a3936SMatti Vaittinen  rohm,hw-timeout-ms:
438b1a3936SMatti Vaittinen    description:
448b1a3936SMatti Vaittinen      Watchdog timeout value(s). First walue is timeout limit. Second value is
458b1a3936SMatti Vaittinen      optional value for 'too early' watchdog ping if window timeout mode is
468b1a3936SMatti Vaittinen      to be used.
478b1a3936SMatti Vaittinen    minItems: 1
488b1a3936SMatti Vaittinen    maxItems: 2
498b1a3936SMatti Vaittinen
508b1a3936SMatti Vaittinen  rohm,wdg-action:
518b1a3936SMatti Vaittinen    description:
528b1a3936SMatti Vaittinen      Whether the watchdog failure must turn off the regulator power outputs or
538b1a3936SMatti Vaittinen      just toggle the INTB line.
548b1a3936SMatti Vaittinen    enum:
558b1a3936SMatti Vaittinen      - prstb
568b1a3936SMatti Vaittinen      - intb-only
578b1a3936SMatti Vaittinen
588b1a3936SMatti Vaittinen  timeout-sec:
598b1a3936SMatti Vaittinen    maxItems: 2
608b1a3936SMatti Vaittinen
618b1a3936SMatti Vaittinen  regulators:
628b1a3936SMatti Vaittinen    $ref: /schemas/regulator/rohm,bd96801-regulator.yaml
638b1a3936SMatti Vaittinen    description:
648b1a3936SMatti Vaittinen      List of child nodes that specify the regulators.
658b1a3936SMatti Vaittinen
668b1a3936SMatti Vaittinenrequired:
678b1a3936SMatti Vaittinen  - compatible
688b1a3936SMatti Vaittinen  - reg
698b1a3936SMatti Vaittinen  - interrupts
708b1a3936SMatti Vaittinen  - interrupt-names
718b1a3936SMatti Vaittinen  - regulators
728b1a3936SMatti Vaittinen
738b1a3936SMatti VaittinenadditionalProperties: false
748b1a3936SMatti Vaittinen
758b1a3936SMatti Vaittinenexamples:
768b1a3936SMatti Vaittinen  - |
778b1a3936SMatti Vaittinen    #include <dt-bindings/interrupt-controller/irq.h>
788b1a3936SMatti Vaittinen    #include <dt-bindings/leds/common.h>
798b1a3936SMatti Vaittinen    i2c {
808b1a3936SMatti Vaittinen        #address-cells = <1>;
818b1a3936SMatti Vaittinen        #size-cells = <0>;
828b1a3936SMatti Vaittinen        pmic: pmic@60 {
838b1a3936SMatti Vaittinen            reg = <0x60>;
848b1a3936SMatti Vaittinen            compatible = "rohm,bd96801";
858b1a3936SMatti Vaittinen            interrupt-parent = <&gpio1>;
868b1a3936SMatti Vaittinen            interrupts = <29 IRQ_TYPE_LEVEL_LOW>, <6 IRQ_TYPE_LEVEL_LOW>;
878b1a3936SMatti Vaittinen            interrupt-names = "intb", "errb";
888b1a3936SMatti Vaittinen
898b1a3936SMatti Vaittinen            regulators {
908b1a3936SMatti Vaittinen                buck1 {
918b1a3936SMatti Vaittinen                    regulator-name = "buck1";
928b1a3936SMatti Vaittinen                    regulator-ramp-delay = <1250>;
938b1a3936SMatti Vaittinen                    /* 0.5V min INITIAL - 150 mV tune */
948b1a3936SMatti Vaittinen                    regulator-min-microvolt = <350000>;
958b1a3936SMatti Vaittinen                    /* 3.3V + 150mV tune */
968b1a3936SMatti Vaittinen                    regulator-max-microvolt = <3450000>;
978b1a3936SMatti Vaittinen
988b1a3936SMatti Vaittinen                    /* These can be set only when PMIC is in STBY */
998b1a3936SMatti Vaittinen                    rohm,initial-voltage-microvolt = <500000>;
1008b1a3936SMatti Vaittinen                    regulator-ov-error-microvolt = <230000>;
1018b1a3936SMatti Vaittinen                    regulator-uv-error-microvolt = <230000>;
1028b1a3936SMatti Vaittinen                    regulator-temp-protection-kelvin = <1>;
1038b1a3936SMatti Vaittinen                    regulator-temp-warn-kelvin = <0>;
1048b1a3936SMatti Vaittinen                };
1058b1a3936SMatti Vaittinen                buck2 {
1068b1a3936SMatti Vaittinen                    regulator-name = "buck2";
1078b1a3936SMatti Vaittinen                    regulator-min-microvolt = <350000>;
1088b1a3936SMatti Vaittinen                    regulator-max-microvolt = <3450000>;
1098b1a3936SMatti Vaittinen
1108b1a3936SMatti Vaittinen                    rohm,initial-voltage-microvolt = <3000000>;
1118b1a3936SMatti Vaittinen                    regulator-ov-error-microvolt = <18000>;
1128b1a3936SMatti Vaittinen                    regulator-uv-error-microvolt = <18000>;
1138b1a3936SMatti Vaittinen                    regulator-temp-protection-kelvin = <1>;
1148b1a3936SMatti Vaittinen                    regulator-temp-warn-kelvin = <1>;
1158b1a3936SMatti Vaittinen                };
1168b1a3936SMatti Vaittinen                buck3 {
1178b1a3936SMatti Vaittinen                    regulator-name = "buck3";
1188b1a3936SMatti Vaittinen                    regulator-min-microvolt = <350000>;
1198b1a3936SMatti Vaittinen                    regulator-max-microvolt = <3450000>;
1208b1a3936SMatti Vaittinen
1218b1a3936SMatti Vaittinen                    rohm,initial-voltage-microvolt = <600000>;
1228b1a3936SMatti Vaittinen                    regulator-ov-warn-microvolt = <18000>;
1238b1a3936SMatti Vaittinen                    regulator-uv-warn-microvolt = <18000>;
1248b1a3936SMatti Vaittinen                    regulator-temp-protection-kelvin = <1>;
1258b1a3936SMatti Vaittinen                    regulator-temp-error-kelvin = <0>;
1268b1a3936SMatti Vaittinen                };
1278b1a3936SMatti Vaittinen                buck4 {
1288b1a3936SMatti Vaittinen                    regulator-name = "buck4";
1298b1a3936SMatti Vaittinen                    regulator-min-microvolt = <350000>;
1308b1a3936SMatti Vaittinen                    regulator-max-microvolt = <3450000>;
1318b1a3936SMatti Vaittinen
1328b1a3936SMatti Vaittinen                    rohm,initial-voltage-microvolt = <600000>;
1338b1a3936SMatti Vaittinen                    regulator-ov-warn-microvolt = <18000>;
1348b1a3936SMatti Vaittinen                    regulator-uv-warn-microvolt = <18000>;
1358b1a3936SMatti Vaittinen                    regulator-temp-protection-kelvin = <1>;
1368b1a3936SMatti Vaittinen                    regulator-temp-error-kelvin = <0>;
1378b1a3936SMatti Vaittinen                };
1388b1a3936SMatti Vaittinen                ldo5 {
1398b1a3936SMatti Vaittinen                    regulator-name = "ldo5";
1408b1a3936SMatti Vaittinen                    regulator-min-microvolt = <300000>;
1418b1a3936SMatti Vaittinen                    regulator-max-microvolt = <3300000>;
1428b1a3936SMatti Vaittinen
1438b1a3936SMatti Vaittinen                    rohm,initial-voltage-microvolt = <500000>;
1448b1a3936SMatti Vaittinen                    regulator-ov-error-microvolt = <36000>;
1458b1a3936SMatti Vaittinen                    regulator-uv-error-microvolt = <34000>;
1468b1a3936SMatti Vaittinen                    regulator-temp-protection-kelvin = <1>;
1478b1a3936SMatti Vaittinen                    regulator-temp-warn-kelvin = <0>;
1488b1a3936SMatti Vaittinen                };
1498b1a3936SMatti Vaittinen                ldo6 {
1508b1a3936SMatti Vaittinen                    regulator-name = "ldo6";
1518b1a3936SMatti Vaittinen                    regulator-min-microvolt = <300000>;
1528b1a3936SMatti Vaittinen                    regulator-max-microvolt = <3300000>;
1538b1a3936SMatti Vaittinen
1548b1a3936SMatti Vaittinen                    rohm,initial-voltage-microvolt = <300000>;
1558b1a3936SMatti Vaittinen                    regulator-ov-error-microvolt = <36000>;
1568b1a3936SMatti Vaittinen                    regulator-uv-error-microvolt = <34000>;
1578b1a3936SMatti Vaittinen                    regulator-temp-protection-kelvin = <1>;
1588b1a3936SMatti Vaittinen                    regulator-temp-warn-kelvin = <0>;
1598b1a3936SMatti Vaittinen                };
1608b1a3936SMatti Vaittinen                ldo7 {
1618b1a3936SMatti Vaittinen                    regulator-name = "ldo7";
1628b1a3936SMatti Vaittinen                    regulator-min-microvolt = <300000>;
1638b1a3936SMatti Vaittinen                    regulator-max-microvolt = <3300000>;
1648b1a3936SMatti Vaittinen
1658b1a3936SMatti Vaittinen                    rohm,initial-voltage-microvolt = <500000>;
1668b1a3936SMatti Vaittinen                    regulator-ov-error-microvolt = <36000>;
1678b1a3936SMatti Vaittinen                    regulator-uv-error-microvolt = <34000>;
1688b1a3936SMatti Vaittinen                    regulator-temp-protection-kelvin = <1>;
1698b1a3936SMatti Vaittinen                    regulator-temp-warn-kelvin = <0>;
1708b1a3936SMatti Vaittinen                };
1718b1a3936SMatti Vaittinen            };
1728b1a3936SMatti Vaittinen        };
1738b1a3936SMatti Vaittinen    };
174