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

/dts-v1/;

#include <mem.h>

#define DT_FLASH_SIZE		DT_SIZE_K(144)
#define DT_SRAM_SIZE		DT_SIZE_K(52)

#include "intel_curie.dtsi"

/ {
	model = "quark_se_c1000_devboard";
	compatible = "intel,quark_se_c1000_devboard", "intel,quark_se_c1000";

	aliases {
		led0 = &led0;
		sw0 = &button0;
		sw1 = &button1;
		uart-0 = &uart0;
		uart-1 = &uart1;
	};

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

	leds {
		compatible = "gpio-leds";
		led0: led_0 {
			gpios = <&gpio0 25 0>;
			label = "LED";
		};
	};

	buttons {
		/* Push button switch 0 KEY1 */
		compatible = "gpio-keys";
		button0: button_0 {
			/* gpio flags need validation */
			gpios = <&gpio1 4 GPIO_INT_ACTIVE_LOW>;
			label = "Push button switch 0";
		};
		button1: button_1 {
			/* gpio flags need validation */
			gpios = <&gpio0 5 GPIO_INT_ACTIVE_LOW>;
			label = "Push button switch 1";
		};
	};
};

&uart0 {
	status = "ok";
	current-speed = <1000000>;
};

&uart1 {
	status = "ok";
	current-speed = <115200>;
};

&i2c0 {
	status = "ok";
	clock-frequency = <I2C_BITRATE_FAST>;
};

&i2c1 {
	status = "ok";
	clock-frequency = <I2C_BITRATE_FAST>;
};

&spi0 {
	status = "ok";
};

&spi1 {
	status = "ok";
	cs-gpios = <&gpio0 11 0>;

	cc2520@0 {
		compatible = "ti,cc2520";
		reg = <0x0>;
		label = "cc2520";
		spi-max-frequency = <8000000>;
		status = "ok";
		vreg-en-gpios = <&gpio0 0 0>;
		reset-gpios = <&gpio0 1 0>;
		fifo-gpios = <&gpio1 4 0>;
		cca-gpios = <&gpio1 6 0>;
		sfd-gpios = <&gpio1 29 0>;
		fifop-gpios = <&gpio1 5 0>;
	};
};
