xref: /freebsd/sys/contrib/device-tree/Bindings/mfd/rohm,bd71837-pmic.yaml (revision 8bab661a3316d8bd9b9fbd11a3b4371b91507bd2)
1c66ec88fSEmmanuel Vadot# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
2c66ec88fSEmmanuel Vadot%YAML 1.2
3c66ec88fSEmmanuel Vadot---
4c66ec88fSEmmanuel Vadot$id: http://devicetree.org/schemas/mfd/rohm,bd71837-pmic.yaml#
5c66ec88fSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6c66ec88fSEmmanuel Vadot
7*8bab661aSEmmanuel Vadottitle: ROHM BD71837 Power Management Integrated Circuit
8c66ec88fSEmmanuel Vadot
9c66ec88fSEmmanuel Vadotmaintainers:
10*8bab661aSEmmanuel Vadot  - Matti Vaittinen <mazziesaccount@gmail.com>
11c66ec88fSEmmanuel Vadot
12c66ec88fSEmmanuel Vadotdescription: |
13c66ec88fSEmmanuel Vadot  BD71837MWV is programmable Power Management ICs for powering single-core,
14c66ec88fSEmmanuel Vadot  dual-core, and quad-core SoCs such as NXP-i.MX 8M. It is optimized for low
15c66ec88fSEmmanuel Vadot  BOM cost and compact solution footprint. BD71837MWV  integrates 8 Buck
16c66ec88fSEmmanuel Vadot  regulators and 7 LDOs.
17c66ec88fSEmmanuel Vadot  Datasheet for BD71837 is available at
18c66ec88fSEmmanuel Vadot  https://www.rohm.com/products/power-management/power-management-ic-for-system/industrial-consumer-applications/nxp-imx/bd71837amwv-product
19c66ec88fSEmmanuel Vadot
20c66ec88fSEmmanuel Vadotproperties:
21c66ec88fSEmmanuel Vadot  compatible:
22c66ec88fSEmmanuel Vadot    const: rohm,bd71837
23c66ec88fSEmmanuel Vadot
24c66ec88fSEmmanuel Vadot  reg:
25c66ec88fSEmmanuel Vadot    description:
26c66ec88fSEmmanuel Vadot      I2C slave address.
27c66ec88fSEmmanuel Vadot    maxItems: 1
28c66ec88fSEmmanuel Vadot
29c66ec88fSEmmanuel Vadot  interrupts:
30c66ec88fSEmmanuel Vadot    maxItems: 1
31c66ec88fSEmmanuel Vadot
32c66ec88fSEmmanuel Vadot  clocks:
33c66ec88fSEmmanuel Vadot    maxItems: 1
34c66ec88fSEmmanuel Vadot
355def4c47SEmmanuel Vadot  clock-names:
365def4c47SEmmanuel Vadot    const: osc
375def4c47SEmmanuel Vadot
38c66ec88fSEmmanuel Vadot  "#clock-cells":
39c66ec88fSEmmanuel Vadot    const: 0
40c66ec88fSEmmanuel Vadot
415def4c47SEmmanuel Vadot  clock-output-names:
425def4c47SEmmanuel Vadot    const: pmic_clk
435def4c47SEmmanuel Vadot
44c66ec88fSEmmanuel Vadot# The BD718x7 supports two different HW states as reset target states. States
45c66ec88fSEmmanuel Vadot# are called as SNVS and READY. At READY state all the PMIC power outputs go
46c66ec88fSEmmanuel Vadot# down and OTP is reload. At the SNVS state all other logic and external
47c66ec88fSEmmanuel Vadot# devices apart from the SNVS power domain are shut off. Please refer to NXP
48c66ec88fSEmmanuel Vadot# i.MX8 documentation for further information regarding SNVS state. When a
49c66ec88fSEmmanuel Vadot# reset is done via SNVS state the PMIC OTP data is not reload. This causes
50c66ec88fSEmmanuel Vadot# power outputs that have been under SW control to stay down when reset has
51c66ec88fSEmmanuel Vadot# switched power state to SNVS. If reset is done via READY state the power
52c66ec88fSEmmanuel Vadot# outputs will be returned to HW control by OTP loading. Thus the reset
53c66ec88fSEmmanuel Vadot# target state is set to READY by default. If SNVS state is used the boot
54c66ec88fSEmmanuel Vadot# crucial regulators must have the regulator-always-on and regulator-boot-on
55c66ec88fSEmmanuel Vadot# properties set in regulator node.
56c66ec88fSEmmanuel Vadot
57c66ec88fSEmmanuel Vadot  rohm,reset-snvs-powered:
58c66ec88fSEmmanuel Vadot    description: |
59c66ec88fSEmmanuel Vadot      Transfer PMIC to SNVS state at reset
60c66ec88fSEmmanuel Vadot    type: boolean
61c66ec88fSEmmanuel Vadot
62c66ec88fSEmmanuel Vadot# Configure the "short press" and "long press" timers for the power button.
63c66ec88fSEmmanuel Vadot# Values are rounded to what hardware supports
64c66ec88fSEmmanuel Vadot# Short-press:
65c66ec88fSEmmanuel Vadot#   Shortest being 10ms, next 500ms and then multiple of 500ms up to 7,5s
66c66ec88fSEmmanuel Vadot# Long-press:
67c66ec88fSEmmanuel Vadot#   Shortest being 10ms, next 1000ms and then multiple of 1000ms up to 15s
68c66ec88fSEmmanuel Vadot# If these properties are not present the existing configuration (from
69c66ec88fSEmmanuel Vadot# bootloader or OTP) is not touched.
70c66ec88fSEmmanuel Vadot
71c66ec88fSEmmanuel Vadot  rohm,short-press-ms:
72c66ec88fSEmmanuel Vadot    description:
73c66ec88fSEmmanuel Vadot      Short press duration in milliseconds
74c66ec88fSEmmanuel Vadot    enum:
75c66ec88fSEmmanuel Vadot      - 10
76c66ec88fSEmmanuel Vadot      - 500
77c66ec88fSEmmanuel Vadot      - 1000
78c66ec88fSEmmanuel Vadot      - 1500
79c66ec88fSEmmanuel Vadot      - 2000
80c66ec88fSEmmanuel Vadot      - 2500
81c66ec88fSEmmanuel Vadot      - 3000
82c66ec88fSEmmanuel Vadot      - 3500
83c66ec88fSEmmanuel Vadot      - 4000
84c66ec88fSEmmanuel Vadot      - 4500
85c66ec88fSEmmanuel Vadot      - 5000
86c66ec88fSEmmanuel Vadot      - 5500
87c66ec88fSEmmanuel Vadot      - 6000
88c66ec88fSEmmanuel Vadot      - 6500
89c66ec88fSEmmanuel Vadot      - 7000
90c66ec88fSEmmanuel Vadot
91c66ec88fSEmmanuel Vadot  rohm,long-press-ms:
92c66ec88fSEmmanuel Vadot    description:
93c66ec88fSEmmanuel Vadot      Long press duration in milliseconds
94c66ec88fSEmmanuel Vadot    enum:
95c66ec88fSEmmanuel Vadot      - 10
96c66ec88fSEmmanuel Vadot      - 1000
97c66ec88fSEmmanuel Vadot      - 2000
98c66ec88fSEmmanuel Vadot      - 3000
99c66ec88fSEmmanuel Vadot      - 4000
100c66ec88fSEmmanuel Vadot      - 5000
101c66ec88fSEmmanuel Vadot      - 6000
102c66ec88fSEmmanuel Vadot      - 7000
103c66ec88fSEmmanuel Vadot      - 8000
104c66ec88fSEmmanuel Vadot      - 9000
105c66ec88fSEmmanuel Vadot      - 10000
106c66ec88fSEmmanuel Vadot      - 11000
107c66ec88fSEmmanuel Vadot      - 12000
108c66ec88fSEmmanuel Vadot      - 13000
109c66ec88fSEmmanuel Vadot      - 14000
110c66ec88fSEmmanuel Vadot
111c66ec88fSEmmanuel Vadot  regulators:
112c66ec88fSEmmanuel Vadot    $ref: ../regulator/rohm,bd71837-regulator.yaml
113c66ec88fSEmmanuel Vadot    description:
114c66ec88fSEmmanuel Vadot      List of child nodes that specify the regulators.
115c66ec88fSEmmanuel Vadot
116c66ec88fSEmmanuel Vadotrequired:
117c66ec88fSEmmanuel Vadot  - compatible
118c66ec88fSEmmanuel Vadot  - reg
119c66ec88fSEmmanuel Vadot  - interrupts
120c66ec88fSEmmanuel Vadot  - clocks
121c66ec88fSEmmanuel Vadot  - "#clock-cells"
122c66ec88fSEmmanuel Vadot  - regulators
123c66ec88fSEmmanuel Vadot
124c66ec88fSEmmanuel VadotadditionalProperties: false
125c66ec88fSEmmanuel Vadot
126c66ec88fSEmmanuel Vadotexamples:
127c66ec88fSEmmanuel Vadot  - |
128c66ec88fSEmmanuel Vadot    #include <dt-bindings/interrupt-controller/irq.h>
129c66ec88fSEmmanuel Vadot    #include <dt-bindings/leds/common.h>
130c66ec88fSEmmanuel Vadot
131c66ec88fSEmmanuel Vadot    i2c {
132c66ec88fSEmmanuel Vadot        #address-cells = <1>;
133c66ec88fSEmmanuel Vadot        #size-cells = <0>;
134c66ec88fSEmmanuel Vadot        pmic: pmic@4b {
135c66ec88fSEmmanuel Vadot            compatible = "rohm,bd71837";
136c66ec88fSEmmanuel Vadot            reg = <0x4b>;
137c66ec88fSEmmanuel Vadot            interrupt-parent = <&gpio1>;
138c66ec88fSEmmanuel Vadot            interrupts = <29 IRQ_TYPE_LEVEL_LOW>;
139c66ec88fSEmmanuel Vadot            #clock-cells = <0>;
140c66ec88fSEmmanuel Vadot            clocks = <&osc 0>;
141c66ec88fSEmmanuel Vadot            rohm,reset-snvs-powered;
142c66ec88fSEmmanuel Vadot            rohm,short-press-ms = <10>;
143c66ec88fSEmmanuel Vadot            rohm,long-press-ms = <2000>;
144c66ec88fSEmmanuel Vadot
145c66ec88fSEmmanuel Vadot            regulators {
146c66ec88fSEmmanuel Vadot                buck1: BUCK1 {
147c66ec88fSEmmanuel Vadot                    regulator-name = "buck1";
148c66ec88fSEmmanuel Vadot                    regulator-min-microvolt = <700000>;
149c66ec88fSEmmanuel Vadot                    regulator-max-microvolt = <1300000>;
150c66ec88fSEmmanuel Vadot                    regulator-boot-on;
151c66ec88fSEmmanuel Vadot                    regulator-always-on;
152c66ec88fSEmmanuel Vadot                    regulator-ramp-delay = <1250>;
153c66ec88fSEmmanuel Vadot                    rohm,dvs-run-voltage = <900000>;
154c66ec88fSEmmanuel Vadot                    rohm,dvs-idle-voltage = <850000>;
155c66ec88fSEmmanuel Vadot                    rohm,dvs-suspend-voltage = <800000>;
156c66ec88fSEmmanuel Vadot                };
157c66ec88fSEmmanuel Vadot                buck2: BUCK2 {
158c66ec88fSEmmanuel Vadot                    regulator-name = "buck2";
159c66ec88fSEmmanuel Vadot                    regulator-min-microvolt = <700000>;
160c66ec88fSEmmanuel Vadot                    regulator-max-microvolt = <1300000>;
161c66ec88fSEmmanuel Vadot                    regulator-boot-on;
162c66ec88fSEmmanuel Vadot                    regulator-always-on;
163c66ec88fSEmmanuel Vadot                    regulator-ramp-delay = <1250>;
164c66ec88fSEmmanuel Vadot                    rohm,dvs-run-voltage = <1000000>;
165c66ec88fSEmmanuel Vadot                    rohm,dvs-idle-voltage = <900000>;
166c66ec88fSEmmanuel Vadot                };
167c66ec88fSEmmanuel Vadot                buck3: BUCK3 {
168c66ec88fSEmmanuel Vadot                    regulator-name = "buck3";
169c66ec88fSEmmanuel Vadot                    regulator-min-microvolt = <700000>;
170c66ec88fSEmmanuel Vadot                    regulator-max-microvolt = <1300000>;
171c66ec88fSEmmanuel Vadot                    regulator-boot-on;
172c66ec88fSEmmanuel Vadot                    rohm,dvs-run-voltage = <1000000>;
173c66ec88fSEmmanuel Vadot                };
174c66ec88fSEmmanuel Vadot                buck4: BUCK4 {
175c66ec88fSEmmanuel Vadot                    regulator-name = "buck4";
176c66ec88fSEmmanuel Vadot                    regulator-min-microvolt = <700000>;
177c66ec88fSEmmanuel Vadot                    regulator-max-microvolt = <1300000>;
178c66ec88fSEmmanuel Vadot                    regulator-boot-on;
179c66ec88fSEmmanuel Vadot                    rohm,dvs-run-voltage = <1000000>;
180c66ec88fSEmmanuel Vadot                };
181c66ec88fSEmmanuel Vadot                buck5: BUCK5 {
182c66ec88fSEmmanuel Vadot                    regulator-name = "buck5";
183c66ec88fSEmmanuel Vadot                    regulator-min-microvolt = <700000>;
184c66ec88fSEmmanuel Vadot                    regulator-max-microvolt = <1350000>;
185c66ec88fSEmmanuel Vadot                    regulator-boot-on;
186c66ec88fSEmmanuel Vadot                };
187c66ec88fSEmmanuel Vadot                buck6: BUCK6 {
188c66ec88fSEmmanuel Vadot                    regulator-name = "buck6";
189c66ec88fSEmmanuel Vadot                    regulator-min-microvolt = <3000000>;
190c66ec88fSEmmanuel Vadot                    regulator-max-microvolt = <3300000>;
191c66ec88fSEmmanuel Vadot                    regulator-boot-on;
192c66ec88fSEmmanuel Vadot                };
193c66ec88fSEmmanuel Vadot                buck7: BUCK7 {
194c66ec88fSEmmanuel Vadot                    regulator-name = "buck7";
195c66ec88fSEmmanuel Vadot                    regulator-min-microvolt = <1605000>;
196c66ec88fSEmmanuel Vadot                    regulator-max-microvolt = <1995000>;
197c66ec88fSEmmanuel Vadot                    regulator-boot-on;
198c66ec88fSEmmanuel Vadot                };
199c66ec88fSEmmanuel Vadot                buck8: BUCK8 {
200c66ec88fSEmmanuel Vadot                    regulator-name = "buck8";
201c66ec88fSEmmanuel Vadot                    regulator-min-microvolt = <800000>;
202c66ec88fSEmmanuel Vadot                    regulator-max-microvolt = <1400000>;
203c66ec88fSEmmanuel Vadot                };
204c66ec88fSEmmanuel Vadot
205c66ec88fSEmmanuel Vadot                ldo1: LDO1 {
206c66ec88fSEmmanuel Vadot                    regulator-name = "ldo1";
207c66ec88fSEmmanuel Vadot                    regulator-min-microvolt = <3000000>;
208c66ec88fSEmmanuel Vadot                    regulator-max-microvolt = <3300000>;
209c66ec88fSEmmanuel Vadot                    regulator-boot-on;
210c66ec88fSEmmanuel Vadot                };
211c66ec88fSEmmanuel Vadot                ldo2: LDO2 {
212c66ec88fSEmmanuel Vadot                    regulator-name = "ldo2";
213c66ec88fSEmmanuel Vadot                    regulator-min-microvolt = <900000>;
214c66ec88fSEmmanuel Vadot                    regulator-max-microvolt = <900000>;
215c66ec88fSEmmanuel Vadot                    regulator-boot-on;
216c66ec88fSEmmanuel Vadot                };
217c66ec88fSEmmanuel Vadot                ldo3: LDO3 {
218c66ec88fSEmmanuel Vadot                    regulator-name = "ldo3";
219c66ec88fSEmmanuel Vadot                    regulator-min-microvolt = <1800000>;
220c66ec88fSEmmanuel Vadot                    regulator-max-microvolt = <3300000>;
221c66ec88fSEmmanuel Vadot                };
222c66ec88fSEmmanuel Vadot                ldo4: LDO4 {
223c66ec88fSEmmanuel Vadot                    regulator-name = "ldo4";
224c66ec88fSEmmanuel Vadot                    regulator-min-microvolt = <900000>;
225c66ec88fSEmmanuel Vadot                    regulator-max-microvolt = <1800000>;
226c66ec88fSEmmanuel Vadot                };
227c66ec88fSEmmanuel Vadot                ldo5: LDO5 {
228c66ec88fSEmmanuel Vadot                    regulator-name = "ldo5";
229c66ec88fSEmmanuel Vadot                    regulator-min-microvolt = <1800000>;
230c66ec88fSEmmanuel Vadot                    regulator-max-microvolt = <3300000>;
231c66ec88fSEmmanuel Vadot                };
232c66ec88fSEmmanuel Vadot                ldo6: LDO6 {
233c66ec88fSEmmanuel Vadot                    regulator-name = "ldo6";
234c66ec88fSEmmanuel Vadot                    regulator-min-microvolt = <900000>;
235c66ec88fSEmmanuel Vadot                    regulator-max-microvolt = <1800000>;
236c66ec88fSEmmanuel Vadot                };
237c66ec88fSEmmanuel Vadot                ldo7_reg: LDO7 {
238c66ec88fSEmmanuel Vadot                    regulator-name = "ldo7";
239c66ec88fSEmmanuel Vadot                    regulator-min-microvolt = <1800000>;
240c66ec88fSEmmanuel Vadot                    regulator-max-microvolt = <3300000>;
241c66ec88fSEmmanuel Vadot                };
242c66ec88fSEmmanuel Vadot            };
243c66ec88fSEmmanuel Vadot        };
244c66ec88fSEmmanuel Vadot    };
245