xref: /linux/scripts/dtc/include-prefixes/arm64/rockchip/rk3566-tinker-board-3.dtsi (revision 0cac5ce06e524755b3dac1e0a060b05992076d93)
1*9f80b395SMichael Opdenacker// SPDX-License-Identifier: (GPL-2.0 OR MIT)
2*9f80b395SMichael Opdenacker/*
3*9f80b395SMichael Opdenacker * Copyright (C) 2025 Michael Opdenacker <michael.opdenacker@rootcommit.com>
4*9f80b395SMichael Opdenacker */
5*9f80b395SMichael Opdenacker
6*9f80b395SMichael Opdenacker#include <dt-bindings/gpio/gpio.h>
7*9f80b395SMichael Opdenacker#include <dt-bindings/leds/common.h>
8*9f80b395SMichael Opdenacker#include <dt-bindings/pinctrl/rockchip.h>
9*9f80b395SMichael Opdenacker#include <dt-bindings/soc/rockchip,vop2.h>
10*9f80b395SMichael Opdenacker#include "rk3566.dtsi"
11*9f80b395SMichael Opdenacker
12*9f80b395SMichael Opdenacker/ {
13*9f80b395SMichael Opdenacker	aliases {
14*9f80b395SMichael Opdenacker		i2c0 = &i2c0;
15*9f80b395SMichael Opdenacker		i2c2 = &i2c2;
16*9f80b395SMichael Opdenacker		mmc1 = &sdmmc0;
17*9f80b395SMichael Opdenacker		serial2 = &uart2;
18*9f80b395SMichael Opdenacker	};
19*9f80b395SMichael Opdenacker
20*9f80b395SMichael Opdenacker	chosen {
21*9f80b395SMichael Opdenacker		stdout-path = "serial2:1500000n8";
22*9f80b395SMichael Opdenacker	};
23*9f80b395SMichael Opdenacker
24*9f80b395SMichael Opdenacker	gpio_leds: gpio-leds {
25*9f80b395SMichael Opdenacker		compatible = "gpio-leds";
26*9f80b395SMichael Opdenacker
27*9f80b395SMichael Opdenacker		act-led {
28*9f80b395SMichael Opdenacker			gpios = <&gpio0 RK_PD4 GPIO_ACTIVE_HIGH>;
29*9f80b395SMichael Opdenacker			linux,default-trigger="mmc1";
30*9f80b395SMichael Opdenacker		};
31*9f80b395SMichael Opdenacker
32*9f80b395SMichael Opdenacker		rsv-led {
33*9f80b395SMichael Opdenacker			gpios = <&gpio0 RK_PD6 GPIO_ACTIVE_HIGH>;
34*9f80b395SMichael Opdenacker			linux,default-trigger="none";
35*9f80b395SMichael Opdenacker		};
36*9f80b395SMichael Opdenacker	};
37*9f80b395SMichael Opdenacker
38*9f80b395SMichael Opdenacker	vcc3v3_sys: regulator-3v3-vcc-sys {
39*9f80b395SMichael Opdenacker		compatible = "regulator-fixed";
40*9f80b395SMichael Opdenacker		regulator-name = "vcc3v3_sys";
41*9f80b395SMichael Opdenacker		regulator-always-on;
42*9f80b395SMichael Opdenacker		regulator-boot-on;
43*9f80b395SMichael Opdenacker		regulator-min-microvolt = <3300000>;
44*9f80b395SMichael Opdenacker		regulator-max-microvolt = <3300000>;
45*9f80b395SMichael Opdenacker		vin-supply = <&vcc5v0_sys>;
46*9f80b395SMichael Opdenacker	};
47*9f80b395SMichael Opdenacker
48*9f80b395SMichael Opdenacker	vcc5v0_sys: regulator-5v0-vcc-sys {
49*9f80b395SMichael Opdenacker		compatible = "regulator-fixed";
50*9f80b395SMichael Opdenacker		regulator-name = "vcc5v0_sys";
51*9f80b395SMichael Opdenacker		regulator-always-on;
52*9f80b395SMichael Opdenacker		regulator-boot-on;
53*9f80b395SMichael Opdenacker		regulator-min-microvolt = <5000000>;
54*9f80b395SMichael Opdenacker		regulator-max-microvolt = <5000000>;
55*9f80b395SMichael Opdenacker	};
56*9f80b395SMichael Opdenacker
57*9f80b395SMichael Opdenacker	vcc5v0_usb_host: regulator-5v0-vcc-usb-host {
58*9f80b395SMichael Opdenacker		compatible = "regulator-fixed";
59*9f80b395SMichael Opdenacker		enable-active-high;
60*9f80b395SMichael Opdenacker		gpios = <&gpio0 RK_PA6 GPIO_ACTIVE_HIGH>;
61*9f80b395SMichael Opdenacker		pinctrl-names = "default";
62*9f80b395SMichael Opdenacker		pinctrl-0 = <&u2_a_vbus_en>;
63*9f80b395SMichael Opdenacker		regulator-name = "vcc5v0_usb_host";
64*9f80b395SMichael Opdenacker		regulator-min-microvolt = <5000000>;
65*9f80b395SMichael Opdenacker		regulator-max-microvolt = <5000000>;
66*9f80b395SMichael Opdenacker		vin-supply = <&vcc5v0_sys>;
67*9f80b395SMichael Opdenacker	};
68*9f80b395SMichael Opdenacker};
69*9f80b395SMichael Opdenacker
70*9f80b395SMichael Opdenacker&cpu0 {
71*9f80b395SMichael Opdenacker	cpu-supply = <&vdd_cpu>;
72*9f80b395SMichael Opdenacker};
73*9f80b395SMichael Opdenacker
74*9f80b395SMichael Opdenacker&cpu1 {
75*9f80b395SMichael Opdenacker	cpu-supply = <&vdd_cpu>;
76*9f80b395SMichael Opdenacker};
77*9f80b395SMichael Opdenacker
78*9f80b395SMichael Opdenacker&cpu2 {
79*9f80b395SMichael Opdenacker	cpu-supply = <&vdd_cpu>;
80*9f80b395SMichael Opdenacker};
81*9f80b395SMichael Opdenacker
82*9f80b395SMichael Opdenacker&cpu3 {
83*9f80b395SMichael Opdenacker	cpu-supply = <&vdd_cpu>;
84*9f80b395SMichael Opdenacker};
85*9f80b395SMichael Opdenacker
86*9f80b395SMichael Opdenacker&i2c0 {
87*9f80b395SMichael Opdenacker	status = "okay";
88*9f80b395SMichael Opdenacker
89*9f80b395SMichael Opdenacker	rk809: pmic@20 {
90*9f80b395SMichael Opdenacker		compatible = "rockchip,rk809";
91*9f80b395SMichael Opdenacker		reg = <0x20>;
92*9f80b395SMichael Opdenacker		assigned-clocks = <&cru I2S1_MCLKOUT_TX>;
93*9f80b395SMichael Opdenacker		assigned-clock-parents = <&cru CLK_I2S1_8CH_TX>;
94*9f80b395SMichael Opdenacker		#clock-cells = <1>;
95*9f80b395SMichael Opdenacker		clocks = <&cru I2S1_MCLKOUT_TX>;
96*9f80b395SMichael Opdenacker		clock-names = "mclk";
97*9f80b395SMichael Opdenacker		clock-output-names = "rk809-clkout1", "rk809-clkout2";
98*9f80b395SMichael Opdenacker		interrupt-parent = <&gpio0>;
99*9f80b395SMichael Opdenacker		interrupts = <RK_PA3 IRQ_TYPE_LEVEL_LOW>;
100*9f80b395SMichael Opdenacker		pinctrl-names = "default";
101*9f80b395SMichael Opdenacker		pinctrl-0 = <&pmic_int_l>, <&i2s1m0_mclk>;
102*9f80b395SMichael Opdenacker		#sound-dai-cells = <0>;
103*9f80b395SMichael Opdenacker		system-power-controller;
104*9f80b395SMichael Opdenacker		wakeup-source;
105*9f80b395SMichael Opdenacker
106*9f80b395SMichael Opdenacker		vcc1-supply = <&vcc3v3_sys>;
107*9f80b395SMichael Opdenacker		vcc2-supply = <&vcc3v3_sys>;
108*9f80b395SMichael Opdenacker		vcc3-supply = <&vcc3v3_sys>;
109*9f80b395SMichael Opdenacker		vcc4-supply = <&vcc3v3_sys>;
110*9f80b395SMichael Opdenacker		vcc5-supply = <&vcc3v3_sys>;
111*9f80b395SMichael Opdenacker		vcc6-supply = <&vcc3v3_sys>;
112*9f80b395SMichael Opdenacker		vcc7-supply = <&vcc3v3_sys>;
113*9f80b395SMichael Opdenacker		vcc8-supply = <&vcc3v3_sys>;
114*9f80b395SMichael Opdenacker		vcc9-supply = <&vcc3v3_sys>;
115*9f80b395SMichael Opdenacker
116*9f80b395SMichael Opdenacker		regulators {
117*9f80b395SMichael Opdenacker			vcc_1v8: DCDC_REG5 {
118*9f80b395SMichael Opdenacker				regulator-name = "vcc_1v8";
119*9f80b395SMichael Opdenacker				regulator-always-on;
120*9f80b395SMichael Opdenacker				regulator-boot-on;
121*9f80b395SMichael Opdenacker				regulator-min-microvolt = <1800000>;
122*9f80b395SMichael Opdenacker				regulator-max-microvolt = <1800000>;
123*9f80b395SMichael Opdenacker
124*9f80b395SMichael Opdenacker				regulator-state-mem {
125*9f80b395SMichael Opdenacker					regulator-off-in-suspend;
126*9f80b395SMichael Opdenacker				};
127*9f80b395SMichael Opdenacker			};
128*9f80b395SMichael Opdenacker
129*9f80b395SMichael Opdenacker			vcc_3v3: SWITCH_REG1 {
130*9f80b395SMichael Opdenacker				regulator-name = "vcc_3v3";
131*9f80b395SMichael Opdenacker				regulator-always-on;
132*9f80b395SMichael Opdenacker				regulator-boot-on;
133*9f80b395SMichael Opdenacker
134*9f80b395SMichael Opdenacker				regulator-state-mem {
135*9f80b395SMichael Opdenacker					regulator-off-in-suspend;
136*9f80b395SMichael Opdenacker				};
137*9f80b395SMichael Opdenacker			};
138*9f80b395SMichael Opdenacker
139*9f80b395SMichael Opdenacker			vcc3v3_sd: SWITCH_REG2 {
140*9f80b395SMichael Opdenacker				regulator-name = "vcc3v3_sd";
141*9f80b395SMichael Opdenacker				regulator-always-on;
142*9f80b395SMichael Opdenacker				regulator-boot-on;
143*9f80b395SMichael Opdenacker
144*9f80b395SMichael Opdenacker				regulator-state-mem {
145*9f80b395SMichael Opdenacker					regulator-off-in-suspend;
146*9f80b395SMichael Opdenacker				};
147*9f80b395SMichael Opdenacker			};
148*9f80b395SMichael Opdenacker
149*9f80b395SMichael Opdenacker			vccio_sd: LDO_REG5 {
150*9f80b395SMichael Opdenacker				regulator-name = "vccio_sd";
151*9f80b395SMichael Opdenacker				regulator-always-on;
152*9f80b395SMichael Opdenacker				regulator-boot-on;
153*9f80b395SMichael Opdenacker				regulator-min-microvolt = <1800000>;
154*9f80b395SMichael Opdenacker				regulator-max-microvolt = <3300000>;
155*9f80b395SMichael Opdenacker
156*9f80b395SMichael Opdenacker				regulator-state-mem {
157*9f80b395SMichael Opdenacker					regulator-off-in-suspend;
158*9f80b395SMichael Opdenacker				};
159*9f80b395SMichael Opdenacker			};
160*9f80b395SMichael Opdenacker		};
161*9f80b395SMichael Opdenacker	};
162*9f80b395SMichael Opdenacker
163*9f80b395SMichael Opdenacker	vdd_cpu: regulator@40 {
164*9f80b395SMichael Opdenacker		compatible = "silergy,syr827";
165*9f80b395SMichael Opdenacker		reg = <0x40>;
166*9f80b395SMichael Opdenacker		fcs,suspend-voltage-selector = <1>;
167*9f80b395SMichael Opdenacker		regulator-name = "vdd_cpu";
168*9f80b395SMichael Opdenacker		regulator-always-on;
169*9f80b395SMichael Opdenacker		regulator-boot-on;
170*9f80b395SMichael Opdenacker		regulator-min-microvolt = <830000>;
171*9f80b395SMichael Opdenacker		regulator-max-microvolt = <1200000>;
172*9f80b395SMichael Opdenacker		regulator-ramp-delay = <2300>;
173*9f80b395SMichael Opdenacker		vin-supply = <&vcc3v3_sys>;
174*9f80b395SMichael Opdenacker
175*9f80b395SMichael Opdenacker		regulator-state-mem {
176*9f80b395SMichael Opdenacker			regulator-off-in-suspend;
177*9f80b395SMichael Opdenacker		};
178*9f80b395SMichael Opdenacker	};
179*9f80b395SMichael Opdenacker};
180*9f80b395SMichael Opdenacker
181*9f80b395SMichael Opdenacker&i2c2 {
182*9f80b395SMichael Opdenacker	status = "okay";
183*9f80b395SMichael Opdenacker
184*9f80b395SMichael Opdenacker	eeprom@50 {
185*9f80b395SMichael Opdenacker		compatible = "atmel,24c08";
186*9f80b395SMichael Opdenacker		reg = <0x50>;
187*9f80b395SMichael Opdenacker		pinctrl-names = "default";
188*9f80b395SMichael Opdenacker		pinctrl-0 = <&eeprom_wc_n>;
189*9f80b395SMichael Opdenacker	};
190*9f80b395SMichael Opdenacker
191*9f80b395SMichael Opdenacker	rtc_isl1208: rtc@6f {
192*9f80b395SMichael Opdenacker		compatible = "isil,isl1208";
193*9f80b395SMichael Opdenacker		reg = <0x6f>;
194*9f80b395SMichael Opdenacker		interrupt-names = "irq";
195*9f80b395SMichael Opdenacker		interrupts-extended = <&gpio0 RK_PD3 IRQ_TYPE_EDGE_FALLING>;
196*9f80b395SMichael Opdenacker		pinctrl-names = "default";
197*9f80b395SMichael Opdenacker		pinctrl-0 = <&rtcic_int_l>;
198*9f80b395SMichael Opdenacker	};
199*9f80b395SMichael Opdenacker};
200*9f80b395SMichael Opdenacker
201*9f80b395SMichael Opdenacker&pinctrl {
202*9f80b395SMichael Opdenacker	eeprom {
203*9f80b395SMichael Opdenacker		eeprom_wc_n: eeprom-wc-n {
204*9f80b395SMichael Opdenacker			rockchip,pins = <3 RK_PC1 RK_FUNC_GPIO &pcfg_pull_up>;
205*9f80b395SMichael Opdenacker		};
206*9f80b395SMichael Opdenacker	};
207*9f80b395SMichael Opdenacker
208*9f80b395SMichael Opdenacker	pmic {
209*9f80b395SMichael Opdenacker		pmic_int_l: pmic-int-l {
210*9f80b395SMichael Opdenacker			rockchip,pins = <0 RK_PA3 RK_FUNC_GPIO &pcfg_pull_up>;
211*9f80b395SMichael Opdenacker		};
212*9f80b395SMichael Opdenacker	};
213*9f80b395SMichael Opdenacker
214*9f80b395SMichael Opdenacker	rtc {
215*9f80b395SMichael Opdenacker		rtcic_int_l: rtcic-int-l {
216*9f80b395SMichael Opdenacker			rockchip,pins = <0 RK_PD3 RK_FUNC_GPIO &pcfg_pull_up>;
217*9f80b395SMichael Opdenacker		};
218*9f80b395SMichael Opdenacker	};
219*9f80b395SMichael Opdenacker
220*9f80b395SMichael Opdenacker	usb {
221*9f80b395SMichael Opdenacker		u2_a_vbus_en: u2-a-vbus-en {
222*9f80b395SMichael Opdenacker			rockchip,pins = <0 RK_PA6 RK_FUNC_GPIO &pcfg_pull_none>;
223*9f80b395SMichael Opdenacker		};
224*9f80b395SMichael Opdenacker
225*9f80b395SMichael Opdenacker		u3_a_vbus_en: u3-a-vbus-en {
226*9f80b395SMichael Opdenacker			rockchip,pins = <0 RK_PA5 RK_FUNC_GPIO &pcfg_pull_none>;
227*9f80b395SMichael Opdenacker		};
228*9f80b395SMichael Opdenacker	};
229*9f80b395SMichael Opdenacker};
230*9f80b395SMichael Opdenacker
231*9f80b395SMichael Opdenacker&sdmmc0 {
232*9f80b395SMichael Opdenacker	bus-width = <4>;
233*9f80b395SMichael Opdenacker	cap-sd-highspeed;
234*9f80b395SMichael Opdenacker	disable-wp;
235*9f80b395SMichael Opdenacker	pinctrl-names = "default";
236*9f80b395SMichael Opdenacker	pinctrl-0 = <&sdmmc0_bus4 &sdmmc0_clk &sdmmc0_cmd &sdmmc0_det>;
237*9f80b395SMichael Opdenacker	vmmc-supply = <&vcc3v3_sd>;
238*9f80b395SMichael Opdenacker	vqmmc-supply = <&vccio_sd>;
239*9f80b395SMichael Opdenacker	status = "okay";
240*9f80b395SMichael Opdenacker};
241*9f80b395SMichael Opdenacker
242*9f80b395SMichael Opdenacker&uart2 {
243*9f80b395SMichael Opdenacker	status = "okay";
244*9f80b395SMichael Opdenacker};
245*9f80b395SMichael Opdenacker
246*9f80b395SMichael Opdenacker&usb_host0_ehci {
247*9f80b395SMichael Opdenacker	status = "okay";
248*9f80b395SMichael Opdenacker};
249*9f80b395SMichael Opdenacker
250*9f80b395SMichael Opdenacker&usb_host0_ohci {
251*9f80b395SMichael Opdenacker	status = "okay";
252*9f80b395SMichael Opdenacker};
253*9f80b395SMichael Opdenacker
254*9f80b395SMichael Opdenacker&usb_host1_ehci {
255*9f80b395SMichael Opdenacker	status = "okay";
256*9f80b395SMichael Opdenacker};
257*9f80b395SMichael Opdenacker
258*9f80b395SMichael Opdenacker&usb_host1_ohci {
259*9f80b395SMichael Opdenacker	status = "okay";
260*9f80b395SMichael Opdenacker};
261*9f80b395SMichael Opdenacker
262*9f80b395SMichael Opdenacker&usb2phy0 {
263*9f80b395SMichael Opdenacker	status = "okay";
264*9f80b395SMichael Opdenacker};
265*9f80b395SMichael Opdenacker
266*9f80b395SMichael Opdenacker&usb2phy0_host {
267*9f80b395SMichael Opdenacker	phy-supply = <&vcc5v0_usb_host>;
268*9f80b395SMichael Opdenacker	status = "okay";
269*9f80b395SMichael Opdenacker};
270*9f80b395SMichael Opdenacker
271*9f80b395SMichael Opdenacker&usb2phy1 {
272*9f80b395SMichael Opdenacker	status = "okay";
273*9f80b395SMichael Opdenacker};
274*9f80b395SMichael Opdenacker
275*9f80b395SMichael Opdenacker&usb2phy1_host {
276*9f80b395SMichael Opdenacker	phy-supply = <&vcc5v0_usb_host>;
277*9f80b395SMichael Opdenacker	status = "okay";
278*9f80b395SMichael Opdenacker};
279