xref: /OK3568_Linux_fs/kernel/arch/arm/boot/dts/rk3229-at-3nod-func.dts (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun/*
2*4882a593Smuzhiyun * Copyright (c) 2018 Fuzhou Rockchip Electronics Co., Ltd
3*4882a593Smuzhiyun *
4*4882a593Smuzhiyun * SPDX-License-Identifier: (GPL-2.0+ OR MIT).
5*4882a593Smuzhiyun */
6*4882a593Smuzhiyun
7*4882a593Smuzhiyun/dts-v1/;
8*4882a593Smuzhiyun
9*4882a593Smuzhiyun#include "rk3229-at-som.dtsi"
10*4882a593Smuzhiyun#include <dt-bindings/input/input.h>
11*4882a593Smuzhiyun
12*4882a593Smuzhiyun/ {
13*4882a593Smuzhiyun	model = "RK3229 ANDROID THINGS Full Function Board";
14*4882a593Smuzhiyun	compatible = "rockchip,rk3229-at-3nod-func", "rockchip,rk3229";
15*4882a593Smuzhiyun
16*4882a593Smuzhiyun	gpio_keys {
17*4882a593Smuzhiyun		compatible = "gpio-keys";
18*4882a593Smuzhiyun		#address-cells = <1>;
19*4882a593Smuzhiyun		#size-cells = <0>;
20*4882a593Smuzhiyun		autorepeat;
21*4882a593Smuzhiyun
22*4882a593Smuzhiyun		pinctrl-names = "default";
23*4882a593Smuzhiyun		pinctrl-0 = <&pwr_key>;
24*4882a593Smuzhiyun
25*4882a593Smuzhiyun		power_key {
26*4882a593Smuzhiyun			label = "GPIO Key Power";
27*4882a593Smuzhiyun			gpios = <&gpio3 23 GPIO_ACTIVE_HIGH>;
28*4882a593Smuzhiyun			linux,code = <116>;
29*4882a593Smuzhiyun			debounce-interval = <100>;
30*4882a593Smuzhiyun			wakeup-source;
31*4882a593Smuzhiyun		};
32*4882a593Smuzhiyun	};
33*4882a593Smuzhiyun
34*4882a593Smuzhiyun	sdio_pwrseq: sdio-pwrseq {
35*4882a593Smuzhiyun		compatible = "mmc-pwrseq-simple";
36*4882a593Smuzhiyun		clocks = <&rk805 1>;
37*4882a593Smuzhiyun		clock-names = "ext_clock";
38*4882a593Smuzhiyun		pinctrl-names = "default";
39*4882a593Smuzhiyun		pinctrl-0 = <&wifi_enable_h>;
40*4882a593Smuzhiyun
41*4882a593Smuzhiyun		/*
42*4882a593Smuzhiyun		 * On the module itself this is one of these (depending
43*4882a593Smuzhiyun		 * on the actual card populated):
44*4882a593Smuzhiyun		 * - SDIO_RESET_L_WL_REG_ON
45*4882a593Smuzhiyun		 * - PDN (power down when low)
46*4882a593Smuzhiyun		 */
47*4882a593Smuzhiyun		reset-gpios = <&gpio3 15 GPIO_ACTIVE_LOW>; /* GPIO3_B7 */
48*4882a593Smuzhiyun	};
49*4882a593Smuzhiyun
50*4882a593Smuzhiyun	vcc_sd: vcc-sd {
51*4882a593Smuzhiyun		compatible = "regulator-fixed";
52*4882a593Smuzhiyun		gpio = <&gpio1 14 GPIO_ACTIVE_LOW>;
53*4882a593Smuzhiyun		pinctrl-names = "default";
54*4882a593Smuzhiyun		pinctrl-0 = <&vcc_sd_h>;
55*4882a593Smuzhiyun		regulator-name = "vcc_sd";
56*4882a593Smuzhiyun		regulator-min-microvolt = <3300000>;
57*4882a593Smuzhiyun		regulator-max-microvolt = <3300000>;
58*4882a593Smuzhiyun	};
59*4882a593Smuzhiyun
60*4882a593Smuzhiyun	wireless-bluetooth {
61*4882a593Smuzhiyun		compatible = "bluetooth-platdata";
62*4882a593Smuzhiyun		clocks = <&rk805 1>;
63*4882a593Smuzhiyun		clock-names = "ext_clock";
64*4882a593Smuzhiyun		uart_rts_gpios = <&gpio3 6 GPIO_ACTIVE_LOW>;
65*4882a593Smuzhiyun		pinctrl-names = "default", "rts_gpio";
66*4882a593Smuzhiyun		pinctrl-0 = <&uart11_rts>;
67*4882a593Smuzhiyun		pinctrl-1 = <&uart11_rts_gpio>;
68*4882a593Smuzhiyun		BT,reset_gpio    = <&gpio2 29 GPIO_ACTIVE_HIGH>;
69*4882a593Smuzhiyun		BT,wake_gpio     = <&gpio3 27 GPIO_ACTIVE_HIGH>;
70*4882a593Smuzhiyun		BT,wake_host_irq = <&gpio3 26 GPIO_ACTIVE_HIGH>;
71*4882a593Smuzhiyun		status = "okay";
72*4882a593Smuzhiyun	};
73*4882a593Smuzhiyun
74*4882a593Smuzhiyun	wireless-wlan {
75*4882a593Smuzhiyun		compatible = "wlan-platdata";
76*4882a593Smuzhiyun		rockchip,grf = <&grf>;
77*4882a593Smuzhiyun		wifi_chip_type = "ap6255";
78*4882a593Smuzhiyun		WIFI,host_wake_irq = <&gpio0 28 GPIO_ACTIVE_HIGH>;
79*4882a593Smuzhiyun		status = "okay";
80*4882a593Smuzhiyun	};
81*4882a593Smuzhiyun};
82*4882a593Smuzhiyun
83*4882a593Smuzhiyun&emmc {
84*4882a593Smuzhiyun	/*
85*4882a593Smuzhiyun	 * enable emmc ddr mode, choose the
86*4882a593Smuzhiyun	 * according parameter base on the emmc
87*4882a593Smuzhiyun	 * io voltage.
88*4882a593Smuzhiyun	 */
89*4882a593Smuzhiyun	mmc-ddr-1_8v;
90*4882a593Smuzhiyun	status = "okay";
91*4882a593Smuzhiyun};
92*4882a593Smuzhiyun
93*4882a593Smuzhiyun&gpu {
94*4882a593Smuzhiyun	status = "okay";
95*4882a593Smuzhiyun};
96*4882a593Smuzhiyun
97*4882a593Smuzhiyun&nandc {
98*4882a593Smuzhiyun	status = "disabled";
99*4882a593Smuzhiyun};
100*4882a593Smuzhiyun
101*4882a593Smuzhiyun&pinctrl {
102*4882a593Smuzhiyun	pinctrl-names = "default";
103*4882a593Smuzhiyun	pinctrl-0 = <&fixed_gpio>;
104*4882a593Smuzhiyun
105*4882a593Smuzhiyun	keys {
106*4882a593Smuzhiyun		pwr_key: pwr-key {
107*4882a593Smuzhiyun			rockchip,pins = <3 RK_PC7 RK_FUNC_GPIO &pcfg_pull_down>;
108*4882a593Smuzhiyun		};
109*4882a593Smuzhiyun	};
110*4882a593Smuzhiyun
111*4882a593Smuzhiyun	sdio-pwrseq {
112*4882a593Smuzhiyun		wifi_enable_h: wifi-enable-h {
113*4882a593Smuzhiyun			rockchip,pins = <3 RK_PB7 RK_FUNC_GPIO &pcfg_pull_none>;
114*4882a593Smuzhiyun		};
115*4882a593Smuzhiyun	};
116*4882a593Smuzhiyun
117*4882a593Smuzhiyun	vcc-sd {
118*4882a593Smuzhiyun		vcc_sd_h: vcc-sd-h {
119*4882a593Smuzhiyun			rockchip,pins = <1 RK_PB6 RK_FUNC_GPIO &pcfg_pull_none>;
120*4882a593Smuzhiyun		};
121*4882a593Smuzhiyun	};
122*4882a593Smuzhiyun
123*4882a593Smuzhiyun	sdmmc {
124*4882a593Smuzhiyun		sdmmc_cd: sdmmc-cd {
125*4882a593Smuzhiyun			rockchip,pins =
126*4882a593Smuzhiyun				<1 RK_PC1 1 &pcfg_pull_none_drv_12ma>;
127*4882a593Smuzhiyun		};
128*4882a593Smuzhiyun	};
129*4882a593Smuzhiyun};
130*4882a593Smuzhiyun
131*4882a593Smuzhiyun&pwm0 {
132*4882a593Smuzhiyun	status = "okay";
133*4882a593Smuzhiyun};
134*4882a593Smuzhiyun
135*4882a593Smuzhiyun&pwm2 {
136*4882a593Smuzhiyun	status = "okay";
137*4882a593Smuzhiyun};
138*4882a593Smuzhiyun
139*4882a593Smuzhiyun&pwm3 {
140*4882a593Smuzhiyun	status = "okay";
141*4882a593Smuzhiyun	interrupts = <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>;
142*4882a593Smuzhiyun	compatible = "rockchip,remotectl-pwm";
143*4882a593Smuzhiyun	remote_pwm_id = <3>;
144*4882a593Smuzhiyun	handle_cpu_id = <1>;
145*4882a593Smuzhiyun	remote_support_psci = <1>;
146*4882a593Smuzhiyun
147*4882a593Smuzhiyun	ir_key1 {
148*4882a593Smuzhiyun		rockchip,usercode = <0x4040>;
149*4882a593Smuzhiyun		rockchip,key_table =
150*4882a593Smuzhiyun		<0xf2   KEY_REPLY>,
151*4882a593Smuzhiyun		<0xba   KEY_BACK>,
152*4882a593Smuzhiyun		<0xf4   KEY_UP>,
153*4882a593Smuzhiyun		<0xf1   KEY_DOWN>,
154*4882a593Smuzhiyun		<0xef   KEY_LEFT>,
155*4882a593Smuzhiyun		<0xee   KEY_RIGHT>,
156*4882a593Smuzhiyun		<0xbd   KEY_HOME>,
157*4882a593Smuzhiyun		<0xea   KEY_VOLUMEUP>,
158*4882a593Smuzhiyun		<0xe3   KEY_VOLUMEDOWN>,
159*4882a593Smuzhiyun		<0xe2   KEY_SEARCH>,
160*4882a593Smuzhiyun		<0xb2   KEY_POWER>,
161*4882a593Smuzhiyun		<0xbc   KEY_MUTE>,
162*4882a593Smuzhiyun		<0xec   KEY_MENU>,
163*4882a593Smuzhiyun		<0xbf   0x190>,
164*4882a593Smuzhiyun		<0xe0   0x191>,
165*4882a593Smuzhiyun		<0xe1   0x192>,
166*4882a593Smuzhiyun		<0xe9   183>,
167*4882a593Smuzhiyun		<0xe6   248>,
168*4882a593Smuzhiyun		<0xe8   185>,
169*4882a593Smuzhiyun		<0xe7   186>,
170*4882a593Smuzhiyun		<0xf0   388>,
171*4882a593Smuzhiyun		<0xbe   0x175>;
172*4882a593Smuzhiyun	};
173*4882a593Smuzhiyun};
174*4882a593Smuzhiyun
175*4882a593Smuzhiyun&reboot_mode {
176*4882a593Smuzhiyun	/delete-property/ mode-bootloader;
177*4882a593Smuzhiyun};
178*4882a593Smuzhiyun
179*4882a593Smuzhiyun&sdio {
180*4882a593Smuzhiyun	max-frequency = <150000000>;
181*4882a593Smuzhiyun	mmc-pwrseq = <&sdio_pwrseq>;
182*4882a593Smuzhiyun	num-slots = <1>;
183*4882a593Smuzhiyun	sd-uhs-sdr104;
184*4882a593Smuzhiyun	status = "okay";
185*4882a593Smuzhiyun};
186*4882a593Smuzhiyun
187*4882a593Smuzhiyun&sdmmc {
188*4882a593Smuzhiyun	bus-width = <4>;
189*4882a593Smuzhiyun	cap-mmc-highspeed;
190*4882a593Smuzhiyun	cap-sd-highspeed;
191*4882a593Smuzhiyun	card-detect-delay = <200>;
192*4882a593Smuzhiyun	disable-wp;
193*4882a593Smuzhiyun	max-frequency = <50000000>;
194*4882a593Smuzhiyun	num-slots = <1>;
195*4882a593Smuzhiyun	no-sdio;
196*4882a593Smuzhiyun	no-mmc;
197*4882a593Smuzhiyun	vmmc-supply = <&vcc_sd>;
198*4882a593Smuzhiyun	pinctrl-names = "default";
199*4882a593Smuzhiyun	pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sdmmc_bus4 &sdmmc_cd>;
200*4882a593Smuzhiyun	status = "okay";
201*4882a593Smuzhiyun};
202*4882a593Smuzhiyun
203*4882a593Smuzhiyun&vop {
204*4882a593Smuzhiyun	assigned-clocks = <&cru DCLK_VOP>;
205*4882a593Smuzhiyun	assigned-clock-parents = <&cru HDMIPHY>;
206*4882a593Smuzhiyun	status = "okay";
207*4882a593Smuzhiyun};
208*4882a593Smuzhiyun
209*4882a593Smuzhiyun&vop_mmu {
210*4882a593Smuzhiyun	status = "okay";
211*4882a593Smuzhiyun};
212