/*
 * Copyright (c) 2023 EPAM Systems
 *
 * SPDX-License-Identifier: Apache-2.0
 *
 */

/dts-v1/;
#include <mem.h>
#include <arm64/renesas/r8a77951.dtsi>
#include "rcar_h3ulcb_r8a77951_a57-pinctrl.dtsi"

/ {
	model = "H3ULCB CA57";

	chosen {
		zephyr,sram = &ram;
		zephyr,console = &scif2;
		zephyr,shell-uart = &scif2;
	};

	ram: memory@48000000 {
		device_type = "mmio-sram";
		reg = <0x0 0x48000000 0x0 DT_SIZE_M(512)>;
	};

	/* These aliases are provided for compatibility with samples */
	aliases {
		sdhc0 = &emmc2;
	};
};

&scif2 {
	pinctrl-0 = <&scif2_data_a_tx_default &scif2_data_a_rx_default>;
	pinctrl-names = "default";
	status = "okay";
};

&emmc2 {
	pinctrl-0 = <&emmc2_clk &emmc2_cmd &emmc2_ds
		     &emmc2_data0 &emmc2_data1 &emmc2_data2 &emmc2_data3
		     &emmc2_data4 &emmc2_data5 &emmc2_data6 &emmc2_data7>;
	pinctrl-1 = <&emmc2_clk &emmc2_cmd &emmc2_ds
		     &emmc2_data0 &emmc2_data1 &emmc2_data2 &emmc2_data3
		     &emmc2_data4 &emmc2_data5 &emmc2_data6 &emmc2_data7>;
	pinctrl-names = "default", "uhs";
	disk {
		compatible = "zephyr,mmc-disk";
		status = "disabled";
	};
	bus-width = <8>;
	mmc-hs200-1_8v;
	mmc-hs400-1_8v;
	non-removable;
};
