1 // SPDX-License-Identifier: GPL-2.0-only
3 * Support for CompuLab CL-SOM-AM57x System-on-Module
5 * Copyright (C) 2015 CompuLab Ltd. - http://www.compulab.co.il/
6 * Author: Dmitry Lifshitz <lifshitz@compulab.co.il>
11 #include <dt-bindings/gpio/gpio.h>
12 #include <dt-bindings/interrupt-controller/irq.h>
13 #include "am5728.dtsi"
16 model = "CompuLab CL-SOM-AM57x";
17 compatible = "compulab,cl-som-am57x", "ti,am5728", "ti,dra742", "ti,dra74", "ti,dra7";
20 device_type = "memory";
21 reg = <0x0 0x80000000 0x0 0x20000000>; /* 512 MB - minimal configuration */
25 compatible = "gpio-leds";
26 pinctrl-names = "default";
27 pinctrl-0 = <&leds_pins_default>;
30 label = "cl-som-am57x:green";
31 gpios = <&gpio2 5 GPIO_ACTIVE_HIGH>;
32 linux,default-trigger = "heartbeat";
33 default-state = "off";
37 vdd_3v3: fixedregulator-vdd_3v3 {
38 compatible = "regulator-fixed";
39 regulator-name = "vdd_3v3";
40 regulator-min-microvolt = <3300000>;
41 regulator-max-microvolt = <3300000>;
44 ads7846reg: fixedregulator-ads7846-reg {
45 compatible = "regulator-fixed";
46 regulator-name = "ads7846-reg";
47 regulator-min-microvolt = <3300000>;
48 regulator-max-microvolt = <3300000>;
52 compatible = "simple-audio-card";
53 simple-audio-card,name = "CL-SOM-AM57x-Sound-Card";
54 simple-audio-card,format = "i2s";
55 simple-audio-card,bitclock-master = <&dailink0_master>;
56 simple-audio-card,frame-master = <&dailink0_master>;
57 simple-audio-card,widgets =
58 "Headphone", "Headphone Jack",
59 "Microphone", "Microphone Jack",
61 simple-audio-card,routing =
62 "Headphone Jack", "RHPOUT",
63 "Headphone Jack", "LHPOUT",
64 "LLINEIN", "Line Jack",
66 "Mic Bias", "Microphone Jack";
68 dailink0_master: simple-audio-card,cpu {
69 sound-dai = <&mcasp3>;
72 simple-audio-card,codec {
73 sound-dai = <&wm8731>;
74 system-clock-frequency = <12000000>;
80 leds_pins_default: leds_pins_default {
81 pinctrl-single,pins = <
82 DRA7XX_CORE_IOPAD(0x347c, PIN_OUTPUT | MUX_MODE14) /* gpmc_a15.gpio2_5 */
86 i2c1_pins_default: i2c1_pins_default {
87 pinctrl-single,pins = <
88 DRA7XX_CORE_IOPAD(0x3800, PIN_INPUT_PULLUP | MUX_MODE0) /* i2c1_sda.sda */
89 DRA7XX_CORE_IOPAD(0x3804, PIN_INPUT_PULLUP | MUX_MODE0) /* i2c1_scl.scl */
93 i2c3_pins_default: i2c3_pins_default {
94 pinctrl-single,pins = <
95 DRA7XX_CORE_IOPAD(0x36a4, PIN_INPUT| MUX_MODE10) /* mcasp1_aclkx.i2c3_sda */
96 DRA7XX_CORE_IOPAD(0x36a8, PIN_INPUT| MUX_MODE10) /* mcasp1_fsx.i2c3_scl */
100 i2c4_pins_default: i2c4_pins_default {
101 pinctrl-single,pins = <
102 DRA7XX_CORE_IOPAD(0x36ac, PIN_INPUT| MUX_MODE10) /* mcasp1_acl.i2c4_sda */
103 DRA7XX_CORE_IOPAD(0x36b0, PIN_INPUT| MUX_MODE10) /* mcasp1_fsr.i2c4_scl */
107 tps659038_pins_default: tps659038_pins_default {
108 pinctrl-single,pins = <
109 DRA7XX_CORE_IOPAD(0x3818, PIN_INPUT_PULLUP | MUX_MODE14) /* wakeup0.gpio1_0 */
113 mmc2_pins_default: mmc2_pins_default {
114 pinctrl-single,pins = <
115 DRA7XX_CORE_IOPAD(0x349c, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a23.mmc2_clk */
116 DRA7XX_CORE_IOPAD(0x34b0, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_cs1.mmc2_cmd */
117 DRA7XX_CORE_IOPAD(0x34a0, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a24.mmc2_dat0 */
118 DRA7XX_CORE_IOPAD(0x34a4, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a25.mmc2_dat1 */
119 DRA7XX_CORE_IOPAD(0x34a8, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a26.mmc2_dat2 */
120 DRA7XX_CORE_IOPAD(0x34ac, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a27.mmc2_dat3 */
121 DRA7XX_CORE_IOPAD(0x348c, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a19.mmc2_dat4 */
122 DRA7XX_CORE_IOPAD(0x3490, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a20.mmc2_dat5 */
123 DRA7XX_CORE_IOPAD(0x3494, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a21.mmc2_dat6 */
124 DRA7XX_CORE_IOPAD(0x3498, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a22.mmc2_dat7 */
128 qspi1_pins: pinmux_qspi1_pins {
129 pinctrl-single,pins = <
130 DRA7XX_CORE_IOPAD(0x3474, PIN_INPUT | MUX_MODE1) /* gpmc_a13.qspi1_rtclk */
131 DRA7XX_CORE_IOPAD(0x3480, PIN_INPUT | MUX_MODE1) /* gpmc_a16.qspi1_d0 */
132 DRA7XX_CORE_IOPAD(0x3484, PIN_INPUT | MUX_MODE1) /* gpmc_a17.qspi1_d1 */
133 DRA7XX_CORE_IOPAD(0x3488, PIN_INPUT | MUX_MODE1) /* qpmc_a18.qspi1_sclk */
134 DRA7XX_CORE_IOPAD(0x34b8, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_cs2.qspi1_cs0 */
135 DRA7XX_CORE_IOPAD(0x34bc, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_cs3.qspi1_cs1 */
139 cpsw_pins_default: cpsw_pins_default {
140 pinctrl-single,pins = <
141 /* Slave at addr 0x0 */
142 DRA7XX_CORE_IOPAD(0x3650, PIN_OUTPUT | MUX_MODE0) /* rgmii0_tclk */
143 DRA7XX_CORE_IOPAD(0x3654, PIN_OUTPUT | MUX_MODE0) /* rgmii0_tctl */
144 DRA7XX_CORE_IOPAD(0x3658, PIN_OUTPUT | MUX_MODE0) /* rgmii0_td3 */
145 DRA7XX_CORE_IOPAD(0x365c, PIN_OUTPUT | MUX_MODE0) /* rgmii0_td2 */
146 DRA7XX_CORE_IOPAD(0x3660, PIN_OUTPUT | MUX_MODE0) /* rgmii0_td1 */
147 DRA7XX_CORE_IOPAD(0x3664, PIN_OUTPUT | MUX_MODE0) /* rgmii0_td0 */
148 DRA7XX_CORE_IOPAD(0x3668, PIN_INPUT_PULLDOWN | MUX_MODE0) /* rgmii0_rclk */
149 DRA7XX_CORE_IOPAD(0x366c, PIN_INPUT_PULLDOWN | MUX_MODE0) /* rgmii0_rctl */
150 DRA7XX_CORE_IOPAD(0x3670, PIN_INPUT_PULLDOWN | MUX_MODE0) /* rgmii0_rd3 */
151 DRA7XX_CORE_IOPAD(0x3674, PIN_INPUT_PULLDOWN | MUX_MODE0) /* rgmii0_rd2 */
152 DRA7XX_CORE_IOPAD(0x3678, PIN_INPUT_PULLDOWN | MUX_MODE0) /* rgmii0_rd1 */
153 DRA7XX_CORE_IOPAD(0x367c, PIN_INPUT_PULLDOWN | MUX_MODE0) /* rgmii0_rd0 */
155 /* Slave at addr 0x1 */
156 DRA7XX_CORE_IOPAD(0x3598, PIN_OUTPUT | MUX_MODE3) /* vin2a_d12.rgmii1_tclk */
157 DRA7XX_CORE_IOPAD(0x359c, PIN_OUTPUT | MUX_MODE3) /* vin2a_d13.rgmii1_tctl */
158 DRA7XX_CORE_IOPAD(0x35a0, PIN_OUTPUT | MUX_MODE3) /* vin2a_d14.rgmii1_td3 */
159 DRA7XX_CORE_IOPAD(0x35a4, PIN_OUTPUT | MUX_MODE3) /* vin2a_d15.rgmii1_td2 */
160 DRA7XX_CORE_IOPAD(0x35a8, PIN_OUTPUT | MUX_MODE3) /* vin2a_d16.rgmii1_td1 */
161 DRA7XX_CORE_IOPAD(0x35ac, PIN_OUTPUT | MUX_MODE3) /* vin2a_d17.rgmii1_td0 */
162 DRA7XX_CORE_IOPAD(0x35b0, PIN_INPUT_PULLDOWN | MUX_MODE3) /* vin2a_d18.rgmii1_rclk */
163 DRA7XX_CORE_IOPAD(0x35b4, PIN_INPUT_PULLDOWN | MUX_MODE3) /* vin2a_d19.rgmii1_rctl */
164 DRA7XX_CORE_IOPAD(0x35b8, PIN_INPUT_PULLDOWN | MUX_MODE3) /* vin2a_d20.rgmii1_rd3 */
165 DRA7XX_CORE_IOPAD(0x35bc, PIN_INPUT_PULLDOWN | MUX_MODE3) /* vin2a_d21.rgmii1_rd2 */
166 DRA7XX_CORE_IOPAD(0x35c0, PIN_INPUT_PULLDOWN | MUX_MODE3) /* vin2a_d22.rgmii1_rd1 */
167 DRA7XX_CORE_IOPAD(0x35c4, PIN_INPUT_PULLDOWN | MUX_MODE3) /* vin2a_d23.rgmii1_rd0 */
171 cpsw_pins_sleep: cpsw_pins_sleep {
172 pinctrl-single,pins = <
174 DRA7XX_CORE_IOPAD(0x3650, PIN_INPUT | MUX_MODE15)
175 DRA7XX_CORE_IOPAD(0x3654, PIN_INPUT | MUX_MODE15)
176 DRA7XX_CORE_IOPAD(0x3658, PIN_INPUT | MUX_MODE15)
177 DRA7XX_CORE_IOPAD(0x365c, PIN_INPUT | MUX_MODE15)
178 DRA7XX_CORE_IOPAD(0x3660, PIN_INPUT | MUX_MODE15)
179 DRA7XX_CORE_IOPAD(0x3664, PIN_INPUT | MUX_MODE15)
180 DRA7XX_CORE_IOPAD(0x3668, PIN_INPUT | MUX_MODE15)
181 DRA7XX_CORE_IOPAD(0x366c, PIN_INPUT | MUX_MODE15)
182 DRA7XX_CORE_IOPAD(0x3670, PIN_INPUT | MUX_MODE15)
183 DRA7XX_CORE_IOPAD(0x3674, PIN_INPUT | MUX_MODE15)
184 DRA7XX_CORE_IOPAD(0x3678, PIN_INPUT | MUX_MODE15)
185 DRA7XX_CORE_IOPAD(0x367c, PIN_INPUT | MUX_MODE15)
188 DRA7XX_CORE_IOPAD(0x3598, PIN_INPUT | MUX_MODE15)
189 DRA7XX_CORE_IOPAD(0x359c, PIN_INPUT | MUX_MODE15)
190 DRA7XX_CORE_IOPAD(0x35a0, PIN_INPUT | MUX_MODE15)
191 DRA7XX_CORE_IOPAD(0x35a4, PIN_INPUT | MUX_MODE15)
192 DRA7XX_CORE_IOPAD(0x35a8, PIN_INPUT | MUX_MODE15)
193 DRA7XX_CORE_IOPAD(0x35ac, PIN_INPUT | MUX_MODE15)
194 DRA7XX_CORE_IOPAD(0x35b0, PIN_INPUT | MUX_MODE15)
195 DRA7XX_CORE_IOPAD(0x35b4, PIN_INPUT | MUX_MODE15)
196 DRA7XX_CORE_IOPAD(0x35b8, PIN_INPUT | MUX_MODE15)
197 DRA7XX_CORE_IOPAD(0x35bc, PIN_INPUT | MUX_MODE15)
198 DRA7XX_CORE_IOPAD(0x35c0, PIN_INPUT | MUX_MODE15)
199 DRA7XX_CORE_IOPAD(0x35c4, PIN_INPUT | MUX_MODE15)
203 davinci_mdio_pins_default: davinci_mdio_pins_default {
204 pinctrl-single,pins = <
206 DRA7XX_CORE_IOPAD(0x3590, PIN_OUTPUT_PULLUP | MUX_MODE3)/* vin2a_d10.mdio_mclk */
207 DRA7XX_CORE_IOPAD(0x3594, PIN_INPUT_PULLUP | MUX_MODE3) /* vin2a_d11.mdio_d */
211 davinci_mdio_pins_sleep: davinci_mdio_pins_sleep {
212 pinctrl-single,pins = <
213 DRA7XX_CORE_IOPAD(0x3590, PIN_INPUT | MUX_MODE15)
214 DRA7XX_CORE_IOPAD(0x3594, PIN_INPUT | MUX_MODE15)
218 ads7846_pins: pinmux_ads7846_pins {
219 pinctrl-single,pins = <
220 DRA7XX_CORE_IOPAD(0x3464, PIN_INPUT_PULLDOWN | MUX_MODE14) /* gpmc_a9.gpio1_31 */
224 mcasp3_pins_default: mcasp3_pins_default {
225 pinctrl-single,pins = <
226 DRA7XX_CORE_IOPAD(0x3724, PIN_INPUT_PULLDOWN | MUX_MODE0) /* mcasp3_aclkx.mcasp3_aclkx */
227 DRA7XX_CORE_IOPAD(0x3728, PIN_INPUT_PULLDOWN | MUX_MODE0) /* mcasp3_fsx.mcasp3_fsx */
228 DRA7XX_CORE_IOPAD(0x372c, PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* mcasp3_axr0.mcasp3_axr0 */
229 DRA7XX_CORE_IOPAD(0x3730, PIN_INPUT_PULLDOWN | MUX_MODE0) /* mcasp3_axr1.mcasp3_axr1 */
233 mcasp3_pins_sleep: mcasp3_pins_sleep {
234 pinctrl-single,pins = <
235 DRA7XX_CORE_IOPAD(0x3724, PIN_INPUT | MUX_MODE15)
236 DRA7XX_CORE_IOPAD(0x3728, PIN_INPUT | MUX_MODE15)
237 DRA7XX_CORE_IOPAD(0x372c, PIN_INPUT | MUX_MODE15)
238 DRA7XX_CORE_IOPAD(0x3730, PIN_INPUT | MUX_MODE15)
245 pinctrl-names = "default";
246 pinctrl-0 = <&i2c1_pins_default>;
247 clock-frequency = <400000>;
252 pinctrl-names = "default";
253 pinctrl-0 = <&i2c3_pins_default>;
254 clock-frequency = <400000>;
259 pinctrl-names = "default";
260 pinctrl-0 = <&i2c4_pins_default>;
261 clock-frequency = <400000>;
263 tps659038: tps659038@58 {
264 compatible = "ti,tps659038";
266 interrupt-parent = <&gpio1>;
267 interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
269 pinctrl-names = "default";
270 pinctrl-0 = <&tps659038_pins_default>;
272 #interrupt-cells = <2>;
273 interrupt-controller;
275 ti,system-power-controller;
278 compatible = "ti,tps659038-pmic";
283 regulator-name = "smps12";
284 regulator-min-microvolt = < 850000>;
285 regulator-max-microvolt = <1250000>;
292 regulator-name = "smps3";
293 regulator-min-microvolt = <1500000>;
294 regulator-max-microvolt = <1500000>;
301 regulator-name = "smps45";
302 regulator-min-microvolt = < 850000>;
303 regulator-max-microvolt = <1250000>;
310 regulator-name = "smps6";
311 regulator-min-microvolt = < 850000>;
312 regulator-max-microvolt = <1250000>;
319 regulator-name = "smps7";
320 regulator-min-microvolt = < 850000>;
321 regulator-max-microvolt = <1160000>;
328 regulator-name = "smps8";
329 regulator-min-microvolt = < 850000>;
330 regulator-max-microvolt = <1250000>;
337 regulator-name = "smps9";
338 regulator-min-microvolt = <3300000>;
339 regulator-max-microvolt = <3300000>;
346 /* VDD_SD / VDDSHV8 */
347 regulator-name = "ldo1";
348 regulator-min-microvolt = <1800000>;
349 regulator-max-microvolt = <3300000>;
356 regulator-name = "ldo2";
357 regulator-min-microvolt = <1800000>;
358 regulator-max-microvolt = <1800000>;
364 /* VDDA_1V8_PHYA - supplies VDDA_SATA, VDDA_USB1/2/3 */
365 regulator-name = "ldo3";
366 regulator-min-microvolt = <1800000>;
367 regulator-max-microvolt = <1800000>;
373 /* VDDA_1V8_PHYB - supplies VDDA_HDMI, VDDA_PCIE/0/1 */
374 regulator-name = "ldo4";
375 regulator-min-microvolt = <1800000>;
376 regulator-max-microvolt = <1800000>;
383 regulator-name = "ldo9";
384 regulator-min-microvolt = <1050000>;
385 regulator-max-microvolt = <1050000>;
392 regulator-name = "ldoln";
393 regulator-min-microvolt = <1800000>;
394 regulator-max-microvolt = <1800000>;
400 /* VDDA_3V_USB: VDDA_USBHS33 */
401 regulator-name = "ldousb";
402 regulator-min-microvolt = <3300000>;
403 regulator-max-microvolt = <3300000>;
408 /* regen1 not used */
412 tps659038_pwr_button: tps659038_pwr_button {
413 compatible = "ti,palmas-pwrbutton";
414 interrupt-parent = <&tps659038>;
415 interrupts = <1 IRQ_TYPE_EDGE_FALLING>;
417 ti,palmas-long-press-seconds = <12>;
420 tps659038_gpio: tps659038_gpio {
421 compatible = "ti,palmas-gpio";
428 compatible = "emmicro,em3027";
432 eeprom_module: atmel@50 {
433 compatible = "atmel,24c08";
439 #sound-dai-cells = <0>;
440 compatible = "wlf,wm8731";
447 cpu0-supply = <&smps12_reg>;
448 voltage-tolerance = <1>;
457 mbox_ipu1_ipc3x: mbox_ipu1_ipc3x {
460 mbox_dsp1_ipc3x: mbox_dsp1_ipc3x {
467 mbox_ipu2_ipc3x: mbox_ipu2_ipc3x {
470 mbox_dsp2_ipc3x: mbox_dsp2_ipc3x {
478 pinctrl-names = "default";
479 pinctrl-0 = <&mmc2_pins_default>;
481 vmmc-supply = <&vdd_3v3>;
484 cap-mmc-dual-data-rate;
489 pinctrl-names = "default";
490 pinctrl-0 = <&qspi1_pins>;
492 spi-max-frequency = <48000000>;
494 spi_flash: spi_flash@0 {
495 #address-cells = <1>;
497 compatible = "spansion,m25p80", "jedec,spi-nor";
499 spi-max-frequency = <48000000>;
507 label = "uboot environment";
508 reg = <0xc0000 0x40000>;
513 reg = <0x100000 0x0>;
517 /* touch controller */
519 pinctrl-names = "default";
520 pinctrl-0 = <&ads7846_pins>;
522 compatible = "ti,ads7846";
523 vcc-supply = <&ads7846reg>;
526 spi-max-frequency = <1500000>;
528 interrupt-parent = <&gpio1>;
530 pendown-gpio = <&gpio1 31 0>;
533 ti,x-min = /bits/ 16 <0x0>;
534 ti,x-max = /bits/ 16 <0x0fff>;
535 ti,y-min = /bits/ 16 <0x0>;
536 ti,y-max = /bits/ 16 <0x0fff>;
538 ti,x-plate-ohms = /bits/ 16 <180>;
539 ti,pressure-max = /bits/ 16 <255>;
541 ti,debounce-max = /bits/ 16 <30>;
542 ti,debounce-tol = /bits/ 16 <10>;
543 ti,debounce-rep = /bits/ 16 <1>;
551 pinctrl-names = "default", "sleep";
552 pinctrl-0 = <&cpsw_pins_default>;
553 pinctrl-1 = <&cpsw_pins_sleep>;
557 phy-handle = <ðphy0>;
558 phy-mode = "rgmii-txid";
559 ti,dual-emac-pvid = <1>;
563 phy-handle = <ðphy1>;
564 phy-mode = "rgmii-txid";
565 ti,dual-emac-pvid = <2>;
569 pinctrl-names = "default", "sleep";
570 pinctrl-0 = <&davinci_mdio_pins_default>;
571 pinctrl-1 = <&davinci_mdio_pins_sleep>;
573 ethphy0: ethernet-phy@0 {
577 ethphy1: ethernet-phy@1 {
583 phy-supply = <&ldousb_reg>;
587 phy-supply = <&ldousb_reg>;
599 #sound-dai-cells = <0>;
600 pinctrl-names = "default", "sleep";
601 pinctrl-0 = <&mcasp3_pins_default>;
602 pinctrl-1 = <&mcasp3_pins_sleep>;
605 op-mode = <0>; /* MCASP_IIS_MODE */
608 serial-dir = < /* 0: INACTIVE, 1: TX, 2: RX */