10e8011faSEmmanuel Vadot# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause 20e8011faSEmmanuel Vadot%YAML 1.2 30e8011faSEmmanuel Vadot--- 40e8011faSEmmanuel Vadot$id: http://devicetree.org/schemas/mfd/rohm,bd96801-pmic.yaml# 50e8011faSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml# 60e8011faSEmmanuel Vadot 70e8011faSEmmanuel Vadottitle: ROHM BD96801 Scalable Power Management Integrated Circuit 80e8011faSEmmanuel Vadot 90e8011faSEmmanuel Vadotmaintainers: 100e8011faSEmmanuel Vadot - Matti Vaittinen <matti.vaittinen@fi.rohmeurope.com> 110e8011faSEmmanuel Vadot 120e8011faSEmmanuel Vadotdescription: 130e8011faSEmmanuel Vadot BD96801 is an automotive grade single-chip power management IC. 140e8011faSEmmanuel Vadot It integrates 4 buck converters and 3 LDOs with safety features like 150e8011faSEmmanuel Vadot over-/under voltage and over current detection and a watchdog. 160e8011faSEmmanuel Vadot 170e8011faSEmmanuel Vadotproperties: 180e8011faSEmmanuel Vadot compatible: 190e8011faSEmmanuel Vadot const: rohm,bd96801 200e8011faSEmmanuel Vadot 210e8011faSEmmanuel Vadot reg: 220e8011faSEmmanuel Vadot maxItems: 1 230e8011faSEmmanuel Vadot 240e8011faSEmmanuel Vadot interrupts: 250e8011faSEmmanuel Vadot description: 260e8011faSEmmanuel Vadot The PMIC provides intb and errb IRQ lines. The errb IRQ line is used 270e8011faSEmmanuel Vadot for fatal IRQs which will cause the PMIC to shut down power outputs. 28*b2d2a78aSEmmanuel Vadot In many systems this will shut down the SoC controlling the PMIC and 290e8011faSEmmanuel Vadot connecting/handling the errb can be omitted. However, there are cases 300e8011faSEmmanuel Vadot where the SoC is not powered by the PMIC or has a short time backup 310e8011faSEmmanuel Vadot energy to handle shutdown of critical hardware. In that case it may be 320e8011faSEmmanuel Vadot useful to connect the errb and handle errb events. 330e8011faSEmmanuel Vadot minItems: 1 340e8011faSEmmanuel Vadot maxItems: 2 350e8011faSEmmanuel Vadot 360e8011faSEmmanuel Vadot interrupt-names: 370e8011faSEmmanuel Vadot minItems: 1 380e8011faSEmmanuel Vadot items: 390e8011faSEmmanuel Vadot - enum: [intb, errb] 400e8011faSEmmanuel Vadot - const: errb 410e8011faSEmmanuel Vadot 420e8011faSEmmanuel Vadot rohm,hw-timeout-ms: 430e8011faSEmmanuel Vadot description: 440e8011faSEmmanuel Vadot Watchdog timeout value(s). First walue is timeout limit. Second value is 450e8011faSEmmanuel Vadot optional value for 'too early' watchdog ping if window timeout mode is 460e8011faSEmmanuel Vadot to be used. 470e8011faSEmmanuel Vadot minItems: 1 480e8011faSEmmanuel Vadot maxItems: 2 490e8011faSEmmanuel Vadot 500e8011faSEmmanuel Vadot rohm,wdg-action: 510e8011faSEmmanuel Vadot description: 520e8011faSEmmanuel Vadot Whether the watchdog failure must turn off the regulator power outputs or 530e8011faSEmmanuel Vadot just toggle the INTB line. 540e8011faSEmmanuel Vadot enum: 550e8011faSEmmanuel Vadot - prstb 560e8011faSEmmanuel Vadot - intb-only 570e8011faSEmmanuel Vadot 580e8011faSEmmanuel Vadot timeout-sec: 590e8011faSEmmanuel Vadot maxItems: 2 600e8011faSEmmanuel Vadot 610e8011faSEmmanuel Vadot regulators: 620e8011faSEmmanuel Vadot $ref: /schemas/regulator/rohm,bd96801-regulator.yaml 630e8011faSEmmanuel Vadot description: 640e8011faSEmmanuel Vadot List of child nodes that specify the regulators. 650e8011faSEmmanuel Vadot 660e8011faSEmmanuel Vadotrequired: 670e8011faSEmmanuel Vadot - compatible 680e8011faSEmmanuel Vadot - reg 690e8011faSEmmanuel Vadot - interrupts 700e8011faSEmmanuel Vadot - interrupt-names 710e8011faSEmmanuel Vadot - regulators 720e8011faSEmmanuel Vadot 730e8011faSEmmanuel VadotadditionalProperties: false 740e8011faSEmmanuel Vadot 750e8011faSEmmanuel Vadotexamples: 760e8011faSEmmanuel Vadot - | 770e8011faSEmmanuel Vadot #include <dt-bindings/interrupt-controller/irq.h> 780e8011faSEmmanuel Vadot #include <dt-bindings/leds/common.h> 790e8011faSEmmanuel Vadot i2c { 800e8011faSEmmanuel Vadot #address-cells = <1>; 810e8011faSEmmanuel Vadot #size-cells = <0>; 820e8011faSEmmanuel Vadot pmic: pmic@60 { 830e8011faSEmmanuel Vadot reg = <0x60>; 840e8011faSEmmanuel Vadot compatible = "rohm,bd96801"; 850e8011faSEmmanuel Vadot interrupt-parent = <&gpio1>; 860e8011faSEmmanuel Vadot interrupts = <29 IRQ_TYPE_LEVEL_LOW>, <6 IRQ_TYPE_LEVEL_LOW>; 870e8011faSEmmanuel Vadot interrupt-names = "intb", "errb"; 880e8011faSEmmanuel Vadot 890e8011faSEmmanuel Vadot regulators { 900e8011faSEmmanuel Vadot buck1 { 910e8011faSEmmanuel Vadot regulator-name = "buck1"; 920e8011faSEmmanuel Vadot regulator-ramp-delay = <1250>; 930e8011faSEmmanuel Vadot /* 0.5V min INITIAL - 150 mV tune */ 940e8011faSEmmanuel Vadot regulator-min-microvolt = <350000>; 950e8011faSEmmanuel Vadot /* 3.3V + 150mV tune */ 960e8011faSEmmanuel Vadot regulator-max-microvolt = <3450000>; 970e8011faSEmmanuel Vadot 980e8011faSEmmanuel Vadot /* These can be set only when PMIC is in STBY */ 990e8011faSEmmanuel Vadot rohm,initial-voltage-microvolt = <500000>; 1000e8011faSEmmanuel Vadot regulator-ov-error-microvolt = <230000>; 1010e8011faSEmmanuel Vadot regulator-uv-error-microvolt = <230000>; 1020e8011faSEmmanuel Vadot regulator-temp-protection-kelvin = <1>; 1030e8011faSEmmanuel Vadot regulator-temp-warn-kelvin = <0>; 1040e8011faSEmmanuel Vadot }; 1050e8011faSEmmanuel Vadot buck2 { 1060e8011faSEmmanuel Vadot regulator-name = "buck2"; 1070e8011faSEmmanuel Vadot regulator-min-microvolt = <350000>; 1080e8011faSEmmanuel Vadot regulator-max-microvolt = <3450000>; 1090e8011faSEmmanuel Vadot 1100e8011faSEmmanuel Vadot rohm,initial-voltage-microvolt = <3000000>; 1110e8011faSEmmanuel Vadot regulator-ov-error-microvolt = <18000>; 1120e8011faSEmmanuel Vadot regulator-uv-error-microvolt = <18000>; 1130e8011faSEmmanuel Vadot regulator-temp-protection-kelvin = <1>; 1140e8011faSEmmanuel Vadot regulator-temp-warn-kelvin = <1>; 1150e8011faSEmmanuel Vadot }; 1160e8011faSEmmanuel Vadot buck3 { 1170e8011faSEmmanuel Vadot regulator-name = "buck3"; 1180e8011faSEmmanuel Vadot regulator-min-microvolt = <350000>; 1190e8011faSEmmanuel Vadot regulator-max-microvolt = <3450000>; 1200e8011faSEmmanuel Vadot 1210e8011faSEmmanuel Vadot rohm,initial-voltage-microvolt = <600000>; 1220e8011faSEmmanuel Vadot regulator-ov-warn-microvolt = <18000>; 1230e8011faSEmmanuel Vadot regulator-uv-warn-microvolt = <18000>; 1240e8011faSEmmanuel Vadot regulator-temp-protection-kelvin = <1>; 1250e8011faSEmmanuel Vadot regulator-temp-error-kelvin = <0>; 1260e8011faSEmmanuel Vadot }; 1270e8011faSEmmanuel Vadot buck4 { 1280e8011faSEmmanuel Vadot regulator-name = "buck4"; 1290e8011faSEmmanuel Vadot regulator-min-microvolt = <350000>; 1300e8011faSEmmanuel Vadot regulator-max-microvolt = <3450000>; 1310e8011faSEmmanuel Vadot 1320e8011faSEmmanuel Vadot rohm,initial-voltage-microvolt = <600000>; 1330e8011faSEmmanuel Vadot regulator-ov-warn-microvolt = <18000>; 1340e8011faSEmmanuel Vadot regulator-uv-warn-microvolt = <18000>; 1350e8011faSEmmanuel Vadot regulator-temp-protection-kelvin = <1>; 1360e8011faSEmmanuel Vadot regulator-temp-error-kelvin = <0>; 1370e8011faSEmmanuel Vadot }; 1380e8011faSEmmanuel Vadot ldo5 { 1390e8011faSEmmanuel Vadot regulator-name = "ldo5"; 1400e8011faSEmmanuel Vadot regulator-min-microvolt = <300000>; 1410e8011faSEmmanuel Vadot regulator-max-microvolt = <3300000>; 1420e8011faSEmmanuel Vadot 1430e8011faSEmmanuel Vadot rohm,initial-voltage-microvolt = <500000>; 1440e8011faSEmmanuel Vadot regulator-ov-error-microvolt = <36000>; 1450e8011faSEmmanuel Vadot regulator-uv-error-microvolt = <34000>; 1460e8011faSEmmanuel Vadot regulator-temp-protection-kelvin = <1>; 1470e8011faSEmmanuel Vadot regulator-temp-warn-kelvin = <0>; 1480e8011faSEmmanuel Vadot }; 1490e8011faSEmmanuel Vadot ldo6 { 1500e8011faSEmmanuel Vadot regulator-name = "ldo6"; 1510e8011faSEmmanuel Vadot regulator-min-microvolt = <300000>; 1520e8011faSEmmanuel Vadot regulator-max-microvolt = <3300000>; 1530e8011faSEmmanuel Vadot 1540e8011faSEmmanuel Vadot rohm,initial-voltage-microvolt = <300000>; 1550e8011faSEmmanuel Vadot regulator-ov-error-microvolt = <36000>; 1560e8011faSEmmanuel Vadot regulator-uv-error-microvolt = <34000>; 1570e8011faSEmmanuel Vadot regulator-temp-protection-kelvin = <1>; 1580e8011faSEmmanuel Vadot regulator-temp-warn-kelvin = <0>; 1590e8011faSEmmanuel Vadot }; 1600e8011faSEmmanuel Vadot ldo7 { 1610e8011faSEmmanuel Vadot regulator-name = "ldo7"; 1620e8011faSEmmanuel Vadot regulator-min-microvolt = <300000>; 1630e8011faSEmmanuel Vadot regulator-max-microvolt = <3300000>; 1640e8011faSEmmanuel Vadot 1650e8011faSEmmanuel Vadot rohm,initial-voltage-microvolt = <500000>; 1660e8011faSEmmanuel Vadot regulator-ov-error-microvolt = <36000>; 1670e8011faSEmmanuel Vadot regulator-uv-error-microvolt = <34000>; 1680e8011faSEmmanuel Vadot regulator-temp-protection-kelvin = <1>; 1690e8011faSEmmanuel Vadot regulator-temp-warn-kelvin = <0>; 1700e8011faSEmmanuel Vadot }; 1710e8011faSEmmanuel Vadot }; 1720e8011faSEmmanuel Vadot }; 1730e8011faSEmmanuel Vadot }; 174