/*
 * Copyright (c) 2019 Brett Witherspoon
 *
 * SPDX-License-Identifier: Apache-2.0
 */

#include <arm/armv7-m.dtsi>
#include <dt-bindings/i2c/i2c.h>
#include <dt-bindings/gpio/gpio.h>

/ {
	chosen {
		zephyr,entropy = &trng;
	};

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

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

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

	/* VIMS RAM configurable in CCFG as GPRAM or cache for FLASH (default) */
	sram1: memory@11000000 {
		compatible = "mmio-sram";
		reg = <0x11000000 0x2000>;
	};

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

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

	soc {
		pinmux: pinmux@40081000 {
			compatible = "ti,cc13xx-cc26xx-pinmux";
			reg = <0x40081000 0x1000>;
			label = "PINMUX";
		};

		gpio0: gpio@40022000 {
			compatible = "ti,cc13xx-cc26xx-gpio";
			reg = <0x40022000 0x400>;
			interrupts = <0 0>;
			status = "disabled";
			label = "GPIO_0";
			gpio-controller;
			#gpio-cells = <2>;
		};

		trng: random@40028000 {
			compatible = "ti,cc13xx-cc26xx-trng";
			reg = <0x40028000 0x2000>;
			interrupts = <33 0>;
			status = "disabled";
			label = "TRNG";
		};

		uart0: uart@40001000 {
			compatible = "ti,cc13xx-cc26xx-uart";
			reg = <0x40001000 0x1000>;
			interrupts = <5 0>;
			clocks = <&sysclk>;
			status = "disabled";
			label = "UART_0";
		};

		uart1: uart@4000b000 {
			compatible = "ti,cc13xx-cc26xx-uart";
			reg = <0x4000b000 0x1000>;
			interrupts = <36 0>;
			clocks = <&sysclk>;
			status = "disabled";
			label = "UART_1";
		};

		i2c0: i2c@40002000 {
			compatible = "ti,cc13xx-cc26xx-i2c";
			#address-cells = <1>;
			#size-cells = <0>;
			reg = <0x40002000 0x1000>;
			interrupts = <1 0>;
			clock-frequency = <I2C_BITRATE_STANDARD>;
			status = "disabled";
			label = "I2C_0";
		};

		spi0: spi@40000000 {
			compatible = "ti,cc13xx-cc26xx-spi";
			#address-cells = <1>;
			#size-cells = <0>;
			reg = <0x40000000 0x1000>;
			interrupts = <7 0>;
			status = "disabled";
			label = "SPI_0";
		};

		spi1: spi@40008000 {
			compatible = "ti,cc13xx-cc26xx-spi";
			#address-cells = <1>;
			#size-cells = <0>;
			reg = <0x40008000 0x1000>;
			interrupts = <8 0>;
			status = "disabled";
			label = "SPI_1";
		};

		rtc: rtc@40092000 {
			compatible = "ti,cc13xx-cc26xx-rtc";
			reg = <0x40092000 0x1000>;
			interrupts = <4 0>;  /* interrupt #20 = 4 + 16 */
			status = "disabled";
			label = "RTC";
		};
	};
};

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