/*
 * Copyright (c) 2024 Analog Devices, Inc.
 *
 * SPDX-License-Identifier: Apache-2.0
 */

/dts-v1/;

#include <adi/max32/max32670.dtsi>
#include <adi/max32/max32670-pinctrl.dtsi>
#include <zephyr/dt-bindings/gpio/adi-max32-gpio.h>
#include <zephyr/dt-bindings/input/input-event-codes.h>

/ {
	model = "Analog Devices MAX32670EVKIT";
	compatible = "adi,max32670evkit";

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

	leds {
		compatible = "gpio-leds";
		led1: led_1 {
			gpios = <&gpio0 22 GPIO_ACTIVE_LOW>;
			label = "Red LED";
		};
		led2: led_2 {
			gpios = <&gpio0 23 GPIO_ACTIVE_LOW>;
			label = "Blue LED";
		};
	};

	buttons {
		compatible = "gpio-keys";
		pb1: pb1 {
			gpios = <&gpio0 21 (GPIO_PULL_UP | GPIO_ACTIVE_LOW)>;
			label = "SW2";
			zephyr,code = <INPUT_KEY_0>;
		};
	};

	/* These aliases are provided for compatibility with samples */
	aliases {
		led0 = &led1;
		led1 = &led2;
		sw0 = &pb1;
		watchdog0 = &wdt0;
	};
};

&uart0 {
	pinctrl-0 = <&uart0a_tx_p0_9 &uart0a_rx_p0_8>;
	pinctrl-names = "default";
	current-speed = <115200>;
	data-bits = <8>;
	parity = "none";
	status = "okay";
};

&clk_ipo {
	status = "okay";
};

/*
 * ERTCO is required for counter RTC
 */
&clk_ertco {
	status = "okay";
};

&gpio0 {
	status = "okay";
};

&gpio1 {
	status = "okay";
};

&trng {
	status = "okay";
};

&i2c0 {
	status = "okay";
	pinctrl-0 = <&i2c0_scl_p0_6 &i2c0_sda_p0_7>;
	pinctrl-names = "default";
};

&dma0 {
	status = "okay";
};

&wdt0 {
	status = "okay";
};

&spi0 {
	status = "okay";
	pinctrl-0 = <&spi0_mosi_p0_3 &spi0_miso_p0_2 &spi0_sck_p0_4 &spi0_ss0_p0_5>;
	pinctrl-names = "default";
};

&rtc_counter {
	status = "okay";
};
