/*
 * Copyright (c) 2023 TOKITA Hiroshi <tokita.hiroshi@fujitsu.com>
 *
 * SPDX-License-Identifier: Apache-2.0
 */

/dts-v1/;

#include <zephyr/dt-bindings/gpio/gpio.h>

#include "arduino_uno_r4_common.dtsi"
#include "arduino_uno_r4_minima-pinctrl.dtsi"

/ {
	model = "Arduino Uno R4 Minima";

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

	leds {
		compatible = "gpio-leds";
		led: led {
			gpios = <&ioport1 11 GPIO_ACTIVE_HIGH>;
		};
	};

	aliases {
		led0 = &led;
	};
};

&sci2 {
	status = "okay";
	pinctrl-0 = <&sci2_default>;
	pinctrl-names = "default";
	uart2: uart {
		current-speed = <115200>;
		status = "okay";
	};
};

&ioport1 {
	status = "okay";
};

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

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

		code_partition: partition@4000 {
			label = "code";
			reg = <0x4000 0x3C000>;
			read-only;
		};
	};
};

&fcu {
	status = "okay";
};

&hoco {
	status = "okay";
	clock-frequency = <48000000>;
};

&cgc {
	clock-source = <&hoco>;
	iclk-div = <1>;
	pclka-div = <1>;
	pclkb-div = <2>;
	pclkc-div = <1>;
	pclkd-div = <1>;
	fclk-div = <2>;
};
