/*
 * Copyright (c) 2020 Gerson Fernando Budke <nandojve@gmail.com>
 * SPDX-License-Identifier: Apache-2.0
 */

/dts-v1/;

#include <atmel/sam4lx4.dtsi>
#include "sam4l_ek-pinctrl.dtsi"
#include <zephyr/dt-bindings/input/input-event-codes.h>

/ {
	model = "Atmel SAM4L-EK Board with an Atmel SAM4LC4C SoC";
	compatible = "atmel,sam4l_ek";

	aliases {
		i2c-0 = &twim0;
		led0 = &user_led;
		sw0 = &sw0_dfu;
	};

	chosen {
		zephyr,console = &usart2;
		zephyr,shell-uart = &usart2;
		zephyr,sram = &sram0;
		zephyr,flash = &flash0;
	};

	leds {
		compatible = "gpio-leds";
		user_led: led_0 {
			gpios = <&gpioc 10 GPIO_ACTIVE_HIGH>;
			label = "LED_0";
		};
	};

	gpio_keys {
		compatible = "gpio-keys";

		sw0_dfu: button_1 {
			label = "SW0_DFU";
			gpios = <&gpioc 3 GPIO_ACTIVE_LOW>;
			zephyr,code = <INPUT_KEY_0>;
		};
	};
};

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

&usart2 {
	status = "okay";
	current-speed = <115200>;

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

&spi0 {
	status = "okay";

	pinctrl-0 = <&spi0_default>;
	pinctrl-names = "default";

	cs-gpios = <&gpioa 2 GPIO_ACTIVE_LOW>,
		   <&gpioc 0 GPIO_ACTIVE_LOW>;
};

&tc0 {
	clk = <4>;
	status = "okay";
};

&twim0 {
	status = "okay";

	pinctrl-0 = <&twi0_default>;
	pinctrl-names = "default";

	std-clk-slew-lim = <0>;
	std-clk-strength-low = "0.5";
	std-data-slew-lim = <0>;
	std-data-strength-low = "0.5";

	hs-clk-slew-lim = <0>;
	hs-clk-strength-high = "0.5";
	hs-clk-strength-low = "0.5";
	hs-data-slew-lim = <0>;
	hs-data-strength-low = "0.5";

	hs-master-code = <0>;
};

zephyr_udc0: &usbc {
	status = "okay";

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