Skip to content

Commit a045f35

Browse files
M-VaittinenLee Jones
authored andcommitted
dt-bindings: bd718x7: Yamlify and add BD71850
Convert ROHM bd71837 and bd71847 PMIC binding text docs to yaml. Split the binding document to two separate documents (own documents for BD71837 and BD71847) as they have different amount of regulators. This way we can better enforce the node name check for regulators. ROHM is also providing BD71850 - which is almost identical to BD71847 - main difference is some initial regulator states. The BD71850 can be driven by same driver and it has same buck/LDO setup as BD71847 - add it to BD71847 binding document and introduce compatible for it. Signed-off-by: Matti Vaittinen <[email protected]> Reviewed-by: Rob Herring <[email protected]> Acked-by: Mark Brown <[email protected]> Signed-off-by: Lee Jones <[email protected]>
1 parent fb945c9 commit a045f35

File tree

6 files changed

+658
-252
lines changed

6 files changed

+658
-252
lines changed

Documentation/devicetree/bindings/mfd/rohm,bd71837-pmic.txt

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

0 commit comments

Comments
 (0)