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

/dts-v1/;

#include <mem.h>

#define DT_FLASH_SIZE		DT_SIZE_K(128)
#define DT_SRAM_SIZE		DT_SIZE_K(24)
#define DT_DCCM_SIZE		DT_SIZE_K(8)

#define DT_FLASH_ADDR		0x40034000

#include "quark_se_c1000_ss.dtsi"

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

	aliases {
		led0 = &led0;
		uart-0 = &uart0;
		uart-1 = &uart1;
	};

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

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

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

&i2c0 {
	status = "ok";
};

&i2c1 {
	status = "ok";
};

&i2c2 {
	status = "ok";
};

&i2c3 {
	status = "ok";
};

&adc0 {
	status = "ok";
};

&spi0 {
	status = "ok";
};

&spi1 {
	status = "ok";

	bmi160@1 {
		compatible = "bosch,bmi160";
		reg = <0x1>;
		label = "bmi160";
		spi-max-frequency = <640000>;
		int-gpios = <&gpio1 4 0>;
		status = "ok";
	};
};
