Skip to content

Commit 5051bff

Browse files
GateworksShawn Guo
authored andcommitted
ARM: dts: imx: ventana: add LTC3676 PMIC support
All of the Gateworks Ventana boards based on the IMX6 SoC except for the GW54xx use the LTC3676 PMIC. Add a device-tree node with interrupt support for this PMIC. Additionally remove the simple-bus notation in the regulator nodes and any fixed regulators that are provided by the PMIC. Signed-off-by: Tim Harvey <[email protected]> Signed-off-by: Shawn Guo <[email protected]>
1 parent b0a5c46 commit 5051bff

File tree

6 files changed

+630
-190
lines changed

6 files changed

+630
-190
lines changed

arch/arm/boot/dts/imx6qdl-gw51xx.dtsi

Lines changed: 102 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -56,38 +56,29 @@
5656
status = "okay";
5757
};
5858

59-
regulators {
60-
compatible = "simple-bus";
61-
#address-cells = <1>;
62-
#size-cells = <0>;
63-
64-
reg_3p3v: regulator@0 {
65-
compatible = "regulator-fixed";
66-
reg = <0>;
67-
regulator-name = "3P3V";
68-
regulator-min-microvolt = <3300000>;
69-
regulator-max-microvolt = <3300000>;
70-
regulator-always-on;
71-
};
59+
reg_3p3v: regulator-3p3v {
60+
compatible = "regulator-fixed";
61+
regulator-name = "3P3V";
62+
regulator-min-microvolt = <3300000>;
63+
regulator-max-microvolt = <3300000>;
64+
regulator-always-on;
65+
};
7266

73-
reg_5p0v: regulator@1 {
74-
compatible = "regulator-fixed";
75-
reg = <1>;
76-
regulator-name = "5P0V";
77-
regulator-min-microvolt = <5000000>;
78-
regulator-max-microvolt = <5000000>;
79-
regulator-always-on;
80-
};
67+
reg_5p0v: regulator-5p0v {
68+
compatible = "regulator-fixed";
69+
regulator-name = "5P0V";
70+
regulator-min-microvolt = <5000000>;
71+
regulator-max-microvolt = <5000000>;
72+
regulator-always-on;
73+
};
8174

82-
reg_usb_otg_vbus: regulator@2 {
83-
compatible = "regulator-fixed";
84-
reg = <2>;
85-
regulator-name = "usb_otg_vbus";
86-
regulator-min-microvolt = <5000000>;
87-
regulator-max-microvolt = <5000000>;
88-
gpio = <&gpio3 22 GPIO_ACTIVE_HIGH>;
89-
enable-active-high;
90-
};
75+
reg_usb_otg_vbus: regulator-usb-otg-vbus {
76+
compatible = "regulator-fixed";
77+
regulator-name = "usb_otg_vbus";
78+
regulator-min-microvolt = <5000000>;
79+
regulator-max-microvolt = <5000000>;
80+
gpio = <&gpio3 22 GPIO_ACTIVE_HIGH>;
81+
enable-active-high;
9182
};
9283
};
9384

@@ -158,6 +149,81 @@
158149
pinctrl-names = "default";
159150
pinctrl-0 = <&pinctrl_i2c2>;
160151
status = "okay";
152+
153+
ltc3676: pmic@3c {
154+
compatible = "lltc,ltc3676";
155+
reg = <0x3c>;
156+
pinctrl-names = "default";
157+
pinctrl-0 = <&pinctrl_pmic>;
158+
interrupt-parent = <&gpio1>;
159+
interrupts = <8 IRQ_TYPE_EDGE_FALLING>;
160+
161+
regulators {
162+
/* VDD_SOC (1+R1/R2 = 1.635) */
163+
reg_vdd_soc: sw1 {
164+
regulator-name = "vddsoc";
165+
regulator-min-microvolt = <674400>;
166+
regulator-max-microvolt = <1308000>;
167+
lltc,fb-voltage-divider = <127000 200000>;
168+
regulator-ramp-delay = <7000>;
169+
regulator-boot-on;
170+
regulator-always-on;
171+
};
172+
173+
/* VDD_1P8 (1+R1/R2 = 2.505): GPS/VideoIn/ENET-PHY */
174+
reg_1p8v: sw2 {
175+
regulator-name = "vdd1p8";
176+
regulator-min-microvolt = <1033310>;
177+
regulator-max-microvolt = <2004000>;
178+
lltc,fb-voltage-divider = <301000 200000>;
179+
regulator-ramp-delay = <7000>;
180+
regulator-boot-on;
181+
regulator-always-on;
182+
};
183+
184+
/* VDD_ARM (1+R1/R2 = 1.635) */
185+
reg_vdd_arm: sw3 {
186+
regulator-name = "vddarm";
187+
regulator-min-microvolt = <674400>;
188+
regulator-max-microvolt = <1308000>;
189+
lltc,fb-voltage-divider = <127000 200000>;
190+
regulator-ramp-delay = <7000>;
191+
regulator-boot-on;
192+
regulator-always-on;
193+
};
194+
195+
/* VDD_DDR (1+R1/R2 = 2.105) */
196+
reg_vdd_ddr: sw4 {
197+
regulator-name = "vddddr";
198+
regulator-min-microvolt = <868310>;
199+
regulator-max-microvolt = <1684000>;
200+
lltc,fb-voltage-divider = <221000 200000>;
201+
regulator-ramp-delay = <7000>;
202+
regulator-boot-on;
203+
regulator-always-on;
204+
};
205+
206+
/* VDD_2P5 (1+R1/R2 = 3.435): PCIe/ENET-PHY */
207+
reg_2p5v: ldo2 {
208+
regulator-name = "vdd2p5";
209+
regulator-min-microvolt = <2490375>;
210+
regulator-max-microvolt = <2490375>;
211+
lltc,fb-voltage-divider = <487000 200000>;
212+
regulator-boot-on;
213+
regulator-always-on;
214+
};
215+
216+
/* VDD_HIGH (1+R1/R2 = 4.17) */
217+
reg_3p0v: ldo4 {
218+
regulator-name = "vdd3p0";
219+
regulator-min-microvolt = <3023250>;
220+
regulator-max-microvolt = <3023250>;
221+
lltc,fb-voltage-divider = <634000 200000>;
222+
regulator-boot-on;
223+
regulator-always-on;
224+
};
225+
};
226+
};
161227
};
162228

163229
&i2c3 {
@@ -312,6 +378,12 @@
312378
>;
313379
};
314380

381+
pinctrl_pmic: pmicgrp {
382+
fsl,pins = <
383+
MX6QDL_PAD_GPIO_8__GPIO1_IO08 0x0001b0b0 /* PMIC_IRQ# */
384+
>;
385+
};
386+
315387
pinctrl_pps: ppsgrp {
316388
fsl,pins = <
317389
MX6QDL_PAD_ENET_RXD1__GPIO1_IO26 0x1b0b1

arch/arm/boot/dts/imx6qdl-gw52xx.dtsi

Lines changed: 117 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -71,57 +71,37 @@
7171
status = "okay";
7272
};
7373

74-
regulators {
75-
compatible = "simple-bus";
76-
#address-cells = <1>;
77-
#size-cells = <0>;
78-
79-
reg_1p0v: regulator@0 {
80-
compatible = "regulator-fixed";
81-
reg = <0>;
82-
regulator-name = "1P0V";
83-
regulator-min-microvolt = <1000000>;
84-
regulator-max-microvolt = <1000000>;
85-
regulator-always-on;
86-
};
87-
88-
/* remove this fixed regulator once ltc3676__sw2 driver available */
89-
reg_1p8v: regulator@1 {
90-
compatible = "regulator-fixed";
91-
reg = <1>;
92-
regulator-name = "1P8V";
93-
regulator-min-microvolt = <1800000>;
94-
regulator-max-microvolt = <1800000>;
95-
regulator-always-on;
96-
};
74+
reg_1p0v: regulator-1p0v {
75+
compatible = "regulator-fixed";
76+
regulator-name = "1P0V";
77+
regulator-min-microvolt = <1000000>;
78+
regulator-max-microvolt = <1000000>;
79+
regulator-always-on;
80+
};
9781

98-
reg_3p3v: regulator@2 {
99-
compatible = "regulator-fixed";
100-
reg = <2>;
101-
regulator-name = "3P3V";
102-
regulator-min-microvolt = <3300000>;
103-
regulator-max-microvolt = <3300000>;
104-
regulator-always-on;
105-
};
82+
reg_3p3v: regulator-3p3v {
83+
compatible = "regulator-fixed";
84+
regulator-name = "3P3V";
85+
regulator-min-microvolt = <3300000>;
86+
regulator-max-microvolt = <3300000>;
87+
regulator-always-on;
88+
};
10689

107-
reg_5p0v: regulator@3 {
108-
compatible = "regulator-fixed";
109-
reg = <3>;
110-
regulator-name = "5P0V";
111-
regulator-min-microvolt = <5000000>;
112-
regulator-max-microvolt = <5000000>;
113-
regulator-always-on;
114-
};
90+
reg_5p0v: regulator-5p0v {
91+
compatible = "regulator-fixed";
92+
regulator-name = "5P0V";
93+
regulator-min-microvolt = <5000000>;
94+
regulator-max-microvolt = <5000000>;
95+
regulator-always-on;
96+
};
11597

116-
reg_usb_otg_vbus: regulator@4 {
117-
compatible = "regulator-fixed";
118-
reg = <4>;
119-
regulator-name = "usb_otg_vbus";
120-
regulator-min-microvolt = <5000000>;
121-
regulator-max-microvolt = <5000000>;
122-
gpio = <&gpio3 22 GPIO_ACTIVE_HIGH>;
123-
enable-active-high;
124-
};
98+
reg_usb_otg_vbus: regulator-usb-otg-vbus {
99+
compatible = "regulator-fixed";
100+
regulator-name = "usb_otg_vbus";
101+
regulator-min-microvolt = <5000000>;
102+
regulator-max-microvolt = <5000000>;
103+
gpio = <&gpio3 22 GPIO_ACTIVE_HIGH>;
104+
enable-active-high;
125105
};
126106

127107
sound {
@@ -233,6 +213,89 @@
233213
pinctrl-names = "default";
234214
pinctrl-0 = <&pinctrl_i2c2>;
235215
status = "okay";
216+
217+
ltc3676: pmic@3c {
218+
compatible = "lltc,ltc3676";
219+
reg = <0x3c>;
220+
pinctrl-names = "default";
221+
pinctrl-0 = <&pinctrl_pmic>;
222+
interrupt-parent = <&gpio1>;
223+
interrupts = <8 IRQ_TYPE_EDGE_FALLING>;
224+
225+
regulators {
226+
/* VDD_SOC (1+R1/R2 = 1.635) */
227+
reg_vdd_soc: sw1 {
228+
regulator-name = "vddsoc";
229+
regulator-min-microvolt = <674400>;
230+
regulator-max-microvolt = <1308000>;
231+
lltc,fb-voltage-divider = <127000 200000>;
232+
regulator-ramp-delay = <7000>;
233+
regulator-boot-on;
234+
regulator-always-on;
235+
};
236+
237+
/* VDD_1P8 (1+R1/R2 = 2.505): GPS/VideoIn/ENET-PHY */
238+
reg_1p8v: sw2 {
239+
regulator-name = "vdd1p8";
240+
regulator-min-microvolt = <1033310>;
241+
regulator-max-microvolt = <2004000>;
242+
lltc,fb-voltage-divider = <301000 200000>;
243+
regulator-ramp-delay = <7000>;
244+
regulator-boot-on;
245+
regulator-always-on;
246+
};
247+
248+
/* VDD_ARM (1+R1/R2 = 1.635) */
249+
reg_vdd_arm: sw3 {
250+
regulator-name = "vddarm";
251+
regulator-min-microvolt = <674400>;
252+
regulator-max-microvolt = <1308000>;
253+
lltc,fb-voltage-divider = <127000 200000>;
254+
regulator-ramp-delay = <7000>;
255+
regulator-boot-on;
256+
regulator-always-on;
257+
};
258+
259+
/* VDD_DDR (1+R1/R2 = 2.105) */
260+
reg_vdd_ddr: sw4 {
261+
regulator-name = "vddddr";
262+
regulator-min-microvolt = <868310>;
263+
regulator-max-microvolt = <1684000>;
264+
lltc,fb-voltage-divider = <221000 200000>;
265+
regulator-ramp-delay = <7000>;
266+
regulator-boot-on;
267+
regulator-always-on;
268+
};
269+
270+
/* VDD_2P5 (1+R1/R2 = 3.435): PCIe/ENET-PHY */
271+
reg_2p5v: ldo2 {
272+
regulator-name = "vdd2p5";
273+
regulator-min-microvolt = <2490375>;
274+
regulator-max-microvolt = <2490375>;
275+
lltc,fb-voltage-divider = <487000 200000>;
276+
regulator-boot-on;
277+
regulator-always-on;
278+
};
279+
280+
/* VDD_AUD_1P8: Audio codec */
281+
reg_aud_1p8v: ldo3 {
282+
regulator-name = "vdd1p8";
283+
regulator-min-microvolt = <1800000>;
284+
regulator-max-microvolt = <1800000>;
285+
regulator-boot-on;
286+
};
287+
288+
/* VDD_HIGH (1+R1/R2 = 4.17) */
289+
reg_3p0v: ldo4 {
290+
regulator-name = "vdd3p0";
291+
regulator-min-microvolt = <3023250>;
292+
regulator-max-microvolt = <3023250>;
293+
lltc,fb-voltage-divider = <634000 200000>;
294+
regulator-boot-on;
295+
regulator-always-on;
296+
};
297+
};
298+
};
236299
};
237300

238301
&i2c3 {
@@ -467,6 +530,12 @@
467530
>;
468531
};
469532

533+
pinctrl_pmic: pmicgrp {
534+
fsl,pins = <
535+
MX6QDL_PAD_GPIO_8__GPIO1_IO08 0x0001b0b0 /* PMIC_IRQ# */
536+
>;
537+
};
538+
470539
pinctrl_pps: ppsgrp {
471540
fsl,pins = <
472541
MX6QDL_PAD_ENET_RXD1__GPIO1_IO26 0x1b0b1

0 commit comments

Comments
 (0)