/*
 * Copyright (c) 2023 IoT.bzh
 *
 * SPDX-License-Identifier: Apache-2.0
 *
 */

/dts-v1/;
#include <arm/renesas/rcar/gen4/r8a779f0.dtsi>
#include "rcar_spider_cr52-pinctrl.dtsi"
#include <zephyr/dt-bindings/input/input-event-codes.h>

/ {
	model = "Renesas Spider board";
	compatible = "renesas,spider-cr52";

	chosen {
		zephyr,sram = &sram0;
		zephyr,console = &scif0;
		zephyr,shell-uart = &scif0;
	};

	leds {
		compatible = "gpio-leds";
		user_led: led_8 {
			gpios = <&gpio0 14 GPIO_ACTIVE_HIGH>;
			label = "User LED";
		};
	};

	gpio_keys {
		compatible = "gpio-keys";
		user_button: sw10 {
			gpios = <&gpio4 13 GPIO_ACTIVE_LOW>;
			label = "User switch";
			zephyr,code = <INPUT_KEY_0>;
		};
	};

	aliases {
		led0 = &user_led;
		sw0  = &user_button;
	};
};

&scif0 {
	pinctrl-0 = <&scif0_data_tx_default &scif0_data_rx_default>;
	pinctrl-names = "default";
	status = "okay";
};

&gpio0 {
	status = "okay";
};

&gpio4 {
	status = "okay";
};
