// SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
/*
 * Device Tree Source for the R-Car V4M Gray Hawk Single board
 *
 * Copyright (C) 2023 Renesas Electronics Corp.
 * Copyright (C) 2024 Glider bv
 */
/*
 * [How to use Sound]
 *
 * Because R-Car V4M has only 1 SSI, it cannot handle both Playback/Capture
 * at the same time. You need to switch the direction which is controlled
 * by the GP0_01 pin via amixer.
 *
 * Playback (CN9500)
 *	> amixer set "MUX" "Playback"	// for GP0_01
 *	> amixer set "DAC 1" 85%
 *	> aplay xxx.wav
 *
 * Capture (CN9501)
 *	> amixer set "MUX" "Capture"	// for GP0_01
 *	> amixer set "Mic 1" 80%
 *	> amixer set "ADC 1" on
 *	> amixer set 'ADC 1' 80%
 *	> arecord xxx hoge.wav
 */

/dts-v1/;

#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/input.h>
#include <dt-bindings/leds/common.h>

#include "r8a779h0.dtsi"

/ {
	model = "Renesas Gray Hawk Single board based on r8a779h0";
	compatible = "renesas,gray-hawk-single", "renesas,r8a779h0";

	aliases {
		i2c0 = &i2c0;
		i2c1 = &i2c1;
		i2c2 = &i2c2;
		i2c3 = &i2c3;
		serial0 = &hscif0;
		serial1 = &hscif2;
		ethernet0 = &avb0;
	};

	can_transceiver0: can-phy0 {
		compatible = "nxp,tjr1443";
		#phy-cells = <0>;
		enable-gpios = <&gpio1 3 GPIO_ACTIVE_HIGH>;
		max-bitrate = <5000000>;
	};

	chosen {
		bootargs = "ignore_loglevel rw root=/dev/nfs ip=on";
		stdout-path = "serial0:921600n8";
	};

	keys {
		compatible = "gpio-keys";

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

		key-1 {
			gpios = <&gpio5 0 GPIO_ACTIVE_LOW>;
			linux,code = <KEY_1>;
			label = "SW47";
			wakeup-source;
			debounce-interval = <20>;
		};

		key-2 {
			gpios = <&gpio5 1 GPIO_ACTIVE_LOW>;
			linux,code = <KEY_2>;
			label = "SW48";
			wakeup-source;
			debounce-interval = <20>;
		};

		key-3 {
			gpios = <&gpio5 2 GPIO_ACTIVE_LOW>;
			linux,code = <KEY_3>;
			label = "SW49";
			wakeup-source;
			debounce-interval = <20>;
		};
	};

	leds {
		compatible = "gpio-leds";

		led-1 {
			gpios = <&gpio7 0 GPIO_ACTIVE_HIGH>;
			color = <LED_COLOR_ID_GREEN>;
			function = LED_FUNCTION_INDICATOR;
			function-enumerator = <1>;
		};

		led-2 {
			gpios = <&gpio7 1 GPIO_ACTIVE_HIGH>;
			color = <LED_COLOR_ID_GREEN>;
			function = LED_FUNCTION_INDICATOR;
			function-enumerator = <2>;
		};

		led-3 {
			gpios = <&gpio7 2 GPIO_ACTIVE_HIGH>;
			color = <LED_COLOR_ID_GREEN>;
			function = LED_FUNCTION_INDICATOR;
			function-enumerator = <3>;
		};
	};

	memory@48000000 {
		device_type = "memory";
		/* first 128MB is reserved for secure area. */
		reg = <0x0 0x48000000 0x0 0x78000000>;
	};

	memory@480000000 {
		device_type = "memory";
		reg = <0x4 0x80000000 0x1 0x80000000>;
	};

	reg_1p8v: regulator-1p8v {
			compatible = "regulator-fixed";
			regulator-name = "fixed-1.8V";
			regulator-min-microvolt = <1800000>;
			regulator-max-microvolt = <1800000>;
			regulator-boot-on;
			regulator-always-on;
	};

	reg_3p3v: regulator-3p3v {
			compatible = "regulator-fixed";
			regulator-name = "fixed-3.3V";
			regulator-min-microvolt = <3300000>;
			regulator-max-microvolt = <3300000>;
			regulator-boot-on;
			regulator-always-on;
	};

	sound_mux: sound-mux {
		compatible = "simple-audio-mux";
		mux-gpios = <&gpio0 1 GPIO_ACTIVE_HIGH>;
		state-labels = "Playback", "Capture";
	};

	sound_card: sound {
		compatible = "audio-graph-card2";
		label = "rcar-sound";
		aux-devs = <&sound_mux>; // for GP0_01

		links = <&rsnd_port>; // AK4619 Audio Codec
	};
};

&audio_clkin {
	clock-frequency = <24576000>;
};

&avb0 {
	pinctrl-0 = <&avb0_pins>;
	pinctrl-names = "default";
	phy-handle = <&phy0>;
	tx-internal-delay-ps = <2000>;
	status = "okay";

	phy0: ethernet-phy@0 {
		compatible = "ethernet-phy-id0022.1622",
			     "ethernet-phy-ieee802.3-c22";
		rxc-skew-ps = <1500>;
		reg = <0>;
		interrupt-parent = <&gpio7>;
		interrupts = <5 IRQ_TYPE_LEVEL_LOW>;
		reset-gpios = <&gpio7 10 GPIO_ACTIVE_LOW>;
	};
};

&can_clk {
	clock-frequency = <40000000>;
};

&canfd {
	pinctrl-0 = <&canfd0_pins>, <&canfd1_pins>, <&can_clk_pins>;
	pinctrl-names = "default";
	status = "okay";

	channel0 {
		status = "okay";
		phys = <&can_transceiver0>;
	};

	channel1 {
		status = "okay";
	};
};

&extal_clk {
	clock-frequency = <16666666>;
};

&extalr_clk {
	clock-frequency = <32768>;
};

&gpio1 {
	audio-power-hog {
		gpio-hog;
		gpios = <8 GPIO_ACTIVE_HIGH>;
		output-high;
		line-name = "Audio-Power";
	};
};

&hscif0 {
	pinctrl-0 = <&hscif0_pins>;
	pinctrl-names = "default";

	uart-has-rtscts;
	status = "okay";
};

&hscif2 {
	pinctrl-0 = <&hscif2_pins>;
	pinctrl-names = "default";

	uart-has-rtscts;
	status = "okay";
};

&i2c0 {
	pinctrl-0 = <&i2c0_pins>;
	pinctrl-names = "default";

	status = "okay";
	clock-frequency = <400000>;

	eeprom@50 {
		compatible = "rohm,br24g01", "atmel,24c01";
		label = "cpu-board";
		reg = <0x50>;
		pagesize = <8>;
	};

	eeprom@51 {
		compatible = "rohm,br24g01", "atmel,24c01";
		label = "breakout-board";
		reg = <0x51>;
		pagesize = <8>;
	};

	eeprom@52 {
		compatible = "rohm,br24g01", "atmel,24c01";
		label = "csi-dsi-sub-board-id";
		reg = <0x52>;
		pagesize = <8>;
	};

	eeprom@53 {
		compatible = "rohm,br24g01", "atmel,24c01";
		label = "ethernet-sub-board-id";
		reg = <0x53>;
		pagesize = <8>;
	};
};

&i2c3 {
	pinctrl-0 = <&i2c3_pins>;
	pinctrl-names = "default";

	status = "okay";
	clock-frequency = <400000>;

	codec@10 {
		compatible = "asahi-kasei,ak4619";
		reg = <0x10>;

		clocks = <&rcar_sound>;
		clock-names = "mclk";

		#sound-dai-cells = <0>;
		port {
			ak4619_endpoint: endpoint {
				remote-endpoint = <&rsnd_endpoint>;
			};
		};
	};
};

&mmc0 {
	pinctrl-0 = <&mmc_pins>;
	pinctrl-1 = <&mmc_pins>;
	pinctrl-names = "default", "state_uhs";

	vmmc-supply = <&reg_3p3v>;
	vqmmc-supply = <&reg_1p8v>;
	mmc-hs200-1_8v;
	mmc-hs400-1_8v;
	bus-width = <8>;
	no-sd;
	no-sdio;
	non-removable;
	full-pwr-cycle-in-suspend;
	status = "okay";
};

&pfc {
	pinctrl-0 = <&scif_clk_pins>, <&scif_clk2_pins>;
	pinctrl-names = "default";

	avb0_pins: avb0 {
		mux {
			groups = "avb0_link", "avb0_mdio", "avb0_rgmii",
				 "avb0_txcrefclk";
			function = "avb0";
		};

		pins_mdio {
			groups = "avb0_mdio";
			drive-strength = <21>;
		};

		pins_mii {
			groups = "avb0_rgmii";
			drive-strength = <21>;
		};
	};

	can_clk_pins: can-clk {
		groups = "can_clk";
		function = "can_clk";
	};

	canfd0_pins: canfd0 {
		groups = "canfd0_data";
		function = "canfd0";
	};

	canfd1_pins: canfd1 {
		groups = "canfd1_data";
		function = "canfd1";
	};

	hscif0_pins: hscif0 {
		groups = "hscif0_data", "hscif0_ctrl";
		function = "hscif0";
	};

	hscif2_pins: hscif2 {
		groups = "hscif2_data", "hscif2_ctrl";
		function = "hscif2";
	};

	i2c0_pins: i2c0 {
		groups = "i2c0";
		function = "i2c0";
	};

	i2c3_pins: i2c3 {
		groups = "i2c3";
		function = "i2c3";
	};

	keys_pins: keys {
		pins = "GP_5_0", "GP_5_1", "GP_5_2";
		bias-pull-up;
	};

	mmc_pins: mmc {
		groups = "mmc_data8", "mmc_ctrl", "mmc_ds";
		function = "mmc";
		power-source = <1800>;
	};

	qspi0_pins: qspi0 {
		groups = "qspi0_ctrl", "qspi0_data4";
		function = "qspi0";
	};

	scif_clk_pins: scif-clk {
		groups = "scif_clk";
		function = "scif_clk";
	};

	scif_clk2_pins: scif-clk2 {
		groups = "scif_clk2";
		function = "scif_clk2";
	};

	sound_clk_pins: sound_clk {
		groups = "audio_clkin", "audio_clkout";
		function = "audio_clk";
	};

	sound_pins: sound {
		groups = "ssi_ctrl", "ssi_data";
		function = "ssi";
	};
};

&rcar_sound {
	pinctrl-0 = <&sound_clk_pins>, <&sound_pins>;
	pinctrl-names = "default";

	status = "okay";

	/* audio_clkout */
	clock-frequency = <12288000>;

	ports {
		rsnd_port: port {
			rsnd_endpoint: endpoint {
				remote-endpoint = <&ak4619_endpoint>;
				bitclock-master;
				frame-master;

				/* see above [How to use Sound] */
				playback = <&ssi0>;
				capture  = <&ssi0>;
			};
		};
	};
};

&rpc {
	pinctrl-0 = <&qspi0_pins>;
	pinctrl-names = "default";

	status = "okay";

	flash@0 {
		compatible = "spansion,s25fs512s", "jedec,spi-nor";
		reg = <0>;
		spi-max-frequency = <40000000>;
		spi-rx-bus-width = <4>;

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

			boot@0 {
				reg = <0x0 0x1200000>;
				read-only;
			};
			user@1200000 {
				reg = <0x1200000 0x2e00000>;
			};
		};
	};
};

&rwdt {
	timeout-sec = <60>;
	status = "okay";
};

&scif_clk {
	clock-frequency = <24000000>;
};

&scif_clk2 {
	clock-frequency = <24000000>;
};
