xref: /OK3568_Linux_fs/kernel/scripts/dtc/include-prefixes/arm/rk3288-rock2-square.dts (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2*4882a593Smuzhiyun
3*4882a593Smuzhiyun/dts-v1/;
4*4882a593Smuzhiyun#include <dt-bindings/input/input.h>
5*4882a593Smuzhiyun#include "rk3288-rock2-som.dtsi"
6*4882a593Smuzhiyun
7*4882a593Smuzhiyun/ {
8*4882a593Smuzhiyun	model = "Radxa Rock 2 Square";
9*4882a593Smuzhiyun	compatible = "radxa,rock2-square", "rockchip,rk3288";
10*4882a593Smuzhiyun
11*4882a593Smuzhiyun	chosen {
12*4882a593Smuzhiyun		stdout-path = "serial2:115200n8";
13*4882a593Smuzhiyun	};
14*4882a593Smuzhiyun
15*4882a593Smuzhiyun	adc-keys {
16*4882a593Smuzhiyun		compatible = "adc-keys";
17*4882a593Smuzhiyun		io-channels = <&saradc 1>;
18*4882a593Smuzhiyun		io-channel-names = "buttons";
19*4882a593Smuzhiyun		keyup-threshold-microvolt = <1800000>;
20*4882a593Smuzhiyun
21*4882a593Smuzhiyun		button-recovery {
22*4882a593Smuzhiyun			label = "Recovery";
23*4882a593Smuzhiyun			linux,code = <KEY_VENDOR>;
24*4882a593Smuzhiyun			press-threshold-microvolt = <0>;
25*4882a593Smuzhiyun		};
26*4882a593Smuzhiyun	};
27*4882a593Smuzhiyun
28*4882a593Smuzhiyun	gpio-keys {
29*4882a593Smuzhiyun		compatible = "gpio-keys";
30*4882a593Smuzhiyun
31*4882a593Smuzhiyun		power {
32*4882a593Smuzhiyun			gpios = <&gpio0 RK_PA5 GPIO_ACTIVE_LOW>;
33*4882a593Smuzhiyun			label = "GPIO Power";
34*4882a593Smuzhiyun			linux,code = <KEY_POWER>;
35*4882a593Smuzhiyun			pinctrl-names = "default";
36*4882a593Smuzhiyun			pinctrl-0 = <&pwr_key>;
37*4882a593Smuzhiyun			wakeup-source;
38*4882a593Smuzhiyun		};
39*4882a593Smuzhiyun	};
40*4882a593Smuzhiyun
41*4882a593Smuzhiyun	gpio-leds {
42*4882a593Smuzhiyun		compatible = "gpio-leds";
43*4882a593Smuzhiyun
44*4882a593Smuzhiyun		heartbeat_led: led-0 {
45*4882a593Smuzhiyun			gpios = <&gpio7 RK_PB7 GPIO_ACTIVE_LOW>;
46*4882a593Smuzhiyun			label = "rock2:green:state1";
47*4882a593Smuzhiyun			linux,default-trigger = "heartbeat";
48*4882a593Smuzhiyun		};
49*4882a593Smuzhiyun
50*4882a593Smuzhiyun		mmc_led: led-1 {
51*4882a593Smuzhiyun			gpios = <&gpio0 RK_PB3 GPIO_ACTIVE_LOW>;
52*4882a593Smuzhiyun			label = "rock2:blue:state2";
53*4882a593Smuzhiyun			linux,default-trigger = "mmc0";
54*4882a593Smuzhiyun		};
55*4882a593Smuzhiyun	};
56*4882a593Smuzhiyun
57*4882a593Smuzhiyun	ir: ir-receiver {
58*4882a593Smuzhiyun		compatible = "gpio-ir-receiver";
59*4882a593Smuzhiyun		gpios = <&gpio8 RK_PA1 GPIO_ACTIVE_LOW>;
60*4882a593Smuzhiyun		pinctrl-names = "default";
61*4882a593Smuzhiyun		pinctrl-0 = <&ir_int>;
62*4882a593Smuzhiyun	};
63*4882a593Smuzhiyun
64*4882a593Smuzhiyun	sound {
65*4882a593Smuzhiyun		compatible = "simple-audio-card";
66*4882a593Smuzhiyun		simple-audio-card,name = "SPDIF";
67*4882a593Smuzhiyun		simple-audio-card,mclk-fs = <128>;
68*4882a593Smuzhiyun		simple-audio-card,dai-link@1 {  /* S/PDIF - S/PDIF */
69*4882a593Smuzhiyun			cpu { sound-dai = <&spdif>; };
70*4882a593Smuzhiyun			codec { sound-dai = <&spdif_out>; };
71*4882a593Smuzhiyun		};
72*4882a593Smuzhiyun	};
73*4882a593Smuzhiyun
74*4882a593Smuzhiyun	sata_pwr: sata-prw-regulator {
75*4882a593Smuzhiyun		compatible = "regulator-fixed";
76*4882a593Smuzhiyun		enable-active-high;
77*4882a593Smuzhiyun		gpio = <&gpio0 13 GPIO_ACTIVE_HIGH>;
78*4882a593Smuzhiyun		pinctrl-names = "default";
79*4882a593Smuzhiyun		pinctrl-0 = <&sata_pwr_en>;
80*4882a593Smuzhiyun		/* Always turn on the 5V sata power connector */
81*4882a593Smuzhiyun		regulator-always-on;
82*4882a593Smuzhiyun		regulator-name = "sata_pwr";
83*4882a593Smuzhiyun	};
84*4882a593Smuzhiyun
85*4882a593Smuzhiyun	spdif_out: spdif-out {
86*4882a593Smuzhiyun		compatible = "linux,spdif-dit";
87*4882a593Smuzhiyun		#sound-dai-cells = <0>;
88*4882a593Smuzhiyun	};
89*4882a593Smuzhiyun
90*4882a593Smuzhiyun	sound-i2s {
91*4882a593Smuzhiyun		compatible = "rockchip,rk3288-hdmi-analog";
92*4882a593Smuzhiyun		pinctrl-names = "default";
93*4882a593Smuzhiyun		pinctrl-0 = <&phone_ctl>, <&hp_det>;
94*4882a593Smuzhiyun		rockchip,audio-codec = <&es8388>;
95*4882a593Smuzhiyun		rockchip,hp-det-gpios = <&gpio7 7 GPIO_ACTIVE_HIGH>;
96*4882a593Smuzhiyun		rockchip,hp-en-gpios = <&gpio8 0 GPIO_ACTIVE_HIGH>;
97*4882a593Smuzhiyun		rockchip,i2s-controller = <&i2s>;
98*4882a593Smuzhiyun		rockchip,model = "I2S";
99*4882a593Smuzhiyun		rockchip,routing = "Analog", "LOUT2",
100*4882a593Smuzhiyun				   "Analog", "ROUT2";
101*4882a593Smuzhiyun	};
102*4882a593Smuzhiyun
103*4882a593Smuzhiyun	sdio_pwrseq: sdio-pwrseq {
104*4882a593Smuzhiyun		compatible = "mmc-pwrseq-simple";
105*4882a593Smuzhiyun		clocks = <&hym8563>;
106*4882a593Smuzhiyun		clock-names = "ext_clock";
107*4882a593Smuzhiyun		pinctrl-names = "default";
108*4882a593Smuzhiyun		pinctrl-0 = <&wifi_enable>;
109*4882a593Smuzhiyun		reset-gpios = <&gpio4 RK_PD4 GPIO_ACTIVE_LOW>;
110*4882a593Smuzhiyun	};
111*4882a593Smuzhiyun
112*4882a593Smuzhiyun	vcc_usb_host: vcc-host-regulator {
113*4882a593Smuzhiyun		compatible = "regulator-fixed";
114*4882a593Smuzhiyun		enable-active-high;
115*4882a593Smuzhiyun		gpio = <&gpio0 RK_PB6 GPIO_ACTIVE_HIGH>;
116*4882a593Smuzhiyun		pinctrl-names = "default";
117*4882a593Smuzhiyun		pinctrl-0 = <&host_vbus_drv>;
118*4882a593Smuzhiyun		regulator-name = "vcc_host";
119*4882a593Smuzhiyun	};
120*4882a593Smuzhiyun
121*4882a593Smuzhiyun	vcc_sd: sdmmc-regulator {
122*4882a593Smuzhiyun		compatible = "regulator-fixed";
123*4882a593Smuzhiyun		gpio = <&gpio7 RK_PB3 GPIO_ACTIVE_LOW>;
124*4882a593Smuzhiyun		pinctrl-names = "default";
125*4882a593Smuzhiyun		pinctrl-0 = <&sdmmc_pwr>;
126*4882a593Smuzhiyun		regulator-name = "vcc_sd";
127*4882a593Smuzhiyun		regulator-min-microvolt = <3300000>;
128*4882a593Smuzhiyun		regulator-max-microvolt = <3300000>;
129*4882a593Smuzhiyun		vin-supply = <&vcc_io>;
130*4882a593Smuzhiyun	};
131*4882a593Smuzhiyun};
132*4882a593Smuzhiyun
133*4882a593Smuzhiyun&sdio0 {
134*4882a593Smuzhiyun	bus-width = <4>;
135*4882a593Smuzhiyun	cap-sd-highspeed;
136*4882a593Smuzhiyun	cap-sdio-irq;
137*4882a593Smuzhiyun	mmc-pwrseq = <&sdio_pwrseq>;
138*4882a593Smuzhiyun	non-removable;
139*4882a593Smuzhiyun	pinctrl-names = "default";
140*4882a593Smuzhiyun	pinctrl-0 = <&sdio0_bus4 &sdio0_cmd &sdio0_clk &sdio0_int>;
141*4882a593Smuzhiyun	vmmc-supply = <&vcc_io>;
142*4882a593Smuzhiyun	vqmmc-supply = <&vcc_18>;
143*4882a593Smuzhiyun	status = "okay";
144*4882a593Smuzhiyun};
145*4882a593Smuzhiyun
146*4882a593Smuzhiyun&sdmmc {
147*4882a593Smuzhiyun	bus-width = <4>;
148*4882a593Smuzhiyun	cap-mmc-highspeed;
149*4882a593Smuzhiyun	cap-sd-highspeed;
150*4882a593Smuzhiyun	card-detect-delay = <200>;
151*4882a593Smuzhiyun	disable-wp;	/* wp not hooked up */
152*4882a593Smuzhiyun	pinctrl-names = "default";
153*4882a593Smuzhiyun	pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sdmmc_cd &sdmmc_bus4>;
154*4882a593Smuzhiyun	vmmc-supply = <&vcc_sd>;
155*4882a593Smuzhiyun	vqmmc-supply = <&vccio_sd>;
156*4882a593Smuzhiyun	status = "okay";
157*4882a593Smuzhiyun};
158*4882a593Smuzhiyun
159*4882a593Smuzhiyun&gmac {
160*4882a593Smuzhiyun	status = "okay";
161*4882a593Smuzhiyun};
162*4882a593Smuzhiyun
163*4882a593Smuzhiyun&hdmi {
164*4882a593Smuzhiyun	ddc-i2c-bus = <&i2c5>;
165*4882a593Smuzhiyun	status = "okay";
166*4882a593Smuzhiyun};
167*4882a593Smuzhiyun
168*4882a593Smuzhiyun&i2c0 {
169*4882a593Smuzhiyun	hym8563: rtc@51 {
170*4882a593Smuzhiyun		compatible = "haoyu,hym8563";
171*4882a593Smuzhiyun		reg = <0x51>;
172*4882a593Smuzhiyun		#clock-cells = <0>;
173*4882a593Smuzhiyun		clock-frequency = <32768>;
174*4882a593Smuzhiyun		clock-output-names = "xin32k";
175*4882a593Smuzhiyun		interrupt-parent = <&gpio0>;
176*4882a593Smuzhiyun		interrupts = <RK_PA4 IRQ_TYPE_EDGE_FALLING>;
177*4882a593Smuzhiyun		pinctrl-names = "default";
178*4882a593Smuzhiyun		pinctrl-0 = <&pmic_int>;
179*4882a593Smuzhiyun
180*4882a593Smuzhiyun	};
181*4882a593Smuzhiyun};
182*4882a593Smuzhiyun
183*4882a593Smuzhiyun&i2c2 {
184*4882a593Smuzhiyun	status = "okay";
185*4882a593Smuzhiyun
186*4882a593Smuzhiyun	es8388: es8388@10 {
187*4882a593Smuzhiyun		compatible = "everest,es8388", "everest,es8328";
188*4882a593Smuzhiyun		reg = <0x10>;
189*4882a593Smuzhiyun		AVDD-supply = <&vccio_codec>;
190*4882a593Smuzhiyun		DVDD-supply = <&vccio_codec>;
191*4882a593Smuzhiyun		HPVDD-supply = <&vccio_codec>;
192*4882a593Smuzhiyun		PVDD-supply = <&vccio_codec>;
193*4882a593Smuzhiyun		clocks = <&cru SCLK_I2S0_OUT>;
194*4882a593Smuzhiyun	};
195*4882a593Smuzhiyun};
196*4882a593Smuzhiyun
197*4882a593Smuzhiyun&i2c5 {
198*4882a593Smuzhiyun	status = "okay";
199*4882a593Smuzhiyun};
200*4882a593Smuzhiyun
201*4882a593Smuzhiyun&i2s {
202*4882a593Smuzhiyun	status = "okay";
203*4882a593Smuzhiyun};
204*4882a593Smuzhiyun
205*4882a593Smuzhiyun&pinctrl {
206*4882a593Smuzhiyun	ir {
207*4882a593Smuzhiyun		ir_int: ir-int {
208*4882a593Smuzhiyun			rockchip,pins = <8 RK_PA1 RK_FUNC_GPIO &pcfg_pull_up>;
209*4882a593Smuzhiyun		};
210*4882a593Smuzhiyun	};
211*4882a593Smuzhiyun
212*4882a593Smuzhiyun	keys {
213*4882a593Smuzhiyun		pwr_key: pwr-key {
214*4882a593Smuzhiyun			rockchip,pins = <0 RK_PA5 RK_FUNC_GPIO &pcfg_pull_up>;
215*4882a593Smuzhiyun		};
216*4882a593Smuzhiyun	};
217*4882a593Smuzhiyun
218*4882a593Smuzhiyun	pmic {
219*4882a593Smuzhiyun		pmic_int: pmic-int {
220*4882a593Smuzhiyun			rockchip,pins = <0 RK_PA4 RK_FUNC_GPIO &pcfg_pull_up>;
221*4882a593Smuzhiyun		};
222*4882a593Smuzhiyun	};
223*4882a593Smuzhiyun
224*4882a593Smuzhiyun	headphone {
225*4882a593Smuzhiyun		hp_det: hp-det {
226*4882a593Smuzhiyun			rockchip,pins = <7 RK_PA7 RK_FUNC_GPIO &pcfg_pull_none>;
227*4882a593Smuzhiyun		};
228*4882a593Smuzhiyun
229*4882a593Smuzhiyun		phone_ctl: phone-ctl {
230*4882a593Smuzhiyun			rockchip,pins = <8 RK_PA0 RK_FUNC_GPIO &pcfg_pull_up>;
231*4882a593Smuzhiyun		};
232*4882a593Smuzhiyun	};
233*4882a593Smuzhiyun
234*4882a593Smuzhiyun	usb {
235*4882a593Smuzhiyun		host_vbus_drv: host-vbus-drv {
236*4882a593Smuzhiyun			rockchip,pins = <0 RK_PB6 RK_FUNC_GPIO &pcfg_pull_none>;
237*4882a593Smuzhiyun		};
238*4882a593Smuzhiyun	};
239*4882a593Smuzhiyun
240*4882a593Smuzhiyun	sata {
241*4882a593Smuzhiyun		sata_pwr_en: sata-pwr-en {
242*4882a593Smuzhiyun			rockchip,pins = <0 RK_PB5 RK_FUNC_GPIO &pcfg_pull_none>;
243*4882a593Smuzhiyun		};
244*4882a593Smuzhiyun	};
245*4882a593Smuzhiyun
246*4882a593Smuzhiyun	sdmmc {
247*4882a593Smuzhiyun		sdmmc_pwr: sdmmc-pwr {
248*4882a593Smuzhiyun			rockchip,pins = <7 RK_PB3 RK_FUNC_GPIO &pcfg_pull_none>;
249*4882a593Smuzhiyun		};
250*4882a593Smuzhiyun	};
251*4882a593Smuzhiyun
252*4882a593Smuzhiyun	sdio {
253*4882a593Smuzhiyun		wifi_enable: wifi-enable {
254*4882a593Smuzhiyun			rockchip,pins = <4 RK_PD4 RK_FUNC_GPIO &pcfg_pull_none>;
255*4882a593Smuzhiyun		};
256*4882a593Smuzhiyun	};
257*4882a593Smuzhiyun};
258*4882a593Smuzhiyun
259*4882a593Smuzhiyun&saradc {
260*4882a593Smuzhiyun	status = "okay";
261*4882a593Smuzhiyun};
262*4882a593Smuzhiyun
263*4882a593Smuzhiyun&spdif {
264*4882a593Smuzhiyun	status = "okay";
265*4882a593Smuzhiyun};
266*4882a593Smuzhiyun
267*4882a593Smuzhiyun&uart2 {
268*4882a593Smuzhiyun	status = "okay";
269*4882a593Smuzhiyun};
270*4882a593Smuzhiyun
271*4882a593Smuzhiyun&usbphy {
272*4882a593Smuzhiyun	status = "okay";
273*4882a593Smuzhiyun};
274*4882a593Smuzhiyun
275*4882a593Smuzhiyun&usbphy1 {
276*4882a593Smuzhiyun	vbus-supply = <&vcc_usb_host>;
277*4882a593Smuzhiyun};
278*4882a593Smuzhiyun
279*4882a593Smuzhiyun&usb_host0_ehci {
280*4882a593Smuzhiyun	status = "okay";
281*4882a593Smuzhiyun};
282*4882a593Smuzhiyun
283*4882a593Smuzhiyun&usb_host1 {
284*4882a593Smuzhiyun	status = "okay";
285*4882a593Smuzhiyun};
286*4882a593Smuzhiyun
287*4882a593Smuzhiyun&usb_otg {
288*4882a593Smuzhiyun	status = "okay";
289*4882a593Smuzhiyun};
290