1*0e8011faSEmmanuel Vadot# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause 2*0e8011faSEmmanuel Vadot%YAML 1.2 3*0e8011faSEmmanuel Vadot--- 4*0e8011faSEmmanuel Vadot$id: http://devicetree.org/schemas/mfd/rohm,bd96801-pmic.yaml# 5*0e8011faSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml# 6*0e8011faSEmmanuel Vadot 7*0e8011faSEmmanuel Vadottitle: ROHM BD96801 Scalable Power Management Integrated Circuit 8*0e8011faSEmmanuel Vadot 9*0e8011faSEmmanuel Vadotmaintainers: 10*0e8011faSEmmanuel Vadot - Matti Vaittinen <matti.vaittinen@fi.rohmeurope.com> 11*0e8011faSEmmanuel Vadot 12*0e8011faSEmmanuel Vadotdescription: 13*0e8011faSEmmanuel Vadot BD96801 is an automotive grade single-chip power management IC. 14*0e8011faSEmmanuel Vadot It integrates 4 buck converters and 3 LDOs with safety features like 15*0e8011faSEmmanuel Vadot over-/under voltage and over current detection and a watchdog. 16*0e8011faSEmmanuel Vadot 17*0e8011faSEmmanuel Vadotproperties: 18*0e8011faSEmmanuel Vadot compatible: 19*0e8011faSEmmanuel Vadot const: rohm,bd96801 20*0e8011faSEmmanuel Vadot 21*0e8011faSEmmanuel Vadot reg: 22*0e8011faSEmmanuel Vadot maxItems: 1 23*0e8011faSEmmanuel Vadot 24*0e8011faSEmmanuel Vadot interrupts: 25*0e8011faSEmmanuel Vadot description: 26*0e8011faSEmmanuel Vadot The PMIC provides intb and errb IRQ lines. The errb IRQ line is used 27*0e8011faSEmmanuel Vadot for fatal IRQs which will cause the PMIC to shut down power outputs. 28*0e8011faSEmmanuel Vadot In many systems this will shut down the SoC contolling the PMIC and 29*0e8011faSEmmanuel Vadot connecting/handling the errb can be omitted. However, there are cases 30*0e8011faSEmmanuel Vadot where the SoC is not powered by the PMIC or has a short time backup 31*0e8011faSEmmanuel Vadot energy to handle shutdown of critical hardware. In that case it may be 32*0e8011faSEmmanuel Vadot useful to connect the errb and handle errb events. 33*0e8011faSEmmanuel Vadot minItems: 1 34*0e8011faSEmmanuel Vadot maxItems: 2 35*0e8011faSEmmanuel Vadot 36*0e8011faSEmmanuel Vadot interrupt-names: 37*0e8011faSEmmanuel Vadot minItems: 1 38*0e8011faSEmmanuel Vadot items: 39*0e8011faSEmmanuel Vadot - enum: [intb, errb] 40*0e8011faSEmmanuel Vadot - const: errb 41*0e8011faSEmmanuel Vadot 42*0e8011faSEmmanuel Vadot rohm,hw-timeout-ms: 43*0e8011faSEmmanuel Vadot description: 44*0e8011faSEmmanuel Vadot Watchdog timeout value(s). First walue is timeout limit. Second value is 45*0e8011faSEmmanuel Vadot optional value for 'too early' watchdog ping if window timeout mode is 46*0e8011faSEmmanuel Vadot to be used. 47*0e8011faSEmmanuel Vadot minItems: 1 48*0e8011faSEmmanuel Vadot maxItems: 2 49*0e8011faSEmmanuel Vadot 50*0e8011faSEmmanuel Vadot rohm,wdg-action: 51*0e8011faSEmmanuel Vadot description: 52*0e8011faSEmmanuel Vadot Whether the watchdog failure must turn off the regulator power outputs or 53*0e8011faSEmmanuel Vadot just toggle the INTB line. 54*0e8011faSEmmanuel Vadot enum: 55*0e8011faSEmmanuel Vadot - prstb 56*0e8011faSEmmanuel Vadot - intb-only 57*0e8011faSEmmanuel Vadot 58*0e8011faSEmmanuel Vadot timeout-sec: 59*0e8011faSEmmanuel Vadot maxItems: 2 60*0e8011faSEmmanuel Vadot 61*0e8011faSEmmanuel Vadot regulators: 62*0e8011faSEmmanuel Vadot $ref: /schemas/regulator/rohm,bd96801-regulator.yaml 63*0e8011faSEmmanuel Vadot description: 64*0e8011faSEmmanuel Vadot List of child nodes that specify the regulators. 65*0e8011faSEmmanuel Vadot 66*0e8011faSEmmanuel Vadotrequired: 67*0e8011faSEmmanuel Vadot - compatible 68*0e8011faSEmmanuel Vadot - reg 69*0e8011faSEmmanuel Vadot - interrupts 70*0e8011faSEmmanuel Vadot - interrupt-names 71*0e8011faSEmmanuel Vadot - regulators 72*0e8011faSEmmanuel Vadot 73*0e8011faSEmmanuel VadotadditionalProperties: false 74*0e8011faSEmmanuel Vadot 75*0e8011faSEmmanuel Vadotexamples: 76*0e8011faSEmmanuel Vadot - | 77*0e8011faSEmmanuel Vadot #include <dt-bindings/interrupt-controller/irq.h> 78*0e8011faSEmmanuel Vadot #include <dt-bindings/leds/common.h> 79*0e8011faSEmmanuel Vadot i2c { 80*0e8011faSEmmanuel Vadot #address-cells = <1>; 81*0e8011faSEmmanuel Vadot #size-cells = <0>; 82*0e8011faSEmmanuel Vadot pmic: pmic@60 { 83*0e8011faSEmmanuel Vadot reg = <0x60>; 84*0e8011faSEmmanuel Vadot compatible = "rohm,bd96801"; 85*0e8011faSEmmanuel Vadot interrupt-parent = <&gpio1>; 86*0e8011faSEmmanuel Vadot interrupts = <29 IRQ_TYPE_LEVEL_LOW>, <6 IRQ_TYPE_LEVEL_LOW>; 87*0e8011faSEmmanuel Vadot interrupt-names = "intb", "errb"; 88*0e8011faSEmmanuel Vadot 89*0e8011faSEmmanuel Vadot regulators { 90*0e8011faSEmmanuel Vadot buck1 { 91*0e8011faSEmmanuel Vadot regulator-name = "buck1"; 92*0e8011faSEmmanuel Vadot regulator-ramp-delay = <1250>; 93*0e8011faSEmmanuel Vadot /* 0.5V min INITIAL - 150 mV tune */ 94*0e8011faSEmmanuel Vadot regulator-min-microvolt = <350000>; 95*0e8011faSEmmanuel Vadot /* 3.3V + 150mV tune */ 96*0e8011faSEmmanuel Vadot regulator-max-microvolt = <3450000>; 97*0e8011faSEmmanuel Vadot 98*0e8011faSEmmanuel Vadot /* These can be set only when PMIC is in STBY */ 99*0e8011faSEmmanuel Vadot rohm,initial-voltage-microvolt = <500000>; 100*0e8011faSEmmanuel Vadot regulator-ov-error-microvolt = <230000>; 101*0e8011faSEmmanuel Vadot regulator-uv-error-microvolt = <230000>; 102*0e8011faSEmmanuel Vadot regulator-temp-protection-kelvin = <1>; 103*0e8011faSEmmanuel Vadot regulator-temp-warn-kelvin = <0>; 104*0e8011faSEmmanuel Vadot }; 105*0e8011faSEmmanuel Vadot buck2 { 106*0e8011faSEmmanuel Vadot regulator-name = "buck2"; 107*0e8011faSEmmanuel Vadot regulator-min-microvolt = <350000>; 108*0e8011faSEmmanuel Vadot regulator-max-microvolt = <3450000>; 109*0e8011faSEmmanuel Vadot 110*0e8011faSEmmanuel Vadot rohm,initial-voltage-microvolt = <3000000>; 111*0e8011faSEmmanuel Vadot regulator-ov-error-microvolt = <18000>; 112*0e8011faSEmmanuel Vadot regulator-uv-error-microvolt = <18000>; 113*0e8011faSEmmanuel Vadot regulator-temp-protection-kelvin = <1>; 114*0e8011faSEmmanuel Vadot regulator-temp-warn-kelvin = <1>; 115*0e8011faSEmmanuel Vadot }; 116*0e8011faSEmmanuel Vadot buck3 { 117*0e8011faSEmmanuel Vadot regulator-name = "buck3"; 118*0e8011faSEmmanuel Vadot regulator-min-microvolt = <350000>; 119*0e8011faSEmmanuel Vadot regulator-max-microvolt = <3450000>; 120*0e8011faSEmmanuel Vadot 121*0e8011faSEmmanuel Vadot rohm,initial-voltage-microvolt = <600000>; 122*0e8011faSEmmanuel Vadot regulator-ov-warn-microvolt = <18000>; 123*0e8011faSEmmanuel Vadot regulator-uv-warn-microvolt = <18000>; 124*0e8011faSEmmanuel Vadot regulator-temp-protection-kelvin = <1>; 125*0e8011faSEmmanuel Vadot regulator-temp-error-kelvin = <0>; 126*0e8011faSEmmanuel Vadot }; 127*0e8011faSEmmanuel Vadot buck4 { 128*0e8011faSEmmanuel Vadot regulator-name = "buck4"; 129*0e8011faSEmmanuel Vadot regulator-min-microvolt = <350000>; 130*0e8011faSEmmanuel Vadot regulator-max-microvolt = <3450000>; 131*0e8011faSEmmanuel Vadot 132*0e8011faSEmmanuel Vadot rohm,initial-voltage-microvolt = <600000>; 133*0e8011faSEmmanuel Vadot regulator-ov-warn-microvolt = <18000>; 134*0e8011faSEmmanuel Vadot regulator-uv-warn-microvolt = <18000>; 135*0e8011faSEmmanuel Vadot regulator-temp-protection-kelvin = <1>; 136*0e8011faSEmmanuel Vadot regulator-temp-error-kelvin = <0>; 137*0e8011faSEmmanuel Vadot }; 138*0e8011faSEmmanuel Vadot ldo5 { 139*0e8011faSEmmanuel Vadot regulator-name = "ldo5"; 140*0e8011faSEmmanuel Vadot regulator-min-microvolt = <300000>; 141*0e8011faSEmmanuel Vadot regulator-max-microvolt = <3300000>; 142*0e8011faSEmmanuel Vadot 143*0e8011faSEmmanuel Vadot rohm,initial-voltage-microvolt = <500000>; 144*0e8011faSEmmanuel Vadot regulator-ov-error-microvolt = <36000>; 145*0e8011faSEmmanuel Vadot regulator-uv-error-microvolt = <34000>; 146*0e8011faSEmmanuel Vadot regulator-temp-protection-kelvin = <1>; 147*0e8011faSEmmanuel Vadot regulator-temp-warn-kelvin = <0>; 148*0e8011faSEmmanuel Vadot }; 149*0e8011faSEmmanuel Vadot ldo6 { 150*0e8011faSEmmanuel Vadot regulator-name = "ldo6"; 151*0e8011faSEmmanuel Vadot regulator-min-microvolt = <300000>; 152*0e8011faSEmmanuel Vadot regulator-max-microvolt = <3300000>; 153*0e8011faSEmmanuel Vadot 154*0e8011faSEmmanuel Vadot rohm,initial-voltage-microvolt = <300000>; 155*0e8011faSEmmanuel Vadot regulator-ov-error-microvolt = <36000>; 156*0e8011faSEmmanuel Vadot regulator-uv-error-microvolt = <34000>; 157*0e8011faSEmmanuel Vadot regulator-temp-protection-kelvin = <1>; 158*0e8011faSEmmanuel Vadot regulator-temp-warn-kelvin = <0>; 159*0e8011faSEmmanuel Vadot }; 160*0e8011faSEmmanuel Vadot ldo7 { 161*0e8011faSEmmanuel Vadot regulator-name = "ldo7"; 162*0e8011faSEmmanuel Vadot regulator-min-microvolt = <300000>; 163*0e8011faSEmmanuel Vadot regulator-max-microvolt = <3300000>; 164*0e8011faSEmmanuel Vadot 165*0e8011faSEmmanuel Vadot rohm,initial-voltage-microvolt = <500000>; 166*0e8011faSEmmanuel Vadot regulator-ov-error-microvolt = <36000>; 167*0e8011faSEmmanuel Vadot regulator-uv-error-microvolt = <34000>; 168*0e8011faSEmmanuel Vadot regulator-temp-protection-kelvin = <1>; 169*0e8011faSEmmanuel Vadot regulator-temp-warn-kelvin = <0>; 170*0e8011faSEmmanuel Vadot }; 171*0e8011faSEmmanuel Vadot }; 172*0e8011faSEmmanuel Vadot }; 173*0e8011faSEmmanuel Vadot }; 174