Linux Audio

Check our new training course

Linux kernel drivers training

May 6-19, 2025
Register
Loading...
v4.17
  1/*
  2 * Copyright (C) 2014-2016 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 "am57xx-commercial-grade.dtsi"
 12#include "dra74x-mmc-iodelay.dtsi"
 13#include <dt-bindings/gpio/gpio.h>
 14#include <dt-bindings/interrupt-controller/irq.h>
 15
 16/ {
 17	compatible = "ti,am572x-beagle-x15", "ti,am5728", "ti,dra742", "ti,dra74", "ti,dra7";
 18
 19	aliases {
 20		rtc0 = &mcp_rtc;
 21		rtc1 = &tps659038_rtc;
 22		rtc2 = &rtc;
 23		display0 = &hdmi0;
 24	};
 25
 26	chosen {
 27		stdout-path = &uart3;
 28	};
 29
 30	memory@0 {
 31		device_type = "memory";
 32		reg = <0x0 0x80000000 0x0 0x80000000>;
 33	};
 34
 35	vdd_3v3: fixedregulator-vdd_3v3 {
 36		compatible = "regulator-fixed";
 37		regulator-name = "vdd_3v3";
 38		vin-supply = <&regen1>;
 39		regulator-min-microvolt = <3300000>;
 40		regulator-max-microvolt = <3300000>;
 41	};
 42
 43	aic_dvdd: fixedregulator-aic_dvdd {
 44		compatible = "regulator-fixed";
 45		regulator-name = "aic_dvdd_fixed";
 46		vin-supply = <&vdd_3v3>;
 47		regulator-min-microvolt = <1800000>;
 48		regulator-max-microvolt = <1800000>;
 49	};
 50
 51	vtt_fixed: fixedregulator-vtt {
 52		/* TPS51200 */
 53		compatible = "regulator-fixed";
 54		regulator-name = "vtt_fixed";
 55		vin-supply = <&smps3_reg>;
 56		regulator-min-microvolt = <3300000>;
 57		regulator-max-microvolt = <3300000>;
 58		regulator-always-on;
 59		regulator-boot-on;
 60		enable-active-high;
 61		gpio = <&gpio7 11 GPIO_ACTIVE_HIGH>;
 62	};
 63
 64	leds {
 65		compatible = "gpio-leds";
 66
 67		led0 {
 68			label = "beagle-x15:usr0";
 69			gpios = <&gpio7 9 GPIO_ACTIVE_HIGH>;
 70			linux,default-trigger = "heartbeat";
 71			default-state = "off";
 72		};
 73
 74		led1 {
 75			label = "beagle-x15:usr1";
 76			gpios = <&gpio7 8 GPIO_ACTIVE_HIGH>;
 77			linux,default-trigger = "cpu0";
 78			default-state = "off";
 79		};
 80
 81		led2 {
 82			label = "beagle-x15:usr2";
 83			gpios = <&gpio7 14 GPIO_ACTIVE_HIGH>;
 84			linux,default-trigger = "mmc0";
 85			default-state = "off";
 86		};
 87
 88		led3 {
 89			label = "beagle-x15:usr3";
 90			gpios = <&gpio7 15 GPIO_ACTIVE_HIGH>;
 91			linux,default-trigger = "disk-activity";
 92			default-state = "off";
 93		};
 94	};
 95
 96	gpio_fan: gpio_fan {
 97		/* Based on 5v 500mA AFB02505HHB */
 98		compatible = "gpio-fan";
 99		gpios =  <&tps659038_gpio 2 GPIO_ACTIVE_HIGH>;
100		gpio-fan,speed-map = <0     0>,
101				     <13000 1>;
102		#cooling-cells = <2>;
103	};
104
105	hdmi0: connector {
106		compatible = "hdmi-connector";
107		label = "hdmi";
108
109		type = "a";
110
111		port {
112			hdmi_connector_in: endpoint {
113				remote-endpoint = <&tpd12s015_out>;
114			};
115		};
116	};
117
118	tpd12s015: encoder {
119		compatible = "ti,tpd12s015";
120
121		ports {
122			#address-cells = <1>;
123			#size-cells = <0>;
124
125			port@0 {
126				reg = <0>;
127
128				tpd12s015_in: endpoint {
129					remote-endpoint = <&hdmi_out>;
130				};
131			};
132
133			port@1 {
134				reg = <1>;
135
136				tpd12s015_out: endpoint {
137					remote-endpoint = <&hdmi_connector_in>;
138				};
139			};
140		};
141	};
142
143	sound0: sound0 {
144		compatible = "simple-audio-card";
145		simple-audio-card,name = "BeagleBoard-X15";
146		simple-audio-card,widgets =
147			"Line", "Line Out",
148			"Line", "Line In";
149		simple-audio-card,routing =
150			"Line Out",	"LLOUT",
151			"Line Out",	"RLOUT",
152			"MIC2L",	"Line In",
153			"MIC2R",	"Line In";
154		simple-audio-card,format = "dsp_b";
155		simple-audio-card,bitclock-master = <&sound0_master>;
156		simple-audio-card,frame-master = <&sound0_master>;
157		simple-audio-card,bitclock-inversion;
158
159		simple-audio-card,cpu {
160			sound-dai = <&mcasp3>;
161		};
162
163		sound0_master: simple-audio-card,codec {
164			sound-dai = <&tlv320aic3104>;
165			clocks = <&clkout2_clk>;
166		};
167	};
168};
169
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
170&i2c1 {
171	status = "okay";
172	clock-frequency = <400000>;
173
174	tps659038: tps659038@58 {
175		compatible = "ti,tps659038";
176		reg = <0x58>;
177		interrupt-parent = <&gpio1>;
178		interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
179
180		#interrupt-cells = <2>;
181		interrupt-controller;
182
183		ti,system-power-controller;
184		ti,palmas-override-powerhold;
185
186		tps659038_pmic {
187			compatible = "ti,tps659038-pmic";
188
189			regulators {
190				smps12_reg: smps12 {
191					/* VDD_MPU */
192					regulator-name = "smps12";
193					regulator-min-microvolt = < 850000>;
194					regulator-max-microvolt = <1250000>;
195					regulator-always-on;
196					regulator-boot-on;
197				};
198
199				smps3_reg: smps3 {
200					/* VDD_DDR */
201					regulator-name = "smps3";
202					regulator-min-microvolt = <1350000>;
203					regulator-max-microvolt = <1350000>;
204					regulator-always-on;
205					regulator-boot-on;
206				};
207
208				smps45_reg: smps45 {
209					/* VDD_DSPEVE, VDD_IVA, VDD_GPU */
210					regulator-name = "smps45";
211					regulator-min-microvolt = < 850000>;
212					regulator-max-microvolt = <1250000>;
213					regulator-always-on;
214					regulator-boot-on;
215				};
216
217				smps6_reg: smps6 {
218					/* VDD_CORE */
219					regulator-name = "smps6";
220					regulator-min-microvolt = <850000>;
221					regulator-max-microvolt = <1150000>;
222					regulator-always-on;
223					regulator-boot-on;
224				};
225
226				/* SMPS7 unused */
227
228				smps8_reg: smps8 {
229					/* VDD_1V8 */
230					regulator-name = "smps8";
231					regulator-min-microvolt = <1800000>;
232					regulator-max-microvolt = <1800000>;
233					regulator-always-on;
234					regulator-boot-on;
235				};
236
237				/* SMPS9 unused */
238
239				ldo1_reg: ldo1 {
240					/* VDD_SD / VDDSHV8  */
241					regulator-name = "ldo1";
242					regulator-min-microvolt = <1800000>;
243					regulator-max-microvolt = <3300000>;
244					regulator-boot-on;
245					regulator-always-on;
246				};
247
248				ldo2_reg: ldo2 {
249					/* VDD_SHV5 */
250					regulator-name = "ldo2";
251					regulator-min-microvolt = <3300000>;
252					regulator-max-microvolt = <3300000>;
253					regulator-always-on;
254					regulator-boot-on;
255				};
256
257				ldo3_reg: ldo3 {
258					/* VDDA_1V8_PHYA */
259					regulator-name = "ldo3";
260					regulator-min-microvolt = <1800000>;
261					regulator-max-microvolt = <1800000>;
262					regulator-always-on;
263					regulator-boot-on;
264				};
265
266				ldo4_reg: ldo4 {
267					/* VDDA_1V8_PHYB */
268					regulator-name = "ldo4";
269					regulator-min-microvolt = <1800000>;
270					regulator-max-microvolt = <1800000>;
271					regulator-always-on;
272					regulator-boot-on;
273				};
274
275				ldo9_reg: ldo9 {
276					/* VDD_RTC */
277					regulator-name = "ldo9";
278					regulator-min-microvolt = <1050000>;
279					regulator-max-microvolt = <1050000>;
280					regulator-always-on;
281					regulator-boot-on;
282				};
283
284				ldoln_reg: ldoln {
285					/* VDDA_1V8_PLL */
286					regulator-name = "ldoln";
287					regulator-min-microvolt = <1800000>;
288					regulator-max-microvolt = <1800000>;
289					regulator-always-on;
290					regulator-boot-on;
291				};
292
293				ldousb_reg: ldousb {
294					/* VDDA_3V_USB: VDDA_USBHS33 */
295					regulator-name = "ldousb";
296					regulator-min-microvolt = <3300000>;
297					regulator-max-microvolt = <3300000>;
298					regulator-boot-on;
299				};
300
301				regen1: regen1 {
302					/* VDD_3V3_ON */
303					regulator-name = "regen1";
304					regulator-boot-on;
305					regulator-always-on;
306				};
307			};
308		};
309
310		tps659038_rtc: tps659038_rtc {
311			compatible = "ti,palmas-rtc";
312			interrupt-parent = <&tps659038>;
313			interrupts = <8 IRQ_TYPE_EDGE_FALLING>;
314			wakeup-source;
315		};
316
317		tps659038_pwr_button: tps659038_pwr_button {
318			compatible = "ti,palmas-pwrbutton";
319			interrupt-parent = <&tps659038>;
320			interrupts = <1 IRQ_TYPE_EDGE_FALLING>;
321			wakeup-source;
322			ti,palmas-long-press-seconds = <12>;
323		};
324
325		tps659038_gpio: tps659038_gpio {
326			compatible = "ti,palmas-gpio";
327			gpio-controller;
328			#gpio-cells = <2>;
329		};
330
331		extcon_usb2: tps659038_usb {
332			compatible = "ti,palmas-usb-vid";
333			ti,enable-vbus-detection;
334			vbus-gpio = <&gpio4 21 GPIO_ACTIVE_HIGH>;
335		};
336
337	};
338
339	tmp102: tmp102@48 {
340		compatible = "ti,tmp102";
341		reg = <0x48>;
342		interrupt-parent = <&gpio7>;
343		interrupts = <16 IRQ_TYPE_LEVEL_LOW>;
344		#thermal-sensor-cells = <1>;
345	};
346
347	tlv320aic3104: tlv320aic3104@18 {
348		#sound-dai-cells = <0>;
349		compatible = "ti,tlv320aic3104";
350		reg = <0x18>;
351		assigned-clocks = <&clkoutmux2_clk_mux>;
352		assigned-clock-parents = <&sys_clk2_dclk_div>;
353
354		status = "okay";
355		adc-settle-ms = <40>;
356
357		AVDD-supply = <&vdd_3v3>;
358		IOVDD-supply = <&vdd_3v3>;
359		DRVDD-supply = <&vdd_3v3>;
360		DVDD-supply = <&aic_dvdd>;
361	};
362
363	eeprom: eeprom@50 {
364		compatible = "atmel,24c32";
365		reg = <0x50>;
366	};
367};
368
369&i2c3 {
370	status = "okay";
371	clock-frequency = <400000>;
372
373	mcp_rtc: rtc@6f {
374		compatible = "microchip,mcp7941x";
375		reg = <0x6f>;
376		interrupts-extended = <&crossbar_mpu GIC_SPI 2 IRQ_TYPE_EDGE_RISING>,
377				      <&dra7_pmx_core 0x424>;
378		interrupt-names = "irq", "wakeup";
379
380		vcc-supply = <&vdd_3v3>;
381		wakeup-source;
382	};
383};
384
385&gpio7 {
386	ti,no-reset-on-init;
387	ti,no-idle-on-init;
388};
389
390&cpu0 {
391	vdd-supply = <&smps12_reg>;
392	voltage-tolerance = <1>;
393};
394
395&uart3 {
396	status = "okay";
397	interrupts-extended = <&crossbar_mpu GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>,
398			      <&dra7_pmx_core 0x3f8>;
399};
400
401&davinci_mdio {
402	phy0: ethernet-phy@1 {
403		reg = <1>;
404	};
405
406	phy1: ethernet-phy@2 {
407		reg = <2>;
408	};
409};
410
411&mac {
412	status = "okay";
413	dual_emac;
414};
415
416&cpsw_emac0 {
417	phy-handle = <&phy0>;
418	phy-mode = "rgmii";
419	dual_emac_res_vlan = <1>;
420};
421
422&cpsw_emac1 {
423	phy-handle = <&phy1>;
424	phy-mode = "rgmii";
425	dual_emac_res_vlan = <2>;
426};
427
428&mmc1 {
429	status = "okay";
430
431	pinctrl-names = "default";
432	pinctrl-0 = <&mmc1_pins_default>;
433
434	bus-width = <4>;
435	cd-gpios = <&gpio6 27 GPIO_ACTIVE_LOW>; /* gpio 219 */
436};
437
438&mmc2 {
439	status = "okay";
440
441	pinctrl-names = "default";
442	pinctrl-0 = <&mmc2_pins_default>;
443
444	vmmc-supply = <&vdd_3v3>;
445	vqmmc-supply = <&vdd_3v3>;
446	bus-width = <8>;
447	ti,non-removable;
448	cap-mmc-dual-data-rate;
449};
450
451&sata {
452	status = "okay";
453};
454
455&usb2_phy1 {
456	phy-supply = <&ldousb_reg>;
457};
458
459&usb2_phy2 {
460	phy-supply = <&ldousb_reg>;
461};
462
463&usb1 {
464	dr_mode = "host";
465};
466
467&omap_dwc3_2 {
468	extcon = <&extcon_usb2>;
469};
470
471&usb2 {
472	/*
473	 * Stand alone usage is peripheral only.
474	 * However, with some resistor modifications
475	 * this port can be used via expansion connectors
476	 * as "host" or "dual-role". If so, provide
477	 * the necessary dr_mode override in the expansion
478	 * board's DT.
479	 */
480	dr_mode = "peripheral";
481};
482
483&cpu_trips {
484	cpu_alert1: cpu_alert1 {
485		temperature = <50000>; /* millicelsius */
486		hysteresis = <2000>; /* millicelsius */
487		type = "active";
488	};
489};
490
491&cpu_cooling_maps {
492	map1 {
493		trip = <&cpu_alert1>;
494		cooling-device = <&gpio_fan THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
495	};
496};
497
498&thermal_zones {
499	board_thermal: board_thermal {
500		polling-delay-passive = <1250>; /* milliseconds */
501		polling-delay = <1500>; /* milliseconds */
502
503				/* sensor       ID */
504		thermal-sensors = <&tmp102     0>;
505
506		board_trips: trips {
507			board_alert0: board_alert {
508				temperature = <40000>; /* millicelsius */
509				hysteresis = <2000>; /* millicelsius */
510				type = "active";
511			};
512
513			board_crit: board_crit {
514				temperature = <105000>; /* millicelsius */
515				hysteresis = <0>; /* millicelsius */
516				type = "critical";
517			};
518		};
519
520		board_cooling_maps: cooling-maps {
521			map0 {
522				trip = <&board_alert0>;
523				cooling-device =
524				  <&gpio_fan THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
525			};
526		};
527       };
528};
529
530&dss {
531	status = "ok";
532
533	vdda_video-supply = <&ldoln_reg>;
534};
535
536&hdmi {
537	status = "ok";
538	vdda-supply = <&ldo4_reg>;
539
540	port {
541		hdmi_out: endpoint {
542			remote-endpoint = <&tpd12s015_in>;
543		};
544	};
545};
546
547&pcie1_rc {
548	status = "ok";
549	gpios = <&gpio2 8 GPIO_ACTIVE_LOW>;
550};
551
552&pcie1_ep {
553	gpios = <&gpio2 8 GPIO_ACTIVE_LOW>;
554};
555
556&mcasp3 {
557	#sound-dai-cells = <0>;
558	assigned-clocks = <&l4per_clkctrl DRA7_MCASP3_CLKCTRL 24>;
559	assigned-clock-parents = <&sys_clkin2>;
560	status = "okay";
561
562	op-mode = <0>;	/* MCASP_IIS_MODE */
563	tdm-slots = <2>;
564	/* 4 serializers */
565	serial-dir = <	/* 0: INACTIVE, 1: TX, 2: RX */
566		1 2 0 0
567	>;
568	tx-num-evt = <32>;
569	rx-num-evt = <32>;
570};
571
572&mailbox5 {
573	status = "okay";
574	mbox_ipu1_ipc3x: mbox_ipu1_ipc3x {
575		status = "okay";
576	};
577	mbox_dsp1_ipc3x: mbox_dsp1_ipc3x {
578		status = "okay";
579	};
580};
581
582&mailbox6 {
583	status = "okay";
584	mbox_ipu2_ipc3x: mbox_ipu2_ipc3x {
585		status = "okay";
586	};
587	mbox_dsp2_ipc3x: mbox_dsp2_ipc3x {
588		status = "okay";
589	};
590};
v4.10.11
  1/*
  2 * Copyright (C) 2014-2016 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 "am57xx-commercial-grade.dtsi"
 
 12#include <dt-bindings/gpio/gpio.h>
 13#include <dt-bindings/interrupt-controller/irq.h>
 14
 15/ {
 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		display0 = &hdmi0;
 23	};
 24
 
 
 
 
 25	memory@0 {
 26		device_type = "memory";
 27		reg = <0x0 0x80000000 0x0 0x80000000>;
 28	};
 29
 30	vdd_3v3: fixedregulator-vdd_3v3 {
 31		compatible = "regulator-fixed";
 32		regulator-name = "vdd_3v3";
 33		vin-supply = <&regen1>;
 34		regulator-min-microvolt = <3300000>;
 35		regulator-max-microvolt = <3300000>;
 36	};
 37
 38	aic_dvdd: fixedregulator-aic_dvdd {
 39		compatible = "regulator-fixed";
 40		regulator-name = "aic_dvdd_fixed";
 41		vin-supply = <&vdd_3v3>;
 42		regulator-min-microvolt = <1800000>;
 43		regulator-max-microvolt = <1800000>;
 44	};
 45
 46	vtt_fixed: fixedregulator-vtt {
 47		/* TPS51200 */
 48		compatible = "regulator-fixed";
 49		regulator-name = "vtt_fixed";
 50		vin-supply = <&smps3_reg>;
 51		regulator-min-microvolt = <3300000>;
 52		regulator-max-microvolt = <3300000>;
 53		regulator-always-on;
 54		regulator-boot-on;
 55		enable-active-high;
 56		gpio = <&gpio7 11 GPIO_ACTIVE_HIGH>;
 57	};
 58
 59	leds {
 60		compatible = "gpio-leds";
 61
 62		led0 {
 63			label = "beagle-x15:usr0";
 64			gpios = <&gpio7 9 GPIO_ACTIVE_HIGH>;
 65			linux,default-trigger = "heartbeat";
 66			default-state = "off";
 67		};
 68
 69		led1 {
 70			label = "beagle-x15:usr1";
 71			gpios = <&gpio7 8 GPIO_ACTIVE_HIGH>;
 72			linux,default-trigger = "cpu0";
 73			default-state = "off";
 74		};
 75
 76		led2 {
 77			label = "beagle-x15:usr2";
 78			gpios = <&gpio7 14 GPIO_ACTIVE_HIGH>;
 79			linux,default-trigger = "mmc0";
 80			default-state = "off";
 81		};
 82
 83		led3 {
 84			label = "beagle-x15:usr3";
 85			gpios = <&gpio7 15 GPIO_ACTIVE_HIGH>;
 86			linux,default-trigger = "disk-activity";
 87			default-state = "off";
 88		};
 89	};
 90
 91	gpio_fan: gpio_fan {
 92		/* Based on 5v 500mA AFB02505HHB */
 93		compatible = "gpio-fan";
 94		gpios =  <&tps659038_gpio 2 GPIO_ACTIVE_HIGH>;
 95		gpio-fan,speed-map = <0     0>,
 96				     <13000 1>;
 97		#cooling-cells = <2>;
 98	};
 99
100	hdmi0: connector {
101		compatible = "hdmi-connector";
102		label = "hdmi";
103
104		type = "a";
105
106		port {
107			hdmi_connector_in: endpoint {
108				remote-endpoint = <&tpd12s015_out>;
109			};
110		};
111	};
112
113	tpd12s015: encoder {
114		compatible = "ti,tpd12s015";
115
116		ports {
117			#address-cells = <1>;
118			#size-cells = <0>;
119
120			port@0 {
121				reg = <0>;
122
123				tpd12s015_in: endpoint {
124					remote-endpoint = <&hdmi_out>;
125				};
126			};
127
128			port@1 {
129				reg = <1>;
130
131				tpd12s015_out: endpoint {
132					remote-endpoint = <&hdmi_connector_in>;
133				};
134			};
135		};
136	};
137
138	sound0: sound0 {
139		compatible = "simple-audio-card";
140		simple-audio-card,name = "BeagleBoard-X15";
141		simple-audio-card,widgets =
142			"Line", "Line Out",
143			"Line", "Line In";
144		simple-audio-card,routing =
145			"Line Out",	"LLOUT",
146			"Line Out",	"RLOUT",
147			"MIC2L",	"Line In",
148			"MIC2R",	"Line In";
149		simple-audio-card,format = "dsp_b";
150		simple-audio-card,bitclock-master = <&sound0_master>;
151		simple-audio-card,frame-master = <&sound0_master>;
152		simple-audio-card,bitclock-inversion;
153
154		simple-audio-card,cpu {
155			sound-dai = <&mcasp3>;
156		};
157
158		sound0_master: simple-audio-card,codec {
159			sound-dai = <&tlv320aic3104>;
160			clocks = <&clkout2_clk>;
161		};
162	};
163};
164
165&dra7_pmx_core {
166	mmc1_pins_default: mmc1_pins_default {
167		pinctrl-single,pins = <
168			DRA7XX_CORE_IOPAD(0x376c, PIN_INPUT | MUX_MODE14)	/* mmc1sdcd.gpio219 */
169			DRA7XX_CORE_IOPAD(0x3754, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_clk.clk */
170			DRA7XX_CORE_IOPAD(0x3758, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_cmd.cmd */
171			DRA7XX_CORE_IOPAD(0x375c, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_dat0.dat0 */
172			DRA7XX_CORE_IOPAD(0x3760, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_dat1.dat1 */
173			DRA7XX_CORE_IOPAD(0x3764, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_dat2.dat2 */
174			DRA7XX_CORE_IOPAD(0x3768, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_dat3.dat3 */
175		>;
176	};
177
178	mmc2_pins_default: mmc2_pins_default {
179		pinctrl-single,pins = <
180			DRA7XX_CORE_IOPAD(0x349c, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a23.mmc2_clk */
181			DRA7XX_CORE_IOPAD(0x34b0, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_cs1.mmc2_cmd */
182			DRA7XX_CORE_IOPAD(0x34a0, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a24.mmc2_dat0 */
183			DRA7XX_CORE_IOPAD(0x34a4, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a25.mmc2_dat1 */
184			DRA7XX_CORE_IOPAD(0x34a8, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a26.mmc2_dat2 */
185			DRA7XX_CORE_IOPAD(0x34ac, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a27.mmc2_dat3 */
186			DRA7XX_CORE_IOPAD(0x348c, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a19.mmc2_dat4 */
187			DRA7XX_CORE_IOPAD(0x3490, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a20.mmc2_dat5 */
188			DRA7XX_CORE_IOPAD(0x3494, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a21.mmc2_dat6 */
189			DRA7XX_CORE_IOPAD(0x3498, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a22.mmc2_dat7 */
190		>;
191	};
192};
193&i2c1 {
194	status = "okay";
195	clock-frequency = <400000>;
196
197	tps659038: tps659038@58 {
198		compatible = "ti,tps659038";
199		reg = <0x58>;
200		interrupt-parent = <&gpio1>;
201		interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
202
203		#interrupt-cells = <2>;
204		interrupt-controller;
205
206		ti,system-power-controller;
207		ti,palmas-override-powerhold;
208
209		tps659038_pmic {
210			compatible = "ti,tps659038-pmic";
211
212			regulators {
213				smps12_reg: smps12 {
214					/* VDD_MPU */
215					regulator-name = "smps12";
216					regulator-min-microvolt = < 850000>;
217					regulator-max-microvolt = <1250000>;
218					regulator-always-on;
219					regulator-boot-on;
220				};
221
222				smps3_reg: smps3 {
223					/* VDD_DDR */
224					regulator-name = "smps3";
225					regulator-min-microvolt = <1350000>;
226					regulator-max-microvolt = <1350000>;
227					regulator-always-on;
228					regulator-boot-on;
229				};
230
231				smps45_reg: smps45 {
232					/* VDD_DSPEVE, VDD_IVA, VDD_GPU */
233					regulator-name = "smps45";
234					regulator-min-microvolt = < 850000>;
235					regulator-max-microvolt = <1250000>;
236					regulator-always-on;
237					regulator-boot-on;
238				};
239
240				smps6_reg: smps6 {
241					/* VDD_CORE */
242					regulator-name = "smps6";
243					regulator-min-microvolt = <850000>;
244					regulator-max-microvolt = <1150000>;
245					regulator-always-on;
246					regulator-boot-on;
247				};
248
249				/* SMPS7 unused */
250
251				smps8_reg: smps8 {
252					/* VDD_1V8 */
253					regulator-name = "smps8";
254					regulator-min-microvolt = <1800000>;
255					regulator-max-microvolt = <1800000>;
256					regulator-always-on;
257					regulator-boot-on;
258				};
259
260				/* SMPS9 unused */
261
262				ldo1_reg: ldo1 {
263					/* VDD_SD / VDDSHV8  */
264					regulator-name = "ldo1";
265					regulator-min-microvolt = <1800000>;
266					regulator-max-microvolt = <3300000>;
267					regulator-boot-on;
268					regulator-always-on;
269				};
270
271				ldo2_reg: ldo2 {
272					/* VDD_SHV5 */
273					regulator-name = "ldo2";
274					regulator-min-microvolt = <3300000>;
275					regulator-max-microvolt = <3300000>;
276					regulator-always-on;
277					regulator-boot-on;
278				};
279
280				ldo3_reg: ldo3 {
281					/* VDDA_1V8_PHYA */
282					regulator-name = "ldo3";
283					regulator-min-microvolt = <1800000>;
284					regulator-max-microvolt = <1800000>;
285					regulator-always-on;
286					regulator-boot-on;
287				};
288
289				ldo4_reg: ldo4 {
290					/* VDDA_1V8_PHYB */
291					regulator-name = "ldo4";
292					regulator-min-microvolt = <1800000>;
293					regulator-max-microvolt = <1800000>;
294					regulator-always-on;
295					regulator-boot-on;
296				};
297
298				ldo9_reg: ldo9 {
299					/* VDD_RTC */
300					regulator-name = "ldo9";
301					regulator-min-microvolt = <1050000>;
302					regulator-max-microvolt = <1050000>;
303					regulator-always-on;
304					regulator-boot-on;
305				};
306
307				ldoln_reg: ldoln {
308					/* VDDA_1V8_PLL */
309					regulator-name = "ldoln";
310					regulator-min-microvolt = <1800000>;
311					regulator-max-microvolt = <1800000>;
312					regulator-always-on;
313					regulator-boot-on;
314				};
315
316				ldousb_reg: ldousb {
317					/* VDDA_3V_USB: VDDA_USBHS33 */
318					regulator-name = "ldousb";
319					regulator-min-microvolt = <3300000>;
320					regulator-max-microvolt = <3300000>;
321					regulator-boot-on;
322				};
323
324				regen1: regen1 {
325					/* VDD_3V3_ON */
326					regulator-name = "regen1";
327					regulator-boot-on;
328					regulator-always-on;
329				};
330			};
331		};
332
333		tps659038_rtc: tps659038_rtc {
334			compatible = "ti,palmas-rtc";
335			interrupt-parent = <&tps659038>;
336			interrupts = <8 IRQ_TYPE_EDGE_FALLING>;
337			wakeup-source;
338		};
339
340		tps659038_pwr_button: tps659038_pwr_button {
341			compatible = "ti,palmas-pwrbutton";
342			interrupt-parent = <&tps659038>;
343			interrupts = <1 IRQ_TYPE_EDGE_FALLING>;
344			wakeup-source;
345			ti,palmas-long-press-seconds = <12>;
346		};
347
348		tps659038_gpio: tps659038_gpio {
349			compatible = "ti,palmas-gpio";
350			gpio-controller;
351			#gpio-cells = <2>;
352		};
353
354		extcon_usb2: tps659038_usb {
355			compatible = "ti,palmas-usb-vid";
356			ti,enable-vbus-detection;
357			vbus-gpio = <&gpio4 21 GPIO_ACTIVE_HIGH>;
358		};
359
360	};
361
362	tmp102: tmp102@48 {
363		compatible = "ti,tmp102";
364		reg = <0x48>;
365		interrupt-parent = <&gpio7>;
366		interrupts = <16 IRQ_TYPE_LEVEL_LOW>;
367		#thermal-sensor-cells = <1>;
368	};
369
370	tlv320aic3104: tlv320aic3104@18 {
371		#sound-dai-cells = <0>;
372		compatible = "ti,tlv320aic3104";
373		reg = <0x18>;
374		assigned-clocks = <&clkoutmux2_clk_mux>;
375		assigned-clock-parents = <&sys_clk2_dclk_div>;
376
377		status = "okay";
378		adc-settle-ms = <40>;
379
380		AVDD-supply = <&vdd_3v3>;
381		IOVDD-supply = <&vdd_3v3>;
382		DRVDD-supply = <&vdd_3v3>;
383		DVDD-supply = <&aic_dvdd>;
384	};
385
386	eeprom: eeprom@50 {
387		compatible = "at,24c32";
388		reg = <0x50>;
389	};
390};
391
392&i2c3 {
393	status = "okay";
394	clock-frequency = <400000>;
395
396	mcp_rtc: rtc@6f {
397		compatible = "microchip,mcp7941x";
398		reg = <0x6f>;
399		interrupts-extended = <&crossbar_mpu GIC_SPI 2 IRQ_TYPE_EDGE_RISING>,
400				      <&dra7_pmx_core 0x424>;
401		interrupt-names = "irq", "wakeup";
402
403		vcc-supply = <&vdd_3v3>;
404		wakeup-source;
405	};
406};
407
408&gpio7 {
409	ti,no-reset-on-init;
410	ti,no-idle-on-init;
411};
412
413&cpu0 {
414	cpu0-supply = <&smps12_reg>;
415	voltage-tolerance = <1>;
416};
417
418&uart3 {
419	status = "okay";
420	interrupts-extended = <&crossbar_mpu GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>,
421			      <&dra7_pmx_core 0x3f8>;
422};
423
 
 
 
 
 
 
 
 
 
 
424&mac {
425	status = "okay";
426	dual_emac;
427};
428
429&cpsw_emac0 {
430	phy_id = <&davinci_mdio>, <1>;
431	phy-mode = "rgmii";
432	dual_emac_res_vlan = <1>;
433};
434
435&cpsw_emac1 {
436	phy_id = <&davinci_mdio>, <2>;
437	phy-mode = "rgmii";
438	dual_emac_res_vlan = <2>;
439};
440
441&mmc1 {
442	status = "okay";
443
444	pinctrl-names = "default";
445	pinctrl-0 = <&mmc1_pins_default>;
446
447	bus-width = <4>;
448	cd-gpios = <&gpio6 27 GPIO_ACTIVE_LOW>; /* gpio 219 */
449};
450
451&mmc2 {
452	status = "okay";
453
454	pinctrl-names = "default";
455	pinctrl-0 = <&mmc2_pins_default>;
456
457	vmmc-supply = <&vdd_3v3>;
 
458	bus-width = <8>;
459	ti,non-removable;
460	cap-mmc-dual-data-rate;
461};
462
463&sata {
464	status = "okay";
465};
466
467&usb2_phy1 {
468	phy-supply = <&ldousb_reg>;
469};
470
471&usb2_phy2 {
472	phy-supply = <&ldousb_reg>;
473};
474
475&usb1 {
476	dr_mode = "host";
477};
478
479&omap_dwc3_2 {
480	extcon = <&extcon_usb2>;
481};
482
483&usb2 {
484	/*
485	 * Stand alone usage is peripheral only.
486	 * However, with some resistor modifications
487	 * this port can be used via expansion connectors
488	 * as "host" or "dual-role". If so, provide
489	 * the necessary dr_mode override in the expansion
490	 * board's DT.
491	 */
492	dr_mode = "peripheral";
493};
494
495&cpu_trips {
496	cpu_alert1: cpu_alert1 {
497		temperature = <50000>; /* millicelsius */
498		hysteresis = <2000>; /* millicelsius */
499		type = "active";
500	};
501};
502
503&cpu_cooling_maps {
504	map1 {
505		trip = <&cpu_alert1>;
506		cooling-device = <&gpio_fan THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
507	};
508};
509
510&thermal_zones {
511	board_thermal: board_thermal {
512		polling-delay-passive = <1250>; /* milliseconds */
513		polling-delay = <1500>; /* milliseconds */
514
515				/* sensor       ID */
516		thermal-sensors = <&tmp102     0>;
517
518		board_trips: trips {
519			board_alert0: board_alert {
520				temperature = <40000>; /* millicelsius */
521				hysteresis = <2000>; /* millicelsius */
522				type = "active";
523			};
524
525			board_crit: board_crit {
526				temperature = <105000>; /* millicelsius */
527				hysteresis = <0>; /* millicelsius */
528				type = "critical";
529			};
530		};
531
532		board_cooling_maps: cooling-maps {
533			map0 {
534				trip = <&board_alert0>;
535				cooling-device =
536				  <&gpio_fan THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
537			};
538		};
539       };
540};
541
542&dss {
543	status = "ok";
544
545	vdda_video-supply = <&ldoln_reg>;
546};
547
548&hdmi {
549	status = "ok";
550	vdda-supply = <&ldo4_reg>;
551
552	port {
553		hdmi_out: endpoint {
554			remote-endpoint = <&tpd12s015_in>;
555		};
556	};
557};
558
559&pcie1 {
 
 
 
 
 
560	gpios = <&gpio2 8 GPIO_ACTIVE_LOW>;
561};
562
563&mcasp3 {
564	#sound-dai-cells = <0>;
565	assigned-clocks = <&mcasp3_ahclkx_mux>;
566	assigned-clock-parents = <&sys_clkin2>;
567	status = "okay";
568
569	op-mode = <0>;	/* MCASP_IIS_MODE */
570	tdm-slots = <2>;
571	/* 4 serializers */
572	serial-dir = <	/* 0: INACTIVE, 1: TX, 2: RX */
573		1 2 0 0
574	>;
575	tx-num-evt = <32>;
576	rx-num-evt = <32>;
577};
578
579&mailbox5 {
580	status = "okay";
581	mbox_ipu1_ipc3x: mbox_ipu1_ipc3x {
582		status = "okay";
583	};
584	mbox_dsp1_ipc3x: mbox_dsp1_ipc3x {
585		status = "okay";
586	};
587};
588
589&mailbox6 {
590	status = "okay";
591	mbox_ipu2_ipc3x: mbox_ipu2_ipc3x {
592		status = "okay";
593	};
594	mbox_dsp2_ipc3x: mbox_dsp2_ipc3x {
595		status = "okay";
596	};
597};