1/*
2 * Copyright (C) 2014 Texas Instruments Incorporated - http://www.ti.com/
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License version 2 as
6 * published by the Free Software Foundation.
7 */
8/dts-v1/;
9
10#include "dra74x.dtsi"
11#include <dt-bindings/gpio/gpio.h>
12#include <dt-bindings/interrupt-controller/irq.h>
13
14/ {
15	model = "TI AM5728 BeagleBoard-X15";
16	compatible = "ti,am572x-beagle-x15", "ti,am5728", "ti,dra742", "ti,dra74", "ti,dra7";
17
18	aliases {
19		rtc0 = &mcp_rtc;
20		rtc1 = &tps659038_rtc;
21		rtc2 = &rtc;
22	};
23
24	memory {
25		device_type = "memory";
26		reg = <0x80000000 0x80000000>;
27	};
28
29	vdd_3v3: fixedregulator-vdd_3v3 {
30		compatible = "regulator-fixed";
31		regulator-name = "vdd_3v3";
32		vin-supply = <&regen1>;
33		regulator-min-microvolt = <3300000>;
34		regulator-max-microvolt = <3300000>;
35	};
36
37	vtt_fixed: fixedregulator-vtt {
38		/* TPS51200 */
39		compatible = "regulator-fixed";
40		regulator-name = "vtt_fixed";
41		vin-supply = <&smps3_reg>;
42		regulator-min-microvolt = <3300000>;
43		regulator-max-microvolt = <3300000>;
44		regulator-always-on;
45		regulator-boot-on;
46		enable-active-high;
47		gpio = <&gpio7 11 GPIO_ACTIVE_HIGH>;
48	};
49
50	leds {
51		compatible = "gpio-leds";
52		pinctrl-names = "default";
53		pinctrl-0 = <&leds_pins_default>;
54
55		led@0 {
56			label = "beagle-x15:usr0";
57			gpios = <&gpio7 9 GPIO_ACTIVE_HIGH>;
58			linux,default-trigger = "heartbeat";
59			default-state = "off";
60		};
61
62		led@1 {
63			label = "beagle-x15:usr1";
64			gpios = <&gpio7 8 GPIO_ACTIVE_HIGH>;
65			linux,default-trigger = "cpu0";
66			default-state = "off";
67		};
68
69		led@2 {
70			label = "beagle-x15:usr2";
71			gpios = <&gpio7 14 GPIO_ACTIVE_HIGH>;
72			linux,default-trigger = "mmc0";
73			default-state = "off";
74		};
75
76		led@3 {
77			label = "beagle-x15:usr3";
78			gpios = <&gpio7 15 GPIO_ACTIVE_HIGH>;
79			linux,default-trigger = "ide-disk";
80			default-state = "off";
81		};
82	};
83
84	gpio_fan: gpio_fan {
85		/* Based on 5v 500mA AFB02505HHB */
86		compatible = "gpio-fan";
87		gpios =  <&tps659038_gpio 2 GPIO_ACTIVE_HIGH>;
88		gpio-fan,speed-map = <0     0>,
89				     <13000 1>;
90		#cooling-cells = <2>;
91	};
92
93	extcon_usb1: extcon_usb1 {
94		compatible = "linux,extcon-usb-gpio";
95		id-gpio = <&gpio7 25 GPIO_ACTIVE_HIGH>;
96		pinctrl-names = "default";
97		pinctrl-0 = <&extcon_usb1_pins>;
98	};
99
100	extcon_usb2: extcon_usb2 {
101		compatible = "linux,extcon-usb-gpio";
102		id-gpio = <&gpio7 24 GPIO_ACTIVE_HIGH>;
103		pinctrl-names = "default";
104		pinctrl-0 = <&extcon_usb2_pins>;
105	};
106};
107
108&dra7_pmx_core {
109	leds_pins_default: leds_pins_default {
110		pinctrl-single,pins = <
111			0x3a8 (PIN_OUTPUT | MUX_MODE14)	/* spi1_d1.gpio7_8 */
112			0x3ac (PIN_OUTPUT | MUX_MODE14)	/* spi1_d0.gpio7_9 */
113			0x3c0 (PIN_OUTPUT | MUX_MODE14)	/* spi2_sclk.gpio7_14 */
114			0x3c4 (PIN_OUTPUT | MUX_MODE14)	/* spi2_d1.gpio7_15 */
115		>;
116	};
117
118	i2c1_pins_default: i2c1_pins_default {
119		pinctrl-single,pins = <
120			0x400 (PIN_INPUT_PULLUP | MUX_MODE0)	/* i2c1_sda.sda */
121			0x404 (PIN_INPUT_PULLUP | MUX_MODE0)	/* i2c1_scl.scl */
122		>;
123	};
124
125	i2c3_pins_default: i2c3_pins_default {
126		pinctrl-single,pins = <
127			0x2a4 (PIN_INPUT| MUX_MODE10)	/* mcasp1_aclkx.i2c3_sda */
128			0x2a8 (PIN_INPUT| MUX_MODE10)	/* mcasp1_fsx.i2c3_scl */
129		>;
130	};
131
132	uart3_pins_default: uart3_pins_default {
133		pinctrl-single,pins = <
134			0x3f8 (PIN_INPUT_SLEW | MUX_MODE2) /* uart2_ctsn.uart3_rxd */
135			0x3fc (PIN_INPUT_SLEW | MUX_MODE1) /* uart2_rtsn.uart3_txd */
136		>;
137	};
138
139	mmc1_pins_default: mmc1_pins_default {
140		pinctrl-single,pins = <
141			0x36c (PIN_INPUT | MUX_MODE14)	/* mmc1sdcd.gpio219 */
142			0x354 (PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_clk.clk */
143			0x358 (PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_cmd.cmd */
144			0x35c (PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_dat0.dat0 */
145			0x360 (PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_dat1.dat1 */
146			0x364 (PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_dat2.dat2 */
147			0x368 (PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_dat3.dat3 */
148		>;
149	};
150
151	mmc2_pins_default: mmc2_pins_default {
152		pinctrl-single,pins = <
153			0x9c (PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a23.mmc2_clk */
154			0xb0 (PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_cs1.mmc2_cmd */
155			0xa0 (PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a24.mmc2_dat0 */
156			0xa4 (PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a25.mmc2_dat1 */
157			0xa8 (PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a26.mmc2_dat2 */
158			0xac (PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a27.mmc2_dat3 */
159			0x8c (PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a19.mmc2_dat4 */
160			0x90 (PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a20.mmc2_dat5 */
161			0x94 (PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a21.mmc2_dat6 */
162			0x98 (PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a22.mmc2_dat7 */
163		>;
164	};
165
166	cpsw_pins_default: cpsw_pins_default {
167		pinctrl-single,pins = <
168			/* Slave 1 */
169			0x250 (PIN_OUTPUT | MUX_MODE0)	/* rgmii1_tclk */
170			0x254 (PIN_OUTPUT | MUX_MODE0)	/* rgmii1_tctl */
171			0x258 (PIN_OUTPUT | MUX_MODE0)	/* rgmii1_td3 */
172			0x25c (PIN_OUTPUT | MUX_MODE0)	/* rgmii1_td2 */
173			0x260 (PIN_OUTPUT | MUX_MODE0)	/* rgmii1_td1 */
174			0x264 (PIN_OUTPUT | MUX_MODE0)	/* rgmii1_td0 */
175			0x268 (PIN_INPUT | MUX_MODE0)	/* rgmii1_rclk */
176			0x26c (PIN_INPUT | MUX_MODE0)	/* rgmii1_rctl */
177			0x270 (PIN_INPUT | MUX_MODE0)	/* rgmii1_rd3 */
178			0x274 (PIN_INPUT | MUX_MODE0)	/* rgmii1_rd2 */
179			0x278 (PIN_INPUT | MUX_MODE0)	/* rgmii1_rd1 */
180			0x27c (PIN_INPUT | MUX_MODE0)	/* rgmii1_rd0 */
181
182			/* Slave 2 */
183			0x198 (PIN_OUTPUT | MUX_MODE3)	/* rgmii2_tclk */
184			0x19c (PIN_OUTPUT | MUX_MODE3)	/* rgmii2_tctl */
185			0x1a0 (PIN_OUTPUT | MUX_MODE3)	/* rgmii2_td3 */
186			0x1a4 (PIN_OUTPUT | MUX_MODE3)	/* rgmii2_td2 */
187			0x1a8 (PIN_OUTPUT | MUX_MODE3)	/* rgmii2_td1 */
188			0x1ac (PIN_OUTPUT | MUX_MODE3)	/* rgmii2_td0 */
189			0x1b0 (PIN_INPUT | MUX_MODE3)	/* rgmii2_rclk */
190			0x1b4 (PIN_INPUT | MUX_MODE3)	/* rgmii2_rctl */
191			0x1b8 (PIN_INPUT | MUX_MODE3)	/* rgmii2_rd3 */
192			0x1bc (PIN_INPUT | MUX_MODE3)	/* rgmii2_rd2 */
193			0x1c0 (PIN_INPUT | MUX_MODE3)	/* rgmii2_rd1 */
194			0x1c4 (PIN_INPUT | MUX_MODE3)	/* rgmii2_rd0 */
195		>;
196
197	};
198
199	cpsw_pins_sleep: cpsw_pins_sleep {
200		pinctrl-single,pins = <
201			/* Slave 1 */
202			0x250 (PIN_INPUT | MUX_MODE15)
203			0x254 (PIN_INPUT | MUX_MODE15)
204			0x258 (PIN_INPUT | MUX_MODE15)
205			0x25c (PIN_INPUT | MUX_MODE15)
206			0x260 (PIN_INPUT | MUX_MODE15)
207			0x264 (PIN_INPUT | MUX_MODE15)
208			0x268 (PIN_INPUT | MUX_MODE15)
209			0x26c (PIN_INPUT | MUX_MODE15)
210			0x270 (PIN_INPUT | MUX_MODE15)
211			0x274 (PIN_INPUT | MUX_MODE15)
212			0x278 (PIN_INPUT | MUX_MODE15)
213			0x27c (PIN_INPUT | MUX_MODE15)
214
215			/* Slave 2 */
216			0x198 (PIN_INPUT | MUX_MODE15)
217			0x19c (PIN_INPUT | MUX_MODE15)
218			0x1a0 (PIN_INPUT | MUX_MODE15)
219			0x1a4 (PIN_INPUT | MUX_MODE15)
220			0x1a8 (PIN_INPUT | MUX_MODE15)
221			0x1ac (PIN_INPUT | MUX_MODE15)
222			0x1b0 (PIN_INPUT | MUX_MODE15)
223			0x1b4 (PIN_INPUT | MUX_MODE15)
224			0x1b8 (PIN_INPUT | MUX_MODE15)
225			0x1bc (PIN_INPUT | MUX_MODE15)
226			0x1c0 (PIN_INPUT | MUX_MODE15)
227			0x1c4 (PIN_INPUT | MUX_MODE15)
228		>;
229	};
230
231	davinci_mdio_pins_default: davinci_mdio_pins_default {
232		pinctrl-single,pins = <
233			/* MDIO */
234			0x23c (PIN_OUTPUT_PULLUP | MUX_MODE0)	/* mdio_mclk */
235			0x240 (PIN_INPUT_PULLUP | MUX_MODE0)	/* mdio_d */
236		>;
237	};
238
239	davinci_mdio_pins_sleep: davinci_mdio_pins_sleep {
240		pinctrl-single,pins = <
241			0x23c (PIN_INPUT | MUX_MODE15)
242			0x240 (PIN_INPUT | MUX_MODE15)
243		>;
244	};
245
246	tps659038_pins_default: tps659038_pins_default {
247		pinctrl-single,pins = <
248			0x418 (PIN_INPUT_PULLUP | MUX_MODE14)	/* wakeup0.gpio1_0 */
249		>;
250	};
251
252	tmp102_pins_default: tmp102_pins_default {
253		pinctrl-single,pins = <
254			0x3C8 (PIN_INPUT_PULLUP | MUX_MODE14)	/* spi2_d0.gpio7_16 */
255		>;
256	};
257
258	mcp79410_pins_default: mcp79410_pins_default {
259		pinctrl-single,pins = <
260			0x424 (PIN_INPUT_PULLUP | MUX_MODE1)	/* wakeup3.sys_nirq1 */
261		>;
262	};
263
264	usb1_pins: pinmux_usb1_pins {
265		pinctrl-single,pins = <
266			0x280 (PIN_INPUT_SLEW | MUX_MODE0) /* usb1_drvvbus */
267		>;
268	};
269
270	extcon_usb1_pins: extcon_usb1_pins {
271		pinctrl-single,pins = <
272			0x3ec (PIN_INPUT_PULLUP | MUX_MODE14) /* uart1_rtsn.gpio7_25 */
273		>;
274	};
275
276	extcon_usb2_pins: extcon_usb2_pins {
277		pinctrl-single,pins = <
278			0x3e8 (PIN_INPUT_PULLUP | MUX_MODE14) /* uart1_ctsn.gpio7_24 */
279		>;
280	};
281};
282
283&i2c1 {
284	status = "okay";
285	pinctrl-names = "default";
286	pinctrl-0 = <&i2c1_pins_default>;
287	clock-frequency = <400000>;
288
289	tps659038: tps659038@58 {
290		compatible = "ti,tps659038";
291		reg = <0x58>;
292		interrupt-parent = <&gpio1>;
293		interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
294
295		pinctrl-names = "default";
296		pinctrl-0 = <&tps659038_pins_default>;
297
298		#interrupt-cells = <2>;
299		interrupt-controller;
300
301		ti,system-power-controller;
302
303		tps659038_pmic {
304			compatible = "ti,tps659038-pmic";
305
306			regulators {
307				smps12_reg: smps12 {
308					/* VDD_MPU */
309					regulator-name = "smps12";
310					regulator-min-microvolt = < 850000>;
311					regulator-max-microvolt = <1250000>;
312					regulator-always-on;
313					regulator-boot-on;
314				};
315
316				smps3_reg: smps3 {
317					/* VDD_DDR */
318					regulator-name = "smps3";
319					regulator-min-microvolt = <1350000>;
320					regulator-max-microvolt = <1350000>;
321					regulator-always-on;
322					regulator-boot-on;
323				};
324
325				smps45_reg: smps45 {
326					/* VDD_DSPEVE, VDD_IVA, VDD_GPU */
327					regulator-name = "smps45";
328					regulator-min-microvolt = < 850000>;
329					regulator-max-microvolt = <1150000>;
330					regulator-always-on;
331					regulator-boot-on;
332				};
333
334				smps6_reg: smps6 {
335					/* VDD_CORE */
336					regulator-name = "smps6";
337					regulator-min-microvolt = <850000>;
338					regulator-max-microvolt = <1030000>;
339					regulator-always-on;
340					regulator-boot-on;
341				};
342
343				/* SMPS7 unused */
344
345				smps8_reg: smps8 {
346					/* VDD_1V8 */
347					regulator-name = "smps8";
348					regulator-min-microvolt = <1800000>;
349					regulator-max-microvolt = <1800000>;
350					regulator-always-on;
351					regulator-boot-on;
352				};
353
354				/* SMPS9 unused */
355
356				ldo1_reg: ldo1 {
357					/* VDD_SD / VDDSHV8  */
358					regulator-name = "ldo1";
359					regulator-min-microvolt = <1800000>;
360					regulator-max-microvolt = <3300000>;
361					regulator-boot-on;
362					regulator-always-on;
363				};
364
365				ldo2_reg: ldo2 {
366					/* VDD_SHV5 */
367					regulator-name = "ldo2";
368					regulator-min-microvolt = <3300000>;
369					regulator-max-microvolt = <3300000>;
370					regulator-always-on;
371					regulator-boot-on;
372				};
373
374				ldo3_reg: ldo3 {
375					/* VDDA_1V8_PHY */
376					regulator-name = "ldo3";
377					regulator-min-microvolt = <1800000>;
378					regulator-max-microvolt = <1800000>;
379					regulator-always-on;
380					regulator-boot-on;
381				};
382
383				ldo9_reg: ldo9 {
384					/* VDD_RTC */
385					regulator-name = "ldo9";
386					regulator-min-microvolt = <1050000>;
387					regulator-max-microvolt = <1050000>;
388					regulator-always-on;
389					regulator-boot-on;
390				};
391
392				ldoln_reg: ldoln {
393					/* VDDA_1V8_PLL */
394					regulator-name = "ldoln";
395					regulator-min-microvolt = <1800000>;
396					regulator-max-microvolt = <1800000>;
397					regulator-always-on;
398					regulator-boot-on;
399				};
400
401				ldousb_reg: ldousb {
402					/* VDDA_3V_USB: VDDA_USBHS33 */
403					regulator-name = "ldousb";
404					regulator-min-microvolt = <3300000>;
405					regulator-max-microvolt = <3300000>;
406					regulator-boot-on;
407				};
408
409				regen1: regen1 {
410					/* VDD_3V3_ON */
411					regulator-name = "regen1";
412					regulator-boot-on;
413					regulator-always-on;
414				};
415			};
416		};
417
418		tps659038_rtc: tps659038_rtc {
419			compatible = "ti,palmas-rtc";
420			interrupt-parent = <&tps659038>;
421			interrupts = <8 IRQ_TYPE_EDGE_FALLING>;
422			wakeup-source;
423		};
424
425		tps659038_pwr_button: tps659038_pwr_button {
426			compatible = "ti,palmas-pwrbutton";
427			interrupt-parent = <&tps659038>;
428			interrupts = <1 IRQ_TYPE_EDGE_FALLING>;
429			wakeup-source;
430			ti,palmas-long-press-seconds = <12>;
431		};
432
433		tps659038_gpio: tps659038_gpio {
434			compatible = "ti,palmas-gpio";
435			gpio-controller;
436			#gpio-cells = <2>;
437		};
438	};
439
440	tmp102: tmp102@48 {
441		compatible = "ti,tmp102";
442		reg = <0x48>;
443		pinctrl-names = "default";
444		pinctrl-0 = <&tmp102_pins_default>;
445		interrupt-parent = <&gpio7>;
446		interrupts = <16 IRQ_TYPE_LEVEL_LOW>;
447		#thermal-sensor-cells = <1>;
448	};
449};
450
451&i2c3 {
452	status = "okay";
453	pinctrl-names = "default";
454	pinctrl-0 = <&i2c3_pins_default>;
455	clock-frequency = <400000>;
456
457	mcp_rtc: rtc@6f {
458		compatible = "microchip,mcp7941x";
459		reg = <0x6f>;
460		interrupts = <GIC_SPI 2 IRQ_TYPE_EDGE_RISING>;  /* IRQ_SYS_1N */
461
462		pinctrl-names = "default";
463		pinctrl-0 = <&mcp79410_pins_default>;
464
465		vcc-supply = <&vdd_3v3>;
466		wakeup-source;
467	};
468};
469
470&gpio7 {
471	ti,no-reset-on-init;
472	ti,no-idle-on-init;
473};
474
475&cpu0 {
476	cpu0-supply = <&smps12_reg>;
477	voltage-tolerance = <1>;
478};
479
480&uart3 {
481	status = "okay";
482	interrupts-extended = <&crossbar_mpu GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>,
483			      <&dra7_pmx_core 0x3f8>;
484
485	pinctrl-names = "default";
486	pinctrl-0 = <&uart3_pins_default>;
487};
488
489&mac {
490	status = "okay";
491	pinctrl-names = "default", "sleep";
492	pinctrl-0 = <&cpsw_pins_default>;
493	pinctrl-1 = <&cpsw_pins_sleep>;
494	dual_emac;
495};
496
497&cpsw_emac0 {
498	phy_id = <&davinci_mdio>, <1>;
499	phy-mode = "rgmii";
500	dual_emac_res_vlan = <1>;
501};
502
503&cpsw_emac1 {
504	phy_id = <&davinci_mdio>, <2>;
505	phy-mode = "rgmii";
506	dual_emac_res_vlan = <2>;
507};
508
509&davinci_mdio {
510	pinctrl-names = "default", "sleep";
511	pinctrl-0 = <&davinci_mdio_pins_default>;
512	pinctrl-1 = <&davinci_mdio_pins_sleep>;
513};
514
515&mmc1 {
516	status = "okay";
517
518	pinctrl-names = "default";
519	pinctrl-0 = <&mmc1_pins_default>;
520
521	vmmc-supply = <&ldo1_reg>;
522	vmmc_aux-supply = <&vdd_3v3>;
523	pbias-supply = <&pbias_mmc_reg>;
524	bus-width = <4>;
525	cd-gpios = <&gpio6 27 0>; /* gpio 219 */
526};
527
528&mmc2 {
529	status = "okay";
530
531	pinctrl-names = "default";
532	pinctrl-0 = <&mmc2_pins_default>;
533
534	vmmc-supply = <&vdd_3v3>;
535	bus-width = <8>;
536	ti,non-removable;
537	cap-mmc-dual-data-rate;
538};
539
540&sata {
541	status = "okay";
542};
543
544&usb2_phy1 {
545	phy-supply = <&ldousb_reg>;
546};
547
548&usb2_phy2 {
549	phy-supply = <&ldousb_reg>;
550};
551
552&usb1 {
553	dr_mode = "host";
554	pinctrl-names = "default";
555	pinctrl-0 = <&usb1_pins>;
556};
557
558&omap_dwc3_1 {
559	extcon = <&extcon_usb1>;
560};
561
562&omap_dwc3_2 {
563	extcon = <&extcon_usb2>;
564};
565
566&usb2 {
567	dr_mode = "peripheral";
568};
569
570&cpu_trips {
571	cpu_alert1: cpu_alert1 {
572		temperature = <50000>; /* millicelsius */
573		hysteresis = <2000>; /* millicelsius */
574		type = "active";
575	};
576};
577
578&cpu_cooling_maps {
579	map1 {
580		trip = <&cpu_alert1>;
581		cooling-device = <&gpio_fan THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
582	};
583};
584
585&thermal_zones {
586	board_thermal: board_thermal {
587		polling-delay-passive = <1250>; /* milliseconds */
588		polling-delay = <1500>; /* milliseconds */
589
590				/* sensor       ID */
591		thermal-sensors = <&tmp102     0>;
592
593		board_trips: trips {
594			board_alert0: board_alert {
595				temperature = <40000>; /* millicelsius */
596				hysteresis = <2000>; /* millicelsius */
597				type = "active";
598			};
599
600			board_crit: board_crit {
601				temperature = <105000>; /* millicelsius */
602				hysteresis = <0>; /* millicelsius */
603				type = "critical";
604			};
605		};
606
607		board_cooling_maps: cooling-maps {
608			map0 {
609				trip = <&board_alert0>;
610				cooling-device =
611				  <&gpio_fan THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
612			};
613		};
614       };
615};
616