]> git.karo-electronics.de Git - karo-tx-linux.git/blob - arch/arm64/boot/dts/hisilicon/hikey960-pinctrl.dtsi
Merge tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi
[karo-tx-linux.git] / arch / arm64 / boot / dts / hisilicon / hikey960-pinctrl.dtsi
1 /*
2  * pinctrl dts fils for Hislicon HiKey960 development board
3  *
4  */
5
6 #include <dt-bindings/pinctrl/hisi.h>
7
8 / {
9         soc {
10                 /* [IOMG_000, IOMG_123] */
11                 range: gpio-range {
12                         #pinctrl-single,gpio-range-cells = <3>;
13                 };
14
15                 pmx0: pinmux@e896c000 {
16                         compatible = "pinctrl-single";
17                         reg = <0x0 0xe896c000 0x0 0x1f0>;
18                         #pinctrl-cells = <1>;
19                         #gpio-range-cells = <0x3>;
20                         pinctrl-single,register-width = <0x20>;
21                         pinctrl-single,function-mask = <0x7>;
22                         /* pin base, nr pins & gpio function */
23                         pinctrl-single,gpio-range = <
24                                 &range 0 7 0
25                                 &range 8 116 0>;
26
27                         isp0_pmx_func: isp0_pmx_func {
28                                 pinctrl-single,pins = <
29                                         0x058 MUX_M1 /* ISP_CLK0 */
30                                         0x064 MUX_M1 /* ISP_SCL0 */
31                                         0x068 MUX_M1 /* ISP_SDA0 */
32                                 >;
33                         };
34
35                         isp1_pmx_func: isp1_pmx_func {
36                                 pinctrl-single,pins = <
37                                         0x05c MUX_M1 /* ISP_CLK1 */
38                                         0x06c MUX_M1 /* ISP_SCL1 */
39                                         0x070 MUX_M1 /* ISP_SDA1 */
40                                 >;
41                         };
42
43                         i2c3_pmx_func: i2c3_pmx_func {
44                                 pinctrl-single,pins = <
45                                         0x02c MUX_M1 /* I2C3_SCL */
46                                         0x030 MUX_M1 /* I2C3_SDA */
47                                 >;
48                         };
49
50                         i2c4_pmx_func: i2c4_pmx_func {
51                                 pinctrl-single,pins = <
52                                         0x090 MUX_M1 /* I2C4_SCL */
53                                         0x094 MUX_M1 /* I2C4_SDA */
54                                 >;
55                         };
56
57                         pcie_perstn_pmx_func: pcie_perstn_pmx_func {
58                                 pinctrl-single,pins = <
59                                         0x15c MUX_M1 /* PCIE_PERST_N */
60                                 >;
61                         };
62
63                         usbhub5734_pmx_func: usbhub5734_pmx_func {
64                                 pinctrl-single,pins = <
65                                         0x11c MUX_M0 /* GPIO_073 */
66                                         0x120 MUX_M0 /* GPIO_074 */
67                                 >;
68                         };
69
70                         spi1_pmx_func: spi1_pmx_func {
71                                 pinctrl-single,pins = <
72                                         0x034 MUX_M1 /* SPI1_CLK */
73                                         0x038 MUX_M1 /* SPI1_DI */
74                                         0x03c MUX_M1 /* SPI1_DO */
75                                         0x040 MUX_M1 /* SPI1_CS_N */
76                                 >;
77                         };
78
79                         uart0_pmx_func: uart0_pmx_func {
80                                 pinctrl-single,pins = <
81                                         0x0cc MUX_M2 /* UART0_RXD */
82                                         0x0d0 MUX_M2 /* UART0_TXD */
83                                         0x0d4 MUX_M2 /* UART0_RXD_M */
84                                         0x0d8 MUX_M2 /* UART0_TXD_M */
85                                 >;
86                         };
87
88                         uart1_pmx_func: uart1_pmx_func {
89                                 pinctrl-single,pins = <
90                                         0x0b0 MUX_M2 /* UART1_CTS_N */
91                                         0x0b4 MUX_M2 /* UART1_RTS_N */
92                                         0x0a8 MUX_M2 /* UART1_RXD */
93                                         0x0ac MUX_M2 /* UART1_TXD */
94                                 >;
95                         };
96
97                         uart2_pmx_func: uart2_pmx_func {
98                                 pinctrl-single,pins = <
99                                         0x0bc MUX_M2 /* UART2_CTS_N */
100                                         0x0c0 MUX_M2 /* UART2_RTS_N */
101                                         0x0c8 MUX_M2 /* UART2_RXD */
102                                         0x0c4 MUX_M2 /* UART2_TXD */
103                                 >;
104                         };
105
106                         uart3_pmx_func: uart3_pmx_func {
107                                 pinctrl-single,pins = <
108                                         0x0dc MUX_M1 /* UART3_CTS_N */
109                                         0x0e0 MUX_M1 /* UART3_RTS_N */
110                                         0x0e4 MUX_M1 /* UART3_RXD */
111                                         0x0e8 MUX_M1 /* UART3_TXD */
112                                 >;
113                         };
114
115                         uart4_pmx_func: uart4_pmx_func {
116                                 pinctrl-single,pins = <
117                                         0x0ec MUX_M1 /* UART4_CTS_N */
118                                         0x0f0 MUX_M1 /* UART4_RTS_N */
119                                         0x0f4 MUX_M1 /* UART4_RXD */
120                                         0x0f8 MUX_M1 /* UART4_TXD */
121                                 >;
122                         };
123
124                         uart5_pmx_func: uart5_pmx_func {
125                                 pinctrl-single,pins = <
126                                         0x0c4 MUX_M3 /* UART5_CTS_N */
127                                         0x0c8 MUX_M3 /* UART5_RTS_N */
128                                         0x0bc MUX_M3 /* UART5_RXD */
129                                         0x0c0 MUX_M3 /* UART5_TXD */
130                                 >;
131                         };
132
133                         uart6_pmx_func: uart6_pmx_func {
134                                 pinctrl-single,pins = <
135                                         0x0cc MUX_M1 /* UART6_CTS_N */
136                                         0x0d0 MUX_M1 /* UART6_RTS_N */
137                                         0x0d4 MUX_M1 /* UART6_RXD */
138                                         0x0d8 MUX_M1 /* UART6_TXD */
139                                 >;
140                         };
141                 };
142
143                 /* [IOMG_MMC0_000, IOMG_MMC0_005] */
144                 pmx1: pinmux@ff37e000 {
145                         compatible = "pinctrl-single";
146                         reg = <0x0 0xff37e000 0x0 0x18>;
147                         #gpio-range-cells = <0x3>;
148                         #pinctrl-cells = <1>;
149                         pinctrl-single,register-width = <0x20>;
150                         pinctrl-single,function-mask = <0x7>;
151                         /* pin base, nr pins & gpio function */
152                         pinctrl-single,gpio-range = <&range 0 6 0>;
153
154                         sd_pmx_func: sd_pmx_func {
155                                 pinctrl-single,pins = <
156                                         0x000 MUX_M1 /* SD_CLK */
157                                         0x004 MUX_M1 /* SD_CMD */
158                                         0x008 MUX_M1 /* SD_DATA0 */
159                                         0x00c MUX_M1 /* SD_DATA1 */
160                                         0x010 MUX_M1 /* SD_DATA2 */
161                                         0x014 MUX_M1 /* SD_DATA3 */
162                                 >;
163                         };
164                 };
165
166                 /* [IOMG_FIX_000, IOMG_FIX_011] */
167                 pmx2: pinmux@ff3b6000 {
168                         compatible = "pinctrl-single";
169                         reg = <0x0 0xff3b6000 0x0 0x30>;
170                         #pinctrl-cells = <1>;
171                         #gpio-range-cells = <0x3>;
172                         pinctrl-single,register-width = <0x20>;
173                         pinctrl-single,function-mask = <0x7>;
174                         /* pin base, nr pins & gpio function */
175                         pinctrl-single,gpio-range = <&range 0 12 0>;
176
177                         spi3_pmx_func: spi3_pmx_func {
178                                 pinctrl-single,pins = <
179                                         0x008 MUX_M1 /* SPI3_CLK */
180                                         0x00c MUX_M1 /* SPI3_DI */
181                                         0x010 MUX_M1 /* SPI3_DO */
182                                         0x014 MUX_M1 /* SPI3_CS0_N */
183                                 >;
184                         };
185                 };
186
187                 /* [IOMG_MMC1_000, IOMG_MMC1_005] */
188                 pmx3: pinmux@ff3fd000 {
189                         compatible = "pinctrl-single";
190                         reg = <0x0 0xff3fd000 0x0 0x18>;
191                         #pinctrl-cells = <1>;
192                         #gpio-range-cells = <0x3>;
193                         pinctrl-single,register-width = <0x20>;
194                         pinctrl-single,function-mask = <0x7>;
195                         /* pin base, nr pins & gpio function */
196                         pinctrl-single,gpio-range = <&range 0 6 0>;
197
198                         sdio_pmx_func: sdio_pmx_func {
199                                 pinctrl-single,pins = <
200                                         0x000 MUX_M1 /* SDIO_CLK */
201                                         0x004 MUX_M1 /* SDIO_CMD */
202                                         0x008 MUX_M1 /* SDIO_DATA0 */
203                                         0x00c MUX_M1 /* SDIO_DATA1 */
204                                         0x010 MUX_M1 /* SDIO_DATA2 */
205                                         0x014 MUX_M1 /* SDIO_DATA3 */
206                                 >;
207                         };
208                 };
209
210                 /* [IOMG_AO_000, IOMG_AO_041] */
211                 pmx4: pinmux@fff11000 {
212                         compatible = "pinctrl-single";
213                         reg = <0x0 0xfff11000 0x0 0xa8>;
214                         #pinctrl-cells = <1>;
215                         #gpio-range-cells = <0x3>;
216                         pinctrl-single,register-width = <0x20>;
217                         pinctrl-single,function-mask = <0x7>;
218                         /* pin base in node, nr pins & gpio function */
219                         pinctrl-single,gpio-range = <&range 0 42 0>;
220
221                         i2s2_pmx_func: i2s2_pmx_func {
222                                 pinctrl-single,pins = <
223                                         0x044 MUX_M1 /* I2S2_DI */
224                                         0x048 MUX_M1 /* I2S2_DO */
225                                         0x04c MUX_M1 /* I2S2_XCLK */
226                                         0x050 MUX_M1 /* I2S2_XFS */
227                                 >;
228                         };
229
230                         slimbus_pmx_func: slimbus_pmx_func {
231                                 pinctrl-single,pins = <
232                                         0x02c MUX_M1 /* SLIMBUS_CLK */
233                                         0x030 MUX_M1 /* SLIMBUS_DATA */
234                                 >;
235                         };
236
237                         i2c0_pmx_func: i2c0_pmx_func {
238                                 pinctrl-single,pins = <
239                                         0x014 MUX_M1 /* I2C0_SCL */
240                                         0x018 MUX_M1 /* I2C0_SDA */
241                                 >;
242                         };
243
244                         i2c1_pmx_func: i2c1_pmx_func {
245                                 pinctrl-single,pins = <
246                                         0x01c MUX_M1 /* I2C1_SCL */
247                                         0x020 MUX_M1 /* I2C1_SDA */
248                                 >;
249                         };
250
251                         i2c2_pmx_func: i2c2_pmx_func {
252                                 pinctrl-single,pins = <
253                                         0x024 MUX_M1 /* I2C2_SCL */
254                                         0x028 MUX_M1 /* I2C2_SDA */
255                                 >;
256                         };
257
258                         i2c7_pmx_func: i2c7_pmx_func {
259                                 pinctrl-single,pins = <
260                                         0x024 MUX_M3 /* I2C7_SCL */
261                                         0x028 MUX_M3 /* I2C7_SDA */
262                                 >;
263                         };
264
265                         spi2_pmx_func: spi2_pmx_func {
266                                 pinctrl-single,pins = <
267                                         0x08c MUX_M1 /* SPI2_CLK */
268                                         0x090 MUX_M1 /* SPI2_DI */
269                                         0x094 MUX_M1 /* SPI2_DO */
270                                         0x098 MUX_M1 /* SPI2_CS0_N */
271                                 >;
272                         };
273
274                         spi4_pmx_func: spi4_pmx_func {
275                                 pinctrl-single,pins = <
276                                         0x08c MUX_M4 /* SPI4_CLK */
277                                         0x090 MUX_M4 /* SPI4_DI */
278                                         0x094 MUX_M4 /* SPI4_DO */
279                                         0x098 MUX_M4 /* SPI4_CS0_N */
280                                 >;
281                         };
282
283                         i2s0_pmx_func: i2s0_pmx_func {
284                                 pinctrl-single,pins = <
285                                         0x034 MUX_M1 /* I2S0_DI */
286                                         0x038 MUX_M1 /* I2S0_DO */
287                                         0x03c MUX_M1 /* I2S0_XCLK */
288                                         0x040 MUX_M1 /* I2S0_XFS */
289                                 >;
290                         };
291                 };
292
293                 pmx5: pinmux@ff3fd800 {
294                         compatible = "pinconf-single";
295                         reg = <0x0 0xff3fd800 0x0 0x18>;
296                         #pinctrl-cells = <1>;
297                         #address-cells = <1>;
298                         #size-cells = <1>;
299                         pinctrl-single,register-width = <32>;
300
301                         sdio_clk_cfg_func: sdio_clk_cfg_func {
302                                 pinctrl-single,pins = <
303                                         0x000 0x0 /* SDIO_CLK */
304                                 >;
305                                 pinctrl-single,bias-pulldown = <
306                                         PULL_DIS
307                                         PULL_DOWN
308                                         PULL_DIS
309                                         PULL_DOWN
310                                 >;
311                                 pinctrl-single,bias-pullup = <
312                                         PULL_DIS
313                                         PULL_UP
314                                         PULL_DIS
315                                         PULL_UP
316                                 >;
317                                 pinctrl-single,drive-strength = <
318                                         DRIVE6_32MA
319                                         DRIVE6_MASK
320                                 >;
321                         };
322
323                         sdio_cfg_func: sdio_cfg_func {
324                                 pinctrl-single,pins = <
325                                         0x004 0x0 /* SDIO_CMD */
326                                         0x008 0x0 /* SDIO_DATA0 */
327                                         0x00c 0x0 /* SDIO_DATA1 */
328                                         0x010 0x0 /* SDIO_DATA2 */
329                                         0x014 0x0 /* SDIO_DATA3 */
330                                 >;
331                                 pinctrl-single,bias-pulldown = <
332                                         PULL_DIS
333                                         PULL_DOWN
334                                         PULL_DIS
335                                         PULL_DOWN
336                                 >;
337                                 pinctrl-single,bias-pullup = <
338                                         PULL_UP
339                                         PULL_UP
340                                         PULL_DIS
341                                         PULL_UP
342                                 >;
343                                 pinctrl-single,drive-strength = <
344                                         DRIVE6_19MA
345                                         DRIVE6_MASK
346                                 >;
347                         };
348                 };
349
350                 pmx6: pinmux@ff37e800 {
351                         compatible = "pinconf-single";
352                         reg = <0x0 0xff37e800 0x0 0x18>;
353                         #pinctrl-cells = <1>;
354                         #address-cells = <1>;
355                         #size-cells = <1>;
356                         pinctrl-single,register-width = <32>;
357
358                         sd_clk_cfg_func: sd_clk_cfg_func {
359                                 pinctrl-single,pins = <
360                                         0x000 0x0 /* SD_CLK */
361                                 >;
362                                 pinctrl-single,bias-pulldown = <
363                                         PULL_DIS
364                                         PULL_DOWN
365                                         PULL_DIS
366                                         PULL_DOWN
367                                 >;
368                                 pinctrl-single,bias-pullup = <
369                                         PULL_DIS
370                                         PULL_UP
371                                         PULL_DIS
372                                         PULL_UP
373                                 >;
374                                 pinctrl-single,drive-strength = <
375                                         DRIVE6_32MA
376                                         DRIVE6_MASK
377                                 >;
378                         };
379
380                         sd_cfg_func: sd_cfg_func {
381                                 pinctrl-single,pins = <
382                                         0x004 0x0 /* SD_CMD */
383                                         0x008 0x0 /* SD_DATA0 */
384                                         0x00c 0x0 /* SD_DATA1 */
385                                         0x010 0x0 /* SD_DATA2 */
386                                         0x014 0x0 /* SD_DATA3 */
387                                 >;
388                                 pinctrl-single,bias-pulldown = <
389                                         PULL_DIS
390                                         PULL_DOWN
391                                         PULL_DIS
392                                         PULL_DOWN
393                                 >;
394                                 pinctrl-single,bias-pullup = <
395                                         PULL_UP
396                                         PULL_UP
397                                         PULL_DIS
398                                         PULL_UP
399                                 >;
400                                 pinctrl-single,drive-strength = <
401                                         DRIVE6_19MA
402                                         DRIVE6_MASK
403                                 >;
404                         };
405                 };
406         };
407 };