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

/dts-v1/;

#include <intel/intel_s1000.dtsi>

/ {
	model = "intel_s1000_crb";
	compatible = "intel,s1000";

	aliases {
		uart-0 = &uart0;
	};

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

&cpu0 {
	clock-frequency = <400000000>;
};

&cpu1 {
	clock-frequency = <400000000>;
};

&uart0 {
	status = "okay";
	current-speed = <115200>;
};

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

	codec0: tlv320dac@18 {
		compatible = "ti,tlv320dac";
		reg = <0x18>;
		label = "TLV320DAC";
		reset-gpios = <&gpio0 4 GPIO_ACTIVE_LOW>;
	};
};

&spi0 {
	status = "okay";

	flash0: flash@0 {
		compatible = "jedec,spi-nor";
		reg = <0>;
		spi-max-frequency = <2000000>;
		label = "MX25UM512";
		jedec-id = [c2 80 3a];
		size = <0x2000000>;
	};
};

&flash0 {
	partitions {
		compatible = "fixed-partitions";
		#address-cells = <1>;
		#size-cells = <1>;

		/* The flash is 64MB in size. Each sector is 4kB and
		 * 16 sectors make a block (64kB). The flash is partitioned
		 * in terms of blocks.
		 */

		/* Reserve 192kB for the bootloader */
		boot_partition: partition@0 {
			label = "mcuboot";
			reg = <0x00000000 0x00030000>;
			read-only;
		};

		/* Reserve 1856kB for the application in slot 0 */
		slot0_partition: partition@30000 {
			label = "image-0";
			reg = <0x00030000 0x001D0000>;
		};

		/* Reserve 1856kB for the application in slot 1 */
		slot1_partition: partition@200000 {
			label = "image-1";
			reg = <0x00200000 0x001D0000>;
		};

		/* Reserve 192kB for the scratch partition */
		scratch_partition: partition@3d0000 {
			label = "image-scratch";
			reg = <0x003d0000 0x00030000>;
		};
	};
};

&usb {
	status = "okay";
};
