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