/*
 * Copyright (c) 2019, Texas Instruments Incorporated
 *
 * SPDX-License-Identifier: Apache-2.0
 */

/dts-v1/;

#include <ti/cc3235sf.dtsi>
#include "cc3235sf_launchxl-pinctrl.dtsi"
#include <zephyr/dt-bindings/input/input-event-codes.h>

/ {
	model = "TI CC3235SF LaunchXL";
	compatible = "ti,cc3235sf-launchxl", "ti,cc3235sf", "ti,cc32xx";

	aliases {
		uart-0 = &uart0;
		uart-1 = &uart1;
		i2c-0 = &i2c0;
		led0 = &led0;
		led1 = &led1;
		led2 = &led2;
		/* sw0/1 alias defined for compatibility with samples */
		sw0 = &sw2;
		sw1 = &sw3;
		watchdog0 = &wdt0;
	};

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

	leds {
		compatible = "gpio-leds";
		led0: led_0 {
			gpios = <&gpioa1 3 GPIO_ACTIVE_HIGH>;
			label = "Green LED";
		};
		led1: led_1 {
			gpios = <&gpioa1 2 GPIO_ACTIVE_HIGH>;
			label = "Yellow LED";
		};
		led2: led_2 {
			gpios = <&gpioa1 1 GPIO_ACTIVE_HIGH>;
			label = "Red LED";
		};
	};

	buttons {
		/* Push button 2 */
		compatible = "gpio-keys";
		sw2: button_0 {
			gpios = <&gpioa2 6 GPIO_ACTIVE_HIGH>;
			label = "Push button switch 2";
			zephyr,code = <INPUT_KEY_0>;
		};
		/* Push button 3 */
		sw3: button_1 {
			gpios = <&gpioa1 5 GPIO_ACTIVE_HIGH>;
			label = "Push button switch 3";
			zephyr,code = <INPUT_KEY_1>;
		};
	};
};

&adc0 {
	status = "okay";
};

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

&i2c0 {
	status = "okay";
	clock-frequency = <I2C_BITRATE_FAST>;
	pinctrl-0 = <&i2c0_default>;
	pinctrl-names = "default";
};

&wdt0 {
	status = "okay";
};
