xref: /linux/Documentation/devicetree/bindings/mfd/rohm,bd96801-pmic.yaml (revision ed7171ff9fabc49ae6ed42fbd082a576473836fc)
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