xref: /OK3568_Linux_fs/kernel/arch/arm64/boot/dts/actions/s900-bubblegum-96.dts (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2*4882a593Smuzhiyun/*
3*4882a593Smuzhiyun * Copyright (c) 2017 Andreas Färber
4*4882a593Smuzhiyun */
5*4882a593Smuzhiyun
6*4882a593Smuzhiyun/dts-v1/;
7*4882a593Smuzhiyun
8*4882a593Smuzhiyun#include "s900.dtsi"
9*4882a593Smuzhiyun
10*4882a593Smuzhiyun/ {
11*4882a593Smuzhiyun	compatible = "ucrobotics,bubblegum-96", "actions,s900";
12*4882a593Smuzhiyun	model = "Bubblegum-96";
13*4882a593Smuzhiyun
14*4882a593Smuzhiyun	aliases {
15*4882a593Smuzhiyun		mmc0 = &mmc0;
16*4882a593Smuzhiyun		mmc1 = &mmc1;
17*4882a593Smuzhiyun		mmc2 = &mmc2;
18*4882a593Smuzhiyun		serial5 = &uart5;
19*4882a593Smuzhiyun	};
20*4882a593Smuzhiyun
21*4882a593Smuzhiyun	chosen {
22*4882a593Smuzhiyun		stdout-path = "serial5:115200n8";
23*4882a593Smuzhiyun	};
24*4882a593Smuzhiyun
25*4882a593Smuzhiyun	memory@0 {
26*4882a593Smuzhiyun		device_type = "memory";
27*4882a593Smuzhiyun		reg = <0x0 0x0 0x0 0x80000000>;
28*4882a593Smuzhiyun	};
29*4882a593Smuzhiyun
30*4882a593Smuzhiyun	/* Fixed regulator used in the absence of PMIC */
31*4882a593Smuzhiyun	vcc_3v1: vcc-3v1 {
32*4882a593Smuzhiyun		compatible = "regulator-fixed";
33*4882a593Smuzhiyun		regulator-name = "fixed-3.1V";
34*4882a593Smuzhiyun		regulator-min-microvolt = <3100000>;
35*4882a593Smuzhiyun		regulator-max-microvolt = <3100000>;
36*4882a593Smuzhiyun		regulator-always-on;
37*4882a593Smuzhiyun	};
38*4882a593Smuzhiyun
39*4882a593Smuzhiyun	/* Fixed regulator used in the absence of PMIC */
40*4882a593Smuzhiyun	sd_vcc: sd-vcc {
41*4882a593Smuzhiyun		compatible = "regulator-fixed";
42*4882a593Smuzhiyun		regulator-name = "fixed-3.1V";
43*4882a593Smuzhiyun		regulator-min-microvolt = <3100000>;
44*4882a593Smuzhiyun		regulator-max-microvolt = <3100000>;
45*4882a593Smuzhiyun		regulator-always-on;
46*4882a593Smuzhiyun	};
47*4882a593Smuzhiyun};
48*4882a593Smuzhiyun
49*4882a593Smuzhiyun&i2c0 {
50*4882a593Smuzhiyun	status = "disabled";
51*4882a593Smuzhiyun	pinctrl-names = "default";
52*4882a593Smuzhiyun	pinctrl-0 = <&i2c0_default>;
53*4882a593Smuzhiyun};
54*4882a593Smuzhiyun
55*4882a593Smuzhiyun&i2c1 {
56*4882a593Smuzhiyun	status = "okay";
57*4882a593Smuzhiyun	pinctrl-names = "default";
58*4882a593Smuzhiyun	pinctrl-0 = <&i2c1_default>;
59*4882a593Smuzhiyun};
60*4882a593Smuzhiyun
61*4882a593Smuzhiyun&i2c2 {
62*4882a593Smuzhiyun	status = "okay";
63*4882a593Smuzhiyun	pinctrl-names = "default";
64*4882a593Smuzhiyun	pinctrl-0 = <&i2c2_default>;
65*4882a593Smuzhiyun};
66*4882a593Smuzhiyun
67*4882a593Smuzhiyun/*
68*4882a593Smuzhiyun * GPIO name legend: proper name = the GPIO line is used as GPIO
69*4882a593Smuzhiyun *         NC = not connected (pin out but not routed from the chip to
70*4882a593Smuzhiyun *              anything the board)
71*4882a593Smuzhiyun *         "[PER]" = pin is muxed for [peripheral] (not GPIO)
72*4882a593Smuzhiyun *         LSEC = Low Speed External Connector
73*4882a593Smuzhiyun *         HSEC = High Speed External Connector
74*4882a593Smuzhiyun *
75*4882a593Smuzhiyun * Line names are taken from the schematic "Schematics Bubblegum96"
76*4882a593Smuzhiyun * version v1.0
77*4882a593Smuzhiyun *
78*4882a593Smuzhiyun * For the lines routed to the external connectors the
79*4882a593Smuzhiyun * lines are named after the 96Boards CE Specification 1.0,
80*4882a593Smuzhiyun * Appendix "Expansion Connector Signal Description".
81*4882a593Smuzhiyun *
82*4882a593Smuzhiyun * When the 96Boards naming of a line and the schematic name of
83*4882a593Smuzhiyun * the same line are in conflict, the 96Boards specification
84*4882a593Smuzhiyun * takes precedence, which means that the external UART on the
85*4882a593Smuzhiyun * LSEC is named UART0 while the schematic and SoC names this
86*4882a593Smuzhiyun * UART2. Only exception is the I2C lines for which the schematic
87*4882a593Smuzhiyun * naming has been preferred. This is only for the informational
88*4882a593Smuzhiyun * lines i.e. "[FOO]", the GPIO named lines "GPIO-A" thru "GPIO-L"
89*4882a593Smuzhiyun * are the only ones actually used for GPIO.
90*4882a593Smuzhiyun */
91*4882a593Smuzhiyun
92*4882a593Smuzhiyun&pinctrl {
93*4882a593Smuzhiyun	gpio-line-names =
94*4882a593Smuzhiyun		"GPIO-A", /* GPIO_0, LSEC pin 23 */
95*4882a593Smuzhiyun		"GPIO-B", /* GPIO_1, LSEC pin 24 */
96*4882a593Smuzhiyun		"GPIO-C", /* GPIO_2, LSEC pin 25 */
97*4882a593Smuzhiyun		"GPIO-D", /* GPIO_3, LSEC pin 26 */
98*4882a593Smuzhiyun		"GPIO-E", /* GPIO_4, LSEC pin 27 */
99*4882a593Smuzhiyun		"GPIO-F", /* GPIO_5, LSEC pin 28 */
100*4882a593Smuzhiyun		"GPIO-G", /* GPIO_6, LSEC pin 29 */
101*4882a593Smuzhiyun		"GPIO-H", /* GPIO_7, LSEC pin 30 */
102*4882a593Smuzhiyun		"GPIO-I", /* GPIO_8, LSEC pin 31 */
103*4882a593Smuzhiyun		"GPIO-J", /* GPIO_9, LSEC pin 32 */
104*4882a593Smuzhiyun		"NC", /* GPIO_10 */
105*4882a593Smuzhiyun		"NC", /* GPIO_11 */
106*4882a593Smuzhiyun		"SIRQ2_1V8", /* GPIO_12 */
107*4882a593Smuzhiyun		"PCM0_OUT", /* GPIO_13 */
108*4882a593Smuzhiyun		"WIFI_LED", /* GPIO_14 */
109*4882a593Smuzhiyun		"PCM0_SYNC", /* GPIO_15 */
110*4882a593Smuzhiyun		"PCM0_CLK", /* GPIO_16 */
111*4882a593Smuzhiyun		"PCM0_IN", /* GPIO_17 */
112*4882a593Smuzhiyun		"BT_LED", /* GPIO_18 */
113*4882a593Smuzhiyun		"LED0", /* GPIO_19 */
114*4882a593Smuzhiyun		"LED1", /* GPIO_20 */
115*4882a593Smuzhiyun		"JTAG_TCK", /* GPIO_21 */
116*4882a593Smuzhiyun		"JTAG_TMS", /* GPIO_22 */
117*4882a593Smuzhiyun		"JTAG_TDI", /* GPIO_23 */
118*4882a593Smuzhiyun		"JTAG_TDO", /* GPIO_24 */
119*4882a593Smuzhiyun		"[UART1_RxD]", /* GPIO_25, LSEC pin 13 */
120*4882a593Smuzhiyun		"NC", /* GPIO_26 */
121*4882a593Smuzhiyun		"[UART1_TxD]", /* GPIO_27, LSEC pin 11 */
122*4882a593Smuzhiyun		"SD0_D0", /* GPIO_28 */
123*4882a593Smuzhiyun		"SD0_D1", /* GPIO_29 */
124*4882a593Smuzhiyun		"SD0_D2", /* GPIO_30 */
125*4882a593Smuzhiyun		"SD0_D3", /* GPIO_31 */
126*4882a593Smuzhiyun		"SD1_D0", /* GPIO_32 */
127*4882a593Smuzhiyun		"SD1_D1", /* GPIO_33 */
128*4882a593Smuzhiyun		"SD1_D2", /* GPIO_34 */
129*4882a593Smuzhiyun		"SD1_D3", /* GPIO_35 */
130*4882a593Smuzhiyun		"SD0_CMD", /* GPIO_36 */
131*4882a593Smuzhiyun		"SD0_CLK", /* GPIO_37 */
132*4882a593Smuzhiyun		"SD1_CMD", /* GPIO_38 */
133*4882a593Smuzhiyun		"SD1_CLK", /* GPIO_39 */
134*4882a593Smuzhiyun		"SPI0_SCLK", /* GPIO_40, LSEC pin 8 */
135*4882a593Smuzhiyun		"SPI0_CS", /* GPIO_41, LSEC pin 12 */
136*4882a593Smuzhiyun		"SPI0_DIN", /* GPIO_42, LSEC pin 10 */
137*4882a593Smuzhiyun		"SPI0_DOUT", /* GPIO_43, LSEC pin 14 */
138*4882a593Smuzhiyun		"I2C5_SDATA", /* GPIO_44, HSEC pin 36 */
139*4882a593Smuzhiyun		"I2C5_SCLK", /* GPIO_45, HSEC pin 38 */
140*4882a593Smuzhiyun		"UART0_RX", /* GPIO_46, LSEC pin 7 */
141*4882a593Smuzhiyun		"UART0_TX", /* GPIO_47, LSEC pin 5 */
142*4882a593Smuzhiyun		"UART0_RTSB", /* GPIO_48, LSEC pin 9 */
143*4882a593Smuzhiyun		"UART0_CTSB", /* GPIO_49, LSEC pin 3 */
144*4882a593Smuzhiyun		"I2C4_SCLK", /* GPIO_50, HSEC pin 32 */
145*4882a593Smuzhiyun		"I2C4_SDATA", /* GPIO_51, HSEC pin 34 */
146*4882a593Smuzhiyun		"I2C0_SCLK", /* GPIO_52 */
147*4882a593Smuzhiyun		"I2C0_SDATA", /* GPIO_53 */
148*4882a593Smuzhiyun		"I2C1_SCLK", /* GPIO_54, LSEC pin 15 */
149*4882a593Smuzhiyun		"I2C1_SDATA", /* GPIO_55, LSEC pin 17 */
150*4882a593Smuzhiyun		"I2C2_SCLK", /* GPIO_56, LSEC pin 19 */
151*4882a593Smuzhiyun		"I2C2_SDATA", /* GPIO_57, LSEC pin 21 */
152*4882a593Smuzhiyun		"CSI0_DN0", /* GPIO_58, HSEC pin 10 */
153*4882a593Smuzhiyun		"CSI0_DP0", /* GPIO_59, HSEC pin 8 */
154*4882a593Smuzhiyun		"CSI0_DN1", /* GPIO_60, HSEC pin 16 */
155*4882a593Smuzhiyun		"CSI0_DP1", /* GPIO_61, HSEC pin 14 */
156*4882a593Smuzhiyun		"CSI0_CN", /* GPIO_62, HSEC pin 4 */
157*4882a593Smuzhiyun		"CSI0_CP", /* GPIO_63, HSEC pin 2 */
158*4882a593Smuzhiyun		"CSI0_DN2", /* GPIO_64, HSEC pin 22 */
159*4882a593Smuzhiyun		"CSI0_DP2", /* GPIO_65, HSEC pin 20 */
160*4882a593Smuzhiyun		"CSI0_DN3", /* GPIO_66, HSEC pin 28 */
161*4882a593Smuzhiyun		"CSI0_DP3", /* GPIO_67, HSEC pin 26 */
162*4882a593Smuzhiyun		"[CLK0]", /* GPIO_68, HSEC pin 15 */
163*4882a593Smuzhiyun		"CSI1_DN0", /* GPIO_69, HSEC pin 44 */
164*4882a593Smuzhiyun		"CSI1_DP0", /* GPIO_70, HSEC pin 42 */
165*4882a593Smuzhiyun		"CSI1_DN1", /* GPIO_71, HSEC pin 50 */
166*4882a593Smuzhiyun		"CSI1_DP1", /* GPIO_72, HSEC pin 48 */
167*4882a593Smuzhiyun		"CSI1_CN", /* GPIO_73, HSEC pin 56 */
168*4882a593Smuzhiyun		"CSI1_CP", /* GPIO_74, HSEC pin 54 */
169*4882a593Smuzhiyun		"[CLK1]", /* GPIO_75, HSEC pin 17 */
170*4882a593Smuzhiyun		"[GPIOD0]", /* GPIO_76 */
171*4882a593Smuzhiyun		"[GPIOD1]", /* GPIO_77 */
172*4882a593Smuzhiyun		"BT_RST_N", /* GPIO_78 */
173*4882a593Smuzhiyun		"EXT_DC_EN", /* GPIO_79 */
174*4882a593Smuzhiyun		"[PCM_DI]", /* GPIO_80, LSEC pin 22 */
175*4882a593Smuzhiyun		"[PCM_DO]", /* GPIO_81, LSEC pin 20 */
176*4882a593Smuzhiyun		"[PCM_CLK]", /* GPIO_82, LSEC pin 18 */
177*4882a593Smuzhiyun		"[PCM_FS]", /* GPIO_83, LSEC pin 16 */
178*4882a593Smuzhiyun		"WAKE_BT", /* GPIO_84 */
179*4882a593Smuzhiyun		"WL_REG_ON", /* GPIO_85 */
180*4882a593Smuzhiyun		"NC", /* GPIO_86 */
181*4882a593Smuzhiyun		"NC", /* GPIO_87 */
182*4882a593Smuzhiyun		"NC", /* GPIO_88 */
183*4882a593Smuzhiyun		"NC", /* GPIO_89 */
184*4882a593Smuzhiyun		"NC", /* GPIO_90 */
185*4882a593Smuzhiyun		"WIFI_WAKE", /* GPIO_91 */
186*4882a593Smuzhiyun		"BT_WAKE", /* GPIO_92 */
187*4882a593Smuzhiyun		"NC", /* GPIO_93 */
188*4882a593Smuzhiyun		"OTG_EN2", /* GPIO_94 */
189*4882a593Smuzhiyun		"OTG_EN", /* GPIO_95 */
190*4882a593Smuzhiyun		"DSI_DP3", /* GPIO_96, HSEC pin 45 */
191*4882a593Smuzhiyun		"DSI_DN3", /* GPIO_97, HSEC pin 47 */
192*4882a593Smuzhiyun		"DSI_DP1", /* GPIO_98, HSEC pin 33 */
193*4882a593Smuzhiyun		"DSI_DN1", /* GPIO_99, HSEC pin 35 */
194*4882a593Smuzhiyun		"DSI_CP", /* GPIO_100, HSEC pin 21 */
195*4882a593Smuzhiyun		"DSI_CN", /* GPIO_101, HSEC pin 23 */
196*4882a593Smuzhiyun		"DSI_DP0", /* GPIO_102, HSEC pin 27 */
197*4882a593Smuzhiyun		"DSI_DN0", /* GPIO_103, HSEC pin 29 */
198*4882a593Smuzhiyun		"DSI_DP2", /* GPIO_104, HSEC pin 39 */
199*4882a593Smuzhiyun		"DSI_DN2", /* GPIO_105, HSEC pin 41 */
200*4882a593Smuzhiyun		"N0_D0", /* GPIO_106 */
201*4882a593Smuzhiyun		"N0_D1", /* GPIO_107 */
202*4882a593Smuzhiyun		"N0_D2", /* GPIO_108 */
203*4882a593Smuzhiyun		"N0_D3", /* GPIO_109 */
204*4882a593Smuzhiyun		"N0_D4", /* GPIO_110 */
205*4882a593Smuzhiyun		"N0_D5", /* GPIO_111 */
206*4882a593Smuzhiyun		"N0_D6", /* GPIO_112 */
207*4882a593Smuzhiyun		"N0_D7", /* GPIO_113 */
208*4882a593Smuzhiyun		"N0_DQS", /* GPIO_114 */
209*4882a593Smuzhiyun		"N0_DQSN", /* GPIO_115 */
210*4882a593Smuzhiyun		"NC", /* GPIO_116 */
211*4882a593Smuzhiyun		"NC", /* GPIO_117 */
212*4882a593Smuzhiyun		"NC", /* GPIO_118 */
213*4882a593Smuzhiyun		"N0_CEB1", /* GPIO_119 */
214*4882a593Smuzhiyun		"CARD_DT", /* GPIO_120 */
215*4882a593Smuzhiyun		"N0_CEB3", /* GPIO_121 */
216*4882a593Smuzhiyun		"SD_DAT0", /* GPIO_122, HSEC pin 1 */
217*4882a593Smuzhiyun		"SD_DAT1", /* GPIO_123, HSEC pin 3 */
218*4882a593Smuzhiyun		"SD_DAT2", /* GPIO_124, HSEC pin 5 */
219*4882a593Smuzhiyun		"SD_DAT3", /* GPIO_125, HSEC pin 7 */
220*4882a593Smuzhiyun		"NC", /* GPIO_126 */
221*4882a593Smuzhiyun		"NC", /* GPIO_127 */
222*4882a593Smuzhiyun		"[PWR_BTN_N]", /* GPIO_128, LSEC pin 4 */
223*4882a593Smuzhiyun		"[RST_BTN_N]", /* GPIO_129, LSEC pin 6 */
224*4882a593Smuzhiyun		"NC", /* GPIO_130 */
225*4882a593Smuzhiyun		"SD_CMD", /* GPIO_131 */
226*4882a593Smuzhiyun		"GPIO-L", /* GPIO_132, LSEC pin 34 */
227*4882a593Smuzhiyun		"GPIO-K", /* GPIO_133, LSEC pin 33 */
228*4882a593Smuzhiyun		"NC", /* GPIO_134 */
229*4882a593Smuzhiyun		"SD_SCLK", /* GPIO_135 */
230*4882a593Smuzhiyun		"NC", /* GPIO_136 */
231*4882a593Smuzhiyun		"JTAG_TRST", /* GPIO_137 */
232*4882a593Smuzhiyun		"I2C3_SCLK", /* GPIO_138 */
233*4882a593Smuzhiyun		"LED2", /* GPIO_139 */
234*4882a593Smuzhiyun		"LED3", /* GPIO_140 */
235*4882a593Smuzhiyun		"I2C3_SDATA", /* GPIO_141 */
236*4882a593Smuzhiyun		"UART3_RX", /* GPIO_142 */
237*4882a593Smuzhiyun		"UART3_TX", /* GPIO_143 */
238*4882a593Smuzhiyun		"UART3_RTSB", /* GPIO_144 */
239*4882a593Smuzhiyun		"UART3_CTSB"; /* GPIO_145 */
240*4882a593Smuzhiyun
241*4882a593Smuzhiyun	i2c0_default: i2c0-default {
242*4882a593Smuzhiyun		pinmux {
243*4882a593Smuzhiyun			groups = "i2c0_mfp";
244*4882a593Smuzhiyun			function = "i2c0";
245*4882a593Smuzhiyun		};
246*4882a593Smuzhiyun		pinconf {
247*4882a593Smuzhiyun			pins = "i2c0_sclk", "i2c0_sdata";
248*4882a593Smuzhiyun			bias-pull-up;
249*4882a593Smuzhiyun		};
250*4882a593Smuzhiyun	};
251*4882a593Smuzhiyun
252*4882a593Smuzhiyun	i2c1_default: i2c1-default {
253*4882a593Smuzhiyun		pinconf {
254*4882a593Smuzhiyun			pins = "i2c1_sclk", "i2c1_sdata";
255*4882a593Smuzhiyun			bias-pull-up;
256*4882a593Smuzhiyun		};
257*4882a593Smuzhiyun	};
258*4882a593Smuzhiyun
259*4882a593Smuzhiyun	i2c2_default: i2c2-default {
260*4882a593Smuzhiyun		pinconf {
261*4882a593Smuzhiyun			pins = "i2c2_sclk", "i2c2_sdata";
262*4882a593Smuzhiyun			bias-pull-up;
263*4882a593Smuzhiyun		};
264*4882a593Smuzhiyun	};
265*4882a593Smuzhiyun
266*4882a593Smuzhiyun	mmc0_default: mmc0_default {
267*4882a593Smuzhiyun		pinmux {
268*4882a593Smuzhiyun			groups = "sd0_d0_mfp", "sd0_d1_mfp", "sd0_d2_d3_mfp",
269*4882a593Smuzhiyun				 "sd0_cmd_mfp", "sd0_clk_mfp";
270*4882a593Smuzhiyun			function = "sd0";
271*4882a593Smuzhiyun		};
272*4882a593Smuzhiyun	};
273*4882a593Smuzhiyun
274*4882a593Smuzhiyun	mmc2_default: mmc2_default {
275*4882a593Smuzhiyun		pinmux {
276*4882a593Smuzhiyun			groups = "nand0_d0_ceb3_mfp";
277*4882a593Smuzhiyun			function = "sd2";
278*4882a593Smuzhiyun		};
279*4882a593Smuzhiyun	};
280*4882a593Smuzhiyun};
281*4882a593Smuzhiyun
282*4882a593Smuzhiyun/* uSD */
283*4882a593Smuzhiyun&mmc0 {
284*4882a593Smuzhiyun	status = "okay";
285*4882a593Smuzhiyun	pinctrl-names = "default";
286*4882a593Smuzhiyun	pinctrl-0 = <&mmc0_default>;
287*4882a593Smuzhiyun	no-sdio;
288*4882a593Smuzhiyun	no-mmc;
289*4882a593Smuzhiyun	no-1-8-v;
290*4882a593Smuzhiyun	cd-gpios = <&pinctrl 120 GPIO_ACTIVE_LOW>;
291*4882a593Smuzhiyun	bus-width = <4>;
292*4882a593Smuzhiyun	vmmc-supply = <&sd_vcc>;
293*4882a593Smuzhiyun	vqmmc-supply = <&sd_vcc>;
294*4882a593Smuzhiyun};
295*4882a593Smuzhiyun
296*4882a593Smuzhiyun/* eMMC */
297*4882a593Smuzhiyun&mmc2 {
298*4882a593Smuzhiyun	status = "okay";
299*4882a593Smuzhiyun	pinctrl-names = "default";
300*4882a593Smuzhiyun	pinctrl-0 = <&mmc2_default>;
301*4882a593Smuzhiyun	no-sdio;
302*4882a593Smuzhiyun	no-sd;
303*4882a593Smuzhiyun	non-removable;
304*4882a593Smuzhiyun	bus-width = <8>;
305*4882a593Smuzhiyun	vmmc-supply = <&vcc_3v1>;
306*4882a593Smuzhiyun};
307*4882a593Smuzhiyun
308*4882a593Smuzhiyun&timer {
309*4882a593Smuzhiyun	clocks = <&hosc>;
310*4882a593Smuzhiyun};
311*4882a593Smuzhiyun
312*4882a593Smuzhiyun&uart5 {
313*4882a593Smuzhiyun	status = "okay";
314*4882a593Smuzhiyun};
315