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

/dts-v1/;

#include <ti/cc2652r.dtsi>
#include "boosterpack_connector.dtsi"

/*
 * Define some constants from driverlib/ioc.h in TI HAL,
 * since we don't have a way to include the file directly.
 */
#define IOC_PORT_MCU_UART0_TX 0x00000010
#define IOC_PORT_MCU_UART0_RX 0x0000000F

#define BTN_GPIO_FLAGS (GPIO_ACTIVE_LOW | GPIO_PULL_UP)

/ {
	model = "TI CC26x2R1 LaunchXL";
	compatible = "ti,launchxl-cc26x2r1";

	aliases {
		led0 = &led0;
		led1 = &led1;
		sw0 = &btn0;
		sw1 = &btn1;
	};

	chosen {
		zephyr,sram = &sram0;
		zephyr,flash = &flash0;
		zephyr,console = &uart0;
		zephyr,shell-uart = &uart0;
	};

	leds {
		compatible = "gpio-leds";
		led0: led_0 {
			gpios = <&gpio0 7 GPIO_ACTIVE_HIGH>;
			label = "Green LED";
		};
		led1: led_1 {
			gpios = <&gpio0 6 GPIO_ACTIVE_HIGH>;
			label = "Red LED";
		};
	};

	keys {
		compatible = "gpio-keys";
		btn0: btn_0 {
			gpios = <&gpio0 13 BTN_GPIO_FLAGS>;
			label = "Push button 1";
		};
		btn1: btn_1 {
			gpios = <&gpio0 14 BTN_GPIO_FLAGS>;
			label = "Push button 2";
		};
	};

	power-states {
		idle: idle {
			compatible = "zephyr,power-state";
			power-state-name = "suspend-to-idle";
			min-residency-us = <1000>;
		};

		standby: standby {
			compatible = "zephyr,power-state";
			power-state-name = "standby";
			min-residency-us = <5000>;
		};
	};
};

&cpu0 {
	clock-frequency = <48000000>;
	cpu-power-states = <&idle &standby>;
};

&trng {
	status = "okay";
};

&gpio0 {
	status = "okay";
};

&uart0 {
	status = "okay";
	current-speed = <115200>;
	tx-pin = <3 IOC_PORT_MCU_UART0_TX>;
	rx-pin = <2 IOC_PORT_MCU_UART0_RX>;
};

&i2c0 {
	status = "okay";
	scl-pin = <4>;
	sda-pin = <5>;
};

&spi0 {
	status = "okay";
	sck-pin = <10>;
	mosi-pin = <9>;
	miso-pin = <8>;
	cs-pin = <11>;
	cs-gpios = <&gpio0 11 GPIO_ACTIVE_LOW>;
};

&rtc {
	status = "okay";
};
