WIP FPC-III support
[linux/fpc-iii.git] / arch / arm / boot / dts / am57xx-beagle-x15-common.dtsi
blob6b82ecf803c5edd49551b1c76ae1972a7bc3137c
1 // SPDX-License-Identifier: GPL-2.0-only
2 /*
3  * Copyright (C) 2014-2016 Texas Instruments Incorporated - https://www.ti.com/
4  */
5 /dts-v1/;
7 #include "am5728.dtsi"
8 #include "am57xx-commercial-grade.dtsi"
9 #include "dra74x-mmc-iodelay.dtsi"
10 #include "dra74-ipu-dsp-common.dtsi"
11 #include <dt-bindings/gpio/gpio.h>
12 #include <dt-bindings/interrupt-controller/irq.h>
14 / {
15         compatible = "ti,am572x-beagle-x15", "ti,am5728", "ti,dra742", "ti,dra74", "ti,dra7";
17         aliases {
18                 rtc0 = &mcp_rtc;
19                 rtc1 = &tps659038_rtc;
20                 rtc2 = &rtc;
21                 display0 = &hdmi0;
22         };
24         chosen {
25                 stdout-path = &uart3;
26         };
28         memory@0 {
29                 device_type = "memory";
30                 reg = <0x0 0x80000000 0x0 0x80000000>;
31         };
33         main_12v0: fixedregulator-main_12v0 {
34                 /* main supply */
35                 compatible = "regulator-fixed";
36                 regulator-name = "main_12v0";
37                 regulator-min-microvolt = <12000000>;
38                 regulator-max-microvolt = <12000000>;
39                 regulator-always-on;
40                 regulator-boot-on;
41         };
43         evm_5v0: fixedregulator-evm_5v0 {
44                 /* Output of TPS54531D */
45                 compatible = "regulator-fixed";
46                 regulator-name = "evm_5v0";
47                 regulator-min-microvolt = <5000000>;
48                 regulator-max-microvolt = <5000000>;
49                 vin-supply = <&main_12v0>;
50                 regulator-always-on;
51                 regulator-boot-on;
52         };
54         reserved-memory {
55                 #address-cells = <2>;
56                 #size-cells = <2>;
57                 ranges;
59                 ipu2_memory_region: ipu2-memory@95800000 {
60                         compatible = "shared-dma-pool";
61                         reg = <0x0 0x95800000 0x0 0x3800000>;
62                         reusable;
63                         status = "okay";
64                 };
66                 dsp1_memory_region: dsp1-memory@99000000 {
67                         compatible = "shared-dma-pool";
68                         reg = <0x0 0x99000000 0x0 0x4000000>;
69                         reusable;
70                         status = "okay";
71                 };
73                 ipu1_memory_region: ipu1-memory@9d000000 {
74                         compatible = "shared-dma-pool";
75                         reg = <0x0 0x9d000000 0x0 0x2000000>;
76                         reusable;
77                         status = "okay";
78                 };
80                 dsp2_memory_region: dsp2-memory@9f000000 {
81                         compatible = "shared-dma-pool";
82                         reg = <0x0 0x9f000000 0x0 0x800000>;
83                         reusable;
84                         status = "okay";
85                 };
86         };
88         vdd_3v3: fixedregulator-vdd_3v3 {
89                 compatible = "regulator-fixed";
90                 regulator-name = "vdd_3v3";
91                 vin-supply = <&regen1>;
92                 regulator-min-microvolt = <3300000>;
93                 regulator-max-microvolt = <3300000>;
94         };
96         aic_dvdd: fixedregulator-aic_dvdd {
97                 compatible = "regulator-fixed";
98                 regulator-name = "aic_dvdd_fixed";
99                 vin-supply = <&vdd_3v3>;
100                 regulator-min-microvolt = <1800000>;
101                 regulator-max-microvolt = <1800000>;
102         };
104         vtt_fixed: fixedregulator-vtt {
105                 /* TPS51200 */
106                 compatible = "regulator-fixed";
107                 regulator-name = "vtt_fixed";
108                 vin-supply = <&smps3_reg>;
109                 regulator-min-microvolt = <3300000>;
110                 regulator-max-microvolt = <3300000>;
111                 regulator-always-on;
112                 regulator-boot-on;
113                 enable-active-high;
114                 gpio = <&gpio7 11 GPIO_ACTIVE_HIGH>;
115         };
117         leds {
118                 compatible = "gpio-leds";
120                 led0 {
121                         label = "beagle-x15:usr0";
122                         gpios = <&gpio7 9 GPIO_ACTIVE_HIGH>;
123                         linux,default-trigger = "heartbeat";
124                         default-state = "off";
125                 };
127                 led1 {
128                         label = "beagle-x15:usr1";
129                         gpios = <&gpio7 8 GPIO_ACTIVE_HIGH>;
130                         linux,default-trigger = "cpu0";
131                         default-state = "off";
132                 };
134                 led2 {
135                         label = "beagle-x15:usr2";
136                         gpios = <&gpio7 14 GPIO_ACTIVE_HIGH>;
137                         linux,default-trigger = "mmc0";
138                         default-state = "off";
139                 };
141                 led3 {
142                         label = "beagle-x15:usr3";
143                         gpios = <&gpio7 15 GPIO_ACTIVE_HIGH>;
144                         linux,default-trigger = "disk-activity";
145                         default-state = "off";
146                 };
147         };
149         gpio_fan: gpio_fan {
150                 /* Based on 5v 500mA AFB02505HHB */
151                 compatible = "gpio-fan";
152                 gpios =  <&tps659038_gpio 2 GPIO_ACTIVE_HIGH>;
153                 gpio-fan,speed-map = <0     0>,
154                                      <13000 1>;
155                 #cooling-cells = <2>;
156         };
158         hdmi0: connector {
159                 compatible = "hdmi-connector";
160                 label = "hdmi";
162                 type = "a";
164                 port {
165                         hdmi_connector_in: endpoint {
166                                 remote-endpoint = <&tpd12s015_out>;
167                         };
168                 };
169         };
171         tpd12s015: encoder {
172                 compatible = "ti,tpd12s015";
174                 ports {
175                         #address-cells = <1>;
176                         #size-cells = <0>;
178                         port@0 {
179                                 reg = <0>;
181                                 tpd12s015_in: endpoint {
182                                         remote-endpoint = <&hdmi_out>;
183                                 };
184                         };
186                         port@1 {
187                                 reg = <1>;
189                                 tpd12s015_out: endpoint {
190                                         remote-endpoint = <&hdmi_connector_in>;
191                                 };
192                         };
193                 };
194         };
196         sound0: sound0 {
197                 compatible = "simple-audio-card";
198                 simple-audio-card,name = "BeagleBoard-X15";
199                 simple-audio-card,widgets =
200                         "Line", "Line Out",
201                         "Line", "Line In";
202                 simple-audio-card,routing =
203                         "Line Out",     "LLOUT",
204                         "Line Out",     "RLOUT",
205                         "MIC2L",        "Line In",
206                         "MIC2R",        "Line In";
207                 simple-audio-card,format = "dsp_b";
208                 simple-audio-card,bitclock-master = <&sound0_master>;
209                 simple-audio-card,frame-master = <&sound0_master>;
210                 simple-audio-card,bitclock-inversion;
212                 simple-audio-card,cpu {
213                         sound-dai = <&mcasp3>;
214                 };
216                 sound0_master: simple-audio-card,codec {
217                         sound-dai = <&tlv320aic3104>;
218                         clocks = <&clkout2_clk>;
219                 };
220         };
223 &i2c1 {
224         status = "okay";
225         clock-frequency = <400000>;
227         tps659038: tps659038@58 {
228                 compatible = "ti,tps659038";
229                 reg = <0x58>;
230                 interrupt-parent = <&gpio1>;
231                 interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
233                 #interrupt-cells = <2>;
234                 interrupt-controller;
236                 ti,system-power-controller;
237                 ti,palmas-override-powerhold;
239                 tps659038_pmic {
240                         compatible = "ti,tps659038-pmic";
242                         regulators {
243                                 smps12_reg: smps12 {
244                                         /* VDD_MPU */
245                                         regulator-name = "smps12";
246                                         regulator-min-microvolt = < 850000>;
247                                         regulator-max-microvolt = <1250000>;
248                                         regulator-always-on;
249                                         regulator-boot-on;
250                                 };
252                                 smps3_reg: smps3 {
253                                         /* VDD_DDR */
254                                         regulator-name = "smps3";
255                                         regulator-min-microvolt = <1350000>;
256                                         regulator-max-microvolt = <1350000>;
257                                         regulator-always-on;
258                                         regulator-boot-on;
259                                 };
261                                 smps45_reg: smps45 {
262                                         /* VDD_DSPEVE, VDD_IVA, VDD_GPU */
263                                         regulator-name = "smps45";
264                                         regulator-min-microvolt = < 850000>;
265                                         regulator-max-microvolt = <1250000>;
266                                         regulator-always-on;
267                                         regulator-boot-on;
268                                 };
270                                 smps6_reg: smps6 {
271                                         /* VDD_CORE */
272                                         regulator-name = "smps6";
273                                         regulator-min-microvolt = <850000>;
274                                         regulator-max-microvolt = <1150000>;
275                                         regulator-always-on;
276                                         regulator-boot-on;
277                                 };
279                                 /* SMPS7 unused */
281                                 smps8_reg: smps8 {
282                                         /* VDD_1V8 */
283                                         regulator-name = "smps8";
284                                         regulator-min-microvolt = <1800000>;
285                                         regulator-max-microvolt = <1800000>;
286                                         regulator-always-on;
287                                         regulator-boot-on;
288                                 };
290                                 /* SMPS9 unused */
292                                 ldo1_reg: ldo1 {
293                                         /* VDD_SD / VDDSHV8  */
294                                         regulator-name = "ldo1";
295                                         regulator-min-microvolt = <1800000>;
296                                         regulator-max-microvolt = <3300000>;
297                                         regulator-boot-on;
298                                         regulator-always-on;
299                                 };
301                                 ldo2_reg: ldo2 {
302                                         /* VDD_SHV5 */
303                                         regulator-name = "ldo2";
304                                         regulator-min-microvolt = <3300000>;
305                                         regulator-max-microvolt = <3300000>;
306                                         regulator-always-on;
307                                         regulator-boot-on;
308                                 };
310                                 ldo3_reg: ldo3 {
311                                         /* VDDA_1V8_PHYA */
312                                         regulator-name = "ldo3";
313                                         regulator-min-microvolt = <1800000>;
314                                         regulator-max-microvolt = <1800000>;
315                                         regulator-always-on;
316                                         regulator-boot-on;
317                                 };
319                                 ldo4_reg: ldo4 {
320                                         /* VDDA_1V8_PHYB */
321                                         regulator-name = "ldo4";
322                                         regulator-min-microvolt = <1800000>;
323                                         regulator-max-microvolt = <1800000>;
324                                         regulator-always-on;
325                                         regulator-boot-on;
326                                 };
328                                 ldo9_reg: ldo9 {
329                                         /* VDD_RTC */
330                                         regulator-name = "ldo9";
331                                         regulator-min-microvolt = <1050000>;
332                                         regulator-max-microvolt = <1050000>;
333                                         regulator-always-on;
334                                         regulator-boot-on;
335                                 };
337                                 ldoln_reg: ldoln {
338                                         /* VDDA_1V8_PLL */
339                                         regulator-name = "ldoln";
340                                         regulator-min-microvolt = <1800000>;
341                                         regulator-max-microvolt = <1800000>;
342                                         regulator-always-on;
343                                         regulator-boot-on;
344                                 };
346                                 ldousb_reg: ldousb {
347                                         /* VDDA_3V_USB: VDDA_USBHS33 */
348                                         regulator-name = "ldousb";
349                                         regulator-min-microvolt = <3300000>;
350                                         regulator-max-microvolt = <3300000>;
351                                         regulator-boot-on;
352                                 };
354                                 regen1: regen1 {
355                                         /* VDD_3V3_ON */
356                                         regulator-name = "regen1";
357                                         regulator-boot-on;
358                                         regulator-always-on;
359                                 };
360                         };
361                 };
363                 tps659038_rtc: tps659038_rtc {
364                         compatible = "ti,palmas-rtc";
365                         interrupt-parent = <&tps659038>;
366                         interrupts = <8 IRQ_TYPE_EDGE_FALLING>;
367                         wakeup-source;
368                 };
370                 tps659038_pwr_button: tps659038_pwr_button {
371                         compatible = "ti,palmas-pwrbutton";
372                         interrupt-parent = <&tps659038>;
373                         interrupts = <1 IRQ_TYPE_EDGE_FALLING>;
374                         wakeup-source;
375                         ti,palmas-long-press-seconds = <12>;
376                 };
378                 tps659038_gpio: tps659038_gpio {
379                         compatible = "ti,palmas-gpio";
380                         gpio-controller;
381                         #gpio-cells = <2>;
382                 };
384                 extcon_usb2: tps659038_usb {
385                         compatible = "ti,palmas-usb-vid";
386                         ti,enable-vbus-detection;
387                         vbus-gpio = <&gpio4 21 GPIO_ACTIVE_HIGH>;
388                 };
390         };
392         tmp102: tmp102@48 {
393                 compatible = "ti,tmp102";
394                 reg = <0x48>;
395                 interrupt-parent = <&gpio7>;
396                 interrupts = <16 IRQ_TYPE_LEVEL_LOW>;
397                 #thermal-sensor-cells = <1>;
398         };
400         tlv320aic3104: tlv320aic3104@18 {
401                 #sound-dai-cells = <0>;
402                 compatible = "ti,tlv320aic3104";
403                 reg = <0x18>;
404                 assigned-clocks = <&clkoutmux2_clk_mux>;
405                 assigned-clock-parents = <&sys_clk2_dclk_div>;
407                 status = "okay";
408                 adc-settle-ms = <40>;
410                 AVDD-supply = <&vdd_3v3>;
411                 IOVDD-supply = <&vdd_3v3>;
412                 DRVDD-supply = <&vdd_3v3>;
413                 DVDD-supply = <&aic_dvdd>;
414         };
416         eeprom: eeprom@50 {
417                 compatible = "atmel,24c32";
418                 reg = <0x50>;
419         };
422 &i2c3 {
423         status = "okay";
424         clock-frequency = <400000>;
426         mcp_rtc: rtc@6f {
427                 compatible = "microchip,mcp7941x";
428                 reg = <0x6f>;
429                 interrupts-extended = <&crossbar_mpu GIC_SPI 2 IRQ_TYPE_EDGE_RISING>,
430                                       <&dra7_pmx_core 0x424>;
431                 interrupt-names = "irq", "wakeup";
433                 vcc-supply = <&vdd_3v3>;
434                 wakeup-source;
435         };
438 &gpio7_target {
439         ti,no-reset-on-init;
440         ti,no-idle-on-init;
443 &cpu0 {
444         vdd-supply = <&smps12_reg>;
445         voltage-tolerance = <1>;
448 &uart3 {
449         status = "okay";
450         interrupts-extended = <&crossbar_mpu GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>,
451                               <&dra7_pmx_core 0x3f8>;
454 &davinci_mdio_sw {
455         phy0: ethernet-phy@1 {
456                 reg = <1>;
457         };
459         phy1: ethernet-phy@2 {
460                 reg = <2>;
461         };
464 &mac_sw {
465         status = "okay";
468 &cpsw_port1 {
469         phy-handle = <&phy0>;
470         phy-mode = "rgmii-rxid";
471         ti,dual-emac-pvid = <1>;
474 &cpsw_port2 {
475         phy-handle = <&phy1>;
476         phy-mode = "rgmii-rxid";
477         ti,dual-emac-pvid = <2>;
480 &mmc1 {
481         status = "okay";
483         pinctrl-names = "default";
484         pinctrl-0 = <&mmc1_pins_default>;
486         bus-width = <4>;
487         cd-gpios = <&gpio6 27 GPIO_ACTIVE_LOW>; /* gpio 219 */
488         no-1-8-v;
491 &mmc2 {
492         status = "okay";
494         pinctrl-names = "default";
495         pinctrl-0 = <&mmc2_pins_default>;
497         vmmc-supply = <&vdd_3v3>;
498         vqmmc-supply = <&vdd_3v3>;
499         bus-width = <8>;
500         non-removable;
501         no-1-8-v;
504 &sata {
505         status = "okay";
508 &usb2_phy1 {
509         phy-supply = <&ldousb_reg>;
512 &usb2_phy2 {
513         phy-supply = <&ldousb_reg>;
516 &usb1 {
517         dr_mode = "host";
520 &omap_dwc3_2 {
521         extcon = <&extcon_usb2>;
524 &usb2 {
525         /*
526          * Stand alone usage is peripheral only.
527          * However, with some resistor modifications
528          * this port can be used via expansion connectors
529          * as "host" or "dual-role". If so, provide
530          * the necessary dr_mode override in the expansion
531          * board's DT.
532          */
533         dr_mode = "peripheral";
536 &cpu_trips {
537         cpu_alert1: cpu_alert1 {
538                 temperature = <50000>; /* millicelsius */
539                 hysteresis = <2000>; /* millicelsius */
540                 type = "active";
541         };
544 &cpu_cooling_maps {
545         map1 {
546                 trip = <&cpu_alert1>;
547                 cooling-device = <&gpio_fan THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
548         };
551 &thermal_zones {
552         board_thermal: board_thermal {
553                 polling-delay-passive = <1250>; /* milliseconds */
554                 polling-delay = <1500>; /* milliseconds */
556                                 /* sensor       ID */
557                 thermal-sensors = <&tmp102     0>;
559                 board_trips: trips {
560                         board_alert0: board_alert {
561                                 temperature = <40000>; /* millicelsius */
562                                 hysteresis = <2000>; /* millicelsius */
563                                 type = "active";
564                         };
566                         board_crit: board_crit {
567                                 temperature = <105000>; /* millicelsius */
568                                 hysteresis = <0>; /* millicelsius */
569                                 type = "critical";
570                         };
571                 };
573                 board_cooling_maps: cooling-maps {
574                         map0 {
575                                 trip = <&board_alert0>;
576                                 cooling-device =
577                                   <&gpio_fan THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
578                         };
579                 };
580        };
583 &dss {
584         status = "okay";
586         vdda_video-supply = <&ldoln_reg>;
589 &hdmi {
590         status = "okay";
591         vdda-supply = <&ldo4_reg>;
593         port {
594                 hdmi_out: endpoint {
595                         remote-endpoint = <&tpd12s015_in>;
596                 };
597         };
600 &pcie1_rc {
601         status = "okay";
602         gpios = <&gpio2 8 GPIO_ACTIVE_LOW>;
605 &mcasp3 {
606         #sound-dai-cells = <0>;
607         assigned-clocks = <&l4per2_clkctrl DRA7_L4PER2_MCASP3_CLKCTRL 24>;
608         assigned-clock-parents = <&sys_clkin2>;
609         status = "okay";
611         op-mode = <0>;  /* MCASP_IIS_MODE */
612         tdm-slots = <2>;
613         /* 4 serializers */
614         serial-dir = <  /* 0: INACTIVE, 1: TX, 2: RX */
615                 1 2 0 0
616         >;
617         tx-num-evt = <32>;
618         rx-num-evt = <32>;
621 &ipu2 {
622         status = "okay";
623         memory-region = <&ipu2_memory_region>;
626 &ipu1 {
627         status = "okay";
628         memory-region = <&ipu1_memory_region>;
631 &dsp1 {
632         status = "okay";
633         memory-region = <&dsp1_memory_region>;
636 &dsp2 {
637         status = "okay";
638         memory-region = <&dsp2_memory_region>;