Linux Audio

Check our new training course

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

#include <arm/armv7-m.dtsi>

#include <dt-bindings/i2c/i2c.h>
#include <dt-bindings/gpio/gpio.h>

#define INT_UARTA0              21          // UART0 Rx and Tx
#define INT_UARTA1              22          // UART1 Rx and Tx
#define INT_I2CA0               24          // I2C controller

/* Note: Zephyr uses exception numbers, vs the IRQ #s used by the CC32XX SDK */
/* which are offset by 16: */
#define EXP_UARTA0 (INT_UARTA0 - 16)
#define EXP_UARTA1 (INT_UARTA1 - 16)
#define EXP_I2CA0  (INT_I2CA0 - 16)
#define EXC_GPIOA0  0  /* (INT_GPIOA0 - 16) = (16-16) */
#define EXC_GPIOA1  1  /* (INT_GPIOA1 - 16) = (17-16) */
#define EXC_GPIOA2  2  /* (INT_GPIOA2 - 16) = (18-16) */
#define EXC_GPIOA3  3  /* (INT_GPIOA3 - 16) = (19-16) */

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

		cpu@0 {
			device_type = "cpu";
			compatible = "arm,cortex-m4";
			reg = <0>;
		};
	};

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

	flash0: serial-flash@0 {
		compatible = "serial-flash";
	};

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

	soc {
		uart0: uart@4000c000 {
			compatible = "ti,cc32xx-uart";
			reg = <0x4000c000 0x4c>;
			interrupts = <EXP_UARTA0 3>;
			clocks = <&sysclk>;
			status = "disabled";
			label = "UART_0";
		};

		uart1: uart@4000d000 {
			compatible = "ti,cc32xx-uart";
			reg = <0x4000d000 0x4c>;
			interrupts = <EXP_UARTA1 3>;
			clocks = <&sysclk>;
			status = "disabled";
			label = "UART_1";
		};

		i2c0: i2c@40020000 {
			compatible = "ti,cc32xx-i2c";
			clocks = <&sysclk>;
			clock-frequency = <I2C_BITRATE_STANDARD>;
			#address-cells = <1>;
			#size-cells = <0>;
			reg = <0x40020000 0xfc8>;
			interrupts = <EXP_I2CA0 3>;
			status = "disabled";
			label= "I2C_0";
		};

		gpioa0: gpio@40004000 {
			compatible = "ti,cc32xx-gpio";
			reg = <0x40004000 0x1000>;
			interrupts = <0 1>;
			label = "GPIO_A0";
			gpio-controller;
			#gpio-cells = <2>;
		};

		gpioa1: gpio@40005000 {
			compatible = "ti,cc32xx-gpio";
			reg = <0x40005000 0x1000>;
			interrupts = <1 1>;
			label = "GPIO_A1";
			gpio-controller;
			#gpio-cells = <2>;
		};

		gpioa2: gpio@40006000 {
			compatible = "ti,cc32xx-gpio";
			reg = <0x40006000 0x1000>;
			interrupts = <2 1>;
			label = "GPIO_A2";
			gpio-controller;
			#gpio-cells = <2>;
		};

		gpioa3: gpio@40007000 {
			compatible = "ti,cc32xx-gpio";
			reg = <0x40007000 0x1000>;
			interrupts = <3 1>;
			label = "GPIO_A3";
			gpio-controller;
			#gpio-cells = <2>;
		};
	};
};

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