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