Linux Audio

Check our new training course

Embedded Linux Audio

Check our new training course
with Creative Commons CC-BY-SA
lecture materials

Bootlin logo

Elixir Cross Referencer

Loading...
/* SPDX-License-Identifier: Apache-2.0 */

#include <xtensa/xtensa.dtsi>
#include <zephyr/dt-bindings/i2c/i2c.h>
#include <zephyr/dt-bindings/gpio/gpio.h>
#include <mem.h>
#include <zephyr/dt-bindings/interrupt-controller/intel-ioapic.h>


/ {
	cpus {
		#address-cells = <1>;
		#size-cells = <0>;

		cpu0: cpu@0 {
			device_type = "cpu";
			compatible = "cdns,tensilica-xtensa-lx6";
			reg = <0>;
		};

		cpu1: cpu@1 {
			device_type = "cpu";
			compatible = "cdns,tensilica-xtensa-lx6";
			reg = <1>;
		};
	};

	sram0: memory@be000000 {
		compatible = "mmio-sram";
		reg = <0xbe000000 DT_SIZE_M(4)>;
	};

	sram1: memory@be800000 {
		compatible = "mmio-sram";
		reg = <0xbe800000 DT_SIZE_K(64)>;
	};

	sysclk: system-clock {
		compatible = "fixed-clock";
		clock-frequency = <400000000>;
		#clock-cells = <0>;
	};

	soc {
		core_intc: core_intc@0 {
			compatible = "cdns,xtensa-core-intc";
			reg = <0x00 0x400>;
			interrupt-controller;
			#interrupt-cells = <3>;
		};

		shim: shim@71f00 {
			compatible = "intel,cavs-shim";
			reg = <0x71f00 0x100>;
		};

		cavs0: cavs@78800  {
			compatible = "intel,cavs-intc";
			reg = <0x78800 0x10>;
			interrupt-controller;
			#interrupt-cells = <3>;
			interrupts = <6 0 0>;
			interrupt-parent = <&core_intc>;
			label = "CAVS_0";
		};

		cavs1: cavs@78810  {
			compatible = "intel,cavs-intc";
			reg = <0x78810 0x10>;
			interrupt-controller;
			#interrupt-cells = <3>;
			interrupts = <0xA 0 0>;
			interrupt-parent = <&core_intc>;
			label = "CAVS_1";
		};

		cavs2: cavs@78820  {
			compatible = "intel,cavs-intc";
			reg = <0x78820 0x10>;
			interrupt-controller;
			#interrupt-cells = <3>;
			interrupts = <0XD 0 0>;
			interrupt-parent = <&core_intc>;
			label = "CAVS_2";
		};

		cavs3: cavs@78830  {
			compatible = "intel,cavs-intc";
			reg = <0x78830 0x10>;
			interrupt-controller;
			#interrupt-cells = <3>;
			interrupts = <0x10 0 0>;
			interrupt-parent = <&core_intc>;
			label = "CAVS_3";
		};

		idc: idc@1200 {
			compatible = "intel,cavs-idc";
			label = "CAVS_IDC";
			reg = <0x1200 0x80>;
			interrupts = <8 0 0>;
			interrupt-parent = <&cavs0>;
		};

		dw_intc: intc@81800  {
			compatible = "snps,designware-intc";
			reg = <0x00081800 0x400>;
			interrupt-controller;
			#interrupt-cells = <3>;
			interrupts = <6 0 0>;
			num-irqs = <9>;
			interrupt-parent = <&cavs0>;
			label = "DW_INTC";
		};

		gpio0: gpio@80c00 {
			compatible = "snps,designware-gpio";
			reg = <0x00080c00 0x400>;
			ngpios = <32>;
			label = "GPIO";
			interrupts = <3 1 0>;
			interrupt-parent = <&dw_intc>;

			gpio-controller;
			#gpio-cells = <2>;
		};

		pinmux: pinmux@81c30 {
			compatible = "intel,s1000-pinmux";
			reg = <0x00081c30 0xC>;
		};

		uart0: uart@80800 {
			compatible = "ns16550";
			reg = <0x80800 0x400>;
			label = "UART_0";
			clock-frequency = <38400000>;
			interrupts = <2 0 0>;
			interrupt-parent = <&dw_intc>;


			status = "disabled";
		};

		i2c0: i2c@80400 {
			compatible = "snps,designware-i2c";
			clock-frequency = <I2C_BITRATE_STANDARD>;
			#address-cells = <1>;
			#size-cells = <0>;
			reg = <0x80400 0x400>;
			interrupts = <1 0 0>;
			interrupt-parent = <&dw_intc>;
			label = "I2C_0";

			status = "disabled";
		};

		spi0: spi@e000 {
			compatible = "snps,designware-spi";
			#address-cells = <1>;
			#size-cells = <0>;
			reg = <0x0000E000 0x400>;
			clocks = <&sysclk>;
			interrupts = <6 0 0>;
			interrupt-parent = <&dw_intc>;
			label = "SPI_0";
		};

		dma0: dma@7c000 {
			compatible = "snps,designware-dma";
			#dma-cells = <1>;
			reg = <0x0007C000 0x1000>;
			interrupts = <0x10 0 0>;
			interrupt-parent = <&cavs3>;
			label = "DMA_0";

			status = "okay";
		};

		dma1: dma@7d000 {
			compatible = "snps,designware-dma";
			#dma-cells = <1>;
			reg = <0x0007D000 0x1000>;
			interrupts = <0x00 0 0>;
			interrupt-parent = <&cavs1>;
			label = "DMA_1";

			status = "disabled";
		};

		dma2: dma@7e000 {
			compatible = "snps,designware-dma";
			#dma-cells = <1>;
			reg = <0x0007E000 0x1000>;
			interrupts = <0x00 0 0>;
			interrupt-parent = <&cavs2>;
			label = "DMA_2";

			status = "disabled";
		};

		usb: usb@a0000 {
			compatible = "snps,designware-usb";
			reg = <0x000A0000 0x1000>;
			interrupts = <0x07 IRQ_TYPE_LOWEST_EDGE_RISING 3>;
			interrupt-parent = <&cavs0>;
			num-bidir-endpoints = <6>;
			label = "USB_0";

			status = "disabled";
		};

		i2s1: i2s@77200 {
			compatible = "intel,cavs-i2s";
			#address-cells = <1>;
			#size-cells = <0>;
			reg = <0x00077200 0x200
			       0x00078D08 0x008>;
			interrupts = <0x01 0 0>;
			interrupt-parent = <&cavs3>;
			dmas = <&dma0 2
				&dma0 3>;
			dma-names = "tx", "rx";
			label = "I2S_1";

			status = "okay";
		};

		i2s2: i2s@77400 {
			compatible = "intel,cavs-i2s";
			#address-cells = <1>;
			#size-cells = <0>;
			reg = <0x00077400 0x200
			       0x00078D10 0x008>;
			interrupts = <0x02 0 0>;
			interrupt-parent = <&cavs3>;
			dmas = <&dma0 4
				&dma0 5>;
			dma-names = "tx", "rx";
			label = "I2S_2";

			status = "okay";
		};

		i2s3: i2s@77600 {
			compatible = "intel,cavs-i2s";
			#address-cells = <1>;
			#size-cells = <0>;
			reg = <0x00077600 0x200
			       0x00078D18 0x008>;
			interrupts = <0x03 0 0>;
			interrupt-parent = <&cavs3>;
			dmas = <&dma0 6
				&dma0 7>;
			dma-names = "tx", "rx";
			label = "I2S_3";

			status = "okay";
		};

		gna: gna@e800 {
			compatible = "intel,gna";
			reg = <0x0000E800 0x100>;
			interrupt-controller;
			interrupts = <5 0 0>;
			interrupt-parent = <&cavs0>;
			label = "GNA0";
		};
	};
};