/*
 * Copyright (c) 2022 Intel Corporation
 *
 * SPDX-License-Identifier: Apache-2.0
 */

#include "tdk_robokit1-pinctrl.dtsi"

/ {
	aliases {
		led0 = &led_0;
	};

	chosen {
		zephyr,console = &uart2;
		zephyr,shell-uart = &uart2;
		zephyr,sram = &sram0;
		zephyr,flash = &flash0;
		zephyr,code-partition = &slot0_partition;
	};

	leds {
		compatible = "gpio-leds";
		led_0: led_0 {
			gpios = <&pioa 11 GPIO_ACTIVE_HIGH>;
			label = "User LED";
		};
		led_1: led_1 {
			gpios = <&pioa 12 GPIO_ACTIVE_HIGH>;
			label = "User LED";
		};
		led_2: led_2 {
			gpios = <&pioa 13 GPIO_ACTIVE_HIGH>;
			label = "User LED";
		};
		led_3: led_3 {
			gpios = <&pioa 14 GPIO_ACTIVE_HIGH>;
			label = "User LED";
		};
	};
};

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

&afec0 {
	pinctrl-0 = <&afec0_default>;
	pinctrl-names = "default";
	status = "okay";
};

&afec1 {
	pinctrl-0 = <&afec1_default>;
	pinctrl-names = "default";
	status = "okay";
};

&dacc {
	status = "okay";
};

&twihs0 {
	pinctrl-0 = <&twihs0_default>;
	pinctrl-names = "default";
	status = "okay";
};

&twihs1 {
	pinctrl-0 = <&twihs1_default>;
	pinctrl-names = "default";
	status = "okay";
};

&twihs2 {
	pinctrl-0 = <&twihs2_default>;
	pinctrl-names = "default";
	status = "okay";
};

&spi0 {
	pinctrl-0 = <&spi0_default>;
	pinctrl-names = "default";
	dmas = <&xdmac 0 DMA_PERID_SPI0_TX>, <&xdmac 1 DMA_PERID_SPI0_RX>;
	dma-names = "tx", "rx";
	cs-gpios =<&pioa 31 GPIO_ACTIVE_LOW>;
	status = "okay";

	icm42688p@0 {
		compatible = "invensense,icm42688";
		reg = <0>;
		spi-max-frequency = <24000000>;
		accel-hz = <32000>;
		accel-fs = <16>;
		gyro-hz = <32000>;
		gyro-fs = <2000>;
	};
};

&spi1 {
	pinctrl-0 = <&spi1_default>;
	pinctrl-names = "default";
	cs-gpios = <&pioc 25 GPIO_ACTIVE_LOW>;
	status = "okay";
};

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

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

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

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

&wdt {
	status = "okay";
};

zephyr_udc0: &usbhs {
	status = "okay";
};

&mdio {
	pinctrl-0 = <&mdio_default>;
	pinctrl-names = "default";
	status = "okay";
};

&pwm0 {
	pinctrl-0 = <&pwm_default>;
	pinctrl-names = "default";
	status = "okay";
};


&xdmac {
	status = "okay";
};

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

		/*
		 * The first half of sector 0 (64 kbytes)
		 * is reserved for the bootloader
		 */
		boot_partition: partition@0 {
			label = "mcuboot";
			reg = <0x0 0x00010000>;
			read-only;
		};

		/* From sector 1 to sector 7 (included): slot0 (896 kbytes) */
		slot0_partition: partition@20000 {
			label = "image-0";
			reg = <0x00020000 0x000e0000>;
		};

		/* From sector 8 to sector 14 (included): slot1 (896 kbytes) */
		slot1_partition: partition@100000 {
			label = "image-1";
			reg = <0x00100000 0x000e0000>;
		};

		/* Sector 15: scratch (128 kbytes) */
		scratch_partition: partition@1e0000 {
			label = "image-scratch";
			reg = <0x001e0000 0x00020000>;
		};
	};
};

