blob: d381125a0a152aa22be1648f8e2d664541cbb45e [file] [log] [blame]
Tom Rini6b642ac2024-10-01 12:20:28 -06001# 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 };