Linux-libre 5.3.12-gnu
[librecmc/linux-libre.git] / arch / arm / boot / dts / am335x-boneblue.dts
1 // SPDX-License-Identifier: GPL-2.0-only
2 /*
3  * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/
4  */
5 /dts-v1/;
6
7 #include "am33xx.dtsi"
8 #include <dt-bindings/interrupt-controller/irq.h>
9
10 / {
11         model = "TI AM335x BeagleBone Blue";
12         compatible = "ti,am335x-bone-blue", "ti,am33xx";
13
14         cpus {
15                 cpu@0 {
16                         cpu0-supply = <&dcdc2_reg>;
17                 };
18         };
19
20         memory@80000000 {
21                 device_type = "memory";
22                 reg = <0x80000000 0x20000000>; /* 512 MB */
23         };
24
25         chosen {
26                 stdout-path = &uart0;
27         };
28
29         leds {
30                 pinctrl-names = "default";
31                 pinctrl-0 = <&user_leds_s0>;
32
33                 compatible = "gpio-leds";
34
35                 usr_0_led {
36                         label = "beaglebone:green:usr0";
37                         gpios = <&gpio1 21 GPIO_ACTIVE_HIGH>;
38                         linux,default-trigger = "heartbeat";
39                         default-state = "off";
40                 };
41
42                 usr_1_led {
43                         label = "beaglebone:green:usr1";
44                         gpios = <&gpio1 22 GPIO_ACTIVE_HIGH>;
45                         linux,default-trigger = "mmc0";
46                         default-state = "off";
47                 };
48
49                 usr_2_led {
50                         label = "beaglebone:green:usr2";
51                         gpios = <&gpio1 23 GPIO_ACTIVE_HIGH>;
52                         linux,default-trigger = "cpu0";
53                         default-state = "off";
54                 };
55
56                 usr_3_led {
57                         label = "beaglebone:green:usr3";
58                         gpios = <&gpio1 24 GPIO_ACTIVE_HIGH>;
59                         linux,default-trigger = "mmc1";
60                         default-state = "off";
61                 };
62
63                 wifi_led {
64                         label = "wifi";
65                         gpios = <&gpio0 19 GPIO_ACTIVE_HIGH>;
66                         default-state = "off";
67                         linux,default-trigger = "phy0assoc";
68                 };
69
70                 red_led {
71                         label = "red";
72                         gpios = <&gpio2 2 GPIO_ACTIVE_HIGH>;
73                         default-state = "off";
74                 };
75
76                 green_led {
77                         label = "green";
78                         gpios = <&gpio2 3 GPIO_ACTIVE_HIGH>;
79                         default-state = "off";
80                 };
81
82                 batt_1_led {
83                         label = "bat25";
84                         gpios = <&gpio0 27 GPIO_ACTIVE_HIGH>;
85                         default-state = "off";
86                 };
87
88                 batt_2_led {
89                         label = "bat50";
90                         gpios = <&gpio0 11 GPIO_ACTIVE_HIGH>;
91                         default-state = "off";
92                 };
93
94                 batt_3_led {
95                         label = "bat75";
96                         gpios = <&gpio1 29 GPIO_ACTIVE_HIGH>;
97                         default-state = "off";
98                 };
99
100                 batt_4_led {
101                         label = "bat100";
102                         gpios = <&gpio0 26 GPIO_ACTIVE_HIGH>;
103                         default-state = "off";
104                 };
105         };
106
107         vmmcsd_fixed: fixedregulator0 {
108                 compatible = "regulator-fixed";
109                 regulator-name = "vmmcsd_fixed";
110                 regulator-min-microvolt = <3300000>;
111                 regulator-max-microvolt = <3300000>;
112         };
113
114         wlan_en_reg: fixedregulator@2 {
115                 compatible = "regulator-fixed";
116                 regulator-name = "wlan-en-regulator";
117                 regulator-min-microvolt = <1800000>;
118                 regulator-max-microvolt = <1800000>;
119                 startup-delay-us= <70000>;
120
121                 /* WL_EN */
122                 gpio = <&gpio3 9 0>;
123                 enable-active-high;
124         };
125 };
126
127 &am33xx_pinmux {
128         user_leds_s0: user_leds_s0 {
129                 pinctrl-single,pins = <
130                         AM33XX_PADCONF(AM335X_PIN_GPMC_A5, PIN_OUTPUT, MUX_MODE7) /* (V15) gpmc_a5.gpio1[21] - USR_LED_0 */
131                         AM33XX_PADCONF(AM335X_PIN_GPMC_A6, PIN_OUTPUT, MUX_MODE7) /* (U15) gpmc_a6.gpio1[22] - USR_LED_1 */
132                         AM33XX_PADCONF(AM335X_PIN_GPMC_A7, PIN_OUTPUT, MUX_MODE7) /* (T15) gpmc_a7.gpio1[23] - USR_LED_2 */
133                         AM33XX_PADCONF(AM335X_PIN_GPMC_A8, PIN_OUTPUT, MUX_MODE7) /* (V16) gpmc_a8.gpio1[24] - USR_LED_3 */
134                         AM33XX_PADCONF(AM335X_PIN_XDMA_EVENT_INTR0, PIN_OUTPUT, MUX_MODE7) /* (A15) xdma_event_intr0.gpio0[19] - WIFI_LED */
135                         AM33XX_PADCONF(AM335X_PIN_GPMC_ADVN_ALE, PIN_OUTPUT, MUX_MODE7) /* (R7) gpmc_advn_ale.gpio2[2] - P8.7, LED_RED, GP1_PIN_5 */
136                         AM33XX_PADCONF(AM335X_PIN_GPMC_OEN_REN, PIN_OUTPUT, MUX_MODE7) /* (T7) gpmc_oen_ren.gpio2[3] - P8.8, LED_GREEN, GP1_PIN_6 */
137                         AM33XX_PADCONF(AM335X_PIN_GPMC_AD11, PIN_OUTPUT, MUX_MODE7) /* (U12) gpmc_ad11.gpio0[27] - P8.17, BATT_LED_1 */
138                         AM33XX_PADCONF(AM335X_PIN_LCD_DATA15, PIN_OUTPUT, MUX_MODE7) /* (T5) lcd_data15.gpio0[11] - P8.32, BATT_LED_2 */
139                         AM33XX_PADCONF(AM335X_PIN_GPMC_CSN0, PIN_OUTPUT, MUX_MODE7) /* (V6) gpmc_csn0.gpio1[29] - P8.26, BATT_LED_3 */
140                         AM33XX_PADCONF(AM335X_PIN_GPMC_AD10, PIN_OUTPUT, MUX_MODE7) /* (T11) gpmc_ad10.gpio0[26] - P8.14, BATT_LED_4 */
141
142                 >;
143         };
144
145         i2c0_pins: pinmux_i2c0_pins {
146                 pinctrl-single,pins = <
147                         AM33XX_PADCONF(AM335X_PIN_I2C0_SDA, PIN_INPUT_PULLUP, MUX_MODE0)        /* (C17) I2C0_SDA.I2C0_SDA */
148                         AM33XX_PADCONF(AM335X_PIN_I2C0_SCL, PIN_INPUT_PULLUP, MUX_MODE0)        /* (C16) I2C0_SCL.I2C0_SCL */
149                 >;
150         };
151
152         i2c2_pins: pinmux_i2c2_pins {
153                 pinctrl-single,pins = <
154                         AM33XX_PADCONF(AM335X_PIN_UART1_CTSN, PIN_INPUT_PULLUP, MUX_MODE3)      /* (D18) uart1_ctsn.I2C2_SDA */
155                         AM33XX_PADCONF(AM335X_PIN_UART1_RTSN, PIN_INPUT_PULLUP, MUX_MODE3)      /* (D17) uart1_rtsn.I2C2_SCL */
156                 >;
157         };
158
159         /* UT0 */
160         uart0_pins: pinmux_uart0_pins {
161                 pinctrl-single,pins = <
162                         AM33XX_PADCONF(AM335X_PIN_UART0_RXD, PIN_INPUT_PULLUP, MUX_MODE0)
163                         AM33XX_PADCONF(AM335X_PIN_UART0_TXD, PIN_OUTPUT_PULLDOWN, MUX_MODE0)
164                 >;
165         };
166
167         /* UT1 */
168         uart1_pins: pinmux_uart1_pins {
169                 pinctrl-single,pins = <
170                         AM33XX_PADCONF(AM335X_PIN_UART1_RXD, PIN_INPUT_PULLUP, MUX_MODE0)
171                         AM33XX_PADCONF(AM335X_PIN_UART1_TXD, PIN_OUTPUT_PULLDOWN, MUX_MODE0)
172                 >;
173         };
174
175         /* GPS */
176         uart2_pins: pinmux_uart2_pins {
177                 pinctrl-single,pins = <
178                         AM33XX_PADCONF(AM335X_PIN_SPI0_SCLK, PIN_INPUT_PULLUP, MUX_MODE1)       /* (A17) spi0_sclk.uart2_rxd */
179                         AM33XX_PADCONF(AM335X_PIN_SPI0_D0, PIN_OUTPUT_PULLDOWN, MUX_MODE1)      /* (B17) spi0_d0.uart2_txd */
180                 >;
181         };
182
183         /* DSM2 */
184         uart4_pins: pinmux_uart4_pins {
185                 pinctrl-single,pins = <
186                         AM33XX_PADCONF(AM335X_PIN_GPMC_WAIT0, PIN_INPUT_PULLUP, MUX_MODE6)      /* (T17) gpmc_wait0.uart4_rxd */
187                 >;
188         };
189
190         /* UT5 */
191         uart5_pins: pinmux_uart5_pins {
192                 pinctrl-single,pins = <
193                         AM33XX_PADCONF(AM335X_PIN_LCD_DATA9, PIN_INPUT_PULLUP, MUX_MODE4)       /* (U2) lcd_data9.uart5_rxd */
194                         AM33XX_PADCONF(AM335X_PIN_LCD_DATA8, PIN_OUTPUT_PULLDOWN, MUX_MODE4)    /* (U1) lcd_data8.uart5_txd */
195                 >;
196         };
197
198         mmc1_pins: pinmux_mmc1_pins {
199                 pinctrl-single,pins = <
200                         AM33XX_PADCONF(AM335X_PIN_SPI0_CS1, PIN_INPUT, MUX_MODE7)               /* (C15) spi0_cs1.gpio0[6] */
201                 >;
202         };
203
204         mmc2_pins: pinmux_mmc2_pins {
205                 pinctrl-single,pins = <
206                         AM33XX_PADCONF(AM335X_PIN_GPMC_CSN1, PIN_INPUT_PULLUP, MUX_MODE2)       /* (U9) gpmc_csn1.mmc1_clk */
207                         AM33XX_PADCONF(AM335X_PIN_GPMC_CSN2, PIN_INPUT_PULLUP, MUX_MODE2)       /* (V9) gpmc_csn2.mmc1_cmd */
208                         AM33XX_PADCONF(AM335X_PIN_GPMC_AD0, PIN_INPUT_PULLUP, MUX_MODE1)        /* (U7) gpmc_ad0.mmc1_dat0 */
209                         AM33XX_PADCONF(AM335X_PIN_GPMC_AD1, PIN_INPUT_PULLUP, MUX_MODE1)        /* (V7) gpmc_ad1.mmc1_dat1 */
210                         AM33XX_PADCONF(AM335X_PIN_GPMC_AD2, PIN_INPUT_PULLUP, MUX_MODE1)        /* (R8) gpmc_ad2.mmc1_dat2 */
211                         AM33XX_PADCONF(AM335X_PIN_GPMC_AD3, PIN_INPUT_PULLUP, MUX_MODE1)        /* (T8) gpmc_ad3.mmc1_dat3 */
212                         AM33XX_PADCONF(AM335X_PIN_GPMC_AD4, PIN_INPUT_PULLUP, MUX_MODE1)        /* (U8) gpmc_ad4.mmc1_dat4 */
213                         AM33XX_PADCONF(AM335X_PIN_GPMC_AD5, PIN_INPUT_PULLUP, MUX_MODE1)        /* (V8) gpmc_ad5.mmc1_dat5 */
214                         AM33XX_PADCONF(AM335X_PIN_GPMC_AD6, PIN_INPUT_PULLUP, MUX_MODE1)        /* (R9) gpmc_ad6.mmc1_dat6 */
215                         AM33XX_PADCONF(AM335X_PIN_GPMC_AD7, PIN_INPUT_PULLUP, MUX_MODE1)        /* (T9) gpmc_ad7.mmc1_dat7 */
216                 >;
217         };
218
219         mmc3_pins: pinmux_mmc3_pins {
220                 pinctrl-single,pins = <
221                         AM33XX_PADCONF(AM335X_PIN_MII1_RXD1, PIN_INPUT_PULLUP, MUX_MODE6)       /* (L15) gmii1_rxd1.mmc2_clk */
222                         AM33XX_PADCONF(AM335X_PIN_MII1_TX_EN, PIN_INPUT_PULLUP, MUX_MODE6)      /* (J16) gmii1_txen.mmc2_cmd */
223                         AM33XX_PADCONF(AM335X_PIN_MII1_RX_DV, PIN_INPUT_PULLUP, MUX_MODE5)      /* (J17) gmii1_rxdv.mmc2_dat0 */
224                         AM33XX_PADCONF(AM335X_PIN_MII1_TXD3, PIN_INPUT_PULLUP, MUX_MODE5)       /* (J18) gmii1_txd3.mmc2_dat1 */
225                         AM33XX_PADCONF(AM335X_PIN_MII1_TXD2, PIN_INPUT_PULLUP, MUX_MODE5)       /* (K15) gmii1_txd2.mmc2_dat2 */
226                         AM33XX_PADCONF(AM335X_PIN_MII1_COL, PIN_INPUT_PULLUP, MUX_MODE5)        /* (H16) gmii1_col.mmc2_dat3 */
227                 >;
228         };
229
230         bt_pins: pinmux_bt_pins {
231                 pinctrl-single,pins = <
232                         AM33XX_PADCONF(AM335X_PIN_MII1_TXD0, PIN_OUTPUT_PULLUP, MUX_MODE7)      /* (K17) gmii1_txd0.gpio0[28] - BT_EN */
233                 >;
234         };
235
236         uart3_pins: pinmux_uart3_pins {
237                 pinctrl-single,pins = <
238                         AM33XX_PADCONF(AM335X_PIN_MII1_RXD3, PIN_INPUT_PULLUP, MUX_MODE1)       /* (L17) gmii1_rxd3.uart3_rxd */
239                         AM33XX_PADCONF(AM335X_PIN_MII1_RXD2, PIN_OUTPUT_PULLDOWN, MUX_MODE1)    /* (L16) gmii1_rxd2.uart3_txd */
240                         AM33XX_PADCONF(AM335X_PIN_MDIO, PIN_INPUT, MUX_MODE3)           /* (M17) mdio_data.uart3_ctsn */
241                         AM33XX_PADCONF(AM335X_PIN_MDC, PIN_OUTPUT_PULLDOWN, MUX_MODE3)  /* (M18) mdio_clk.uart3_rtsn */
242                 >;
243         };
244
245         wl18xx_pins: pinmux_wl18xx_pins {
246                 pinctrl-single,pins = <
247                         AM33XX_PADCONF(AM335X_PIN_MII1_TX_CLK, PIN_OUTPUT_PULLDOWN, MUX_MODE7)  /* (K18) gmii1_txclk.gpio3[9] - WL_EN */
248                         AM33XX_PADCONF(AM335X_PIN_MII1_TXD1, PIN_INPUT_PULLDOWN, MUX_MODE7)     /* (K16) gmii1_txd1.gpio0[21] - WL_IRQ */
249                         AM33XX_PADCONF(AM335X_PIN_MII1_RX_CLK, PIN_OUTPUT_PULLUP, MUX_MODE7)    /* (L18) gmii1_rxclk.gpio3[10] - LS_BUF_EN */
250                 >;
251         };
252
253         /* DCAN */
254         dcan1_pins: pinmux_dcan1_pins {
255                 pinctrl-single,pins = <
256                         AM33XX_PADCONF(AM335X_PIN_UART0_RTSN, PIN_INPUT, MUX_MODE2)             /* (E17) uart0_rtsn.dcan1_rx */
257                         AM33XX_PADCONF(AM335X_PIN_UART0_CTSN, PIN_OUTPUT, MUX_MODE2)            /* (E18) uart0_ctsn.dcan1_tx */
258                         AM33XX_PADCONF(AM335X_PIN_MII1_RXD0, PIN_OUTPUT, MUX_MODE7)             /* (M16) gmii1_rxd0.gpio2[21] */
259                 >;
260         };
261 };
262
263 &uart0 {
264         pinctrl-names = "default";
265         pinctrl-0 = <&uart0_pins>;
266
267         status = "okay";
268 };
269
270 &uart1 {
271         pinctrl-names = "default";
272         pinctrl-0 = <&uart1_pins>;
273
274         status = "okay";
275 };
276
277 &uart2 {
278         pinctrl-names = "default";
279         pinctrl-0 = <&uart2_pins>;
280
281         status = "okay";
282 };
283
284 &uart4 {
285         pinctrl-names = "default";
286         pinctrl-0 = <&uart4_pins>;
287
288         status = "okay";
289 };
290
291 &uart5 {
292         pinctrl-names = "default";
293         pinctrl-0 = <&uart5_pins>;
294
295         status = "okay";
296 };
297
298 &usb {
299         status = "okay";
300 };
301
302 &usb_ctrl_mod {
303         status = "okay";
304 };
305
306 &usb0_phy {
307         status = "okay";
308 };
309
310 &usb1_phy {
311         status = "okay";
312 };
313
314 &usb0 {
315         status = "okay";
316         dr_mode = "peripheral";
317         interrupts-extended = <&intc 18 &tps 0>;
318         interrupt-names = "mc", "vbus";
319 };
320
321 &usb1 {
322         status = "okay";
323         dr_mode = "host";
324 };
325
326 &cppi41dma  {
327         status = "okay";
328 };
329
330 &i2c0 {
331         pinctrl-names = "default";
332         pinctrl-0 = <&i2c0_pins>;
333
334         status = "okay";
335         clock-frequency = <400000>;
336
337         tps: tps@24 {
338                 reg = <0x24>;
339         };
340
341         baseboard_eeprom: baseboard_eeprom@50 {
342                 compatible = "atmel,24c256";
343                 reg = <0x50>;
344
345                 #address-cells = <1>;
346                 #size-cells = <1>;
347                 baseboard_data: baseboard_data@0 {
348                         reg = <0 0x100>;
349                 };
350         };
351 };
352
353 &i2c2 {
354         pinctrl-names = "default";
355         pinctrl-0 = <&i2c2_pins>;
356
357         status = "okay";
358         clock-frequency = <400000>;
359
360         mpu9250@68 {
361                 compatible = "invensense,mpu9250";
362                 reg = <0x68>;
363                 interrupt-parent = <&gpio3>;
364                 interrupts = <21 IRQ_TYPE_EDGE_RISING>;
365                 i2c-gate {
366                         #address-cells = <1>;
367                         #size-cells = <0>;
368                         ax8975@c {
369                                 compatible = "ak,ak8975";
370                                 reg = <0x0c>;
371                         };
372                 };
373         };
374
375         pressure@76 {
376                 compatible = "bosch,bmp280";
377                 reg = <0x76>;
378         };
379 };
380
381 /include/ "tps65217.dtsi"
382
383 &tps {
384         interrupts = <7>; /* NMI */
385         interrupt-parent = <&intc>;
386
387         charger {
388                 interrupts = <0>, <1>;
389                 interrupt-names = "USB", "AC";
390                 status = "okay";
391         };
392
393         pwrbutton {
394                 interrupts = <2>;
395                 status = "okay";
396         };
397
398         regulators {
399                 dcdc1_reg: regulator@0 {
400                         regulator-name = "vdds_dpr";
401                         regulator-always-on;
402                 };
403
404                 dcdc2_reg: regulator@1 {
405                         /* VDD_MPU voltage limits 0.95V - 1.26V with +/-4% tolerance */
406                         regulator-name = "vdd_mpu";
407                         regulator-min-microvolt = <925000>;
408                         regulator-max-microvolt = <1351500>;
409                         regulator-boot-on;
410                         regulator-always-on;
411                 };
412
413                 dcdc3_reg: regulator@2 {
414                         /* VDD_CORE voltage limits 0.95V - 1.1V with +/-4% tolerance */
415                         regulator-name = "vdd_core";
416                         regulator-min-microvolt = <925000>;
417                         regulator-max-microvolt = <1150000>;
418                         regulator-boot-on;
419                         regulator-always-on;
420                 };
421
422                 ldo1_reg: regulator@3 {
423                         regulator-name = "vio,vrtc,vdds";
424                         regulator-always-on;
425                 };
426
427                 ldo2_reg: regulator@4 {
428                         regulator-name = "vdd_3v3aux";
429                         regulator-always-on;
430                 };
431
432                 ldo3_reg: regulator@5 {
433                         regulator-name = "vdd_1v8";
434                         regulator-min-microvolt = <1800000>;
435                         regulator-max-microvolt = <1800000>;
436                         regulator-always-on;
437                 };
438
439                 ldo4_reg: regulator@6 {
440                         regulator-name = "vdd_3v3a";
441                         regulator-always-on;
442                 };
443         };
444 };
445
446 &mmc1 {
447         status = "okay";
448         vmmc-supply = <&vmmcsd_fixed>;
449         bus-width = <4>;
450         pinctrl-names = "default";
451         pinctrl-0 = <&mmc1_pins>;
452         cd-gpios = <&gpio0 6 GPIO_ACTIVE_LOW>;
453 };
454
455 &mmc2 {
456         status = "okay";
457         vmmc-supply = <&vmmcsd_fixed>;
458         bus-width = <8>;
459         pinctrl-names = "default";
460         pinctrl-0 = <&mmc2_pins>;
461 };
462
463 &mmc3 {
464         dmas = <&edma_xbar 12 0 1
465                 &edma_xbar 13 0 2>;
466         dma-names = "tx", "rx";
467         status = "okay";
468         vmmc-supply = <&wlan_en_reg>;
469         bus-width = <4>;
470         non-removable;
471         cap-power-off-card;
472         ti,needs-special-hs-handling;
473         keep-power-in-suspend;
474         pinctrl-names = "default";
475         pinctrl-0 = <&mmc3_pins &wl18xx_pins>;
476
477         #address-cells = <1>;
478         #size-cells = <0>;
479         wlcore: wlcore@2 {
480                 compatible = "ti,wl1835";
481                 reg = <2>;
482                 interrupt-parent = <&gpio0>;
483                 interrupts = <21 IRQ_TYPE_EDGE_RISING>;
484         };
485 };
486
487 &tscadc {
488         status = "okay";
489         adc {
490                 ti,adc-channels = <0 1 2 3 4 5 6 7>;
491         };
492 };
493
494 &uart3 {
495         pinctrl-names = "default";
496         pinctrl-0 = <&uart3_pins &bt_pins>;
497         status = "okay";
498
499         bluetooth {
500                 compatible = "ti,wl1835-st";
501                 enable-gpios = <&gpio0 28 GPIO_ACTIVE_HIGH>;
502         };
503 };
504
505 &aes {
506         status = "okay";
507 };
508
509 &sham {
510         status = "okay";
511 };
512
513 &rtc {
514         system-power-controller;
515         clocks = <&clk_32768_ck>, <&clk_24mhz_clkctrl AM3_CLK_24MHZ_CLKDIV32K_CLKCTRL 0>;
516         clock-names = "ext-clk", "int-clk";
517 };
518
519 &dcan1 {
520         pinctrl-names = "default";
521         pinctrl-0 = <&dcan1_pins>;
522         status = "okay";
523 };
524
525 &gpio3 {
526         ls_buf_en {
527                 gpio-hog;
528                 gpios = <10 GPIO_ACTIVE_HIGH>;
529                 output-high;
530                 line-name = "LS_BUF_EN";
531         };
532 };