Training courses

Kernel and Embedded Linux

Bootlin training courses

Embedded Linux, kernel,
Yocto Project, Buildroot, real-time,
graphics, boot time, debugging...

Bootlin logo

Elixir Cross Referencer

// SPDX-License-Identifier: GPL-2.0
/*
 * Device Tree Source for the Salvator-X 2nd version board with R-Car H3 ES2.0+
 *
 * Copyright (C) 2015-2017 Renesas Electronics Corp.
 */

/dts-v1/;
#include "r8a77951.dtsi"
#include "salvator-xs.dtsi"

/ {
	model = "Renesas Salvator-X 2nd version board based on r8a77951";
	compatible = "renesas,salvator-xs", "renesas,r8a7795";

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

	memory@500000000 {
		device_type = "memory";
		reg = <0x5 0x00000000 0x0 0x40000000>;
	};

	memory@600000000 {
		device_type = "memory";
		reg = <0x6 0x00000000 0x0 0x40000000>;
	};

	memory@700000000 {
		device_type = "memory";
		reg = <0x7 0x00000000 0x0 0x40000000>;
	};
};

&du {
	clocks = <&cpg CPG_MOD 724>,
		 <&cpg CPG_MOD 723>,
		 <&cpg CPG_MOD 722>,
		 <&cpg CPG_MOD 721>,
		 <&versaclock6 1>,
		 <&x21_clk>,
		 <&x22_clk>,
		 <&versaclock6 2>;
	clock-names = "du.0", "du.1", "du.2", "du.3",
		      "dclkin.0", "dclkin.1", "dclkin.2", "dclkin.3";
};

&ehci2 {
	status = "okay";
};

&ehci3 {
	dr_mode = "otg";
	status = "okay";
};

&hdmi0 {
	status = "okay";

	ports {
		port@1 {
			reg = <1>;
			rcar_dw_hdmi0_out: endpoint {
				remote-endpoint = <&hdmi0_con>;
			};
		};
		port@2 {
			reg = <2>;
			dw_hdmi0_snd_in: endpoint {
				remote-endpoint = <&rsnd_endpoint1>;
			};
		};
	};
};

&hdmi0_con {
	remote-endpoint = <&rcar_dw_hdmi0_out>;
};

&hdmi1 {
	status = "okay";

	ports {
		port@1 {
			reg = <1>;
			rcar_dw_hdmi1_out: endpoint {
				remote-endpoint = <&hdmi1_con>;
			};
		};
		port@2 {
			reg = <2>;
			dw_hdmi1_snd_in: endpoint {
				remote-endpoint = <&rsnd_endpoint2>;
			};
		};
	};
};

&hdmi1_con {
	remote-endpoint = <&rcar_dw_hdmi1_out>;
};

&hsusb3 {
	dr_mode = "otg";
	status = "okay";
};

&ohci2 {
	status = "okay";
};

&ohci3 {
	dr_mode = "otg";
	status = "okay";
};

&pca9654 {
	pcie_sata_switch {
		gpio-hog;
		gpios = <7 GPIO_ACTIVE_HIGH>;
		output-low; /* enable SATA by default */
		line-name = "PCIE/SATA switch";
	};
};

&pfc {
	usb2_pins: usb2 {
		groups = "usb2";
		function = "usb2";
	};

	/*
	 * - On Salvator-X[S], GP6_3[01] are connected to ADV7482 as irq pins
	 *   (when SW31 is the default setting on Salvator-XS).
	 * - If SW31 is the default setting, you cannot use USB2.0 ch3 on
	 *   r8a77951 with Salvator-XS.
	 *   Hence the SW31 setting must be changed like 2) below.
	 *   1) Default setting of SW31: ON-ON-OFF-OFF-OFF-OFF:
	 *	- Connect GP6_3[01] to ADV7842.
	 *   2) Changed setting of SW31: OFF-OFF-ON-ON-ON-ON:
	 *	- Connect GP6_3[01] to BD082065 (USB2.0 ch3's host power).
	 *	- Connect GP6_{04,21} to ADV7842.
	 */
	usb2_ch3_pins: usb2_ch3 {
		groups = "usb2_ch3";
		function = "usb2_ch3";
	};
};

&rcar_sound {
	ports {
		/* rsnd_port0 is on salvator-common */
		rsnd_port1: port@1 {
			reg = <1>;
			rsnd_endpoint1: endpoint {
				remote-endpoint = <&dw_hdmi0_snd_in>;

				dai-format = "i2s";
				bitclock-master = <&rsnd_endpoint1>;
				frame-master = <&rsnd_endpoint1>;

				playback = <&ssi2>;
			};
		};
		rsnd_port2: port@2 {
			reg = <2>;
			rsnd_endpoint2: endpoint {
				remote-endpoint = <&dw_hdmi1_snd_in>;

				dai-format = "i2s";
				bitclock-master = <&rsnd_endpoint2>;
				frame-master = <&rsnd_endpoint2>;

				playback = <&ssi3>;
			};
		};
	};
};

/* SW12-7 must be set 'Off' (MD12 set to 1) which is not the default! */
&sata {
	status = "okay";
};

&sound_card {
	dais = <&rsnd_port0	/* ak4613 */
		&rsnd_port1	/* HDMI0  */
		&rsnd_port2>;	/* HDMI1  */
};

&usb2_phy2 {
	pinctrl-0 = <&usb2_pins>;
	pinctrl-names = "default";

	status = "okay";
};

&usb2_phy3 {
	pinctrl-0 = <&usb2_ch3_pins>;
	pinctrl-names = "default";

	status = "okay";
};