/*
 * Copyright (c) 2020 Google LLC.
 *
 * SPDX-License-Identifier: Apache-2.0
 */

/dts-v1/;
#include <atmel/samd21.dtsi>
#include <atmel/samx2xx18.dtsi>
#include "seeeduino_xiao-pinctrl.dtsi"
#include "seeed_xiao_connector.dtsi"

/ {
	model = "Seeeduino XIAO";
	compatible = "seeed,seeeduino-xiao";

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

	leds {
		compatible = "gpio-leds";
		led: led_0 {
			gpios = <&porta 17 GPIO_ACTIVE_LOW>;
			label = "LED";
		};
		rx_led: led_1 {
			gpios = <&porta 18 GPIO_ACTIVE_LOW>;
			label = "RX_LED";
		};
		tx_led: led_2 {
			gpios = <&porta 19 GPIO_ACTIVE_LOW>;
			label = "TX_LED";
		};
	};

	/* These aliases are provided for compatibility with samples */
	aliases {
		led0 = &led;
		led1 = &rx_led;
		led2 = &tx_led;
	};
};

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

&sercom4 {
	status = "okay";
	compatible = "atmel,sam0-uart";
	current-speed = <115200>;
	rxpo = <1>;
	txpo = <0>;

	pinctrl-0 = <&sercom4_uart_default>;
	pinctrl-names = "default";
};

&sercom0 {
	status = "okay";
	compatible = "atmel,sam0-spi";
	dipo = <1>;
	dopo = <1>;
	#address-cells = <1>;
	#size-cells = <0>;

	pinctrl-0 = <&sercom0_spi_default>;
	pinctrl-names = "default";
};

&sercom2 {
	status = "okay";
	compatible = "atmel,sam0-i2c";
	clock-frequency = <I2C_BITRATE_FAST>;
	#address-cells = <1>;
	#size-cells = <0>;

	pinctrl-0 = <&sercom2_i2c_default>;
	pinctrl-names = "default";
};

zephyr_udc0: &usb0 {
	status = "okay";

	pinctrl-0 = <&usb_dc_default>;
	pinctrl-names = "default";
};

&dac0 {
	status = "okay";

	pinctrl-0 = <&dac_default>;
	pinctrl-names = "default";
};

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

		boot_partition: partition@0 {
			label = "uf2";
			reg = <0x00000000 DT_SIZE_K(8)>;
			read-only;
		};

		code_partition: partition@2000 {
			label = "code";
			reg = <0x2000 DT_SIZE_K(256-8-16)>;
			read-only;
		};

		/*
		 * The final 16 KiB is reserved for the application.
		 * Storage partition may be used by FCB or LittleFS.
		 */
		storage_partition: partition@3c000 {
			label = "storage";
			reg = <0x0003c000 DT_SIZE_K(16)>;
		};
	};
};
