xref: /OK3568_Linux_fs/kernel/arch/arm/boot/dts/rk3036-kylin.dts (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2
3/dts-v1/;
4
5#include "rk3036.dtsi"
6
7/ {
8	model = "Rockchip RK3036 KylinBoard";
9	compatible = "rockchip,rk3036-kylin", "rockchip,rk3036";
10
11	chosen {
12		bootargs = "console=uart8250,mmio32,0x20068000 rw root=PARTUUID=7c0b0000-0000 rootfstype=ext4 rootwait";
13	};
14
15	memory@60000000 {
16		device_type = "memory";
17		reg = <0x60000000 0x20000000>;
18	};
19
20	leds: gpio-leds {
21		compatible = "gpio-leds";
22
23		work_led: led-0 {
24			gpios = <&gpio2 RK_PD6 GPIO_ACTIVE_HIGH>;
25			label = "kylin:red:led";
26			pinctrl-names = "default";
27			pinctrl-0 = <&led_ctl>;
28		};
29	};
30
31	sdio_pwrseq: sdio-pwrseq {
32		compatible = "mmc-pwrseq-simple";
33		pinctrl-names = "default";
34		pinctrl-0 = <&bt_wake_h>;
35
36		/*
37		 * On the module itself this is one of these (depending
38		 * on the actual card populated):
39		 * - SDIO_RESET_L_WL_REG_ON
40		 * - SDIO_RESET_L_WL_RST
41		 * - SDIO_RESET_L_BT_EN
42		 */
43		reset-gpios = <&gpio0 26 GPIO_ACTIVE_LOW>; /* WL_REG_ON */
44	};
45
46	sound {
47		compatible = "simple-audio-card";
48		simple-audio-card,format = "i2s";
49		simple-audio-card,name = "rockchip,rt5616-codec";
50		simple-audio-card,mclk-fs = <512>;
51		simple-audio-card,widgets =
52			"Microphone", "Microphone Jack",
53			"Headphone", "Headphone Jack";
54		simple-audio-card,routing =
55			"MIC1", "Microphone Jack",
56			"MIC2", "Microphone Jack",
57			"Microphone Jack", "micbias1",
58			"Headphone Jack", "HPOL",
59			"Headphone Jack", "HPOR";
60
61		simple-audio-card,dai-link@0 {
62			format = "i2s";
63			cpu {
64				sound-dai = <&i2s>;
65			};
66
67			codec {
68				sound-dai = <&rt5616>;
69			};
70		};
71
72		simple-audio-card,dai-link@1 {
73			format = "i2s";
74			cpu {
75				sound-dai = <&i2s>;
76			};
77
78			codec {
79				sound-dai = <&hdmi>;
80			};
81		};
82	};
83
84	vcc_sys: vsys-regulator {
85		compatible = "regulator-fixed";
86		regulator-name = "vcc_sys";
87		regulator-min-microvolt = <5000000>;
88		regulator-max-microvolt = <5000000>;
89		regulator-always-on;
90		regulator-boot-on;
91	};
92
93	xin32k: xin32k {
94		compatible = "fixed-clock";
95		clock-frequency = <32768>;
96		clock-output-names = "xin32k";
97		#clock-cells = <0>;
98	};
99
100	wireless-bluetooth {
101		compatible = "bluetooth-platdata";
102		uart_rts_gpios = <&gpio0 19 GPIO_ACTIVE_LOW>;
103		pinctrl-names = "default", "rts_gpio";
104		pinctrl-0 = <&uart0_rts>;
105		pinctrl-1 = <&uart0_gpios>;
106		BT,reset_gpio = <&gpio2 9 GPIO_ACTIVE_HIGH>;
107		BT,wake_gpio = <&gpio2 8 GPIO_ACTIVE_HIGH>;
108		BT,wake_host_irq = <&gpio2 3 GPIO_ACTIVE_HIGH>;
109		status = "okay";
110	};
111
112	wireless-wlan {
113		compatible = "wlan-platdata";
114		rockchip,grf = <&grf>;
115		wifi_chip_type = "ap6212";
116		WIFI,host_wake_irq = <&gpio0 27 GPIO_ACTIVE_HIGH>;
117		status = "okay";
118	};
119};
120
121&acodec {
122	status = "okay";
123};
124
125&cpu0 {
126	cpu-supply = <&vdd_cpu>;
127};
128
129&cpu0_opp_table {
130	/delete-node/ opp-408000000;
131	/delete-node/ opp-600000000;
132	/delete-node/ opp-816000000;
133	/delete-node/ opp-1200000000;
134};
135
136&emac {
137	pinctrl-names = "default";
138	pinctrl-0 = <&emac_xfer>, <&emac_mdio>;
139	phy = <&phy0>;
140	phy-reset-gpios = <&gpio2 RK_PC6 GPIO_ACTIVE_LOW>; /* PHY_RST */
141	phy-reset-duration = <10>; /* millisecond */
142
143	status = "okay";
144
145	phy0: ethernet-phy@0 {
146		reg = <0>;
147	};
148};
149
150&emmc {
151	no-sdio;
152	no-sd;
153	status = "okay";
154};
155
156&gpu {
157	status = "okay";
158	mali-supply = <&vdd_cpu>;
159};
160
161/*
162 * Just as GPU's power supply is provided by cpu regulator, and fixed-frequency
163 * on CPU.
164 */
165&gpu_opp_table {
166	opp-200000000 {
167		opp-microvolt = <1150000>;
168	};
169	opp-400000000 {
170		opp-microvolt = <1150000>;
171	};
172};
173
174&hdmi {
175	status = "okay";
176};
177
178&hevc {
179	status = "okay";
180};
181
182&hevc_mmu {
183	status = "okay";
184};
185
186&i2c1 {
187	clock-frequency = <400000>;
188
189	status = "okay";
190
191	rk808: pmic@1b {
192		compatible = "rockchip,rk808";
193		reg = <0x1b>;
194		interrupt-parent = <&gpio2>;
195		interrupts = <RK_PA2 IRQ_TYPE_LEVEL_LOW>;
196		pinctrl-names = "default";
197		pinctrl-0 = <&pmic_int &global_pwroff>;
198		rockchip,system-power-controller;
199		wakeup-source;
200		#clock-cells = <1>;
201		clock-output-names = "rk808-clkout1", "rk808-clkout2";
202
203		vcc1-supply = <&vcc_sys>;
204		vcc3-supply = <&vcc_sys>;
205		vcc4-supply = <&vcc_sys>;
206		vcc6-supply = <&vcc_sys>;
207		vcc7-supply = <&vcc_sys>;
208		vcc9-supply = <&vcc_sys>;
209		vcc10-supply = <&vcc_io>;
210		vcc11-supply = <&vcc_io>;
211		vddio-supply = <&vcc_io>;
212
213		regulators {
214			vdd_cpu: DCDC_REG1 {
215				regulator-always-on;
216				regulator-boot-on;
217				regulator-min-microvolt = <1150000>;
218				regulator-max-microvolt = <1150000>;
219				regulator-name = "vdd_arm";
220				regulator-state-mem {
221					regulator-on-in-suspend;
222					regulator-suspend-microvolt = <1150000>;
223				};
224			};
225
226			vcc_ddr: DCDC_REG3 {
227				regulator-always-on;
228				regulator-boot-on;
229				regulator-name = "vcc_ddr";
230				regulator-state-mem {
231					regulator-on-in-suspend;
232				};
233			};
234
235			vcc_io: DCDC_REG4 {
236				regulator-always-on;
237				regulator-boot-on;
238				regulator-min-microvolt = <3300000>;
239				regulator-max-microvolt = <3300000>;
240				regulator-name = "vcc_io";
241				regulator-state-mem {
242					regulator-on-in-suspend;
243					regulator-suspend-microvolt = <3300000>;
244				};
245			};
246
247			vcca_33: LDO_REG1 {
248				regulator-always-on;
249				regulator-boot-on;
250				regulator-min-microvolt = <3300000>;
251				regulator-max-microvolt = <3300000>;
252				regulator-name = "vcca_33";
253				regulator-state-mem {
254					regulator-on-in-suspend;
255					regulator-suspend-microvolt = <3300000>;
256				};
257			};
258
259			vout1: LDO_REG2 {
260				regulator-always-on;
261				regulator-boot-on;
262				regulator-min-microvolt = <3300000>;
263				regulator-max-microvolt = <3300000>;
264				regulator-name = "vout1";
265				regulator-state-mem {
266					regulator-off-in-suspend;
267				};
268			};
269
270			vdd_11: LDO_REG3 {
271				regulator-always-on;
272				regulator-boot-on;
273				regulator-min-microvolt = <1000000>;
274				regulator-max-microvolt = <1000000>;
275				regulator-name = "vdd_11";
276				regulator-state-mem {
277					regulator-on-in-suspend;
278					regulator-suspend-microvolt = <1000000>;
279				};
280			};
281
282			vout3: LDO_REG4 {
283				regulator-always-on;
284				regulator-boot-on;
285				regulator-min-microvolt = <1800000>;
286				regulator-max-microvolt = <3400000>;
287				regulator-name = "vout3";
288				regulator-state-mem {
289					regulator-on-in-suspend;
290					regulator-suspend-microvolt = <1800000>;
291				};
292			};
293
294			vout4: LDO_REG5 {
295				regulator-always-on;
296				regulator-boot-on;
297				regulator-min-microvolt = <1800000>;
298				regulator-max-microvolt = <3400000>;
299				regulator-name = "vout4";
300				regulator-state-mem {
301					regulator-on-in-suspend;
302					regulator-suspend-microvolt = <1800000>;
303				};
304			};
305
306			vout5: LDO_REG6 {
307				regulator-always-on;
308				regulator-boot-on;
309				regulator-min-microvolt = <1800000>;
310				regulator-max-microvolt = <3400000>;
311				regulator-name = "vout5";
312				regulator-state-mem {
313					regulator-on-in-suspend;
314					regulator-suspend-microvolt = <1800000>;
315				};
316			};
317
318			vout2: LDO_REG7 {
319				regulator-always-on;
320				regulator-boot-on;
321				regulator-min-microvolt = <800000>;
322				regulator-max-microvolt = <2500000>;
323				regulator-name = "vout2";
324				regulator-state-mem {
325					regulator-on-in-suspend;
326					regulator-suspend-microvolt = <1800000>;
327				};
328			};
329
330			vcc18: LDO_REG8 {
331				regulator-always-on;
332				regulator-boot-on;
333				regulator-min-microvolt = <1800000>;
334				regulator-max-microvolt = <1800000>;
335				regulator-name = "vcc18";
336				regulator-state-mem {
337					regulator-on-in-suspend;
338					regulator-suspend-microvolt = <1800000>;
339				};
340			};
341
342			vswout1: SWITCH_REG1 {
343				regulator-always-on;
344				regulator-boot-on;
345				regulator-name = "vswout1";
346				regulator-state-mem {
347					regulator-on-in-suspend;
348				};
349			};
350
351			vswout2: SWITCH_REG2 {
352				regulator-always-on;
353				regulator-boot-on;
354				regulator-name = "vswout2";
355				regulator-state-mem {
356					regulator-on-in-suspend;
357				};
358			};
359		};
360	};
361};
362
363&i2c2 {
364	status = "okay";
365
366	rt5616: rt5616@1b {
367		compatible = "rt5616";
368		reg = <0x1b>;
369		clocks = <&cru SCLK_I2S_OUT>;
370		clock-names = "mclk";
371		#sound-dai-cells = <0>;
372	};
373};
374
375&i2s {
376	status = "okay";
377	pinctrl-0 = <&i2s_sclk
378		     &i2s_lrclktx
379		     &i2s_sdo
380		     &i2s_sdi>;
381};
382
383&mpp_srv {
384	status = "okay";
385};
386
387&sdio {
388	status = "okay";
389
390	bus-width = <4>;
391	cap-sd-highspeed;
392	cap-sdio-irq;
393	rockchip,default-sample-phase = <90>;
394	keep-power-in-suspend;
395	mmc-pwrseq = <&sdio_pwrseq>;
396	non-removable;
397	pinctrl-names = "default";
398	pinctrl-0 = <&sdio_clk &sdio_cmd &sdio_bus4>;
399	sd-uhs-sdr12;
400	sd-uhs-sdr25;
401	sd-uhs-sdr50;
402	sd-uhs-sdr104;
403	no-mmc;
404	no-sd;
405};
406
407&sdmmc {
408	bus-width = <4>;
409	cap-mmc-highspeed;
410	cap-sd-highspeed;
411	card-detect-delay = <200>;
412	disable-wp;
413	pinctrl-names = "default";
414	pinctrl-0 = <&sdmmc_clk>, <&sdmmc_cmd>, <&sdmmc_cd>, <&sdmmc_bus4>;
415	no-mmc;
416	no-sdio;
417};
418
419&uart0 {
420	pinctrl-0 = <&uart0_xfer>, <&uart0_cts>;
421	status = "okay";
422};
423
424&uart2 {
425	status = "okay";
426};
427
428&usb_host {
429	status = "okay";
430};
431
432&usb_otg {
433	status = "okay";
434};
435
436&vdpu {
437	status = "okay";
438};
439
440&vpu_mmu {
441	status = "okay";
442};
443
444&vop {
445	status = "okay";
446};
447
448&vop_mmu {
449	status = "okay";
450};
451
452&wdt {
453	status = "okay";
454};
455
456&pinctrl {
457	leds {
458		led_ctl: led-ctl {
459			rockchip,pins = <2 RK_PD6 RK_FUNC_GPIO &pcfg_pull_none>;
460		};
461	};
462
463	pmic {
464		pmic_int: pmic-int {
465			rockchip,pins = <2 RK_PA2 RK_FUNC_GPIO &pcfg_pull_default>;
466		};
467	};
468
469	sdio {
470		bt_wake_h: bt-wake-h {
471			rockchip,pins = <2 RK_PB0 RK_FUNC_GPIO &pcfg_pull_default>;
472		};
473	};
474
475	sdmmc {
476		sdmmc_pwr: sdmmc-pwr {
477			rockchip,pins = <2 RK_PD4 RK_FUNC_GPIO &pcfg_pull_none>;
478		};
479	};
480
481	suspend {
482		global_pwroff: global-pwroff {
483			rockchip,pins = <2 RK_PA7 1 &pcfg_pull_none>;
484		};
485	};
486
487	wireless-bluetooth {
488		uart0_gpios: uart0-gpios {
489			rockchip,pins = <0 RK_PC3 RK_FUNC_GPIO &pcfg_pull_none>;
490		};
491	};
492};
493