xref: /freebsd/sys/contrib/device-tree/Bindings/mfd/rohm,bd96801-pmic.yaml (revision 0e8011faf58b743cc652e3b2ad0f7671227610df)
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