1// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2/*
3 * Copyright (c) 2014 Romain Perier <romain.perier@gmail.com>
4 */
5
6/dts-v1/;
7#include "rk3066a.dtsi"
8
9/ {
10	model = "MarsBoard RK3066";
11	compatible = "haoyu,marsboard-rk3066", "rockchip,rk3066a";
12
13	memory@60000000 {
14		device_type = "memory";
15		reg = <0x60000000 0x40000000>;
16	};
17
18	vdd_log: vdd-log {
19		compatible = "pwm-regulator";
20		pwms = <&pwm3 0 1000>;
21		regulator-name = "vdd_log";
22		regulator-min-microvolt = <1200000>;
23		regulator-max-microvolt = <1200000>;
24		regulator-always-on;
25		voltage-table = <1000000 100>,
26				<1200000 42>;
27		status = "okay";
28	};
29
30	vcc_sd0: sdmmc-regulator {
31		compatible = "regulator-fixed";
32		regulator-name = "sdmmc-supply";
33		regulator-min-microvolt = <3000000>;
34		regulator-max-microvolt = <3000000>;
35		gpio = <&gpio3 RK_PA7 GPIO_ACTIVE_LOW>;
36		startup-delay-us = <100000>;
37		vin-supply = <&vcc_io>;
38	};
39
40	vsys: vsys-regulator {
41		compatible = "regulator-fixed";
42		regulator-name = "vsys";
43		regulator-min-microvolt = <5000000>;
44		regulator-max-microvolt = <5000000>;
45		regulator-boot-on;
46	};
47};
48
49&cpu0 {
50	cpu-supply = <&vdd_arm>;
51};
52
53&cpu1 {
54	cpu-supply = <&vdd_arm>;
55};
56
57&i2c1 {
58	status = "okay";
59	clock-frequency = <400000>;
60
61	tps: tps@2d {
62		reg = <0x2d>;
63
64		interrupt-parent = <&gpio6>;
65		interrupts = <RK_PA4 IRQ_TYPE_LEVEL_LOW>;
66
67		vcc1-supply = <&vsys>;
68		vcc2-supply = <&vsys>;
69		vcc3-supply = <&vsys>;
70		vcc4-supply = <&vsys>;
71		vcc5-supply = <&vcc_io>;
72		vcc6-supply = <&vcc_io>;
73		vcc7-supply = <&vsys>;
74		vccio-supply = <&vsys>;
75
76		regulators {
77			vcc_rtc: regulator@0 {
78				regulator-name = "vcc_rtc";
79				regulator-always-on;
80			};
81
82			vcc_io: regulator@1 {
83				regulator-name = "vcc_io";
84				regulator-always-on;
85			};
86
87			vdd_arm: regulator@2 {
88				regulator-name = "vdd_arm";
89				regulator-min-microvolt = <600000>;
90				regulator-max-microvolt = <1500000>;
91				regulator-boot-on;
92				regulator-always-on;
93			};
94
95			vcc_ddr: regulator@3 {
96				regulator-name = "vcc_ddr";
97				regulator-min-microvolt = <600000>;
98				regulator-max-microvolt = <1500000>;
99				regulator-boot-on;
100				regulator-always-on;
101			};
102
103			vcc18_cif: regulator@5 {
104				regulator-name = "vcc18_cif";
105				regulator-always-on;
106			};
107
108			vdd_11: regulator@6 {
109				regulator-name = "vdd_11";
110				regulator-always-on;
111			};
112
113			vcc_25: regulator@7 {
114				regulator-name = "vcc_25";
115				regulator-always-on;
116			};
117
118			vcc_18: regulator@8 {
119				regulator-name = "vcc_18";
120				regulator-always-on;
121			};
122
123			vcc25_hdmi: regulator@9 {
124				regulator-name = "vcc25_hdmi";
125				regulator-always-on;
126			};
127
128			vcca_33: regulator@10 {
129				regulator-name = "vcca_33";
130				regulator-always-on;
131			};
132
133			vcc_rmii: regulator@11 {
134				regulator-name = "vcc_rmii";
135			};
136
137			vcc28_cif: regulator@12 {
138				regulator-name = "vcc28_cif";
139				regulator-always-on;
140			};
141		};
142	};
143};
144
145/* must be included after &tps gets defined */
146#include "tps65910.dtsi"
147
148&emac {
149	status = "okay";
150
151	phy = <&phy0>;
152	phy-supply = <&vcc_rmii>;
153
154	pinctrl-names = "default";
155	pinctrl-0 = <&emac_xfer>, <&emac_mdio>, <&phy_int>;
156
157	phy0: ethernet-phy@0 {
158		reg = <0>;
159		interrupt-parent = <&gpio1>;
160		interrupts = <RK_PD2 IRQ_TYPE_LEVEL_LOW>;
161	};
162};
163
164&mmc0 {
165	status = "okay";
166
167	pinctrl-names = "default";
168	pinctrl-0 = <&sd0_clk>, <&sd0_cmd>, <&sd0_cd>, <&sd0_bus4>;
169	vmmc-supply = <&vcc_sd0>;
170};
171
172&pinctrl {
173	lan8720a {
174		phy_int: phy-int {
175			rockchip,pins = <1 RK_PD2 RK_FUNC_GPIO &pcfg_pull_none>;
176		};
177	};
178};
179
180&pwm3 {
181	status = "okay";
182};
183
184&uart0 {
185	status = "okay";
186};
187
188&uart1 {
189	status = "okay";
190};
191
192&uart2 {
193	status = "okay";
194};
195
196&uart3 {
197	status = "okay";
198};
199
200&usbphy {
201	status = "okay";
202};
203
204&usb_host {
205	status = "okay";
206};
207
208&usb_otg {
209	status = "okay";
210};
211
212&wdt {
213	status = "okay";
214};
215