Linux Audio

Check our new training course

Embedded Linux training

Mar 31-Apr 8, 2025
Register
Loading...
Note: File does not exist in v6.9.4.
  1/*
  2 * Copyright 2012 DENX Software Engineering GmbH
  3 * Heiko Schocher <hs@denx.de>
  4 *
  5 * This program is free software; you can redistribute  it and/or modify it
  6 * under  the terms of  the GNU General  Public License as published by the
  7 * Free Software Foundation;  either version 2 of the  License, or (at your
  8 * option) any later version.
  9 */
 10#include <dt-bindings/interrupt-controller/irq.h>
 11
 12/ {
 13	#address-cells = <1>;
 14	#size-cells = <1>;
 15	chosen { };
 16	aliases { };
 17
 18	memory@c0000000 {
 19		device_type = "memory";
 20		reg = <0xc0000000 0x0>;
 21	};
 22
 23	arm {
 24		#address-cells = <1>;
 25		#size-cells = <1>;
 26		ranges;
 27		intc: interrupt-controller@fffee000 {
 28			compatible = "ti,cp-intc";
 29			interrupt-controller;
 30			#interrupt-cells = <1>;
 31			ti,intc-size = <101>;
 32			reg = <0xfffee000 0x2000>;
 33		};
 34	};
 35	dsp: dsp@11800000 {
 36		compatible = "ti,da850-dsp";
 37		reg = <0x11800000 0x40000>,
 38		      <0x11e00000 0x8000>,
 39		      <0x11f00000 0x8000>,
 40		      <0x01c14044 0x4>,
 41		      <0x01c14174 0x8>;
 42		reg-names = "l2sram", "l1pram", "l1dram", "host1cfg", "chipsig";
 43		interrupt-parent = <&intc>;
 44		interrupts = <28>;
 45		status = "disabled";
 46	};
 47	soc@1c00000 {
 48		compatible = "simple-bus";
 49		model = "da850";
 50		#address-cells = <1>;
 51		#size-cells = <1>;
 52		ranges = <0x0 0x01c00000 0x400000>;
 53		interrupt-parent = <&intc>;
 54
 55		pmx_core: pinmux@14120 {
 56			compatible = "pinctrl-single";
 57			reg = <0x14120 0x50>;
 58			#pinctrl-cells = <2>;
 59			pinctrl-single,bit-per-mux;
 60			pinctrl-single,register-width = <32>;
 61			pinctrl-single,function-mask = <0xf>;
 62			status = "disabled";
 63
 64			serial0_rtscts_pins: pinmux_serial0_rtscts_pins {
 65				pinctrl-single,bits = <
 66					/* UART0_RTS UART0_CTS */
 67					0x0c 0x22000000 0xff000000
 68				>;
 69			};
 70			serial0_rxtx_pins: pinmux_serial0_rxtx_pins {
 71				pinctrl-single,bits = <
 72					/* UART0_TXD UART0_RXD */
 73					0x0c 0x00220000 0x00ff0000
 74				>;
 75			};
 76			serial1_rtscts_pins: pinmux_serial1_rtscts_pins {
 77				pinctrl-single,bits = <
 78					/* UART1_CTS UART1_RTS */
 79					0x00 0x00440000 0x00ff0000
 80				>;
 81			};
 82			serial1_rxtx_pins: pinmux_serial1_rxtx_pins {
 83				pinctrl-single,bits = <
 84					/* UART1_TXD UART1_RXD */
 85					0x10 0x22000000 0xff000000
 86				>;
 87			};
 88			serial2_rtscts_pins: pinmux_serial2_rtscts_pins {
 89				pinctrl-single,bits = <
 90					/* UART2_CTS UART2_RTS */
 91					0x00 0x44000000 0xff000000
 92				>;
 93			};
 94			serial2_rxtx_pins: pinmux_serial2_rxtx_pins {
 95				pinctrl-single,bits = <
 96					/* UART2_TXD UART2_RXD */
 97					0x10 0x00220000 0x00ff0000
 98				>;
 99			};
100			i2c0_pins: pinmux_i2c0_pins {
101				pinctrl-single,bits = <
102					/* I2C0_SDA,I2C0_SCL */
103					0x10 0x00002200 0x0000ff00
104				>;
105			};
106			i2c1_pins: pinmux_i2c1_pins {
107				pinctrl-single,bits = <
108					/* I2C1_SDA, I2C1_SCL */
109					0x10 0x00440000 0x00ff0000
110				>;
111			};
112			mmc0_pins: pinmux_mmc_pins {
113				pinctrl-single,bits = <
114					/* MMCSD0_DAT[3] MMCSD0_DAT[2]
115					 * MMCSD0_DAT[1] MMCSD0_DAT[0]
116					 * MMCSD0_CMD    MMCSD0_CLK
117					 */
118					0x28 0x00222222  0x00ffffff
119				>;
120			};
121			ehrpwm0a_pins: pinmux_ehrpwm0a_pins {
122				pinctrl-single,bits = <
123					/* EPWM0A */
124					0xc 0x00000002 0x0000000f
125				>;
126			};
127			ehrpwm0b_pins: pinmux_ehrpwm0b_pins {
128				pinctrl-single,bits = <
129					/* EPWM0B */
130					0xc 0x00000020 0x000000f0
131				>;
132			};
133			ehrpwm1a_pins: pinmux_ehrpwm1a_pins {
134				pinctrl-single,bits = <
135					/* EPWM1A */
136					0x14 0x00000002 0x0000000f
137				>;
138			};
139			ehrpwm1b_pins: pinmux_ehrpwm1b_pins {
140				pinctrl-single,bits = <
141					/* EPWM1B */
142					0x14 0x00000020 0x000000f0
143				>;
144			};
145			ecap0_pins: pinmux_ecap0_pins {
146				pinctrl-single,bits = <
147					/* ECAP0_APWM0 */
148					0x8 0x20000000 0xf0000000
149				>;
150			};
151			ecap1_pins: pinmux_ecap1_pins {
152				pinctrl-single,bits = <
153					/* ECAP1_APWM1 */
154					0x4 0x40000000 0xf0000000
155				>;
156			};
157			ecap2_pins: pinmux_ecap2_pins {
158				pinctrl-single,bits = <
159					/* ECAP2_APWM2 */
160					0x4 0x00000004 0x0000000f
161				>;
162			};
163			spi0_pins: pinmux_spi0_pins {
164				pinctrl-single,bits = <
165					/* SIMO, SOMI, CLK */
166					0xc 0x00001101 0x0000ff0f
167				>;
168			};
169			spi0_cs0_pin: pinmux_spi0_cs0 {
170				pinctrl-single,bits = <
171					/* CS0 */
172					0x10 0x00000010 0x000000f0
173				>;
174			};
175			spi0_cs3_pin: pinmux_spi0_cs3_pin {
176				pinctrl-single,bits = <
177					/* CS3 */
178					0xc 0x01000000 0x0f000000
179				>;
180			};
181			spi1_pins: pinmux_spi1_pins {
182				pinctrl-single,bits = <
183					/* SIMO, SOMI, CLK */
184					0x14 0x00110100 0x00ff0f00
185				>;
186			};
187			spi1_cs0_pin: pinmux_spi1_cs0 {
188				pinctrl-single,bits = <
189					/* CS0 */
190					0x14 0x00000010 0x000000f0
191				>;
192			};
193			mdio_pins: pinmux_mdio_pins {
194				pinctrl-single,bits = <
195					/* MDIO_CLK, MDIO_D */
196					0x10 0x00000088 0x000000ff
197				>;
198			};
199			mii_pins: pinmux_mii_pins {
200				pinctrl-single,bits = <
201					/*
202					 * MII_TXEN, MII_TXCLK, MII_COL
203					 * MII_TXD_3, MII_TXD_2, MII_TXD_1
204					 * MII_TXD_0
205					 */
206					0x8 0x88888880 0xfffffff0
207					/*
208					 * MII_RXER, MII_CRS, MII_RXCLK
209					 * MII_RXDV, MII_RXD_3, MII_RXD_2
210					 * MII_RXD_1, MII_RXD_0
211					 */
212					0xc 0x88888888 0xffffffff
213				>;
214			};
215			lcd_pins: pinmux_lcd_pins {
216				pinctrl-single,bits = <
217					/*
218					 * LCD_D[2], LCD_D[3], LCD_D[4], LCD_D[5],
219					 * LCD_D[6], LCD_D[7]
220					 */
221					0x40 0x22222200 0xffffff00
222					/*
223					 * LCD_D[10], LCD_D[11], LCD_D[12], LCD_D[13],
224					 * LCD_D[14], LCD_D[15], LCD_D[0], LCD_D[1]
225					 */
226					0x44 0x22222222 0xffffffff
227					/* LCD_D[8], LCD_D[9] */
228					0x48 0x00000022 0x000000ff
229
230					/* LCD_PCLK */
231					0x48 0x02000000 0x0f000000
232					/* LCD_AC_ENB_CS, LCD_VSYNC, LCD_HSYNC */
233					0x4c 0x02000022 0x0f0000ff
234				>;
235			};
236			vpif_capture_pins: vpif_capture_pins {
237				pinctrl-single,bits = <
238					/* VP_DIN[2..7], VP_CLKIN1, VP_CLKIN0 */
239					0x38 0x11111111 0xffffffff
240					/* VP_DIN[10..15,0..1] */
241					0x3c 0x11111111 0xffffffff
242					/* VP_DIN[8..9] */
243					0x40 0x00000011 0x000000ff
244				>;
245			};
246			vpif_display_pins: vpif_display_pins {
247				pinctrl-single,bits = <
248					/* VP_DOUT[2..7] */
249					0x40 0x11111100 0xffffff00
250					/* VP_DOUT[10..15,0..1] */
251					0x44 0x11111111 0xffffffff
252					/*  VP_DOUT[8..9] */
253					0x48 0x00000011 0x000000ff
254					/*
255					 * VP_CLKOUT3, VP_CLKIN3,
256					 * VP_CLKOUT2, VP_CLKIN2
257					 */
258					0x4c 0x00111100 0x00ffff00
259				>;
260			};
261		};
262		prictrl: priority-controller@14110 {
263			compatible = "ti,da850-mstpri";
264			reg = <0x14110 0x0c>;
265			status = "disabled";
266		};
267		cfgchip: chip-controller@1417c {
268			compatible = "ti,da830-cfgchip", "syscon", "simple-mfd";
269			reg = <0x1417c 0x14>;
270
271			usb_phy: usb-phy {
272				compatible = "ti,da830-usb-phy";
273				#phy-cells = <1>;
274				status = "disabled";
275			};
276		};
277		edma0: edma@0 {
278			compatible = "ti,edma3-tpcc";
279			/* eDMA3 CC0: 0x01c0 0000 - 0x01c0 7fff */
280			reg =	<0x0 0x8000>;
281			reg-names = "edma3_cc";
282			interrupts = <11 12>;
283			interrupt-names = "edma3_ccint", "edma3_ccerrint";
284			#dma-cells = <2>;
285
286			ti,tptcs = <&edma0_tptc0 7>, <&edma0_tptc1 0>;
287		};
288		edma0_tptc0: tptc@8000 {
289			compatible = "ti,edma3-tptc";
290			reg =	<0x8000 0x400>;
291			interrupts = <13>;
292			interrupt-names = "edm3_tcerrint";
293		};
294		edma0_tptc1: tptc@8400 {
295			compatible = "ti,edma3-tptc";
296			reg =	<0x8400 0x400>;
297			interrupts = <32>;
298			interrupt-names = "edm3_tcerrint";
299		};
300		edma1: edma@230000 {
301			compatible = "ti,edma3-tpcc";
302			/* eDMA3 CC1: 0x01e3 0000 - 0x01e3 7fff */
303			reg =	<0x230000 0x8000>;
304			reg-names = "edma3_cc";
305			interrupts = <93 94>;
306			interrupt-names = "edma3_ccint", "edma3_ccerrint";
307			#dma-cells = <2>;
308
309			ti,tptcs = <&edma1_tptc0 7>;
310		};
311		edma1_tptc0: tptc@238000 {
312			compatible = "ti,edma3-tptc";
313			reg =	<0x238000 0x400>;
314			interrupts = <95>;
315			interrupt-names = "edm3_tcerrint";
316		};
317		serial0: serial@42000 {
318			compatible = "ti,da830-uart", "ns16550a";
319			reg = <0x42000 0x100>;
320			reg-io-width = <4>;
321			reg-shift = <2>;
322			interrupts = <25>;
323			status = "disabled";
324		};
325		serial1: serial@10c000 {
326			compatible = "ti,da830-uart", "ns16550a";
327			reg = <0x10c000 0x100>;
328			reg-io-width = <4>;
329			reg-shift = <2>;
330			interrupts = <53>;
331			status = "disabled";
332		};
333		serial2: serial@10d000 {
334			compatible = "ti,da830-uart", "ns16550a";
335			reg = <0x10d000 0x100>;
336			reg-io-width = <4>;
337			reg-shift = <2>;
338			interrupts = <61>;
339			status = "disabled";
340		};
341		rtc0: rtc@23000 {
342			compatible = "ti,da830-rtc";
343			reg = <0x23000 0x1000>;
344			interrupts = <19
345				      19>;
346			status = "disabled";
347		};
348		i2c0: i2c@22000 {
349			compatible = "ti,davinci-i2c";
350			reg = <0x22000 0x1000>;
351			interrupts = <15>;
352			#address-cells = <1>;
353			#size-cells = <0>;
354			status = "disabled";
355		};
356		i2c1: i2c@228000 {
357			compatible = "ti,davinci-i2c";
358			reg = <0x228000 0x1000>;
359			interrupts = <51>;
360			#address-cells = <1>;
361			#size-cells = <0>;
362			status = "disabled";
363		};
364		wdt: wdt@21000 {
365			compatible = "ti,davinci-wdt";
366			reg = <0x21000 0x1000>;
367			status = "disabled";
368		};
369		mmc0: mmc@40000 {
370			compatible = "ti,da830-mmc";
371			reg = <0x40000 0x1000>;
372			cap-sd-highspeed;
373			cap-mmc-highspeed;
374			interrupts = <16>;
375			dmas = <&edma0 16 0>, <&edma0 17 0>;
376			dma-names = "rx", "tx";
377			status = "disabled";
378		};
379		vpif: video@217000 {
380			compatible = "ti,da850-vpif";
381			reg = <0x217000 0x1000>;
382			interrupts = <92>;
383			status = "disabled";
384
385			/* VPIF capture port */
386			port@0 {
387				#address-cells = <1>;
388				#size-cells = <0>;
389			};
390
391			/* VPIF display port */
392			port@1 {
393				#address-cells = <1>;
394				#size-cells = <0>;
395			};
396		};
397		mmc1: mmc@21b000 {
398			compatible = "ti,da830-mmc";
399			reg = <0x21b000 0x1000>;
400			cap-sd-highspeed;
401			cap-mmc-highspeed;
402			interrupts = <72>;
403			dmas = <&edma1 28 0>, <&edma1 29 0>;
404			dma-names = "rx", "tx";
405			status = "disabled";
406		};
407		ehrpwm0: pwm@300000 {
408			compatible = "ti,da850-ehrpwm", "ti,am3352-ehrpwm",
409				     "ti,am33xx-ehrpwm";
410			#pwm-cells = <3>;
411			reg = <0x300000 0x2000>;
412			status = "disabled";
413		};
414		ehrpwm1: pwm@302000 {
415			compatible = "ti,da850-ehrpwm", "ti,am3352-ehrpwm",
416				     "ti,am33xx-ehrpwm";
417			#pwm-cells = <3>;
418			reg = <0x302000 0x2000>;
419			status = "disabled";
420		};
421		ecap0: ecap@306000 {
422			compatible = "ti,da850-ecap", "ti,am3352-ecap",
423				     "ti,am33xx-ecap";
424			#pwm-cells = <3>;
425			reg = <0x306000 0x80>;
426			status = "disabled";
427		};
428		ecap1: ecap@307000 {
429			compatible = "ti,da850-ecap", "ti,am3352-ecap",
430				     "ti,am33xx-ecap";
431			#pwm-cells = <3>;
432			reg = <0x307000 0x80>;
433			status = "disabled";
434		};
435		ecap2: ecap@308000 {
436			compatible = "ti,da850-ecap", "ti,am3352-ecap",
437				     "ti,am33xx-ecap";
438			#pwm-cells = <3>;
439			reg = <0x308000 0x80>;
440			status = "disabled";
441		};
442		spi0: spi@41000 {
443			#address-cells = <1>;
444			#size-cells = <0>;
445			compatible = "ti,da830-spi";
446			reg = <0x41000 0x1000>;
447			num-cs = <6>;
448			ti,davinci-spi-intr-line = <1>;
449			interrupts = <20>;
450			dmas = <&edma0 14 0>, <&edma0 15 0>;
451			dma-names = "rx", "tx";
452			status = "disabled";
453		};
454		spi1: spi@30e000 {
455			#address-cells = <1>;
456			#size-cells = <0>;
457			compatible = "ti,da830-spi";
458			reg = <0x30e000 0x1000>;
459			num-cs = <4>;
460			ti,davinci-spi-intr-line = <1>;
461			interrupts = <56>;
462			dmas = <&edma0 18 0>, <&edma0 19 0>;
463			dma-names = "rx", "tx";
464			status = "disabled";
465		};
466		usb0: usb@200000 {
467			compatible = "ti,da830-musb";
468			reg = <0x200000 0x1000>;
469			ranges;
470			interrupts = <58>;
471			interrupt-names = "mc";
472			dr_mode = "otg";
473			phys = <&usb_phy 0>;
474			phy-names = "usb-phy";
475			status = "disabled";
476
477			#address-cells = <1>;
478			#size-cells = <1>;
479
480			dmas = <&cppi41dma 0 0 &cppi41dma 1 0
481				&cppi41dma 2 0 &cppi41dma 3 0
482				&cppi41dma 0 1 &cppi41dma 1 1
483				&cppi41dma 2 1 &cppi41dma 3 1>;
484			dma-names =
485				"rx1", "rx2", "rx3", "rx4",
486				"tx1", "tx2", "tx3", "tx4";
487
488			cppi41dma: dma-controller@201000 {
489				compatible = "ti,da830-cppi41";
490				reg =  <0x201000 0x1000
491					0x202000 0x1000
492					0x204000 0x4000>;
493				reg-names = "controller",
494					    "scheduler", "queuemgr";
495				interrupts = <58>;
496				#dma-cells = <2>;
497				#dma-channels = <4>;
498				status = "okay";
499			};
500		};
501		sata: sata@218000 {
502			compatible = "ti,da850-ahci";
503			reg = <0x218000 0x2000>, <0x22c018 0x4>;
504			interrupts = <67>;
505			status = "disabled";
506		};
507		mdio: mdio@224000 {
508			compatible = "ti,davinci_mdio";
509			#address-cells = <1>;
510			#size-cells = <0>;
511			reg = <0x224000 0x1000>;
512			status = "disabled";
513		};
514		eth0: ethernet@220000 {
515			compatible = "ti,davinci-dm6467-emac";
516			reg = <0x220000 0x4000>;
517			ti,davinci-ctrl-reg-offset = <0x3000>;
518			ti,davinci-ctrl-mod-reg-offset = <0x2000>;
519			ti,davinci-ctrl-ram-offset = <0>;
520			ti,davinci-ctrl-ram-size = <0x2000>;
521			local-mac-address = [ 00 00 00 00 00 00 ];
522			interrupts = <33
523					34
524					35
525					36
526					>;
527			status = "disabled";
528		};
529		usb1: usb@225000 {
530			compatible = "ti,da830-ohci";
531			reg = <0x225000 0x1000>;
532			interrupts = <59>;
533			phys = <&usb_phy 1>;
534			phy-names = "usb-phy";
535			status = "disabled";
536		};
537		gpio: gpio@226000 {
538			compatible = "ti,dm6441-gpio";
539			gpio-controller;
540			#gpio-cells = <2>;
541			reg = <0x226000 0x1000>;
542			interrupts = <42 IRQ_TYPE_EDGE_BOTH
543				43 IRQ_TYPE_EDGE_BOTH 44 IRQ_TYPE_EDGE_BOTH
544				45 IRQ_TYPE_EDGE_BOTH 46 IRQ_TYPE_EDGE_BOTH
545				47 IRQ_TYPE_EDGE_BOTH 48 IRQ_TYPE_EDGE_BOTH
546				49 IRQ_TYPE_EDGE_BOTH 50 IRQ_TYPE_EDGE_BOTH>;
547			ti,ngpio = <144>;
548			ti,davinci-gpio-unbanked = <0>;
549			status = "disabled";
550			interrupt-controller;
551			#interrupt-cells = <2>;
552		};
553		pinconf: pin-controller@22c00c {
554			compatible = "ti,da850-pupd";
555			reg = <0x22c00c 0x8>;
556			status = "disabled";
557		};
558
559		mcasp0: mcasp@100000 {
560			compatible = "ti,da830-mcasp-audio";
561			reg = <0x100000 0x2000>,
562			      <0x102000 0x400000>;
563			reg-names = "mpu", "dat";
564			interrupts = <54>;
565			interrupt-names = "common";
566			status = "disabled";
567			dmas = <&edma0 1 1>,
568				<&edma0 0 1>;
569			dma-names = "tx", "rx";
570		};
571
572		lcdc: display@213000 {
573			compatible = "ti,da850-tilcdc";
574			reg = <0x213000 0x1000>;
575			interrupts = <52>;
576			max-pixelclock = <37500>;
577			status = "disabled";
578		};
579	};
580	aemif: aemif@68000000 {
581		compatible = "ti,da850-aemif";
582		#address-cells = <2>;
583		#size-cells = <1>;
584
585		reg = <0x68000000 0x00008000>;
586		ranges = <0 0 0x60000000 0x08000000
587			  1 0 0x68000000 0x00008000>;
588		status = "disabled";
589	};
590	memctrl: memory-controller@b0000000 {
591		compatible = "ti,da850-ddr-controller";
592		reg = <0xb0000000 0xe8>;
593		status = "disabled";
594	};
595};