]>
Commit | Line | Data |
---|---|---|
a045f357 MV |
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 <matti.vaittinen@fi.rohmeurope.com> | |
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 | ||
21ca0f5b KK |
35 | clock-names: |
36 | const: osc | |
37 | ||
a045f357 MV |
38 | "#clock-cells": |
39 | const: 0 | |
40 | ||
21ca0f5b KK |
41 | clock-output-names: |
42 | const: pmic_clk | |
43 | ||
a045f357 MV |
44 | # The BD718x7 supports two different HW states as reset target states. States |
45 | # are called as SNVS and READY. At READY state all the PMIC power outputs go | |
46 | # down and OTP is reload. At the SNVS state all other logic and external | |
47 | # devices apart from the SNVS power domain are shut off. Please refer to NXP | |
48 | # i.MX8 documentation for further information regarding SNVS state. When a | |
49 | # reset is done via SNVS state the PMIC OTP data is not reload. This causes | |
50 | # power outputs that have been under SW control to stay down when reset has | |
51 | # switched power state to SNVS. If reset is done via READY state the power | |
52 | # outputs will be returned to HW control by OTP loading. Thus the reset | |
53 | # target state is set to READY by default. If SNVS state is used the boot | |
54 | # crucial regulators must have the regulator-always-on and regulator-boot-on | |
55 | # properties set in regulator node. | |
56 | ||
57 | rohm,reset-snvs-powered: | |
58 | description: | | |
59 | Transfer PMIC to SNVS state at reset | |
60 | type: boolean | |
61 | ||
62 | # Configure the "short press" and "long press" timers for the power button. | |
63 | # Values are rounded to what hardware supports | |
64 | # Short-press: | |
65 | # Shortest being 10ms, next 500ms and then multiple of 500ms up to 7,5s | |
66 | # Long-press: | |
67 | # Shortest being 10ms, next 1000ms and then multiple of 1000ms up to 15s | |
68 | # If these properties are not present the existing configuration (from | |
69 | # bootloader or OTP) is not touched. | |
70 | ||
71 | rohm,short-press-ms: | |
72 | description: | |
73 | Short press duration in milliseconds | |
74 | enum: | |
75 | - 10 | |
76 | - 500 | |
77 | - 1000 | |
78 | - 1500 | |
79 | - 2000 | |
80 | - 2500 | |
81 | - 3000 | |
82 | - 3500 | |
83 | - 4000 | |
84 | - 4500 | |
85 | - 5000 | |
86 | - 5500 | |
87 | - 6000 | |
88 | - 6500 | |
89 | - 7000 | |
90 | ||
91 | rohm,long-press-ms: | |
92 | description: | |
93 | Long press duration in milliseconds | |
94 | enum: | |
95 | - 10 | |
96 | - 1000 | |
97 | - 2000 | |
98 | - 3000 | |
99 | - 4000 | |
100 | - 5000 | |
101 | - 6000 | |
102 | - 7000 | |
103 | - 8000 | |
104 | - 9000 | |
105 | - 10000 | |
106 | - 11000 | |
107 | - 12000 | |
108 | - 13000 | |
109 | - 14000 | |
110 | ||
111 | regulators: | |
112 | $ref: ../regulator/rohm,bd71837-regulator.yaml | |
113 | description: | |
114 | List of child nodes that specify the regulators. | |
115 | ||
116 | required: | |
117 | - compatible | |
118 | - reg | |
119 | - interrupts | |
120 | - clocks | |
121 | - "#clock-cells" | |
122 | - regulators | |
123 | ||
124 | additionalProperties: false | |
125 | ||
126 | examples: | |
127 | - | | |
128 | #include <dt-bindings/interrupt-controller/irq.h> | |
129 | #include <dt-bindings/leds/common.h> | |
130 | ||
131 | i2c { | |
213d0e4c MV |
132 | #address-cells = <1>; |
133 | #size-cells = <0>; | |
134 | pmic: pmic@4b { | |
a045f357 MV |
135 | compatible = "rohm,bd71837"; |
136 | reg = <0x4b>; | |
137 | interrupt-parent = <&gpio1>; | |
138 | interrupts = <29 IRQ_TYPE_LEVEL_LOW>; | |
139 | #clock-cells = <0>; | |
140 | clocks = <&osc 0>; | |
141 | rohm,reset-snvs-powered; | |
142 | rohm,short-press-ms = <10>; | |
143 | rohm,long-press-ms = <2000>; | |
144 | ||
145 | regulators { | |
146 | buck1: BUCK1 { | |
147 | regulator-name = "buck1"; | |
148 | regulator-min-microvolt = <700000>; | |
149 | regulator-max-microvolt = <1300000>; | |
150 | regulator-boot-on; | |
151 | regulator-always-on; | |
152 | regulator-ramp-delay = <1250>; | |
153 | rohm,dvs-run-voltage = <900000>; | |
154 | rohm,dvs-idle-voltage = <850000>; | |
155 | rohm,dvs-suspend-voltage = <800000>; | |
156 | }; | |
157 | buck2: BUCK2 { | |
158 | regulator-name = "buck2"; | |
159 | regulator-min-microvolt = <700000>; | |
160 | regulator-max-microvolt = <1300000>; | |
161 | regulator-boot-on; | |
162 | regulator-always-on; | |
163 | regulator-ramp-delay = <1250>; | |
164 | rohm,dvs-run-voltage = <1000000>; | |
165 | rohm,dvs-idle-voltage = <900000>; | |
166 | }; | |
167 | buck3: BUCK3 { | |
168 | regulator-name = "buck3"; | |
169 | regulator-min-microvolt = <700000>; | |
170 | regulator-max-microvolt = <1300000>; | |
171 | regulator-boot-on; | |
172 | rohm,dvs-run-voltage = <1000000>; | |
173 | }; | |
174 | buck4: BUCK4 { | |
175 | regulator-name = "buck4"; | |
176 | regulator-min-microvolt = <700000>; | |
177 | regulator-max-microvolt = <1300000>; | |
178 | regulator-boot-on; | |
179 | rohm,dvs-run-voltage = <1000000>; | |
180 | }; | |
181 | buck5: BUCK5 { | |
182 | regulator-name = "buck5"; | |
183 | regulator-min-microvolt = <700000>; | |
184 | regulator-max-microvolt = <1350000>; | |
185 | regulator-boot-on; | |
186 | }; | |
187 | buck6: BUCK6 { | |
188 | regulator-name = "buck6"; | |
189 | regulator-min-microvolt = <3000000>; | |
190 | regulator-max-microvolt = <3300000>; | |
191 | regulator-boot-on; | |
192 | }; | |
193 | buck7: BUCK7 { | |
194 | regulator-name = "buck7"; | |
195 | regulator-min-microvolt = <1605000>; | |
196 | regulator-max-microvolt = <1995000>; | |
197 | regulator-boot-on; | |
198 | }; | |
199 | buck8: BUCK8 { | |
200 | regulator-name = "buck8"; | |
201 | regulator-min-microvolt = <800000>; | |
202 | regulator-max-microvolt = <1400000>; | |
203 | }; | |
204 | ||
205 | ldo1: LDO1 { | |
206 | regulator-name = "ldo1"; | |
207 | regulator-min-microvolt = <3000000>; | |
208 | regulator-max-microvolt = <3300000>; | |
209 | regulator-boot-on; | |
210 | }; | |
211 | ldo2: LDO2 { | |
212 | regulator-name = "ldo2"; | |
213 | regulator-min-microvolt = <900000>; | |
214 | regulator-max-microvolt = <900000>; | |
215 | regulator-boot-on; | |
216 | }; | |
217 | ldo3: LDO3 { | |
218 | regulator-name = "ldo3"; | |
219 | regulator-min-microvolt = <1800000>; | |
220 | regulator-max-microvolt = <3300000>; | |
221 | }; | |
222 | ldo4: LDO4 { | |
223 | regulator-name = "ldo4"; | |
224 | regulator-min-microvolt = <900000>; | |
225 | regulator-max-microvolt = <1800000>; | |
226 | }; | |
227 | ldo5: LDO5 { | |
228 | regulator-name = "ldo5"; | |
229 | regulator-min-microvolt = <1800000>; | |
230 | regulator-max-microvolt = <3300000>; | |
231 | }; | |
232 | ldo6: LDO6 { | |
233 | regulator-name = "ldo6"; | |
234 | regulator-min-microvolt = <900000>; | |
235 | regulator-max-microvolt = <1800000>; | |
236 | }; | |
237 | ldo7_reg: LDO7 { | |
238 | regulator-name = "ldo7"; | |
239 | regulator-min-microvolt = <1800000>; | |
240 | regulator-max-microvolt = <3300000>; | |
241 | }; | |
242 | }; | |
243 | }; | |
244 | }; |