Add the rt linux 4.1.3-rt3 as base
[kvmfornfv.git] / kernel / arch / arm / boot / dts / hi3620-hi4511.dts
1 /*
2  *  Copyright (C) 2012-2013 Linaro Ltd.
3  *  Author: Haojian Zhuang <haojian.zhuang@linaro.org>
4  *
5  *  This program is free software; you can redistribute it and/or modify
6  *  it under the terms of the GNU General Public License version 2 as
7  *  publishhed by the Free Software Foundation.
8  */
9
10 /dts-v1/;
11
12 #include "hi3620.dtsi"
13
14 / {
15         model = "Hisilicon Hi4511 Development Board";
16         compatible = "hisilicon,hi3620-hi4511";
17
18         chosen {
19                 bootargs = "console=ttyAMA0,115200 root=/dev/ram0 earlyprintk";
20         };
21
22         memory {
23                 device_type = "memory";
24                 reg = <0x40000000 0x20000000>;
25         };
26
27         amba {
28                 dual_timer0: dual_timer@800000 {
29                         status = "ok";
30                 };
31
32                 uart0: uart@b00000 {    /* console */
33                         pinctrl-names = "default", "idle";
34                         pinctrl-0 = <&uart0_pmx_func &uart0_cfg_func>;
35                         pinctrl-1 = <&uart0_pmx_idle &uart0_cfg_idle>;
36                         status = "ok";
37                 };
38
39                 uart1: uart@b01000 { /* modem */
40                         pinctrl-names = "default", "idle";
41                         pinctrl-0 = <&uart1_pmx_func &uart1_cfg_func>;
42                         pinctrl-1 = <&uart1_pmx_idle &uart1_cfg_idle>;
43                         status = "ok";
44                 };
45
46                 uart2: uart@b02000 { /* audience */
47                         pinctrl-names = "default", "idle";
48                         pinctrl-0 = <&uart2_pmx_func &uart2_cfg_func>;
49                         pinctrl-1 = <&uart2_pmx_idle &uart2_cfg_idle>;
50                         status = "ok";
51                 };
52
53                 uart3: uart@b03000 {
54                         pinctrl-names = "default", "idle";
55                         pinctrl-0 = <&uart3_pmx_func &uart3_cfg_func>;
56                         pinctrl-1 = <&uart3_pmx_idle &uart3_cfg_idle>;
57                         status = "ok";
58                 };
59
60                 uart4: uart@b04000 {
61                         pinctrl-names = "default", "idle";
62                         pinctrl-0 = <&uart4_pmx_func &uart4_cfg_func>;
63                         pinctrl-1 = <&uart4_pmx_idle &uart4_cfg_func>;
64                         status = "ok";
65                 };
66
67                 pmx0: pinmux@803000 {
68                         pinctrl-names = "default";
69                         pinctrl-0 = <&board_pmx_pins>;
70
71                         board_pmx_pins: board_pmx_pins {
72                                 pinctrl-single,pins = <
73                                         0x008 0x0       /* GPIO -- eFUSE_DOUT */
74                                         0x100 0x0       /* USIM_CLK & USIM_DATA (IOMG63) */
75                                 >;
76                         };
77                         uart0_pmx_func: uart0_pmx_func {
78                                 pinctrl-single,pins = <
79                                         0x0f0 0x0
80                                         0x0f4 0x0       /* UART0_RX & UART0_TX */
81                                 >;
82                         };
83                         uart0_pmx_idle: uart0_pmx_idle {
84                                 pinctrl-single,pins = <
85                                         /*0x0f0 0x1*/   /* UART0_CTS & UART0_RTS */
86                                         0x0f4 0x1       /* UART0_RX & UART0_TX */
87                                 >;
88                         };
89                         uart1_pmx_func: uart1_pmx_func {
90                                 pinctrl-single,pins = <
91                                         0x0f8 0x0       /* UART1_CTS & UART1_RTS (IOMG61) */
92                                         0x0fc 0x0       /* UART1_RX & UART1_TX (IOMG62) */
93                                 >;
94                         };
95                         uart1_pmx_idle: uart1_pmx_idle {
96                                 pinctrl-single,pins = <
97                                         0x0f8 0x1       /* GPIO (IOMG61) */
98                                         0x0fc 0x1       /* GPIO (IOMG62) */
99                                 >;
100                         };
101                         uart2_pmx_func: uart2_pmx_func {
102                                 pinctrl-single,pins = <
103                                         0x104 0x2       /* UART2_RXD (IOMG96) */
104                                         0x108 0x2       /* UART2_TXD (IOMG64) */
105                                 >;
106                         };
107                         uart2_pmx_idle: uart2_pmx_idle {
108                                 pinctrl-single,pins = <
109                                         0x104 0x1       /* GPIO (IOMG96) */
110                                         0x108 0x1       /* GPIO (IOMG64) */
111                                 >;
112                         };
113                         uart3_pmx_func: uart3_pmx_func {
114                                 pinctrl-single,pins = <
115                                         0x160 0x2       /* UART3_CTS & UART3_RTS (IOMG85) */
116                                         0x164 0x2       /* UART3_RXD & UART3_TXD (IOMG86) */
117                                 >;
118                         };
119                         uart3_pmx_idle: uart3_pmx_idle {
120                                 pinctrl-single,pins = <
121                                         0x160 0x1       /* GPIO (IOMG85) */
122                                         0x164 0x1       /* GPIO (IOMG86) */
123                                 >;
124                         };
125                         uart4_pmx_func: uart4_pmx_func {
126                                 pinctrl-single,pins = <
127                                         0x168 0x0       /* UART4_CTS & UART4_RTS (IOMG87) */
128                                         0x16c 0x0       /* UART4_RXD (IOMG88) */
129                                         0x170 0x0       /* UART4_TXD (IOMG93) */
130                                 >;
131                         };
132                         uart4_pmx_idle: uart4_pmx_idle {
133                                 pinctrl-single,pins = <
134                                         0x168 0x1       /* GPIO (IOMG87) */
135                                         0x16c 0x1       /* GPIO (IOMG88) */
136                                         0x170 0x1       /* GPIO (IOMG93) */
137                                 >;
138                         };
139                         i2c0_pmx_func: i2c0_pmx_func {
140                                 pinctrl-single,pins = <
141                                         0x0b4 0x0       /* I2C0_SCL & I2C0_SDA (IOMG45) */
142                                 >;
143                         };
144                         i2c0_pmx_idle: i2c0_pmx_idle {
145                                 pinctrl-single,pins = <
146                                         0x0b4 0x1       /* GPIO (IOMG45) */
147                                 >;
148                         };
149                         i2c1_pmx_func: i2c1_pmx_func {
150                                 pinctrl-single,pins = <
151                                         0x0b8 0x0       /* I2C1_SCL & I2C1_SDA (IOMG46) */
152                                 >;
153                         };
154                         i2c1_pmx_idle: i2c1_pmx_idle {
155                                 pinctrl-single,pins = <
156                                         0x0b8 0x1       /* GPIO (IOMG46) */
157                                 >;
158                         };
159                         i2c2_pmx_func: i2c2_pmx_func {
160                                 pinctrl-single,pins = <
161                                         0x068 0x0       /* I2C2_SCL (IOMG26) */
162                                         0x06c 0x0       /* I2C2_SDA (IOMG27) */
163                                 >;
164                         };
165                         i2c2_pmx_idle: i2c2_pmx_idle {
166                                 pinctrl-single,pins = <
167                                         0x068 0x1       /* GPIO (IOMG26) */
168                                         0x06c 0x1       /* GPIO (IOMG27) */
169                                 >;
170                         };
171                         i2c3_pmx_func: i2c3_pmx_func {
172                                 pinctrl-single,pins = <
173                                         0x050 0x2       /* I2C3_SCL (IOMG20) */
174                                         0x054 0x2       /* I2C3_SDA (IOMG21) */
175                                 >;
176                         };
177                         i2c3_pmx_idle: i2c3_pmx_idle {
178                                 pinctrl-single,pins = <
179                                         0x050 0x1       /* GPIO (IOMG20) */
180                                         0x054 0x1       /* GPIO (IOMG21) */
181                                 >;
182                         };
183                         spi0_pmx_func: spi0_pmx_func {
184                                 pinctrl-single,pins = <
185                                         0x0d4 0x0       /* SPI0_CLK/SPI0_DI/SPI0_DO (IOMG53) */
186                                         0x0d8 0x0       /* SPI0_CS0 (IOMG54) */
187                                         0x0dc 0x0       /* SPI0_CS1 (IOMG55) */
188                                         0x0e0 0x0       /* SPI0_CS2 (IOMG56) */
189                                         0x0e4 0x0       /* SPI0_CS3 (IOMG57) */
190                                 >;
191                         };
192                         spi0_pmx_idle: spi0_pmx_idle {
193                                 pinctrl-single,pins = <
194                                         0x0d4 0x1       /* GPIO (IOMG53) */
195                                         0x0d8 0x1       /* GPIO (IOMG54) */
196                                         0x0dc 0x1       /* GPIO (IOMG55) */
197                                         0x0e0 0x1       /* GPIO (IOMG56) */
198                                         0x0e4 0x1       /* GPIO (IOMG57) */
199                                 >;
200                         };
201                         spi1_pmx_func: spi1_pmx_func {
202                                 pinctrl-single,pins = <
203                                         0x184 0x0       /* SPI1_CLK/SPI1_DI (IOMG98) */
204                                         0x0e8 0x0       /* SPI1_DO (IOMG58) */
205                                         0x0ec 0x0       /* SPI1_CS (IOMG95) */
206                                 >;
207                         };
208                         spi1_pmx_idle: spi1_pmx_idle {
209                                 pinctrl-single,pins = <
210                                         0x184 0x1       /* GPIO (IOMG98) */
211                                         0x0e8 0x1       /* GPIO (IOMG58) */
212                                         0x0ec 0x1       /* GPIO (IOMG95) */
213                                 >;
214                         };
215                         kpc_pmx_func: kpc_pmx_func {
216                                 pinctrl-single,pins = <
217                                         0x12c 0x0       /* KEY_IN0 (IOMG73) */
218                                         0x130 0x0       /* KEY_IN1 (IOMG74) */
219                                         0x134 0x0       /* KEY_IN2 (IOMG75) */
220                                         0x10c 0x0       /* KEY_OUT0 (IOMG65) */
221                                         0x110 0x0       /* KEY_OUT1 (IOMG66) */
222                                         0x114 0x0       /* KEY_OUT2 (IOMG67) */
223                                 >;
224                         };
225                         kpc_pmx_idle: kpc_pmx_idle {
226                                 pinctrl-single,pins = <
227                                         0x12c 0x1       /* GPIO (IOMG73) */
228                                         0x130 0x1       /* GPIO (IOMG74) */
229                                         0x134 0x1       /* GPIO (IOMG75) */
230                                         0x10c 0x1       /* GPIO (IOMG65) */
231                                         0x110 0x1       /* GPIO (IOMG66) */
232                                         0x114 0x1       /* GPIO (IOMG67) */
233                                 >;
234                         };
235                         gpio_key_func: gpio_key_func {
236                                 pinctrl-single,pins = <
237                                         0x10c 0x1       /* KEY_OUT0/GPIO (IOMG65) */
238                                         0x130 0x1       /* KEY_IN1/GPIO (IOMG74) */
239                                 >;
240                         };
241                         emmc_pmx_func: emmc_pmx_func {
242                                 pinctrl-single,pins = <
243                                         0x030 0x2       /* eMMC_CMD/eMMC_CLK (IOMG12) */
244                                         0x018 0x0       /* NAND_CS3_N (IOMG6) */
245                                         0x024 0x0       /* NAND_BUSY2_N (IOMG8) */
246                                         0x028 0x0       /* NAND_BUSY3_N (IOMG9) */
247                                         0x02c 0x2       /* eMMC_DATA[0:7] (IOMG10) */
248                                 >;
249                         };
250                         emmc_pmx_idle: emmc_pmx_idle {
251                                 pinctrl-single,pins = <
252                                         0x030 0x0       /* GPIO (IOMG12) */
253                                         0x018 0x1       /* GPIO (IOMG6) */
254                                         0x024 0x1       /* GPIO (IOMG8) */
255                                         0x028 0x1       /* GPIO (IOMG9) */
256                                         0x02c 0x1       /* GPIO (IOMG10) */
257                                 >;
258                         };
259                         sd_pmx_func: sd_pmx_func {
260                                 pinctrl-single,pins = <
261                                         0x0bc 0x0       /* SD_CLK/SD_CMD/SD_DATA0/SD_DATA1/SD_DATA2 (IOMG47) */
262                                         0x0c0 0x0       /* SD_DATA3 (IOMG48) */
263                                 >;
264                         };
265                         sd_pmx_idle: sd_pmx_idle {
266                                 pinctrl-single,pins = <
267                                         0x0bc 0x1       /* GPIO (IOMG47) */
268                                         0x0c0 0x1       /* GPIO (IOMG48) */
269                                 >;
270                         };
271                         nand_pmx_func: nand_pmx_func {
272                                 pinctrl-single,pins = <
273                                         0x00c 0x0       /* NAND_ALE/NAND_CLE/.../NAND_DATA[0:7] (IOMG3) */
274                                         0x010 0x0       /* NAND_CS1_N (IOMG4) */
275                                         0x014 0x0       /* NAND_CS2_N (IOMG5) */
276                                         0x018 0x0       /* NAND_CS3_N (IOMG6) */
277                                         0x01c 0x0       /* NAND_BUSY0_N (IOMG94) */
278                                         0x020 0x0       /* NAND_BUSY1_N (IOMG7) */
279                                         0x024 0x0       /* NAND_BUSY2_N (IOMG8) */
280                                         0x028 0x0       /* NAND_BUSY3_N (IOMG9) */
281                                         0x02c 0x0       /* NAND_DATA[8:15] (IOMG10) */
282                                 >;
283                         };
284                         nand_pmx_idle: nand_pmx_idle {
285                                 pinctrl-single,pins = <
286                                         0x00c 0x1       /* GPIO (IOMG3) */
287                                         0x010 0x1       /* GPIO (IOMG4) */
288                                         0x014 0x1       /* GPIO (IOMG5) */
289                                         0x018 0x1       /* GPIO (IOMG6) */
290                                         0x01c 0x1       /* GPIO (IOMG94) */
291                                         0x020 0x1       /* GPIO (IOMG7) */
292                                         0x024 0x1       /* GPIO (IOMG8) */
293                                         0x028 0x1       /* GPIO (IOMG9) */
294                                         0x02c 0x1       /* GPIO (IOMG10) */
295                                 >;
296                         };
297                         sdio_pmx_func: sdio_pmx_func {
298                                 pinctrl-single,pins = <
299                                         0x0c4 0x0       /* SDIO_CLK/SDIO_CMD/SDIO_DATA[0:3] (IOMG49) */
300                                 >;
301                         };
302                         sdio_pmx_idle: sdio_pmx_idle {
303                                 pinctrl-single,pins = <
304                                         0x0c4 0x1       /* GPIO (IOMG49) */
305                                 >;
306                         };
307                         audio_out_pmx_func: audio_out_pmx_func {
308                                 pinctrl-single,pins = <
309                                         0x0f0 0x1       /* GPIO (IOMG59), audio spk & earphone */
310                                 >;
311                         };
312                 };
313
314                 pmx1: pinmux@803800 {
315                         pinctrl-names = "default";
316                         pinctrl-0 = <   &board_pu_pins &board_pd_pins &board_pd_ps_pins
317                                         &board_np_pins &board_ps_pins &kpc_cfg_func
318                                         &audio_out_cfg_func>;
319                         board_pu_pins: board_pu_pins {
320                                 pinctrl-single,pins = <
321                                         0x014 0         /* GPIO_158 (IOCFG2) */
322                                         0x018 0         /* GPIO_159 (IOCFG3) */
323                                         0x01c 0         /* BOOT_MODE0 (IOCFG4) */
324                                         0x020 0         /* BOOT_MODE1 (IOCFG5) */
325                                 >;
326                                 pinctrl-single,bias-pulldown = <0 2 0 2>;
327                                 pinctrl-single,bias-pullup = <1 1 0 1>;
328                         };
329                         board_pd_pins: board_pd_pins {
330                                 pinctrl-single,pins = <
331                                         0x038 0         /* eFUSE_DOUT (IOCFG11) */
332                                         0x150 0         /* ISP_GPIO8 (IOCFG93) */
333                                         0x154 0         /* ISP_GPIO9 (IOCFG94) */
334                                 >;
335                                 pinctrl-single,bias-pulldown = <2 2 0 2>;
336                                 pinctrl-single,bias-pullup = <0 1 0 1>;
337                         };
338                         board_pd_ps_pins: board_pd_ps_pins {
339                                 pinctrl-single,pins = <
340                                         0x2d8 0         /* CLK_OUT0 (IOCFG190) */
341                                         0x004 0         /* PMU_SPI_DATA (IOCFG192) */
342                                 >;
343                                 pinctrl-single,bias-pulldown = <2 2 0 2>;
344                                 pinctrl-single,bias-pullup = <0 1 0 1>;
345                                 pinctrl-single,drive-strength = <0x30 0xf0>;
346                         };
347                         board_np_pins: board_np_pins {
348                                 pinctrl-single,pins = <
349                                         0x24c 0         /* KEYPAD_OUT7 (IOCFG155) */
350                                 >;
351                                 pinctrl-single,bias-pulldown = <0 2 0 2>;
352                                 pinctrl-single,bias-pullup = <0 1 0 1>;
353                         };
354                         board_ps_pins: board_ps_pins {
355                                 pinctrl-single,pins = <
356                                         0x000 0         /* PMU_SPI_CLK (IOCFG191) */
357                                         0x008 0         /* PMU_SPI_CS_N (IOCFG193) */
358                                 >;
359                                 pinctrl-single,drive-strength = <0x30 0xf0>;
360                         };
361                         uart0_cfg_func: uart0_cfg_func {
362                                 pinctrl-single,pins = <
363                                         0x208 0         /* UART0_RXD (IOCFG138) */
364                                         0x20c 0         /* UART0_TXD (IOCFG139) */
365                                 >;
366                                 pinctrl-single,bias-pulldown = <0 2 0 2>;
367                                 pinctrl-single,bias-pullup = <0 1 0 1>;
368                         };
369                         uart0_cfg_idle: uart0_cfg_idle {
370                                 pinctrl-single,pins = <
371                                         0x208 0         /* UART0_RXD (IOCFG138) */
372                                         0x20c 0         /* UART0_TXD (IOCFG139) */
373                                 >;
374                                 pinctrl-single,bias-pulldown = <2 2 0 2>;
375                                 pinctrl-single,bias-pullup = <0 1 0 1>;
376                         };
377                         uart1_cfg_func: uart1_cfg_func {
378                                 pinctrl-single,pins = <
379                                         0x210 0         /* UART1_CTS (IOCFG140) */
380                                         0x214 0         /* UART1_RTS (IOCFG141) */
381                                         0x218 0         /* UART1_RXD (IOCFG142) */
382                                         0x21c 0         /* UART1_TXD (IOCFG143) */
383                                 >;
384                                 pinctrl-single,bias-pulldown = <0 2 0 2>;
385                                 pinctrl-single,bias-pullup = <0 1 0 1>;
386                         };
387                         uart1_cfg_idle: uart1_cfg_idle {
388                                 pinctrl-single,pins = <
389                                         0x210 0         /* UART1_CTS (IOCFG140) */
390                                         0x214 0         /* UART1_RTS (IOCFG141) */
391                                         0x218 0         /* UART1_RXD (IOCFG142) */
392                                         0x21c 0         /* UART1_TXD (IOCFG143) */
393                                 >;
394                                 pinctrl-single,bias-pulldown = <2 2 0 2>;
395                                 pinctrl-single,bias-pullup = <0 1 0 1>;
396                         };
397                         uart2_cfg_func: uart2_cfg_func {
398                                 pinctrl-single,pins = <
399                                         0x220 0         /* UART2_CTS (IOCFG144) */
400                                         0x224 0         /* UART2_RTS (IOCFG145) */
401                                         0x228 0         /* UART2_RXD (IOCFG146) */
402                                         0x22c 0         /* UART2_TXD (IOCFG147) */
403                                 >;
404                                 pinctrl-single,bias-pulldown = <0 2 0 2>;
405                                 pinctrl-single,bias-pullup = <0 1 0 1>;
406                         };
407                         uart2_cfg_idle: uart2_cfg_idle {
408                                 pinctrl-single,pins = <
409                                         0x220 0         /* GPIO (IOCFG144) */
410                                         0x224 0         /* GPIO (IOCFG145) */
411                                         0x228 0         /* GPIO (IOCFG146) */
412                                         0x22c 0         /* GPIO (IOCFG147) */
413                                 >;
414                                 pinctrl-single,bias-pulldown = <2 2 0 2>;
415                                 pinctrl-single,bias-pullup = <0 1 0 1>;
416                         };
417                         uart3_cfg_func: uart3_cfg_func {
418                                 pinctrl-single,pins = <
419                                         0x294 0         /* UART3_CTS (IOCFG173) */
420                                         0x298 0         /* UART3_RTS (IOCFG174) */
421                                         0x29c 0         /* UART3_RXD (IOCFG175) */
422                                         0x2a0 0         /* UART3_TXD (IOCFG176) */
423                                 >;
424                                 pinctrl-single,bias-pulldown = <0 2 0 2>;
425                                 pinctrl-single,bias-pullup = <0 1 0 1>;
426                         };
427                         uart3_cfg_idle: uart3_cfg_idle {
428                                 pinctrl-single,pins = <
429                                         0x294 0         /* UART3_CTS (IOCFG173) */
430                                         0x298 0         /* UART3_RTS (IOCFG174) */
431                                         0x29c 0         /* UART3_RXD (IOCFG175) */
432                                         0x2a0 0         /* UART3_TXD (IOCFG176) */
433                                 >;
434                                 pinctrl-single,bias-pulldown = <2 2 0 2>;
435                                 pinctrl-single,bias-pullup = <0 1 0 1>;
436                         };
437                         uart4_cfg_func: uart4_cfg_func {
438                                 pinctrl-single,pins = <
439                                         0x2a4 0         /* UART4_CTS (IOCFG177) */
440                                         0x2a8 0         /* UART4_RTS (IOCFG178) */
441                                         0x2ac 0         /* UART4_RXD (IOCFG179) */
442                                         0x2b0 0         /* UART4_TXD (IOCFG180) */
443                                 >;
444                                 pinctrl-single,bias-pulldown = <0 2 0 2>;
445                                 pinctrl-single,bias-pullup = <0 1 0 1>;
446                         };
447                         i2c0_cfg_func: i2c0_cfg_func {
448                                 pinctrl-single,pins = <
449                                         0x17c 0         /* I2C0_SCL (IOCFG103) */
450                                         0x180 0         /* I2C0_SDA (IOCFG104) */
451                                 >;
452                                 pinctrl-single,bias-pulldown = <0 2 0 2>;
453                                 pinctrl-single,bias-pullup = <0 1 0 1>;
454                                 pinctrl-single,drive-strength = <0x30 0xf0>;
455                         };
456                         i2c1_cfg_func: i2c1_cfg_func {
457                                 pinctrl-single,pins = <
458                                         0x184 0         /* I2C1_SCL (IOCFG105) */
459                                         0x188 0         /* I2C1_SDA (IOCFG106) */
460                                 >;
461                                 pinctrl-single,bias-pulldown = <0 2 0 2>;
462                                 pinctrl-single,bias-pullup = <0 1 0 1>;
463                                 pinctrl-single,drive-strength = <0x30 0xf0>;
464                         };
465                         i2c2_cfg_func: i2c2_cfg_func {
466                                 pinctrl-single,pins = <
467                                         0x118 0         /* I2C2_SCL (IOCFG79) */
468                                         0x11c 0         /* I2C2_SDA (IOCFG80) */
469                                 >;
470                                 pinctrl-single,bias-pulldown = <0 2 0 2>;
471                                 pinctrl-single,bias-pullup = <0 1 0 1>;
472                                 pinctrl-single,drive-strength = <0x30 0xf0>;
473                         };
474                         i2c3_cfg_func: i2c3_cfg_func {
475                                 pinctrl-single,pins = <
476                                         0x100 0         /* I2C3_SCL (IOCFG73) */
477                                         0x104 0         /* I2C3_SDA (IOCFG74) */
478                                 >;
479                                 pinctrl-single,bias-pulldown = <0 2 0 2>;
480                                 pinctrl-single,bias-pullup = <0 1 0 1>;
481                                 pinctrl-single,drive-strength = <0x30 0xf0>;
482                         };
483                         spi0_cfg_func1: spi0_cfg_func1 {
484                                 pinctrl-single,pins = <
485                                         0x1d4 0         /* SPI0_CLK (IOCFG125) */
486                                         0x1d8 0         /* SPI0_DI (IOCFG126) */
487                                         0x1dc 0         /* SPI0_DO (IOCFG127) */
488                                 >;
489                                 pinctrl-single,bias-pulldown = <2 2 0 2>;
490                                 pinctrl-single,bias-pullup = <0 1 0 1>;
491                                 pinctrl-single,drive-strength = <0x30 0xf0>;
492                         };
493                         spi0_cfg_func2: spi0_cfg_func2 {
494                                 pinctrl-single,pins = <
495                                         0x1e0 0         /* SPI0_CS0 (IOCFG128) */
496                                         0x1e4 0         /* SPI0_CS1 (IOCFG129) */
497                                         0x1e8 0         /* SPI0_CS2 (IOCFG130 */
498                                         0x1ec 0         /* SPI0_CS3 (IOCFG131) */
499                                 >;
500                                 pinctrl-single,bias-pulldown = <0 2 0 2>;
501                                 pinctrl-single,bias-pullup = <1 1 0 1>;
502                                 pinctrl-single,drive-strength = <0x30 0xf0>;
503                         };
504                         spi1_cfg_func1: spi1_cfg_func1 {
505                                 pinctrl-single,pins = <
506                                         0x1f0 0         /* SPI1_CLK (IOCFG132) */
507                                         0x1f4 0         /* SPI1_DI (IOCFG133) */
508                                         0x1f8 0         /* SPI1_DO (IOCFG134) */
509                                 >;
510                                 pinctrl-single,bias-pulldown = <2 2 0 2>;
511                                 pinctrl-single,bias-pullup = <0 1 0 1>;
512                                 pinctrl-single,drive-strength = <0x30 0xf0>;
513                         };
514                         spi1_cfg_func2: spi1_cfg_func2 {
515                                 pinctrl-single,pins = <
516                                         0x1fc 0         /* SPI1_CS (IOCFG135) */
517                                 >;
518                                 pinctrl-single,bias-pulldown = <0 2 0 2>;
519                                 pinctrl-single,bias-pullup = <1 1 0 1>;
520                                 pinctrl-single,drive-strength = <0x30 0xf0>;
521                         };
522                         kpc_cfg_func: kpc_cfg_func {
523                                 pinctrl-single,pins = <
524                                         0x250 0         /* KEY_IN0 (IOCFG156) */
525                                         0x254 0         /* KEY_IN1 (IOCFG157) */
526                                         0x258 0         /* KEY_IN2 (IOCFG158) */
527                                         0x230 0         /* KEY_OUT0 (IOCFG148) */
528                                         0x234 0         /* KEY_OUT1 (IOCFG149) */
529                                         0x238 0         /* KEY_OUT2 (IOCFG150) */
530                                 >;
531                                 pinctrl-single,bias-pulldown = <2 2 0 2>;
532                                 pinctrl-single,bias-pullup = <0 1 0 1>;
533                         };
534                         emmc_cfg_func: emmc_cfg_func {
535                                 pinctrl-single,pins = <
536                                         0x0ac 0         /* eMMC_CMD (IOCFG40) */
537                                         0x0b0 0         /* eMMC_CLK (IOCFG41) */
538                                         0x058 0         /* NAND_CS3_N (IOCFG19) */
539                                         0x064 0         /* NAND_BUSY2_N (IOCFG22) */
540                                         0x068 0         /* NAND_BUSY3_N (IOCFG23) */
541                                         0x08c 0         /* NAND_DATA8 (IOCFG32) */
542                                         0x090 0         /* NAND_DATA9 (IOCFG33) */
543                                         0x094 0         /* NAND_DATA10 (IOCFG34) */
544                                         0x098 0         /* NAND_DATA11 (IOCFG35) */
545                                         0x09c 0         /* NAND_DATA12 (IOCFG36) */
546                                         0x0a0 0         /* NAND_DATA13 (IOCFG37) */
547                                         0x0a4 0         /* NAND_DATA14 (IOCFG38) */
548                                         0x0a8 0         /* NAND_DATA15 (IOCFG39) */
549                                 >;
550                                 pinctrl-single,bias-pulldown = <0 2 0 2>;
551                                 pinctrl-single,bias-pullup = <1 1 0 1>;
552                                 pinctrl-single,drive-strength = <0x30 0xf0>;
553                         };
554                         sd_cfg_func1: sd_cfg_func1 {
555                                 pinctrl-single,pins = <
556                                         0x18c 0         /* SD_CLK (IOCFG107) */
557                                         0x190 0         /* SD_CMD (IOCFG108) */
558                                 >;
559                                 pinctrl-single,bias-pulldown = <2 2 0 2>;
560                                 pinctrl-single,bias-pullup = <0 1 0 1>;
561                                 pinctrl-single,drive-strength = <0x30 0xf0>;
562                         };
563                         sd_cfg_func2: sd_cfg_func2 {
564                                 pinctrl-single,pins = <
565                                         0x194 0         /* SD_DATA0 (IOCFG109) */
566                                         0x198 0         /* SD_DATA1 (IOCFG110) */
567                                         0x19c 0         /* SD_DATA2 (IOCFG111) */
568                                         0x1a0 0         /* SD_DATA3 (IOCFG112) */
569                                 >;
570                                 pinctrl-single,bias-pulldown = <2 2 0 2>;
571                                 pinctrl-single,bias-pullup = <0 1 0 1>;
572                                 pinctrl-single,drive-strength = <0x70 0xf0>;
573                         };
574                         nand_cfg_func1: nand_cfg_func1 {
575                                 pinctrl-single,pins = <
576                                         0x03c 0         /* NAND_ALE (IOCFG12) */
577                                         0x040 0         /* NAND_CLE (IOCFG13) */
578                                         0x06c 0         /* NAND_DATA0 (IOCFG24) */
579                                         0x070 0         /* NAND_DATA1 (IOCFG25) */
580                                         0x074 0         /* NAND_DATA2 (IOCFG26) */
581                                         0x078 0         /* NAND_DATA3 (IOCFG27) */
582                                         0x07c 0         /* NAND_DATA4 (IOCFG28) */
583                                         0x080 0         /* NAND_DATA5 (IOCFG29) */
584                                         0x084 0         /* NAND_DATA6 (IOCFG30) */
585                                         0x088 0         /* NAND_DATA7 (IOCFG31) */
586                                         0x08c 0         /* NAND_DATA8 (IOCFG32) */
587                                         0x090 0         /* NAND_DATA9 (IOCFG33) */
588                                         0x094 0         /* NAND_DATA10 (IOCFG34) */
589                                         0x098 0         /* NAND_DATA11 (IOCFG35) */
590                                         0x09c 0         /* NAND_DATA12 (IOCFG36) */
591                                         0x0a0 0         /* NAND_DATA13 (IOCFG37) */
592                                         0x0a4 0         /* NAND_DATA14 (IOCFG38) */
593                                         0x0a8 0         /* NAND_DATA15 (IOCFG39) */
594                                 >;
595                                 pinctrl-single,bias-pulldown = <2 2 0 2>;
596                                 pinctrl-single,bias-pullup = <0 1 0 1>;
597                                 pinctrl-single,drive-strength = <0x30 0xf0>;
598                         };
599                         nand_cfg_func2: nand_cfg_func2 {
600                                 pinctrl-single,pins = <
601                                         0x044 0         /* NAND_RE_N (IOCFG14) */
602                                         0x048 0         /* NAND_WE_N (IOCFG15) */
603                                         0x04c 0         /* NAND_CS0_N (IOCFG16) */
604                                         0x050 0         /* NAND_CS1_N (IOCFG17) */
605                                         0x054 0         /* NAND_CS2_N (IOCFG18) */
606                                         0x058 0         /* NAND_CS3_N (IOCFG19) */
607                                         0x05c 0         /* NAND_BUSY0_N (IOCFG20) */
608                                         0x060 0         /* NAND_BUSY1_N (IOCFG21) */
609                                         0x064 0         /* NAND_BUSY2_N (IOCFG22) */
610                                         0x068 0         /* NAND_BUSY3_N (IOCFG23) */
611                                 >;
612                                 pinctrl-single,bias-pulldown = <0 2 0 2>;
613                                 pinctrl-single,bias-pullup = <1 1 0 1>;
614                                 pinctrl-single,drive-strength = <0x30 0xf0>;
615                         };
616                         sdio_cfg_func: sdio_cfg_func {
617                                 pinctrl-single,pins = <
618                                         0x1a4 0         /* SDIO0_CLK (IOCG113) */
619                                         0x1a8 0         /* SDIO0_CMD (IOCG114) */
620                                         0x1ac 0         /* SDIO0_DATA0 (IOCG115) */
621                                         0x1b0 0         /* SDIO0_DATA1 (IOCG116) */
622                                         0x1b4 0         /* SDIO0_DATA2 (IOCG117) */
623                                         0x1b8 0         /* SDIO0_DATA3 (IOCG118) */
624                                 >;
625                                 pinctrl-single,bias-pulldown = <2 2 0 2>;
626                                 pinctrl-single,bias-pullup = <0 1 0 1>;
627                                 pinctrl-single,drive-strength = <0x30 0xf0>;
628                         };
629                         audio_out_cfg_func: audio_out_cfg_func {
630                                 pinctrl-single,pins = <
631                                         0x200 0         /* GPIO (IOCFG136) */
632                                         0x204 0         /* GPIO (IOCFG137) */
633                                 >;
634                                 pinctrl-single,bias-pulldown = <2 2 0 2>;
635                                 pinctrl-single,bias-pullup = <0 1 0 1>;
636                         };
637                 };
638         };
639
640         gpio-keys {
641                 compatible = "gpio-keys";
642
643                 call {
644                         label = "call";
645                         gpios = <&gpio17 2 0>;
646                         linux,code = <169>;     /* KEY_PHONE */
647                 };
648         };
649 };