1d99a02bcSKlaus Goger// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2d99a02bcSKlaus Goger/*
3d99a02bcSKlaus Goger * Copyright (c) 2018 Theobroma Systems Design und Consulting GmbH
4d99a02bcSKlaus Goger */
5d99a02bcSKlaus Goger
6d99a02bcSKlaus Goger/dts-v1/;
7d99a02bcSKlaus Goger#include "rk3368.dtsi"
8d99a02bcSKlaus Goger
9d99a02bcSKlaus Goger/ {
10751a78a8SHeiko Stuebner	aliases {
11751a78a8SHeiko Stuebner		mmc0 = &emmc;
12751a78a8SHeiko Stuebner	};
13751a78a8SHeiko Stuebner
14d99a02bcSKlaus Goger	chosen {
15d99a02bcSKlaus Goger		stdout-path = "serial0:115200n8";
16d99a02bcSKlaus Goger	};
17d99a02bcSKlaus Goger
18d99a02bcSKlaus Goger	ext_gmac: gmac-clk {
19d99a02bcSKlaus Goger		compatible = "fixed-clock";
20d99a02bcSKlaus Goger		clock-frequency = <125000000>;
21d99a02bcSKlaus Goger		clock-output-names = "ext_gmac";
22d99a02bcSKlaus Goger		#clock-cells = <0>;
23d99a02bcSKlaus Goger	};
24d99a02bcSKlaus Goger
25d99a02bcSKlaus Goger	i2cmux1 {
26d99a02bcSKlaus Goger		compatible = "i2c-mux-gpio";
27d99a02bcSKlaus Goger		#address-cells = <1>;
28d99a02bcSKlaus Goger		#size-cells = <0>;
29d99a02bcSKlaus Goger		i2c-parent = <&i2c1>;
30d99a02bcSKlaus Goger		mux-gpios = <&gpio1 RK_PA7 GPIO_ACTIVE_HIGH>;
31d99a02bcSKlaus Goger
32*5a73d7caSJakob Unterwurzacher		/* Q7_GP0_I2C */
33*5a73d7caSJakob Unterwurzacher		i2c_gp0: i2c@0 {
34d99a02bcSKlaus Goger			reg = <0>;
35d99a02bcSKlaus Goger			#address-cells = <1>;
36d99a02bcSKlaus Goger			#size-cells = <0>;
37d99a02bcSKlaus Goger		};
38d99a02bcSKlaus Goger
39d99a02bcSKlaus Goger		/* Q7_SMB */
40*5a73d7caSJakob Unterwurzacher		i2c_smb: i2c@1 {
41d99a02bcSKlaus Goger			reg = <1>;
42d99a02bcSKlaus Goger			#address-cells = <1>;
43d99a02bcSKlaus Goger			#size-cells = <0>;
44d99a02bcSKlaus Goger		};
45d99a02bcSKlaus Goger	};
46d99a02bcSKlaus Goger
47d99a02bcSKlaus Goger	i2cmux2 {
48d99a02bcSKlaus Goger		compatible = "i2c-mux-gpio";
49d99a02bcSKlaus Goger		#address-cells = <1>;
50d99a02bcSKlaus Goger		#size-cells = <0>;
51d99a02bcSKlaus Goger		i2c-parent = <&i2c2>;
52d99a02bcSKlaus Goger		mux-gpios = <&gpio1 RK_PB4 GPIO_ACTIVE_HIGH>;
53d99a02bcSKlaus Goger
54d99a02bcSKlaus Goger		/* Q7_LVDS_BLC_I2C */
55*5a73d7caSJakob Unterwurzacher		i2c_lvds_blc: i2c@0 {
56d99a02bcSKlaus Goger			reg = <0>;
57d99a02bcSKlaus Goger			#address-cells = <1>;
58d99a02bcSKlaus Goger			#size-cells = <0>;
59d99a02bcSKlaus Goger
60d99a02bcSKlaus Goger			fan: fan@18 {
61d99a02bcSKlaus Goger				compatible = "ti,amc6821";
62d99a02bcSKlaus Goger				reg = <0x18>;
63d99a02bcSKlaus Goger				#cooling-cells = <2>;
64d99a02bcSKlaus Goger			};
65d99a02bcSKlaus Goger
66d99a02bcSKlaus Goger			rtc_twi: rtc@6f {
67d99a02bcSKlaus Goger				compatible = "isil,isl1208";
68d99a02bcSKlaus Goger				reg = <0x6f>;
69d99a02bcSKlaus Goger			};
70d99a02bcSKlaus Goger		};
71d99a02bcSKlaus Goger
72*5a73d7caSJakob Unterwurzacher		/* Q7_GP2_I2C = LVDS_DID_CLK/DAT */
73*5a73d7caSJakob Unterwurzacher		i2c_gp2: i2c@1 {
74d99a02bcSKlaus Goger			reg = <1>;
75d99a02bcSKlaus Goger			#address-cells = <1>;
76d99a02bcSKlaus Goger			#size-cells = <0>;
77d99a02bcSKlaus Goger		};
78d99a02bcSKlaus Goger	};
79d99a02bcSKlaus Goger
80d99a02bcSKlaus Goger	leds {
81d99a02bcSKlaus Goger		compatible = "gpio-leds";
82d99a02bcSKlaus Goger		pinctrl-names = "default";
836dd5e12cSJohan Jonker		pinctrl-0 = <&module_led_pins>;
84d99a02bcSKlaus Goger
856dd5e12cSJohan Jonker		module_led1: led-1 {
86d99a02bcSKlaus Goger			label = "module_led1";
87d99a02bcSKlaus Goger			gpios = <&gpio2 RK_PB5 GPIO_ACTIVE_HIGH>;
88d99a02bcSKlaus Goger			linux,default-trigger = "heartbeat";
89d99a02bcSKlaus Goger			panic-indicator;
90d99a02bcSKlaus Goger		};
91d99a02bcSKlaus Goger
926dd5e12cSJohan Jonker		module_led2: led-2 {
93d99a02bcSKlaus Goger			label = "module_led2";
94d99a02bcSKlaus Goger			gpios = <&gpio3 RK_PA3 GPIO_ACTIVE_HIGH>;
95d99a02bcSKlaus Goger			default-state = "off";
96d99a02bcSKlaus Goger		};
97d99a02bcSKlaus Goger	};
98d99a02bcSKlaus Goger
99d99a02bcSKlaus Goger	vcc_sys: vcc-sys-regulator {
100d99a02bcSKlaus Goger		compatible = "regulator-fixed";
101d99a02bcSKlaus Goger		regulator-name = "vcc_sys";
102d99a02bcSKlaus Goger		regulator-min-microvolt = <5000000>;
103d99a02bcSKlaus Goger		regulator-max-microvolt = <5000000>;
104d99a02bcSKlaus Goger		regulator-always-on;
105d99a02bcSKlaus Goger		regulator-boot-on;
106d99a02bcSKlaus Goger	};
107d99a02bcSKlaus Goger};
108d99a02bcSKlaus Goger
109d99a02bcSKlaus Goger&cpu_l0 {
110d99a02bcSKlaus Goger	cpu-supply = <&vdd_cpu>;
111d99a02bcSKlaus Goger};
112d99a02bcSKlaus Goger
113d99a02bcSKlaus Goger&cpu_l1 {
114d99a02bcSKlaus Goger	cpu-supply = <&vdd_cpu>;
115d99a02bcSKlaus Goger};
116d99a02bcSKlaus Goger
117d99a02bcSKlaus Goger&cpu_l2 {
118d99a02bcSKlaus Goger	cpu-supply = <&vdd_cpu>;
119d99a02bcSKlaus Goger};
120d99a02bcSKlaus Goger
121d99a02bcSKlaus Goger&cpu_l3 {
122d99a02bcSKlaus Goger	cpu-supply = <&vdd_cpu>;
123d99a02bcSKlaus Goger};
124d99a02bcSKlaus Goger
125d99a02bcSKlaus Goger&cpu_b0 {
126d99a02bcSKlaus Goger	cpu-supply = <&vdd_cpu>;
127d99a02bcSKlaus Goger};
128d99a02bcSKlaus Goger
129d99a02bcSKlaus Goger&cpu_b1 {
130d99a02bcSKlaus Goger	cpu-supply = <&vdd_cpu>;
131d99a02bcSKlaus Goger};
132d99a02bcSKlaus Goger
133d99a02bcSKlaus Goger&cpu_b2 {
134d99a02bcSKlaus Goger	cpu-supply = <&vdd_cpu>;
135d99a02bcSKlaus Goger};
136d99a02bcSKlaus Goger
137d99a02bcSKlaus Goger&cpu_b3 {
138d99a02bcSKlaus Goger	cpu-supply = <&vdd_cpu>;
139d99a02bcSKlaus Goger};
140d99a02bcSKlaus Goger
141d99a02bcSKlaus Goger&emmc {
142d99a02bcSKlaus Goger	bus-width = <8>;
143d99a02bcSKlaus Goger	clock-frequency = <150000000>;
144d99a02bcSKlaus Goger	mmc-hs200-1_8v;
145d99a02bcSKlaus Goger	non-removable;
146d99a02bcSKlaus Goger	vmmc-supply = <&vcc33_io>;
1473bd7f3efSJakob Unterwurzacher	vqmmc-supply = <&vcc_18>;
148d99a02bcSKlaus Goger	pinctrl-names = "default";
149d99a02bcSKlaus Goger	pinctrl-0 = <&emmc_clk>, <&emmc_cmd>, <&emmc_bus8>;
150d99a02bcSKlaus Goger	status = "okay";
151d99a02bcSKlaus Goger};
152d99a02bcSKlaus Goger
153d99a02bcSKlaus Goger&gmac {
154d99a02bcSKlaus Goger	assigned-clocks = <&cru SCLK_MAC>;
155d99a02bcSKlaus Goger	assigned-clock-parents = <&ext_gmac>;
156d99a02bcSKlaus Goger	clock_in_out = "input";
157d99a02bcSKlaus Goger	phy-supply = <&vcc33_io>;
158d99a02bcSKlaus Goger	phy-mode = "rgmii";
159d99a02bcSKlaus Goger	pinctrl-names = "default";
160d99a02bcSKlaus Goger	pinctrl-0 = <&rgmii_pins>;
161d99a02bcSKlaus Goger	snps,reset-active-low;
162d99a02bcSKlaus Goger	snps,reset-delays-us = <0 10000 50000>;
1632300e6daSHeiko Stuebner	snps,reset-gpio = <&gpio3 RK_PB3 GPIO_ACTIVE_LOW>;
164d99a02bcSKlaus Goger	tx_delay = <0x10>;
165d99a02bcSKlaus Goger	rx_delay = <0x10>;
166d99a02bcSKlaus Goger	status = "okay";
167d99a02bcSKlaus Goger};
168d99a02bcSKlaus Goger
169d99a02bcSKlaus Goger&i2c0 {
170d99a02bcSKlaus Goger	status = "okay";
171d99a02bcSKlaus Goger
172d99a02bcSKlaus Goger	rk808: pmic@1b {
173d99a02bcSKlaus Goger		compatible = "rockchip,rk808";
174d99a02bcSKlaus Goger		reg = <0x1b>;
175d99a02bcSKlaus Goger		interrupt-parent = <&gpio0>;
176d99a02bcSKlaus Goger		interrupts = <RK_PA5 IRQ_TYPE_LEVEL_LOW>;
177d99a02bcSKlaus Goger		clock-output-names = "xin32k", "rk808-clkout2";
178d99a02bcSKlaus Goger		#clock-cells = <1>;
179d99a02bcSKlaus Goger		pinctrl-names = "default";
180d99a02bcSKlaus Goger		pinctrl-0 = <&pmic_int_l>, <&pmic_sleep>;
181d99a02bcSKlaus Goger		rockchip,system-power-controller;
182d99a02bcSKlaus Goger		vcc1-supply = <&vcc_sys>;
183d99a02bcSKlaus Goger		vcc2-supply = <&vcc_sys>;
184d99a02bcSKlaus Goger		vcc3-supply = <&vcc_sys>;
185d99a02bcSKlaus Goger		vcc4-supply = <&vcc_sys>;
186d99a02bcSKlaus Goger		vcc6-supply = <&vcc_sys>;
187d99a02bcSKlaus Goger		vcc7-supply = <&vcc_sys>;
188d99a02bcSKlaus Goger		vcc8-supply = <&vcc_sys>;
189d99a02bcSKlaus Goger		vcc9-supply = <&vcc_sys>;
190d99a02bcSKlaus Goger		vcc10-supply = <&vcc_sys>;
191d99a02bcSKlaus Goger		vcc11-supply = <&vcc_sys>;
192d99a02bcSKlaus Goger		vcc12-supply = <&vcc_sys>;
193d99a02bcSKlaus Goger
194d99a02bcSKlaus Goger		regulators {
195d99a02bcSKlaus Goger			vdd_cpu: DCDC_REG1 {
196d99a02bcSKlaus Goger				regulator-name = "vdd_cpu";
197d99a02bcSKlaus Goger				regulator-min-microvolt = <700000>;
198d99a02bcSKlaus Goger				regulator-max-microvolt = <1500000>;
199d99a02bcSKlaus Goger				regulator-always-on;
200d99a02bcSKlaus Goger				regulator-boot-on;
201d99a02bcSKlaus Goger			};
202d99a02bcSKlaus Goger
203d99a02bcSKlaus Goger			vdd_log: DCDC_REG2 {
204d99a02bcSKlaus Goger				regulator-name = "vdd_log";
205d99a02bcSKlaus Goger				regulator-min-microvolt = <700000>;
206d99a02bcSKlaus Goger				regulator-max-microvolt = <1500000>;
207d99a02bcSKlaus Goger				regulator-always-on;
208d99a02bcSKlaus Goger				regulator-boot-on;
209d99a02bcSKlaus Goger			};
210d99a02bcSKlaus Goger
211d99a02bcSKlaus Goger			vcc_ddr: DCDC_REG3 {
212d99a02bcSKlaus Goger				regulator-name = "vcc_ddr";
213d99a02bcSKlaus Goger				regulator-always-on;
214d99a02bcSKlaus Goger				regulator-boot-on;
215d99a02bcSKlaus Goger			};
216d99a02bcSKlaus Goger
217d99a02bcSKlaus Goger			vcc33_io: DCDC_REG4 {
218d99a02bcSKlaus Goger				regulator-name = "vcc33_io";
219d99a02bcSKlaus Goger				regulator-min-microvolt = <3300000>;
220d99a02bcSKlaus Goger				regulator-max-microvolt = <3300000>;
221d99a02bcSKlaus Goger				regulator-always-on;
222d99a02bcSKlaus Goger				regulator-boot-on;
223d99a02bcSKlaus Goger			};
224d99a02bcSKlaus Goger
225d99a02bcSKlaus Goger			vcc33_video: LDO_REG2 {
226d99a02bcSKlaus Goger				regulator-name = "vcc33_video";
227d99a02bcSKlaus Goger				regulator-min-microvolt = <3300000>;
228d99a02bcSKlaus Goger				regulator-max-microvolt = <3300000>;
229d99a02bcSKlaus Goger				regulator-always-on;
230d99a02bcSKlaus Goger				regulator-boot-on;
231d99a02bcSKlaus Goger			};
232d99a02bcSKlaus Goger
233d99a02bcSKlaus Goger			vdd10_pll: LDO_REG3 {
234d99a02bcSKlaus Goger				regulator-name = "vdd10_pll";
235d99a02bcSKlaus Goger				regulator-min-microvolt = <1000000>;
236d99a02bcSKlaus Goger				regulator-max-microvolt = <1000000>;
237d99a02bcSKlaus Goger				regulator-always-on;
238d99a02bcSKlaus Goger				regulator-boot-on;
239d99a02bcSKlaus Goger			};
240d99a02bcSKlaus Goger
241d99a02bcSKlaus Goger			vdd10_video: LDO_REG6 {
242d99a02bcSKlaus Goger				regulator-name = "vdd10_video";
243d99a02bcSKlaus Goger				regulator-min-microvolt = <1000000>;
244d99a02bcSKlaus Goger				regulator-max-microvolt = <1000000>;
245d99a02bcSKlaus Goger				regulator-always-on;
246d99a02bcSKlaus Goger				regulator-boot-on;
247d99a02bcSKlaus Goger			};
248d99a02bcSKlaus Goger
2493bd7f3efSJakob Unterwurzacher			vcc_18: LDO_REG7 {
2503bd7f3efSJakob Unterwurzacher				regulator-always-on;
2513bd7f3efSJakob Unterwurzacher				regulator-boot-on;
2523bd7f3efSJakob Unterwurzacher				regulator-min-microvolt = <1800000>;
2533bd7f3efSJakob Unterwurzacher				regulator-max-microvolt = <1800000>;
2543bd7f3efSJakob Unterwurzacher				regulator-name = "vcc_18";
2553bd7f3efSJakob Unterwurzacher			};
2563bd7f3efSJakob Unterwurzacher
257d99a02bcSKlaus Goger			vcc18_video: LDO_REG8 {
258d99a02bcSKlaus Goger				regulator-name = "vcc18_video";
259d99a02bcSKlaus Goger				regulator-min-microvolt = <1800000>;
260d99a02bcSKlaus Goger				regulator-max-microvolt = <1800000>;
261d99a02bcSKlaus Goger				regulator-always-on;
262d99a02bcSKlaus Goger				regulator-boot-on;
263d99a02bcSKlaus Goger			};
264d99a02bcSKlaus Goger		};
265d99a02bcSKlaus Goger	};
266d99a02bcSKlaus Goger};
267d99a02bcSKlaus Goger
268d99a02bcSKlaus Goger&i2c1 {
269d99a02bcSKlaus Goger	status = "okay";
270d99a02bcSKlaus Goger};
271d99a02bcSKlaus Goger
272d99a02bcSKlaus Goger&i2c2 {
273d99a02bcSKlaus Goger	status = "okay";
274d99a02bcSKlaus Goger};
275d99a02bcSKlaus Goger
2760ed6b51dSJakob Unterwurzacher/* The RK3368-uQ7 "Lion" has most IO voltages hardwired to 3.3V. */
2770ed6b51dSJakob Unterwurzacher&io_domains {
2780ed6b51dSJakob Unterwurzacher	audio-supply = <&vcc33_io>;
2790ed6b51dSJakob Unterwurzacher	dvp-supply = <&vcc33_io>;
2800ed6b51dSJakob Unterwurzacher	flash0-supply = <&vcc_18>;
2810ed6b51dSJakob Unterwurzacher	gpio30-supply = <&vcc33_io>;
2820ed6b51dSJakob Unterwurzacher	gpio1830-supply = <&vcc33_io>;
2830ed6b51dSJakob Unterwurzacher	sdcard-supply = <&vcc33_io>;
2840ed6b51dSJakob Unterwurzacher	wifi-supply = <&vcc33_io>;
2850ed6b51dSJakob Unterwurzacher	status = "okay";
2860ed6b51dSJakob Unterwurzacher};
2870ed6b51dSJakob Unterwurzacher
288d99a02bcSKlaus Goger&pinctrl {
289d99a02bcSKlaus Goger	leds {
2906dd5e12cSJohan Jonker		module_led_pins: module-led-pins {
291d99a02bcSKlaus Goger			rockchip,pins =
292d64420e8SHeiko Stuebner				<2 RK_PB5 RK_FUNC_GPIO &pcfg_pull_none>,
293d64420e8SHeiko Stuebner				<3 RK_PA3 RK_FUNC_GPIO &pcfg_pull_none>;
294d99a02bcSKlaus Goger		};
295d99a02bcSKlaus Goger	};
296d99a02bcSKlaus Goger	pmic {
297d99a02bcSKlaus Goger		pmic_int_l: pmic-int-l {
298d64420e8SHeiko Stuebner			rockchip,pins = <0 RK_PA5 RK_FUNC_GPIO &pcfg_pull_up>;
299d99a02bcSKlaus Goger		};
300d99a02bcSKlaus Goger
301d99a02bcSKlaus Goger		pmic_sleep: pmic-sleep {
302d64420e8SHeiko Stuebner			rockchip,pins = <0 RK_PA0 2 &pcfg_pull_none>;
303d99a02bcSKlaus Goger		};
304d99a02bcSKlaus Goger	};
305d99a02bcSKlaus Goger};
306d99a02bcSKlaus Goger
3070ed6b51dSJakob Unterwurzacher&pmu_io_domains {
3080ed6b51dSJakob Unterwurzacher	pmu-supply = <&vcc33_io>;
3090ed6b51dSJakob Unterwurzacher	vop-supply = <&vcc33_io>;
3100ed6b51dSJakob Unterwurzacher	status = "okay";
3110ed6b51dSJakob Unterwurzacher};
3120ed6b51dSJakob Unterwurzacher
313d99a02bcSKlaus Goger&spi1 {
314d99a02bcSKlaus Goger	status = "okay";
315d99a02bcSKlaus Goger
316d99a02bcSKlaus Goger	norflash: flash@0 {
317d99a02bcSKlaus Goger		compatible = "jedec,spi-nor";
318d99a02bcSKlaus Goger		reg = <0>;
319d99a02bcSKlaus Goger		spi-max-frequency = <50000000>;
320d99a02bcSKlaus Goger	};
321d99a02bcSKlaus Goger};
322d99a02bcSKlaus Goger
323d99a02bcSKlaus Goger&uart1 {
324d99a02bcSKlaus Goger	status = "okay";
325d99a02bcSKlaus Goger};
326d99a02bcSKlaus Goger
327d99a02bcSKlaus Goger&uart3 {
328d99a02bcSKlaus Goger	status = "okay";
329d99a02bcSKlaus Goger};
330d99a02bcSKlaus Goger
331d99a02bcSKlaus Goger&usb_host0_ehci {
332d99a02bcSKlaus Goger	status = "okay";
333d99a02bcSKlaus Goger};
334d99a02bcSKlaus Goger
335d99a02bcSKlaus Goger&wdt {
336d99a02bcSKlaus Goger	status = "okay";
337d99a02bcSKlaus Goger};
338