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