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

/dts-v1/;
#include <atmel/samd21.dtsi>

/ {
	model = "Arduino Nano 33 IOT";
	compatible = "arduino,nano-33-iot";

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

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

	pwmleds {
		compatible = "pwm-leds";

		pwm_led0: pwm_led_0 {
			pwms = <&tcc2 1>;
		};
	};

	aliases {
		led0 = &led0;
		pwm-led0 = &pwm_led0;
	};
};

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

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

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

	cs-gpios = <&porta 14 GPIO_ACTIVE_LOW>;

	nina_w102@0 {
		compatible = "u-blox,nina";
		reg = <0>;
		label = "NINA_W102";
		spi-max-frequency = <8000000>;
		ready-gpios = <&porta 28 (GPIO_PULL_UP | GPIO_ACTIVE_LOW)>;
		reset-gpios = <&porta 8 GPIO_ACTIVE_LOW>;
		irq-gpios = <&porta 27 GPIO_PULL_DOWN>;
	};
};

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

	pinctrl-0 = <&pa23c_sercom3_pad1 &pa22c_sercom3_pad0>;

	nina_prog {
		compatible = "espressif,esp-at";
		label = "NINA_PROG";
		reset-gpios = <&porta 8 GPIO_ACTIVE_LOW>;
	};
};

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

	lsm6ds3@6a {
		compatible = "st,lsm6ds3";
		reg = <0x6a>;
		label = "LSM6DS3";
	};

	atecc608a@15 {
		compatible = "atmel,atecc608";
		reg = <0x6a>;
		label = "ATECC608A";
	};
};

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

	pinctrl-0 = <&pb23d_sercom5_pad3 &pb22d_sercom5_pad2>;
};

&tcc2 {
	status = "okay";
	compatible = "atmel,sam0-tcc-pwm";
	prescaler = <1024>;
	#pwm-cells = <1>;
};

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

		boot_partition: partition@0 {
			label = "uf2";
			reg = <0x00000000 0x2000>;
			read-only;
		};

		code_partition: partition@2000 {
			label = "code";
			reg = <0x2000 0x3A000>;
			read-only;
		};

		/*
		 * The final 16 KiB is reserved for the application.
		 * Storage partition will be used by FCB/LittleFS/NVS
		 * if enabled.
		 */
		storage_partition: partition@3c000 {
			label = "storage";
			reg = <0x0003c000 0x00004000>;
		};
	};
};

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