18c2ecf20Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0
28c2ecf20Sopenharmony_ci/*
38c2ecf20Sopenharmony_ci * Device Tree Source for the Salvator-X 2nd version board with R-Car H3 ES2.0+
48c2ecf20Sopenharmony_ci *
58c2ecf20Sopenharmony_ci * Copyright (C) 2015-2017 Renesas Electronics Corp.
68c2ecf20Sopenharmony_ci */
78c2ecf20Sopenharmony_ci
88c2ecf20Sopenharmony_ci/dts-v1/;
98c2ecf20Sopenharmony_ci#include "r8a77951.dtsi"
108c2ecf20Sopenharmony_ci#include "salvator-xs.dtsi"
118c2ecf20Sopenharmony_ci
128c2ecf20Sopenharmony_ci/ {
138c2ecf20Sopenharmony_ci	model = "Renesas Salvator-X 2nd version board based on r8a77951";
148c2ecf20Sopenharmony_ci	compatible = "renesas,salvator-xs", "renesas,r8a7795";
158c2ecf20Sopenharmony_ci
168c2ecf20Sopenharmony_ci	memory@48000000 {
178c2ecf20Sopenharmony_ci		device_type = "memory";
188c2ecf20Sopenharmony_ci		/* first 128MB is reserved for secure area. */
198c2ecf20Sopenharmony_ci		reg = <0x0 0x48000000 0x0 0x38000000>;
208c2ecf20Sopenharmony_ci	};
218c2ecf20Sopenharmony_ci
228c2ecf20Sopenharmony_ci	memory@500000000 {
238c2ecf20Sopenharmony_ci		device_type = "memory";
248c2ecf20Sopenharmony_ci		reg = <0x5 0x00000000 0x0 0x40000000>;
258c2ecf20Sopenharmony_ci	};
268c2ecf20Sopenharmony_ci
278c2ecf20Sopenharmony_ci	memory@600000000 {
288c2ecf20Sopenharmony_ci		device_type = "memory";
298c2ecf20Sopenharmony_ci		reg = <0x6 0x00000000 0x0 0x40000000>;
308c2ecf20Sopenharmony_ci	};
318c2ecf20Sopenharmony_ci
328c2ecf20Sopenharmony_ci	memory@700000000 {
338c2ecf20Sopenharmony_ci		device_type = "memory";
348c2ecf20Sopenharmony_ci		reg = <0x7 0x00000000 0x0 0x40000000>;
358c2ecf20Sopenharmony_ci	};
368c2ecf20Sopenharmony_ci};
378c2ecf20Sopenharmony_ci
388c2ecf20Sopenharmony_ci&du {
398c2ecf20Sopenharmony_ci	clocks = <&cpg CPG_MOD 724>,
408c2ecf20Sopenharmony_ci		 <&cpg CPG_MOD 723>,
418c2ecf20Sopenharmony_ci		 <&cpg CPG_MOD 722>,
428c2ecf20Sopenharmony_ci		 <&cpg CPG_MOD 721>,
438c2ecf20Sopenharmony_ci		 <&versaclock6 1>,
448c2ecf20Sopenharmony_ci		 <&x21_clk>,
458c2ecf20Sopenharmony_ci		 <&x22_clk>,
468c2ecf20Sopenharmony_ci		 <&versaclock6 2>;
478c2ecf20Sopenharmony_ci	clock-names = "du.0", "du.1", "du.2", "du.3",
488c2ecf20Sopenharmony_ci		      "dclkin.0", "dclkin.1", "dclkin.2", "dclkin.3";
498c2ecf20Sopenharmony_ci};
508c2ecf20Sopenharmony_ci
518c2ecf20Sopenharmony_ci&ehci2 {
528c2ecf20Sopenharmony_ci	status = "okay";
538c2ecf20Sopenharmony_ci};
548c2ecf20Sopenharmony_ci
558c2ecf20Sopenharmony_ci&ehci3 {
568c2ecf20Sopenharmony_ci	dr_mode = "otg";
578c2ecf20Sopenharmony_ci	status = "okay";
588c2ecf20Sopenharmony_ci};
598c2ecf20Sopenharmony_ci
608c2ecf20Sopenharmony_ci&hdmi0 {
618c2ecf20Sopenharmony_ci	status = "okay";
628c2ecf20Sopenharmony_ci
638c2ecf20Sopenharmony_ci	ports {
648c2ecf20Sopenharmony_ci		port@1 {
658c2ecf20Sopenharmony_ci			reg = <1>;
668c2ecf20Sopenharmony_ci			rcar_dw_hdmi0_out: endpoint {
678c2ecf20Sopenharmony_ci				remote-endpoint = <&hdmi0_con>;
688c2ecf20Sopenharmony_ci			};
698c2ecf20Sopenharmony_ci		};
708c2ecf20Sopenharmony_ci		port@2 {
718c2ecf20Sopenharmony_ci			reg = <2>;
728c2ecf20Sopenharmony_ci			dw_hdmi0_snd_in: endpoint {
738c2ecf20Sopenharmony_ci				remote-endpoint = <&rsnd_endpoint1>;
748c2ecf20Sopenharmony_ci			};
758c2ecf20Sopenharmony_ci		};
768c2ecf20Sopenharmony_ci	};
778c2ecf20Sopenharmony_ci};
788c2ecf20Sopenharmony_ci
798c2ecf20Sopenharmony_ci&hdmi0_con {
808c2ecf20Sopenharmony_ci	remote-endpoint = <&rcar_dw_hdmi0_out>;
818c2ecf20Sopenharmony_ci};
828c2ecf20Sopenharmony_ci
838c2ecf20Sopenharmony_ci&hdmi1 {
848c2ecf20Sopenharmony_ci	status = "okay";
858c2ecf20Sopenharmony_ci
868c2ecf20Sopenharmony_ci	ports {
878c2ecf20Sopenharmony_ci		port@1 {
888c2ecf20Sopenharmony_ci			reg = <1>;
898c2ecf20Sopenharmony_ci			rcar_dw_hdmi1_out: endpoint {
908c2ecf20Sopenharmony_ci				remote-endpoint = <&hdmi1_con>;
918c2ecf20Sopenharmony_ci			};
928c2ecf20Sopenharmony_ci		};
938c2ecf20Sopenharmony_ci		port@2 {
948c2ecf20Sopenharmony_ci			reg = <2>;
958c2ecf20Sopenharmony_ci			dw_hdmi1_snd_in: endpoint {
968c2ecf20Sopenharmony_ci				remote-endpoint = <&rsnd_endpoint2>;
978c2ecf20Sopenharmony_ci			};
988c2ecf20Sopenharmony_ci		};
998c2ecf20Sopenharmony_ci	};
1008c2ecf20Sopenharmony_ci};
1018c2ecf20Sopenharmony_ci
1028c2ecf20Sopenharmony_ci&hdmi1_con {
1038c2ecf20Sopenharmony_ci	remote-endpoint = <&rcar_dw_hdmi1_out>;
1048c2ecf20Sopenharmony_ci};
1058c2ecf20Sopenharmony_ci
1068c2ecf20Sopenharmony_ci&hsusb3 {
1078c2ecf20Sopenharmony_ci	dr_mode = "otg";
1088c2ecf20Sopenharmony_ci	status = "okay";
1098c2ecf20Sopenharmony_ci};
1108c2ecf20Sopenharmony_ci
1118c2ecf20Sopenharmony_ci&ohci2 {
1128c2ecf20Sopenharmony_ci	status = "okay";
1138c2ecf20Sopenharmony_ci};
1148c2ecf20Sopenharmony_ci
1158c2ecf20Sopenharmony_ci&ohci3 {
1168c2ecf20Sopenharmony_ci	dr_mode = "otg";
1178c2ecf20Sopenharmony_ci	status = "okay";
1188c2ecf20Sopenharmony_ci};
1198c2ecf20Sopenharmony_ci
1208c2ecf20Sopenharmony_ci&pca9654 {
1218c2ecf20Sopenharmony_ci	pcie_sata_switch {
1228c2ecf20Sopenharmony_ci		gpio-hog;
1238c2ecf20Sopenharmony_ci		gpios = <7 GPIO_ACTIVE_HIGH>;
1248c2ecf20Sopenharmony_ci		output-low; /* enable SATA by default */
1258c2ecf20Sopenharmony_ci		line-name = "PCIE/SATA switch";
1268c2ecf20Sopenharmony_ci	};
1278c2ecf20Sopenharmony_ci};
1288c2ecf20Sopenharmony_ci
1298c2ecf20Sopenharmony_ci&pfc {
1308c2ecf20Sopenharmony_ci	usb2_pins: usb2 {
1318c2ecf20Sopenharmony_ci		groups = "usb2";
1328c2ecf20Sopenharmony_ci		function = "usb2";
1338c2ecf20Sopenharmony_ci	};
1348c2ecf20Sopenharmony_ci
1358c2ecf20Sopenharmony_ci	/*
1368c2ecf20Sopenharmony_ci	 * - On Salvator-X[S], GP6_3[01] are connected to ADV7482 as irq pins
1378c2ecf20Sopenharmony_ci	 *   (when SW31 is the default setting on Salvator-XS).
1388c2ecf20Sopenharmony_ci	 * - If SW31 is the default setting, you cannot use USB2.0 ch3 on
1398c2ecf20Sopenharmony_ci	 *   r8a77951 with Salvator-XS.
1408c2ecf20Sopenharmony_ci	 *   Hence the SW31 setting must be changed like 2) below.
1418c2ecf20Sopenharmony_ci	 *   1) Default setting of SW31: ON-ON-OFF-OFF-OFF-OFF:
1428c2ecf20Sopenharmony_ci	 *	- Connect GP6_3[01] to ADV7842.
1438c2ecf20Sopenharmony_ci	 *   2) Changed setting of SW31: OFF-OFF-ON-ON-ON-ON:
1448c2ecf20Sopenharmony_ci	 *	- Connect GP6_3[01] to BD082065 (USB2.0 ch3's host power).
1458c2ecf20Sopenharmony_ci	 *	- Connect GP6_{04,21} to ADV7842.
1468c2ecf20Sopenharmony_ci	 */
1478c2ecf20Sopenharmony_ci	usb2_ch3_pins: usb2_ch3 {
1488c2ecf20Sopenharmony_ci		groups = "usb2_ch3";
1498c2ecf20Sopenharmony_ci		function = "usb2_ch3";
1508c2ecf20Sopenharmony_ci	};
1518c2ecf20Sopenharmony_ci};
1528c2ecf20Sopenharmony_ci
1538c2ecf20Sopenharmony_ci&rcar_sound {
1548c2ecf20Sopenharmony_ci	ports {
1558c2ecf20Sopenharmony_ci		/* rsnd_port0 is on salvator-common */
1568c2ecf20Sopenharmony_ci		rsnd_port1: port@1 {
1578c2ecf20Sopenharmony_ci			reg = <1>;
1588c2ecf20Sopenharmony_ci			rsnd_endpoint1: endpoint {
1598c2ecf20Sopenharmony_ci				remote-endpoint = <&dw_hdmi0_snd_in>;
1608c2ecf20Sopenharmony_ci
1618c2ecf20Sopenharmony_ci				dai-format = "i2s";
1628c2ecf20Sopenharmony_ci				bitclock-master = <&rsnd_endpoint1>;
1638c2ecf20Sopenharmony_ci				frame-master = <&rsnd_endpoint1>;
1648c2ecf20Sopenharmony_ci
1658c2ecf20Sopenharmony_ci				playback = <&ssi2>;
1668c2ecf20Sopenharmony_ci			};
1678c2ecf20Sopenharmony_ci		};
1688c2ecf20Sopenharmony_ci		rsnd_port2: port@2 {
1698c2ecf20Sopenharmony_ci			reg = <2>;
1708c2ecf20Sopenharmony_ci			rsnd_endpoint2: endpoint {
1718c2ecf20Sopenharmony_ci				remote-endpoint = <&dw_hdmi1_snd_in>;
1728c2ecf20Sopenharmony_ci
1738c2ecf20Sopenharmony_ci				dai-format = "i2s";
1748c2ecf20Sopenharmony_ci				bitclock-master = <&rsnd_endpoint2>;
1758c2ecf20Sopenharmony_ci				frame-master = <&rsnd_endpoint2>;
1768c2ecf20Sopenharmony_ci
1778c2ecf20Sopenharmony_ci				playback = <&ssi3>;
1788c2ecf20Sopenharmony_ci			};
1798c2ecf20Sopenharmony_ci		};
1808c2ecf20Sopenharmony_ci	};
1818c2ecf20Sopenharmony_ci};
1828c2ecf20Sopenharmony_ci
1838c2ecf20Sopenharmony_ci/* SW12-7 must be set 'Off' (MD12 set to 1) which is not the default! */
1848c2ecf20Sopenharmony_ci&sata {
1858c2ecf20Sopenharmony_ci	status = "okay";
1868c2ecf20Sopenharmony_ci};
1878c2ecf20Sopenharmony_ci
1888c2ecf20Sopenharmony_ci&sound_card {
1898c2ecf20Sopenharmony_ci	dais = <&rsnd_port0	/* ak4613 */
1908c2ecf20Sopenharmony_ci		&rsnd_port1	/* HDMI0  */
1918c2ecf20Sopenharmony_ci		&rsnd_port2>;	/* HDMI1  */
1928c2ecf20Sopenharmony_ci};
1938c2ecf20Sopenharmony_ci
1948c2ecf20Sopenharmony_ci&usb2_phy2 {
1958c2ecf20Sopenharmony_ci	pinctrl-0 = <&usb2_pins>;
1968c2ecf20Sopenharmony_ci	pinctrl-names = "default";
1978c2ecf20Sopenharmony_ci
1988c2ecf20Sopenharmony_ci	status = "okay";
1998c2ecf20Sopenharmony_ci};
2008c2ecf20Sopenharmony_ci
2018c2ecf20Sopenharmony_ci&usb2_phy3 {
2028c2ecf20Sopenharmony_ci	pinctrl-0 = <&usb2_ch3_pins>;
2038c2ecf20Sopenharmony_ci	pinctrl-names = "default";
2048c2ecf20Sopenharmony_ci
2058c2ecf20Sopenharmony_ci	status = "okay";
2068c2ecf20Sopenharmony_ci};
207