1*724ba675SRob Herring// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2*724ba675SRob Herring
3*724ba675SRob Herring/dts-v1/;
4*724ba675SRob Herring
5*724ba675SRob Herring#include "rk3036.dtsi"
6*724ba675SRob Herring
7*724ba675SRob Herring/ {
8*724ba675SRob Herring	model = "Rockchip RK3036 KylinBoard";
9*724ba675SRob Herring	compatible = "rockchip,rk3036-kylin", "rockchip,rk3036";
10*724ba675SRob Herring
11*724ba675SRob Herring	memory@60000000 {
12*724ba675SRob Herring		device_type = "memory";
13*724ba675SRob Herring		reg = <0x60000000 0x20000000>;
14*724ba675SRob Herring	};
15*724ba675SRob Herring
16*724ba675SRob Herring	leds: gpio-leds {
17*724ba675SRob Herring		compatible = "gpio-leds";
18*724ba675SRob Herring
19*724ba675SRob Herring		work_led: led-0 {
20*724ba675SRob Herring			gpios = <&gpio2 RK_PD6 GPIO_ACTIVE_HIGH>;
21*724ba675SRob Herring			label = "kylin:red:led";
22*724ba675SRob Herring			pinctrl-names = "default";
23*724ba675SRob Herring			pinctrl-0 = <&led_ctl>;
24*724ba675SRob Herring		};
25*724ba675SRob Herring	};
26*724ba675SRob Herring
27*724ba675SRob Herring	sdio_pwrseq: sdio-pwrseq {
28*724ba675SRob Herring		compatible = "mmc-pwrseq-simple";
29*724ba675SRob Herring		pinctrl-names = "default";
30*724ba675SRob Herring		pinctrl-0 = <&bt_wake_h>;
31*724ba675SRob Herring
32*724ba675SRob Herring		/*
33*724ba675SRob Herring		 * On the module itself this is one of these (depending
34*724ba675SRob Herring		 * on the actual card populated):
35*724ba675SRob Herring		 * - SDIO_RESET_L_WL_REG_ON
36*724ba675SRob Herring		 * - SDIO_RESET_L_WL_RST
37*724ba675SRob Herring		 * - SDIO_RESET_L_BT_EN
38*724ba675SRob Herring		 */
39*724ba675SRob Herring		reset-gpios = <&gpio0 RK_PD2 GPIO_ACTIVE_LOW>, /* WL_REG_ON */
40*724ba675SRob Herring			      <&gpio0 RK_PD3 GPIO_ACTIVE_LOW>, /* WL_RST */
41*724ba675SRob Herring			      <&gpio2 RK_PB1 GPIO_ACTIVE_LOW>; /* BT_EN */
42*724ba675SRob Herring	};
43*724ba675SRob Herring
44*724ba675SRob Herring	sound {
45*724ba675SRob Herring		compatible = "simple-audio-card";
46*724ba675SRob Herring		simple-audio-card,format = "i2s";
47*724ba675SRob Herring		simple-audio-card,name = "rockchip,rt5616-codec";
48*724ba675SRob Herring		simple-audio-card,mclk-fs = <512>;
49*724ba675SRob Herring		simple-audio-card,widgets =
50*724ba675SRob Herring			"Microphone", "Microphone Jack",
51*724ba675SRob Herring			"Headphone", "Headphone Jack";
52*724ba675SRob Herring		simple-audio-card,routing =
53*724ba675SRob Herring			"MIC1", "Microphone Jack",
54*724ba675SRob Herring			"MIC2", "Microphone Jack",
55*724ba675SRob Herring			"Microphone Jack", "micbias1",
56*724ba675SRob Herring			"Headphone Jack", "HPOL",
57*724ba675SRob Herring			"Headphone Jack", "HPOR";
58*724ba675SRob Herring
59*724ba675SRob Herring		simple-audio-card,cpu {
60*724ba675SRob Herring			sound-dai = <&i2s>;
61*724ba675SRob Herring		};
62*724ba675SRob Herring
63*724ba675SRob Herring		simple-audio-card,codec {
64*724ba675SRob Herring			sound-dai = <&rt5616>;
65*724ba675SRob Herring		};
66*724ba675SRob Herring	};
67*724ba675SRob Herring
68*724ba675SRob Herring	vcc_sys: vsys-regulator {
69*724ba675SRob Herring		compatible = "regulator-fixed";
70*724ba675SRob Herring		regulator-name = "vcc_sys";
71*724ba675SRob Herring		regulator-min-microvolt = <5000000>;
72*724ba675SRob Herring		regulator-max-microvolt = <5000000>;
73*724ba675SRob Herring		regulator-always-on;
74*724ba675SRob Herring		regulator-boot-on;
75*724ba675SRob Herring	};
76*724ba675SRob Herring};
77*724ba675SRob Herring
78*724ba675SRob Herring&acodec {
79*724ba675SRob Herring	status = "okay";
80*724ba675SRob Herring};
81*724ba675SRob Herring
82*724ba675SRob Herring&emac {
83*724ba675SRob Herring	phy = <&phy0>;
84*724ba675SRob Herring	phy-reset-duration = <10>; /* millisecond */
85*724ba675SRob Herring	phy-reset-gpios = <&gpio2 RK_PC6 GPIO_ACTIVE_LOW>; /* PHY_RST */
86*724ba675SRob Herring	pinctrl-names = "default";
87*724ba675SRob Herring	pinctrl-0 = <&emac_xfer>, <&emac_mdio>;
88*724ba675SRob Herring	status = "okay";
89*724ba675SRob Herring
90*724ba675SRob Herring	mdio {
91*724ba675SRob Herring		#address-cells = <1>;
92*724ba675SRob Herring		#size-cells = <0>;
93*724ba675SRob Herring
94*724ba675SRob Herring		phy0: ethernet-phy@0 {
95*724ba675SRob Herring			reg = <0>;
96*724ba675SRob Herring		};
97*724ba675SRob Herring	};
98*724ba675SRob Herring};
99*724ba675SRob Herring
100*724ba675SRob Herring&emmc {
101*724ba675SRob Herring	status = "okay";
102*724ba675SRob Herring};
103*724ba675SRob Herring
104*724ba675SRob Herring&gpu {
105*724ba675SRob Herring	mali-supply = <&vdd_gpu>;
106*724ba675SRob Herring	status = "okay";
107*724ba675SRob Herring};
108*724ba675SRob Herring
109*724ba675SRob Herring&hdmi {
110*724ba675SRob Herring	status = "okay";
111*724ba675SRob Herring};
112*724ba675SRob Herring
113*724ba675SRob Herring&i2c1 {
114*724ba675SRob Herring	clock-frequency = <400000>;
115*724ba675SRob Herring
116*724ba675SRob Herring	status = "okay";
117*724ba675SRob Herring
118*724ba675SRob Herring	rk808: pmic@1b {
119*724ba675SRob Herring		compatible = "rockchip,rk808";
120*724ba675SRob Herring		reg = <0x1b>;
121*724ba675SRob Herring		interrupt-parent = <&gpio2>;
122*724ba675SRob Herring		interrupts = <RK_PA2 IRQ_TYPE_LEVEL_LOW>;
123*724ba675SRob Herring		pinctrl-names = "default";
124*724ba675SRob Herring		pinctrl-0 = <&pmic_int &global_pwroff>;
125*724ba675SRob Herring		rockchip,system-power-controller;
126*724ba675SRob Herring		wakeup-source;
127*724ba675SRob Herring		#clock-cells = <1>;
128*724ba675SRob Herring		clock-output-names = "xin32k", "rk808-clkout2";
129*724ba675SRob Herring
130*724ba675SRob Herring		vcc1-supply = <&vcc_sys>;
131*724ba675SRob Herring		vcc2-supply = <&vcc_sys>;
132*724ba675SRob Herring		vcc3-supply = <&vcc_sys>;
133*724ba675SRob Herring		vcc4-supply = <&vcc_sys>;
134*724ba675SRob Herring		vcc6-supply = <&vcc_sys>;
135*724ba675SRob Herring		vcc7-supply = <&vcc_sys>;
136*724ba675SRob Herring		vcc8-supply = <&vcc_18>;
137*724ba675SRob Herring		vcc9-supply = <&vcc_io>;
138*724ba675SRob Herring		vcc10-supply = <&vcc_io>;
139*724ba675SRob Herring		vcc11-supply = <&vcc_sys>;
140*724ba675SRob Herring		vcc12-supply = <&vcc_io>;
141*724ba675SRob Herring		vddio-supply = <&vccio_pmu>;
142*724ba675SRob Herring
143*724ba675SRob Herring		regulators {
144*724ba675SRob Herring			vdd_cpu: DCDC_REG1 {
145*724ba675SRob Herring				regulator-always-on;
146*724ba675SRob Herring				regulator-boot-on;
147*724ba675SRob Herring				regulator-min-microvolt = <750000>;
148*724ba675SRob Herring				regulator-max-microvolt = <1350000>;
149*724ba675SRob Herring				regulator-name = "vdd_arm";
150*724ba675SRob Herring				regulator-state-mem {
151*724ba675SRob Herring					regulator-off-in-suspend;
152*724ba675SRob Herring				};
153*724ba675SRob Herring			};
154*724ba675SRob Herring
155*724ba675SRob Herring			vdd_gpu: DCDC_REG2 {
156*724ba675SRob Herring				regulator-always-on;
157*724ba675SRob Herring				regulator-boot-on;
158*724ba675SRob Herring				regulator-min-microvolt = <850000>;
159*724ba675SRob Herring				regulator-max-microvolt = <1250000>;
160*724ba675SRob Herring				regulator-name = "vdd_gpu";
161*724ba675SRob Herring				regulator-state-mem {
162*724ba675SRob Herring					regulator-on-in-suspend;
163*724ba675SRob Herring					regulator-suspend-microvolt = <1000000>;
164*724ba675SRob Herring				};
165*724ba675SRob Herring			};
166*724ba675SRob Herring
167*724ba675SRob Herring			vcc_ddr: DCDC_REG3 {
168*724ba675SRob Herring				regulator-always-on;
169*724ba675SRob Herring				regulator-boot-on;
170*724ba675SRob Herring				regulator-name = "vcc_ddr";
171*724ba675SRob Herring				regulator-state-mem {
172*724ba675SRob Herring					regulator-on-in-suspend;
173*724ba675SRob Herring				};
174*724ba675SRob Herring			};
175*724ba675SRob Herring
176*724ba675SRob Herring			vcc_io: DCDC_REG4 {
177*724ba675SRob Herring				regulator-always-on;
178*724ba675SRob Herring				regulator-boot-on;
179*724ba675SRob Herring				regulator-min-microvolt = <3300000>;
180*724ba675SRob Herring				regulator-max-microvolt = <3300000>;
181*724ba675SRob Herring				regulator-name = "vcc_io";
182*724ba675SRob Herring				regulator-state-mem {
183*724ba675SRob Herring					regulator-on-in-suspend;
184*724ba675SRob Herring					regulator-suspend-microvolt = <3300000>;
185*724ba675SRob Herring				};
186*724ba675SRob Herring			};
187*724ba675SRob Herring
188*724ba675SRob Herring			vccio_pmu: LDO_REG1 {
189*724ba675SRob Herring				regulator-always-on;
190*724ba675SRob Herring				regulator-boot-on;
191*724ba675SRob Herring				regulator-min-microvolt = <3300000>;
192*724ba675SRob Herring				regulator-max-microvolt = <3300000>;
193*724ba675SRob Herring				regulator-name = "vccio_pmu";
194*724ba675SRob Herring				regulator-state-mem {
195*724ba675SRob Herring					regulator-on-in-suspend;
196*724ba675SRob Herring					regulator-suspend-microvolt = <3300000>;
197*724ba675SRob Herring				};
198*724ba675SRob Herring			};
199*724ba675SRob Herring
200*724ba675SRob Herring			vcc_tp: LDO_REG2 {
201*724ba675SRob Herring				regulator-always-on;
202*724ba675SRob Herring				regulator-boot-on;
203*724ba675SRob Herring				regulator-min-microvolt = <3300000>;
204*724ba675SRob Herring				regulator-max-microvolt = <3300000>;
205*724ba675SRob Herring				regulator-name = "vcc_tp";
206*724ba675SRob Herring				regulator-state-mem {
207*724ba675SRob Herring					regulator-off-in-suspend;
208*724ba675SRob Herring				};
209*724ba675SRob Herring			};
210*724ba675SRob Herring
211*724ba675SRob Herring			vdd_10: LDO_REG3 {
212*724ba675SRob Herring				regulator-always-on;
213*724ba675SRob Herring				regulator-boot-on;
214*724ba675SRob Herring				regulator-min-microvolt = <1000000>;
215*724ba675SRob Herring				regulator-max-microvolt = <1000000>;
216*724ba675SRob Herring				regulator-name = "vdd_10";
217*724ba675SRob Herring				regulator-state-mem {
218*724ba675SRob Herring					regulator-on-in-suspend;
219*724ba675SRob Herring					regulator-suspend-microvolt = <1000000>;
220*724ba675SRob Herring				};
221*724ba675SRob Herring			};
222*724ba675SRob Herring
223*724ba675SRob Herring			vcc18_lcd: LDO_REG4 {
224*724ba675SRob Herring				regulator-always-on;
225*724ba675SRob Herring				regulator-boot-on;
226*724ba675SRob Herring				regulator-min-microvolt = <1800000>;
227*724ba675SRob Herring				regulator-max-microvolt = <1800000>;
228*724ba675SRob Herring				regulator-name = "vcc18_lcd";
229*724ba675SRob Herring				regulator-state-mem {
230*724ba675SRob Herring					regulator-on-in-suspend;
231*724ba675SRob Herring					regulator-suspend-microvolt = <1800000>;
232*724ba675SRob Herring				};
233*724ba675SRob Herring			};
234*724ba675SRob Herring
235*724ba675SRob Herring			vccio_sd: LDO_REG5 {
236*724ba675SRob Herring				regulator-always-on;
237*724ba675SRob Herring				regulator-boot-on;
238*724ba675SRob Herring				regulator-min-microvolt = <1800000>;
239*724ba675SRob Herring				regulator-max-microvolt = <3300000>;
240*724ba675SRob Herring				regulator-name = "vccio_sd";
241*724ba675SRob Herring				regulator-state-mem {
242*724ba675SRob Herring					regulator-on-in-suspend;
243*724ba675SRob Herring					regulator-suspend-microvolt = <3300000>;
244*724ba675SRob Herring				};
245*724ba675SRob Herring			};
246*724ba675SRob Herring
247*724ba675SRob Herring			vout5: LDO_REG6 {
248*724ba675SRob Herring				regulator-always-on;
249*724ba675SRob Herring				regulator-boot-on;
250*724ba675SRob Herring				regulator-min-microvolt = <1800000>;
251*724ba675SRob Herring				regulator-max-microvolt = <2500000>;
252*724ba675SRob Herring				regulator-name = "vout5";
253*724ba675SRob Herring				regulator-state-mem {
254*724ba675SRob Herring					regulator-on-in-suspend;
255*724ba675SRob Herring					regulator-suspend-microvolt = <1800000>;
256*724ba675SRob Herring				};
257*724ba675SRob Herring			};
258*724ba675SRob Herring
259*724ba675SRob Herring			vcc_18: LDO_REG7 {
260*724ba675SRob Herring				regulator-always-on;
261*724ba675SRob Herring				regulator-boot-on;
262*724ba675SRob Herring				regulator-min-microvolt = <1800000>;
263*724ba675SRob Herring				regulator-max-microvolt = <1800000>;
264*724ba675SRob Herring				regulator-name = "vcc_18";
265*724ba675SRob Herring				regulator-state-mem {
266*724ba675SRob Herring					regulator-on-in-suspend;
267*724ba675SRob Herring					regulator-suspend-microvolt = <1800000>;
268*724ba675SRob Herring				};
269*724ba675SRob Herring			};
270*724ba675SRob Herring
271*724ba675SRob Herring			vcca_codec: LDO_REG8 {
272*724ba675SRob Herring				regulator-always-on;
273*724ba675SRob Herring				regulator-boot-on;
274*724ba675SRob Herring				regulator-min-microvolt = <1800000>;
275*724ba675SRob Herring				regulator-max-microvolt = <1800000>;
276*724ba675SRob Herring				regulator-name = "vcca_codec";
277*724ba675SRob Herring				regulator-state-mem {
278*724ba675SRob Herring					regulator-on-in-suspend;
279*724ba675SRob Herring					regulator-suspend-microvolt = <1800000>;
280*724ba675SRob Herring				};
281*724ba675SRob Herring			};
282*724ba675SRob Herring
283*724ba675SRob Herring			vcc_wl: SWITCH_REG1 {
284*724ba675SRob Herring				regulator-always-on;
285*724ba675SRob Herring				regulator-boot-on;
286*724ba675SRob Herring				regulator-name = "vcc_wl";
287*724ba675SRob Herring				regulator-state-mem {
288*724ba675SRob Herring					regulator-on-in-suspend;
289*724ba675SRob Herring				};
290*724ba675SRob Herring			};
291*724ba675SRob Herring
292*724ba675SRob Herring			vcc_lcd: SWITCH_REG2 {
293*724ba675SRob Herring				regulator-always-on;
294*724ba675SRob Herring				regulator-boot-on;
295*724ba675SRob Herring				regulator-name = "vcc_lcd";
296*724ba675SRob Herring				regulator-state-mem {
297*724ba675SRob Herring					regulator-on-in-suspend;
298*724ba675SRob Herring				};
299*724ba675SRob Herring			};
300*724ba675SRob Herring		};
301*724ba675SRob Herring	};
302*724ba675SRob Herring};
303*724ba675SRob Herring
304*724ba675SRob Herring&i2c2 {
305*724ba675SRob Herring	status = "okay";
306*724ba675SRob Herring
307*724ba675SRob Herring	rt5616: rt5616@1b {
308*724ba675SRob Herring		compatible = "rt5616";
309*724ba675SRob Herring		reg = <0x1b>;
310*724ba675SRob Herring		clocks = <&cru SCLK_I2S_OUT>;
311*724ba675SRob Herring		clock-names = "mclk";
312*724ba675SRob Herring		#sound-dai-cells = <0>;
313*724ba675SRob Herring	};
314*724ba675SRob Herring};
315*724ba675SRob Herring
316*724ba675SRob Herring&i2s {
317*724ba675SRob Herring	status = "okay";
318*724ba675SRob Herring};
319*724ba675SRob Herring
320*724ba675SRob Herring&sdio {
321*724ba675SRob Herring	status = "okay";
322*724ba675SRob Herring
323*724ba675SRob Herring	bus-width = <4>;
324*724ba675SRob Herring	cap-sd-highspeed;
325*724ba675SRob Herring	cap-sdio-irq;
326*724ba675SRob Herring	rockchip,default-sample-phase = <90>;
327*724ba675SRob Herring	keep-power-in-suspend;
328*724ba675SRob Herring	mmc-pwrseq = <&sdio_pwrseq>;
329*724ba675SRob Herring	non-removable;
330*724ba675SRob Herring	pinctrl-names = "default";
331*724ba675SRob Herring	pinctrl-0 = <&sdio_clk &sdio_cmd &sdio_bus4>;
332*724ba675SRob Herring	sd-uhs-sdr12;
333*724ba675SRob Herring	sd-uhs-sdr25;
334*724ba675SRob Herring	sd-uhs-sdr50;
335*724ba675SRob Herring	sd-uhs-sdr104;
336*724ba675SRob Herring};
337*724ba675SRob Herring
338*724ba675SRob Herring&sdmmc {
339*724ba675SRob Herring	bus-width = <4>;
340*724ba675SRob Herring	cap-mmc-highspeed;
341*724ba675SRob Herring	cap-sd-highspeed;
342*724ba675SRob Herring	card-detect-delay = <200>;
343*724ba675SRob Herring	disable-wp;
344*724ba675SRob Herring	pinctrl-names = "default";
345*724ba675SRob Herring	pinctrl-0 = <&sdmmc_clk>, <&sdmmc_cmd>, <&sdmmc_cd>, <&sdmmc_bus4>;
346*724ba675SRob Herring};
347*724ba675SRob Herring
348*724ba675SRob Herring&uart0 {
349*724ba675SRob Herring	status = "okay";
350*724ba675SRob Herring};
351*724ba675SRob Herring
352*724ba675SRob Herring&uart2 {
353*724ba675SRob Herring	status = "okay";
354*724ba675SRob Herring};
355*724ba675SRob Herring
356*724ba675SRob Herring&usb_host {
357*724ba675SRob Herring	status = "okay";
358*724ba675SRob Herring};
359*724ba675SRob Herring
360*724ba675SRob Herring&usb_otg {
361*724ba675SRob Herring	status = "okay";
362*724ba675SRob Herring};
363*724ba675SRob Herring
364*724ba675SRob Herring&vop {
365*724ba675SRob Herring	status = "okay";
366*724ba675SRob Herring};
367*724ba675SRob Herring
368*724ba675SRob Herring&vop_mmu {
369*724ba675SRob Herring	status = "okay";
370*724ba675SRob Herring};
371*724ba675SRob Herring
372*724ba675SRob Herring&pinctrl {
373*724ba675SRob Herring	leds {
374*724ba675SRob Herring		led_ctl: led-ctl {
375*724ba675SRob Herring			rockchip,pins = <2 RK_PD6 RK_FUNC_GPIO &pcfg_pull_none>;
376*724ba675SRob Herring		};
377*724ba675SRob Herring	};
378*724ba675SRob Herring
379*724ba675SRob Herring	pmic {
380*724ba675SRob Herring		pmic_int: pmic-int {
381*724ba675SRob Herring			rockchip,pins = <2 RK_PA2 RK_FUNC_GPIO &pcfg_pull_default>;
382*724ba675SRob Herring		};
383*724ba675SRob Herring	};
384*724ba675SRob Herring
385*724ba675SRob Herring	sdio {
386*724ba675SRob Herring		bt_wake_h: bt-wake-h {
387*724ba675SRob Herring			rockchip,pins = <2 RK_PB0 RK_FUNC_GPIO &pcfg_pull_default>;
388*724ba675SRob Herring		};
389*724ba675SRob Herring	};
390*724ba675SRob Herring
391*724ba675SRob Herring	sdmmc {
392*724ba675SRob Herring		sdmmc_pwr: sdmmc-pwr {
393*724ba675SRob Herring			rockchip,pins = <2 RK_PD4 RK_FUNC_GPIO &pcfg_pull_none>;
394*724ba675SRob Herring		};
395*724ba675SRob Herring	};
396*724ba675SRob Herring
397*724ba675SRob Herring	suspend {
398*724ba675SRob Herring		global_pwroff: global-pwroff {
399*724ba675SRob Herring			rockchip,pins = <2 RK_PA7 1 &pcfg_pull_none>;
400*724ba675SRob Herring		};
401*724ba675SRob Herring	};
402*724ba675SRob Herring};
403