xref: /freebsd/sys/contrib/device-tree/Bindings/mfd/rohm,bd96802-pmic.yaml (revision ae5de77ed78ae54d86cead5604869212e8008e6b)
1*ae5de77eSEmmanuel Vadot# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
2*ae5de77eSEmmanuel Vadot%YAML 1.2
3*ae5de77eSEmmanuel Vadot---
4*ae5de77eSEmmanuel Vadot$id: http://devicetree.org/schemas/mfd/rohm,bd96802-pmic.yaml#
5*ae5de77eSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6*ae5de77eSEmmanuel Vadot
7*ae5de77eSEmmanuel Vadottitle: ROHM BD96802 / BD96806 Scalable Power Management Integrated Circuit
8*ae5de77eSEmmanuel Vadot
9*ae5de77eSEmmanuel Vadotmaintainers:
10*ae5de77eSEmmanuel Vadot  - Matti Vaittinen <matti.vaittinen@fi.rohmeurope.com>
11*ae5de77eSEmmanuel Vadot
12*ae5de77eSEmmanuel Vadotdescription: |
13*ae5de77eSEmmanuel Vadot  BD96802Qxx-C and BD96806 are automotive grade configurable Power Management
14*ae5de77eSEmmanuel Vadot  Integrated Circuits supporting Functional Safety features for application
15*ae5de77eSEmmanuel Vadot  processors, SoCs and FPGAs
16*ae5de77eSEmmanuel Vadot
17*ae5de77eSEmmanuel Vadotproperties:
18*ae5de77eSEmmanuel Vadot  compatible:
19*ae5de77eSEmmanuel Vadot    enum:
20*ae5de77eSEmmanuel Vadot      - rohm,bd96802
21*ae5de77eSEmmanuel Vadot      - rohm,bd96806
22*ae5de77eSEmmanuel Vadot
23*ae5de77eSEmmanuel Vadot  reg:
24*ae5de77eSEmmanuel Vadot    maxItems: 1
25*ae5de77eSEmmanuel Vadot
26*ae5de77eSEmmanuel Vadot  interrupts:
27*ae5de77eSEmmanuel Vadot    description:
28*ae5de77eSEmmanuel Vadot      The PMIC provides intb and errb IRQ lines. The errb IRQ line is used
29*ae5de77eSEmmanuel Vadot      for fatal IRQs which will cause the PMIC to shut down power outputs.
30*ae5de77eSEmmanuel Vadot      In many systems this will shut down the SoC contolling the PMIC and
31*ae5de77eSEmmanuel Vadot      connecting/handling the errb can be omitted. However, there are cases
32*ae5de77eSEmmanuel Vadot      where the SoC is not powered by the PMIC or has a short time backup
33*ae5de77eSEmmanuel Vadot      energy to handle shutdown of critical hardware. In that case it may be
34*ae5de77eSEmmanuel Vadot      useful to connect the errb and handle errb events.
35*ae5de77eSEmmanuel Vadot    minItems: 1
36*ae5de77eSEmmanuel Vadot    maxItems: 2
37*ae5de77eSEmmanuel Vadot
38*ae5de77eSEmmanuel Vadot  interrupt-names:
39*ae5de77eSEmmanuel Vadot    minItems: 1
40*ae5de77eSEmmanuel Vadot    items:
41*ae5de77eSEmmanuel Vadot      - enum: [intb, errb]
42*ae5de77eSEmmanuel Vadot      - const: errb
43*ae5de77eSEmmanuel Vadot
44*ae5de77eSEmmanuel Vadot  regulators:
45*ae5de77eSEmmanuel Vadot    $ref: ../regulator/rohm,bd96802-regulator.yaml
46*ae5de77eSEmmanuel Vadot    description:
47*ae5de77eSEmmanuel Vadot      List of child nodes that specify the regulators.
48*ae5de77eSEmmanuel Vadot
49*ae5de77eSEmmanuel Vadotrequired:
50*ae5de77eSEmmanuel Vadot  - compatible
51*ae5de77eSEmmanuel Vadot  - reg
52*ae5de77eSEmmanuel Vadot  - interrupts
53*ae5de77eSEmmanuel Vadot  - interrupt-names
54*ae5de77eSEmmanuel Vadot  - regulators
55*ae5de77eSEmmanuel Vadot
56*ae5de77eSEmmanuel VadotadditionalProperties: false
57*ae5de77eSEmmanuel Vadot
58*ae5de77eSEmmanuel Vadotexamples:
59*ae5de77eSEmmanuel Vadot  - |
60*ae5de77eSEmmanuel Vadot    #include <dt-bindings/interrupt-controller/irq.h>
61*ae5de77eSEmmanuel Vadot    #include <dt-bindings/leds/common.h>
62*ae5de77eSEmmanuel Vadot    i2c {
63*ae5de77eSEmmanuel Vadot        #address-cells = <1>;
64*ae5de77eSEmmanuel Vadot        #size-cells = <0>;
65*ae5de77eSEmmanuel Vadot        pmic: pmic@62 {
66*ae5de77eSEmmanuel Vadot            reg = <0x62>;
67*ae5de77eSEmmanuel Vadot            compatible = "rohm,bd96802";
68*ae5de77eSEmmanuel Vadot            interrupt-parent = <&gpio1>;
69*ae5de77eSEmmanuel Vadot            interrupts = <29 IRQ_TYPE_LEVEL_LOW>, <6 IRQ_TYPE_LEVEL_LOW>;
70*ae5de77eSEmmanuel Vadot            interrupt-names = "intb", "errb";
71*ae5de77eSEmmanuel Vadot
72*ae5de77eSEmmanuel Vadot            regulators {
73*ae5de77eSEmmanuel Vadot                buck1 {
74*ae5de77eSEmmanuel Vadot                    regulator-name = "buck1";
75*ae5de77eSEmmanuel Vadot                    regulator-ramp-delay = <1250>;
76*ae5de77eSEmmanuel Vadot                    /* 0.5V min INITIAL - 150 mV tune */
77*ae5de77eSEmmanuel Vadot                    regulator-min-microvolt = <350000>;
78*ae5de77eSEmmanuel Vadot                    /* 3.3V + 150mV tune */
79*ae5de77eSEmmanuel Vadot                    regulator-max-microvolt = <3450000>;
80*ae5de77eSEmmanuel Vadot
81*ae5de77eSEmmanuel Vadot                    /* These can be set only when PMIC is in STBY */
82*ae5de77eSEmmanuel Vadot                    rohm,initial-voltage-microvolt = <500000>;
83*ae5de77eSEmmanuel Vadot                    regulator-ov-error-microvolt = <230000>;
84*ae5de77eSEmmanuel Vadot                    regulator-uv-error-microvolt = <230000>;
85*ae5de77eSEmmanuel Vadot                    regulator-temp-protection-kelvin = <1>;
86*ae5de77eSEmmanuel Vadot                    regulator-temp-warn-kelvin = <0>;
87*ae5de77eSEmmanuel Vadot                };
88*ae5de77eSEmmanuel Vadot                buck2 {
89*ae5de77eSEmmanuel Vadot                    regulator-name = "buck2";
90*ae5de77eSEmmanuel Vadot                    regulator-min-microvolt = <350000>;
91*ae5de77eSEmmanuel Vadot                    regulator-max-microvolt = <3450000>;
92*ae5de77eSEmmanuel Vadot
93*ae5de77eSEmmanuel Vadot                    rohm,initial-voltage-microvolt = <3000000>;
94*ae5de77eSEmmanuel Vadot                    regulator-ov-error-microvolt = <18000>;
95*ae5de77eSEmmanuel Vadot                    regulator-uv-error-microvolt = <18000>;
96*ae5de77eSEmmanuel Vadot                    regulator-temp-protection-kelvin = <1>;
97*ae5de77eSEmmanuel Vadot                    regulator-temp-warn-kelvin = <1>;
98*ae5de77eSEmmanuel Vadot                };
99*ae5de77eSEmmanuel Vadot            };
100*ae5de77eSEmmanuel Vadot        };
101*ae5de77eSEmmanuel Vadot    };
102