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

/dts-v1/;

#include <ti/cc1352r.dtsi>
#include "boosterpack_connector.dtsi"
#include "cc1352r1_launchxl-pinctrl.dtsi"

#define BTN_GPIO_FLAGS (GPIO_ACTIVE_LOW | GPIO_PULL_UP)

/ {
	model = "TI CC1352R1 LaunchXL";
	compatible = "ti,launchxl-cc1352r1";

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

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

	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 15 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>;
			exit-latency-us = <240>;
		};
	};
};

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

&trng {
	status = "okay";
};

&gpio0 {
	status = "okay";
};

&adc0 {
	status = "okay";
};

&uart0 {
	status = "okay";
	current-speed = <115200>;
	pinctrl-0 = <&uart0_rx_default &uart0_tx_default>;
	pinctrl-names = "default";
};

&i2c0 {
	status = "okay";
	pinctrl-0 = <&i2c0_scl_default &i2c0_sda_default>;
	pinctrl-1 = <&i2c0_scl_sleep &i2c0_sda_sleep>;
	pinctrl-names = "default", "sleep";
};

&spi0 {
	status = "okay";
	pinctrl-0 = <&spi0_sck_default &spi0_mosi_default
				 &spi0_miso_default &spi0_cs_default>;
	pinctrl-names = "default";
	cs-gpios = <&gpio0 11 GPIO_ACTIVE_LOW>;
};

&rtc {
	status = "okay";
};

&radio {
	status = "okay";
};

&ieee802154 {
	status = "okay";
};

&ieee802154g {
	status = "disabled";
};

&wdt0 {
	status = "okay";
};
