GNU Linux-libre 4.14.328-gnu1
[releases.git] / arch / arm / boot / dts / mt7623n-bananapi-bpi-r2.dts
1 /*
2  * Copyright 2017 Sean Wang <sean.wang@mediatek.com>
3  *
4  * SPDX-License-Identifier: (GPL-2.0+ OR MIT)
5  */
6
7 /dts-v1/;
8 #include <dt-bindings/input/input.h>
9 #include "mt7623.dtsi"
10 #include "mt6323.dtsi"
11
12 / {
13         model = "Bananapi BPI-R2";
14         compatible = "bananapi,bpi-r2", "mediatek,mt7623";
15
16         aliases {
17                 serial2 = &uart2;
18         };
19
20         chosen {
21                 stdout-path = "serial2:115200n8";
22         };
23
24         cpus {
25                 cpu@0 {
26                         proc-supply = <&mt6323_vproc_reg>;
27                 };
28
29                 cpu@1 {
30                         proc-supply = <&mt6323_vproc_reg>;
31                 };
32
33                 cpu@2 {
34                         proc-supply = <&mt6323_vproc_reg>;
35                 };
36
37                 cpu@3 {
38                         proc-supply = <&mt6323_vproc_reg>;
39                 };
40         };
41
42         reg_3p3v: regulator-3p3v {
43                 compatible = "regulator-fixed";
44                 regulator-name = "fixed-3.3V";
45                 regulator-min-microvolt = <3300000>;
46                 regulator-max-microvolt = <3300000>;
47                 regulator-boot-on;
48                 regulator-always-on;
49         };
50
51         reg_5v: regulator-5v {
52                 compatible = "regulator-fixed";
53                 regulator-name = "fixed-5V";
54                 regulator-min-microvolt = <5000000>;
55                 regulator-max-microvolt = <5000000>;
56                 regulator-boot-on;
57                 regulator-always-on;
58         };
59
60         gpio_keys {
61                 compatible = "gpio-keys";
62                 pinctrl-names = "default";
63                 pinctrl-0 = <&key_pins_a>;
64
65                 factory {
66                         label = "factory";
67                         linux,code = <BTN_0>;
68                         gpios = <&pio 256 GPIO_ACTIVE_LOW>;
69                 };
70
71                 wps {
72                         label = "wps";
73                         linux,code = <KEY_WPS_BUTTON>;
74                         gpios = <&pio 257 GPIO_ACTIVE_HIGH>;
75                 };
76         };
77
78         leds {
79                 compatible = "gpio-leds";
80                 pinctrl-names = "default";
81                 pinctrl-0 = <&led_pins_a>;
82
83                 blue {
84                         label = "bpi-r2:pio:blue";
85                         gpios = <&pio 241 GPIO_ACTIVE_HIGH>;
86                         default-state = "off";
87                 };
88
89                 green {
90                         label = "bpi-r2:pio:green";
91                         gpios = <&pio 240 GPIO_ACTIVE_HIGH>;
92                         default-state = "off";
93                 };
94
95                 red {
96                         label = "bpi-r2:pio:red";
97                         gpios = <&pio 239 GPIO_ACTIVE_HIGH>;
98                         default-state = "off";
99                 };
100         };
101
102         memory@80000000 {
103                 device_type = "memory";
104                 reg = <0 0x80000000 0 0x40000000>;
105         };
106 };
107
108 &cir {
109         pinctrl-names = "default";
110         pinctrl-0 = <&cir_pins_a>;
111         status = "okay";
112 };
113
114 &crypto {
115         status = "okay";
116 };
117
118 &eth {
119         status = "okay";
120
121         gmac0: mac@0 {
122                 compatible = "mediatek,eth-mac";
123                 reg = <0>;
124                 phy-mode = "trgmii";
125
126                 fixed-link {
127                         speed = <1000>;
128                         full-duplex;
129                         pause;
130                 };
131         };
132
133         mdio: mdio-bus {
134                 #address-cells = <1>;
135                 #size-cells = <0>;
136
137                 switch@0 {
138                         compatible = "mediatek,mt7530";
139                         #address-cells = <1>;
140                         #size-cells = <0>;
141                         reg = <0>;
142                         pinctrl-names = "default";
143                         reset-gpios = <&pio 33 0>;
144                         core-supply = <&mt6323_vpa_reg>;
145                         io-supply = <&mt6323_vemc3v3_reg>;
146
147                         ports {
148                                 #address-cells = <1>;
149                                 #size-cells = <0>;
150                                 reg = <0>;
151
152                                 port@0 {
153                                         reg = <0>;
154                                         label = "wan";
155                                 };
156
157                                 port@1 {
158                                         reg = <1>;
159                                         label = "lan0";
160                                 };
161
162                                 port@2 {
163                                         reg = <2>;
164                                         label = "lan1";
165                                 };
166
167                                 port@3 {
168                                         reg = <3>;
169                                         label = "lan2";
170                                 };
171
172                                 port@4 {
173                                         reg = <4>;
174                                         label = "lan3";
175                                 };
176
177                                 port@6 {
178                                         reg = <6>;
179                                         label = "cpu";
180                                         ethernet = <&gmac0>;
181                                         phy-mode = "trgmii";
182
183                                         fixed-link {
184                                                 speed = <1000>;
185                                                 full-duplex;
186                                                 pause;
187                                         };
188                                 };
189                         };
190                 };
191         };
192 };
193
194 &i2c0 {
195         pinctrl-names = "default";
196         pinctrl-0 = <&i2c0_pins_a>;
197         status = "okay";
198 };
199
200 &i2c1 {
201         pinctrl-names = "default";
202         pinctrl-0 = <&i2c1_pins_a>;
203         status = "okay";
204 };
205
206 &mmc0 {
207         pinctrl-names = "default", "state_uhs";
208         pinctrl-0 = <&mmc0_pins_default>;
209         pinctrl-1 = <&mmc0_pins_uhs>;
210         status = "okay";
211         bus-width = <8>;
212         max-frequency = <50000000>;
213         cap-mmc-highspeed;
214         vmmc-supply = <&mt6323_vemc3v3_reg>;
215         vqmmc-supply = <&mt6323_vio18_reg>;
216         non-removable;
217 };
218
219 &mmc1 {
220         pinctrl-names = "default", "state_uhs";
221         pinctrl-0 = <&mmc1_pins_default>;
222         pinctrl-1 = <&mmc1_pins_uhs>;
223         status = "okay";
224         bus-width = <4>;
225         max-frequency = <50000000>;
226         cap-sd-highspeed;
227         cd-gpios = <&pio 261 GPIO_ACTIVE_LOW>;
228         vmmc-supply = <&mt6323_vmch_reg>;
229         vqmmc-supply = <&mt6323_vio18_reg>;
230 };
231
232 &pio {
233         cir_pins_a:cir@0 {
234                 pins_cir {
235                         pinmux = <MT7623_PIN_46_IR_FUNC_IR>;
236                         bias-disable;
237                 };
238         };
239
240         i2c0_pins_a: i2c@0 {
241                 pins_i2c0 {
242                         pinmux = <MT7623_PIN_75_SDA0_FUNC_SDA0>,
243                                  <MT7623_PIN_76_SCL0_FUNC_SCL0>;
244                         bias-disable;
245                 };
246         };
247
248         i2c1_pins_a: i2c@1 {
249                 pin_i2c1 {
250                         pinmux = <MT7623_PIN_57_SDA1_FUNC_SDA1>,
251                                  <MT7623_PIN_58_SCL1_FUNC_SCL1>;
252                         bias-disable;
253                 };
254         };
255
256         i2s0_pins_a: i2s@0 {
257                 pin_i2s0 {
258                         pinmux = <MT7623_PIN_49_I2S0_DATA_FUNC_I2S0_DATA>,
259                                  <MT7623_PIN_72_I2S0_DATA_IN_FUNC_I2S0_DATA_IN>,
260                                  <MT7623_PIN_73_I2S0_LRCK_FUNC_I2S0_LRCK>,
261                                  <MT7623_PIN_74_I2S0_BCK_FUNC_I2S0_BCK>,
262                                  <MT7623_PIN_126_I2S0_MCLK_FUNC_I2S0_MCLK>;
263                         drive-strength = <MTK_DRIVE_12mA>;
264                         bias-pull-down;
265                 };
266         };
267
268         i2s1_pins_a: i2s@1 {
269                 pin_i2s1 {
270                         pinmux = <MT7623_PIN_33_I2S1_DATA_FUNC_I2S1_DATA>,
271                                  <MT7623_PIN_34_I2S1_DATA_IN_FUNC_I2S1_DATA_IN>,
272                                  <MT7623_PIN_35_I2S1_BCK_FUNC_I2S1_BCK>,
273                                  <MT7623_PIN_36_I2S1_LRCK_FUNC_I2S1_LRCK>,
274                                  <MT7623_PIN_37_I2S1_MCLK_FUNC_I2S1_MCLK>;
275                         drive-strength = <MTK_DRIVE_12mA>;
276                         bias-pull-down;
277                 };
278         };
279
280         key_pins_a: keys@0 {
281                 pins_keys {
282                         pinmux = <MT7623_PIN_256_GPIO256_FUNC_GPIO256>,
283                                  <MT7623_PIN_257_GPIO257_FUNC_GPIO257> ;
284                         input-enable;
285                 };
286         };
287
288         led_pins_a: leds@0 {
289                 pins_leds {
290                         pinmux = <MT7623_PIN_239_EXT_SDIO0_FUNC_GPIO239>,
291                                  <MT7623_PIN_240_EXT_XCS_FUNC_GPIO240>,
292                                  <MT7623_PIN_241_EXT_SCK_FUNC_GPIO241>;
293                 };
294         };
295
296         mmc0_pins_default: mmc0default {
297                 pins_cmd_dat {
298                         pinmux = <MT7623_PIN_111_MSDC0_DAT7_FUNC_MSDC0_DAT7>,
299                                  <MT7623_PIN_112_MSDC0_DAT6_FUNC_MSDC0_DAT6>,
300                                  <MT7623_PIN_113_MSDC0_DAT5_FUNC_MSDC0_DAT5>,
301                                  <MT7623_PIN_114_MSDC0_DAT4_FUNC_MSDC0_DAT4>,
302                                  <MT7623_PIN_118_MSDC0_DAT3_FUNC_MSDC0_DAT3>,
303                                  <MT7623_PIN_119_MSDC0_DAT2_FUNC_MSDC0_DAT2>,
304                                  <MT7623_PIN_120_MSDC0_DAT1_FUNC_MSDC0_DAT1>,
305                                  <MT7623_PIN_121_MSDC0_DAT0_FUNC_MSDC0_DAT0>,
306                                  <MT7623_PIN_116_MSDC0_CMD_FUNC_MSDC0_CMD>;
307                         input-enable;
308                         bias-pull-up;
309                 };
310
311                 pins_clk {
312                         pinmux = <MT7623_PIN_117_MSDC0_CLK_FUNC_MSDC0_CLK>;
313                         bias-pull-down;
314                 };
315
316                 pins_rst {
317                         pinmux = <MT7623_PIN_115_MSDC0_RSTB_FUNC_MSDC0_RSTB>;
318                         bias-pull-up;
319                 };
320         };
321
322         mmc0_pins_uhs: mmc0 {
323                 pins_cmd_dat {
324                         pinmux = <MT7623_PIN_111_MSDC0_DAT7_FUNC_MSDC0_DAT7>,
325                                  <MT7623_PIN_112_MSDC0_DAT6_FUNC_MSDC0_DAT6>,
326                                  <MT7623_PIN_113_MSDC0_DAT5_FUNC_MSDC0_DAT5>,
327                                  <MT7623_PIN_114_MSDC0_DAT4_FUNC_MSDC0_DAT4>,
328                                  <MT7623_PIN_118_MSDC0_DAT3_FUNC_MSDC0_DAT3>,
329                                  <MT7623_PIN_119_MSDC0_DAT2_FUNC_MSDC0_DAT2>,
330                                  <MT7623_PIN_120_MSDC0_DAT1_FUNC_MSDC0_DAT1>,
331                                  <MT7623_PIN_121_MSDC0_DAT0_FUNC_MSDC0_DAT0>,
332                                  <MT7623_PIN_116_MSDC0_CMD_FUNC_MSDC0_CMD>;
333                         input-enable;
334                         drive-strength = <MTK_DRIVE_2mA>;
335                         bias-pull-up = <MTK_PUPD_SET_R1R0_01>;
336                 };
337
338                 pins_clk {
339                         pinmux = <MT7623_PIN_117_MSDC0_CLK_FUNC_MSDC0_CLK>;
340                         drive-strength = <MTK_DRIVE_2mA>;
341                         bias-pull-down = <MTK_PUPD_SET_R1R0_01>;
342                 };
343
344                 pins_rst {
345                         pinmux = <MT7623_PIN_115_MSDC0_RSTB_FUNC_MSDC0_RSTB>;
346                         bias-pull-up;
347                 };
348         };
349
350         mmc1_pins_default: mmc1default {
351                 pins_cmd_dat {
352                         pinmux = <MT7623_PIN_107_MSDC1_DAT0_FUNC_MSDC1_DAT0>,
353                                  <MT7623_PIN_108_MSDC1_DAT1_FUNC_MSDC1_DAT1>,
354                                  <MT7623_PIN_109_MSDC1_DAT2_FUNC_MSDC1_DAT2>,
355                                  <MT7623_PIN_110_MSDC1_DAT3_FUNC_MSDC1_DAT3>,
356                                  <MT7623_PIN_105_MSDC1_CMD_FUNC_MSDC1_CMD>;
357                         input-enable;
358                         drive-strength = <MTK_DRIVE_4mA>;
359                         bias-pull-up = <MTK_PUPD_SET_R1R0_10>;
360                 };
361
362                 pins_clk {
363                         pinmux = <MT7623_PIN_106_MSDC1_CLK_FUNC_MSDC1_CLK>;
364                         bias-pull-down;
365                         drive-strength = <MTK_DRIVE_4mA>;
366                 };
367
368                 pins_wp {
369                         pinmux = <MT7623_PIN_29_EINT7_FUNC_MSDC1_WP>;
370                         input-enable;
371                         bias-pull-up;
372                 };
373
374                 pins_insert {
375                         pinmux = <MT7623_PIN_261_MSDC1_INS_FUNC_GPIO261>;
376                         bias-pull-up;
377                 };
378         };
379
380         mmc1_pins_uhs: mmc1 {
381                 pins_cmd_dat {
382                         pinmux = <MT7623_PIN_107_MSDC1_DAT0_FUNC_MSDC1_DAT0>,
383                                  <MT7623_PIN_108_MSDC1_DAT1_FUNC_MSDC1_DAT1>,
384                                  <MT7623_PIN_109_MSDC1_DAT2_FUNC_MSDC1_DAT2>,
385                                  <MT7623_PIN_110_MSDC1_DAT3_FUNC_MSDC1_DAT3>,
386                                  <MT7623_PIN_105_MSDC1_CMD_FUNC_MSDC1_CMD>;
387                         input-enable;
388                         drive-strength = <MTK_DRIVE_4mA>;
389                         bias-pull-up = <MTK_PUPD_SET_R1R0_10>;
390                 };
391
392                 pins_clk {
393                         pinmux = <MT7623_PIN_106_MSDC1_CLK_FUNC_MSDC1_CLK>;
394                         drive-strength = <MTK_DRIVE_4mA>;
395                         bias-pull-down = <MTK_PUPD_SET_R1R0_10>;
396                 };
397         };
398
399         pwm_pins_a: pwm@0 {
400                 pins_pwm {
401                         pinmux = <MT7623_PIN_203_PWM0_FUNC_PWM0>,
402                                  <MT7623_PIN_204_PWM1_FUNC_PWM1>,
403                                  <MT7623_PIN_205_PWM2_FUNC_PWM2>,
404                                  <MT7623_PIN_206_PWM3_FUNC_PWM3>,
405                                  <MT7623_PIN_207_PWM4_FUNC_PWM4>;
406                 };
407         };
408
409         spi0_pins_a: spi@0 {
410                 pins_spi {
411                         pinmux = <MT7623_PIN_53_SPI0_CSN_FUNC_SPI0_CS>,
412                                 <MT7623_PIN_54_SPI0_CK_FUNC_SPI0_CK>,
413                                 <MT7623_PIN_55_SPI0_MI_FUNC_SPI0_MI>,
414                                 <MT7623_PIN_56_SPI0_MO_FUNC_SPI0_MO>;
415                         bias-disable;
416                 };
417         };
418
419         uart0_pins_a: uart@0 {
420                 pins_dat {
421                         pinmux = <MT7623_PIN_79_URXD0_FUNC_URXD0>,
422                                  <MT7623_PIN_80_UTXD0_FUNC_UTXD0>;
423                 };
424         };
425
426         uart1_pins_a: uart@1 {
427                 pins_dat {
428                         pinmux = <MT7623_PIN_81_URXD1_FUNC_URXD1>,
429                                  <MT7623_PIN_82_UTXD1_FUNC_UTXD1>;
430                 };
431         };
432 };
433
434 &pwm {
435         pinctrl-names = "default";
436         pinctrl-0 = <&pwm_pins_a>;
437         status = "okay";
438 };
439
440 &pwrap {
441         mt6323 {
442                 mt6323led: led {
443                         compatible = "mediatek,mt6323-led";
444                         #address-cells = <1>;
445                         #size-cells = <0>;
446
447                         led@0 {
448                                 reg = <0>;
449                                 label = "bpi-r2:isink:green";
450                                 default-state = "off";
451                         };
452
453                         led@1 {
454                                 reg = <1>;
455                                 label = "bpi-r2:isink:red";
456                                 default-state = "off";
457                         };
458
459                         led@2 {
460                                 reg = <2>;
461                                 label = "bpi-r2:isink:blue";
462                                 default-state = "off";
463                         };
464                 };
465         };
466 };
467
468 &spi0 {
469         pinctrl-names = "default";
470         pinctrl-0 = <&spi0_pins_a>;
471         status = "okay";
472 };
473
474 &uart0 {
475         pinctrl-names = "default";
476         pinctrl-0 = <&uart0_pins_a>;
477         status = "disabled";
478 };
479
480 &uart1 {
481         pinctrl-names = "default";
482         pinctrl-0 = <&uart1_pins_a>;
483         status = "disabled";
484 };
485
486 &uart2 {
487         status = "okay";
488 };
489
490 &usb1 {
491         vusb33-supply = <&reg_3p3v>;
492         vbus-supply = <&reg_5v>;
493         status = "okay";
494 };
495
496 &usb2 {
497         vusb33-supply = <&reg_3p3v>;
498         vbus-supply = <&reg_5v>;
499         status = "okay";
500 };
501
502 &u3phy1 {
503         status = "okay";
504 };
505
506 &u3phy2 {
507         status = "okay";
508 };
509