Linux Audio

Check our new training course

Loading...
/*
 * Copyright (c) 2020 Linumiz
 * Author: Parthiban Nallathambi <parthiban@linumiz.com>
 *
 * SPDX-License-Identifier: Apache-2.0
 */

#include <arm/armv7-m.dtsi>
#include <zephyr/dt-bindings/gpio/gpio.h>
#include <zephyr/dt-bindings/gpio/infineon-xmc4xxx-gpio.h>

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

		cpu0: cpu@0 {
			compatible = "arm,cortex-m4f";
			reg = <0>;
		};
	};

	/* TODO: Add psram1 & dsram2 to MEMORY layout of linker */
	psram1: memory@10000000 {
		compatible = "mmio-sram";
	};

	dsram1: memory@20000000 {
		compatible = "mmio-sram";
	};

	dsram2: memory@30000000 {
		compatible = "mmio-sram";
	};

	flash_controller: flash_controller@58001000 {
		compatible = "infineon,xmc4xxx-flash-controller";
		reg = <0x58001000 0x1400>;
		#address-cells = <1>;
		#size-cells = <1>;
		flash0: flash@c000000 {
			compatible = "infineon,xmc4xxx-nv-flash","soc-nv-flash";
			write-block-size = <256>;
		};
	};

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

	soc {
		intc: eru@40044000 {
			compatible = "infineon,xmc4xxx-intc";
			reg = <0x40044000 0xff>, <0x50004800 0xff>;
			/* naming order is intentional. eru1 maps to a lower address than eru0 */
			reg-names = "eru1", "eru0";
			interrupts = <1 1>, <2 1>, <3 1>, <4 1>, <5 1>, <6 1>, <7 1>, <8 1>;
			interrupt-names = "eru0sr0", "eru0sr1", "eru0sr2", "eru0sr3",
					"eru1sr0", "eru1sr1", "eru1sr2", "eru1sr3";
		};

		pinctrl: pinctrl@48028000 {
			compatible = "infineon,xmc4xxx-pinctrl";
			#address-cells = <1>;
			#size-cells = <1>;

			gpio0: gpio@48028000 {
				compatible = "infineon,xmc4xxx-gpio";
				gpio-controller;
				#gpio-cells = <2>;
				reg = <0x48028000 0x100>;
				status = "disabled";
			};

			gpio1: gpio@48028100 {
				compatible = "infineon,xmc4xxx-gpio";
				gpio-controller;
				#gpio-cells = <2>;
				reg = <0x48028100 0x100>;
				status = "disabled";
			};

			gpio2: gpio@48028200 {
				compatible = "infineon,xmc4xxx-gpio";
				gpio-controller;
				#gpio-cells = <2>;
				reg = <0x48028200 0x100>;
				status = "disabled";
			};

		};

		usic0ch0: usic@40030000 {
			reg = <0x40030000 0x1ff>;
			clocks = <&sysclk>;
			status = "disabled";
		};

		usic0ch1: usic@40030200 {
			reg = <0x40030200 0x1ff>;
			clocks = <&sysclk>;
			status = "disabled";
		};

		usic1ch0: usic@48020000 {
			reg = <0x48020000 0x1ff>;
			clocks = <&sysclk>;
			status = "disabled";
		};

		usic1ch1: usic@48020200 {
			reg = <0x48020200 0x1ff>;
			clocks = <&sysclk>;
			status = "disabled";
		};

		usic2ch0: usic@48024000 {
			reg = <0x48024000 0x1ff>;
			clocks = <&sysclk>;
			status = "disabled";
		};

		usic2ch1: usic@48024200 {
			reg = <0x48024200 0x1ff>;
			clocks = <&sysclk>;
			status = "disabled";
		};

		adc0: adc@40004400 {
			compatible = "infineon,xmc4xxx-adc";
			reg = <0x40004400 0x400>;
			interrupts = <18 62>;
			#io-channel-cells = <1>;
			status = "disabled";
		};

		adc1: adc@40004800 {
			compatible = "infineon,xmc4xxx-adc";
			reg = <0x40004800 0x400>;
			interrupts = <22 62>;
			#io-channel-cells = <1>;
			status = "disabled";
		};

		adc2: adc@40004c00 {
			compatible = "infineon,xmc4xxx-adc";
			reg = <0x40004C00 0x400>;
			interrupts = <26 62>;
			#io-channel-cells = <1>;
			status = "disabled";
		};

		adc3: adc@40005000 {
			compatible = "infineon,xmc4xxx-adc";
			reg = <0x40005000 0x400>;
			interrupts = <30 62>;
			#io-channel-cells = <1>;
			status = "disabled";
		};
	};
};

&nvic {
	arm,num-irq-priority-bits = <6>;
};