xref: /freebsd/sys/contrib/device-tree/src/arm64/renesas/r8a77970-v3msk.dts (revision aa1a8ff2d6dbc51ef058f46f3db5a8bb77967145)
1c66ec88fSEmmanuel Vadot// SPDX-License-Identifier: GPL-2.0
2c66ec88fSEmmanuel Vadot/*
3c66ec88fSEmmanuel Vadot * Device Tree Source for the V3M Starter Kit board
4c66ec88fSEmmanuel Vadot *
5c66ec88fSEmmanuel Vadot * Copyright (C) 2017 Renesas Electronics Corp.
6c66ec88fSEmmanuel Vadot * Copyright (C) 2017 Cogent Embedded, Inc.
7c66ec88fSEmmanuel Vadot */
8c66ec88fSEmmanuel Vadot
9c66ec88fSEmmanuel Vadot/dts-v1/;
10c66ec88fSEmmanuel Vadot#include "r8a77970.dtsi"
118cc087a1SEmmanuel Vadot#include <dt-bindings/gpio/gpio.h>
12c66ec88fSEmmanuel Vadot
13c66ec88fSEmmanuel Vadot/ {
14c66ec88fSEmmanuel Vadot	model = "Renesas V3M Starter Kit board";
15c66ec88fSEmmanuel Vadot	compatible = "renesas,v3msk", "renesas,r8a77970";
16c66ec88fSEmmanuel Vadot
17c66ec88fSEmmanuel Vadot	aliases {
18*7ef62cebSEmmanuel Vadot		i2c0 = &i2c0;
19*7ef62cebSEmmanuel Vadot		i2c1 = &i2c1;
20*7ef62cebSEmmanuel Vadot		i2c2 = &i2c2;
21*7ef62cebSEmmanuel Vadot		i2c3 = &i2c3;
22*7ef62cebSEmmanuel Vadot		i2c4 = &i2c4;
23c66ec88fSEmmanuel Vadot		serial0 = &scif0;
24c66ec88fSEmmanuel Vadot	};
25c66ec88fSEmmanuel Vadot
26c66ec88fSEmmanuel Vadot	chosen {
27c66ec88fSEmmanuel Vadot		stdout-path = "serial0:115200n8";
28c66ec88fSEmmanuel Vadot	};
29c66ec88fSEmmanuel Vadot
30c66ec88fSEmmanuel Vadot	hdmi-out {
31c66ec88fSEmmanuel Vadot		compatible = "hdmi-connector";
32c66ec88fSEmmanuel Vadot		type = "a";
33c66ec88fSEmmanuel Vadot
34c66ec88fSEmmanuel Vadot		port {
35c66ec88fSEmmanuel Vadot			hdmi_con: endpoint {
36c66ec88fSEmmanuel Vadot				remote-endpoint = <&adv7511_out>;
37c66ec88fSEmmanuel Vadot			};
38c66ec88fSEmmanuel Vadot		};
39c66ec88fSEmmanuel Vadot	};
40c66ec88fSEmmanuel Vadot
41c66ec88fSEmmanuel Vadot	lvds-decoder {
42c66ec88fSEmmanuel Vadot		compatible = "thine,thc63lvd1024";
43c66ec88fSEmmanuel Vadot		vcc-supply = <&vcc_d3_3v>;
44c66ec88fSEmmanuel Vadot
45c66ec88fSEmmanuel Vadot		ports {
46c66ec88fSEmmanuel Vadot			#address-cells = <1>;
47c66ec88fSEmmanuel Vadot			#size-cells = <0>;
48c66ec88fSEmmanuel Vadot
49c66ec88fSEmmanuel Vadot			port@0 {
50c66ec88fSEmmanuel Vadot				reg = <0>;
51c66ec88fSEmmanuel Vadot				thc63lvd1024_in: endpoint {
52c66ec88fSEmmanuel Vadot					remote-endpoint = <&lvds0_out>;
53c66ec88fSEmmanuel Vadot				};
54c66ec88fSEmmanuel Vadot			};
55c66ec88fSEmmanuel Vadot
56c66ec88fSEmmanuel Vadot			port@2 {
57c66ec88fSEmmanuel Vadot				reg = <2>;
58c66ec88fSEmmanuel Vadot				thc63lvd1024_out: endpoint {
59c66ec88fSEmmanuel Vadot					remote-endpoint = <&adv7511_in>;
60c66ec88fSEmmanuel Vadot				};
61c66ec88fSEmmanuel Vadot			};
62c66ec88fSEmmanuel Vadot		};
63c66ec88fSEmmanuel Vadot	};
64c66ec88fSEmmanuel Vadot
65c66ec88fSEmmanuel Vadot	memory@48000000 {
66c66ec88fSEmmanuel Vadot		device_type = "memory";
67c66ec88fSEmmanuel Vadot		/* first 128MB is reserved for secure area. */
685956d97fSEmmanuel Vadot		reg = <0x0 0x48000000 0x0 0x78000000>;
69c66ec88fSEmmanuel Vadot	};
70c66ec88fSEmmanuel Vadot
71c66ec88fSEmmanuel Vadot	osc5_clk: osc5-clock {
72c66ec88fSEmmanuel Vadot		compatible = "fixed-clock";
73c66ec88fSEmmanuel Vadot		#clock-cells = <0>;
74c66ec88fSEmmanuel Vadot		clock-frequency = <148500000>;
75c66ec88fSEmmanuel Vadot	};
76c66ec88fSEmmanuel Vadot
77c66ec88fSEmmanuel Vadot	vcc_d1_8v: regulator-0 {
78c66ec88fSEmmanuel Vadot		compatible = "regulator-fixed";
79c66ec88fSEmmanuel Vadot		regulator-name = "VCC_D1.8V";
80c66ec88fSEmmanuel Vadot		regulator-min-microvolt = <1800000>;
81c66ec88fSEmmanuel Vadot		regulator-max-microvolt = <1800000>;
82c66ec88fSEmmanuel Vadot		regulator-boot-on;
83c66ec88fSEmmanuel Vadot		regulator-always-on;
84c66ec88fSEmmanuel Vadot	};
85c66ec88fSEmmanuel Vadot
86c66ec88fSEmmanuel Vadot	vcc_d3_3v: regulator-1 {
87c66ec88fSEmmanuel Vadot		compatible = "regulator-fixed";
88c66ec88fSEmmanuel Vadot		regulator-name = "VCC_D3.3V";
89c66ec88fSEmmanuel Vadot		regulator-min-microvolt = <3300000>;
90c66ec88fSEmmanuel Vadot		regulator-max-microvolt = <3300000>;
91c66ec88fSEmmanuel Vadot		regulator-boot-on;
92c66ec88fSEmmanuel Vadot		regulator-always-on;
93c66ec88fSEmmanuel Vadot	};
94c66ec88fSEmmanuel Vadot
95c66ec88fSEmmanuel Vadot	vcc_vddq_vin0: regulator-2 {
96c66ec88fSEmmanuel Vadot		compatible = "regulator-fixed";
97c66ec88fSEmmanuel Vadot		regulator-name = "VCC_VDDQ_VIN0";
98c66ec88fSEmmanuel Vadot		regulator-min-microvolt = <3300000>;
99c66ec88fSEmmanuel Vadot		regulator-max-microvolt = <3300000>;
100c66ec88fSEmmanuel Vadot		regulator-boot-on;
101c66ec88fSEmmanuel Vadot		regulator-always-on;
102c66ec88fSEmmanuel Vadot	};
103c66ec88fSEmmanuel Vadot};
104c66ec88fSEmmanuel Vadot
105c66ec88fSEmmanuel Vadot&avb {
106c66ec88fSEmmanuel Vadot	pinctrl-0 = <&avb_pins>;
107c66ec88fSEmmanuel Vadot	pinctrl-names = "default";
108c66ec88fSEmmanuel Vadot
109c66ec88fSEmmanuel Vadot	renesas,no-ether-link;
110c66ec88fSEmmanuel Vadot	phy-handle = <&phy0>;
1115def4c47SEmmanuel Vadot	rx-internal-delay-ps = <1800>;
1125def4c47SEmmanuel Vadot	tx-internal-delay-ps = <2000>;
113c66ec88fSEmmanuel Vadot	status = "okay";
114c66ec88fSEmmanuel Vadot
115c66ec88fSEmmanuel Vadot	phy0: ethernet-phy@0 {
1168cc087a1SEmmanuel Vadot		compatible = "ethernet-phy-id0022.1622",
1178cc087a1SEmmanuel Vadot			     "ethernet-phy-ieee802.3-c22";
118c66ec88fSEmmanuel Vadot		rxc-skew-ps = <1500>;
119c66ec88fSEmmanuel Vadot		reg = <0>;
120c66ec88fSEmmanuel Vadot		interrupt-parent = <&gpio1>;
121c66ec88fSEmmanuel Vadot		interrupts = <17 IRQ_TYPE_LEVEL_LOW>;
1228cc087a1SEmmanuel Vadot		reset-gpios = <&gpio1 16 GPIO_ACTIVE_LOW>;
123c66ec88fSEmmanuel Vadot	};
124c66ec88fSEmmanuel Vadot};
125c66ec88fSEmmanuel Vadot
126c66ec88fSEmmanuel Vadot&du {
127c66ec88fSEmmanuel Vadot	clocks = <&cpg CPG_MOD 724>,
128c66ec88fSEmmanuel Vadot		 <&osc5_clk>;
129c66ec88fSEmmanuel Vadot	clock-names = "du.0", "dclkin.0";
130c66ec88fSEmmanuel Vadot	status = "okay";
131c66ec88fSEmmanuel Vadot};
132c66ec88fSEmmanuel Vadot
133c66ec88fSEmmanuel Vadot&extal_clk {
134c66ec88fSEmmanuel Vadot	clock-frequency = <16666666>;
135c66ec88fSEmmanuel Vadot};
136c66ec88fSEmmanuel Vadot
137c66ec88fSEmmanuel Vadot&extalr_clk {
138c66ec88fSEmmanuel Vadot	clock-frequency = <32768>;
139c66ec88fSEmmanuel Vadot};
140c66ec88fSEmmanuel Vadot
141c66ec88fSEmmanuel Vadot&i2c0 {
142c66ec88fSEmmanuel Vadot	pinctrl-0 = <&i2c0_pins>;
143c66ec88fSEmmanuel Vadot	pinctrl-names = "default";
144c66ec88fSEmmanuel Vadot
145c66ec88fSEmmanuel Vadot	status = "okay";
146c66ec88fSEmmanuel Vadot	clock-frequency = <400000>;
147c66ec88fSEmmanuel Vadot
148c66ec88fSEmmanuel Vadot	hdmi@39 {
149c66ec88fSEmmanuel Vadot		compatible = "adi,adv7511w";
150c66ec88fSEmmanuel Vadot		#sound-dai-cells = <0>;
151c66ec88fSEmmanuel Vadot		reg = <0x39>;
152c66ec88fSEmmanuel Vadot		interrupt-parent = <&gpio1>;
153c66ec88fSEmmanuel Vadot		interrupts = <20 IRQ_TYPE_LEVEL_LOW>;
154c66ec88fSEmmanuel Vadot		avdd-supply = <&vcc_d1_8v>;
155c66ec88fSEmmanuel Vadot		dvdd-supply = <&vcc_d1_8v>;
156c66ec88fSEmmanuel Vadot		pvdd-supply = <&vcc_d1_8v>;
157c66ec88fSEmmanuel Vadot		bgvdd-supply = <&vcc_d1_8v>;
158c66ec88fSEmmanuel Vadot		dvdd-3v-supply = <&vcc_d3_3v>;
159c66ec88fSEmmanuel Vadot
160c66ec88fSEmmanuel Vadot		adi,input-depth = <8>;
161c66ec88fSEmmanuel Vadot		adi,input-colorspace = "rgb";
162c66ec88fSEmmanuel Vadot		adi,input-clock = "1x";
163c66ec88fSEmmanuel Vadot
164c66ec88fSEmmanuel Vadot		ports {
165c66ec88fSEmmanuel Vadot			#address-cells = <1>;
166c66ec88fSEmmanuel Vadot			#size-cells = <0>;
167c66ec88fSEmmanuel Vadot
168c66ec88fSEmmanuel Vadot			port@0 {
169c66ec88fSEmmanuel Vadot				reg = <0>;
170c66ec88fSEmmanuel Vadot				adv7511_in: endpoint {
171c66ec88fSEmmanuel Vadot					remote-endpoint = <&thc63lvd1024_out>;
172c66ec88fSEmmanuel Vadot				};
173c66ec88fSEmmanuel Vadot			};
174c66ec88fSEmmanuel Vadot
175c66ec88fSEmmanuel Vadot			port@1 {
176c66ec88fSEmmanuel Vadot				reg = <1>;
177c66ec88fSEmmanuel Vadot				adv7511_out: endpoint {
178c66ec88fSEmmanuel Vadot					remote-endpoint = <&hdmi_con>;
179c66ec88fSEmmanuel Vadot				};
180c66ec88fSEmmanuel Vadot			};
181c66ec88fSEmmanuel Vadot		};
182c66ec88fSEmmanuel Vadot	};
183c66ec88fSEmmanuel Vadot};
184c66ec88fSEmmanuel Vadot
185c66ec88fSEmmanuel Vadot&lvds0 {
186c66ec88fSEmmanuel Vadot	status = "okay";
187c66ec88fSEmmanuel Vadot
188c66ec88fSEmmanuel Vadot	ports {
189c66ec88fSEmmanuel Vadot		port@1 {
190c66ec88fSEmmanuel Vadot			lvds0_out: endpoint {
191c66ec88fSEmmanuel Vadot				remote-endpoint = <&thc63lvd1024_in>;
192c66ec88fSEmmanuel Vadot			};
193c66ec88fSEmmanuel Vadot		};
194c66ec88fSEmmanuel Vadot	};
195c66ec88fSEmmanuel Vadot};
196c66ec88fSEmmanuel Vadot
197c66ec88fSEmmanuel Vadot&mmc0 {
198c66ec88fSEmmanuel Vadot	pinctrl-0 = <&mmc_pins>;
199c66ec88fSEmmanuel Vadot	pinctrl-names = "default";
200c66ec88fSEmmanuel Vadot
201c66ec88fSEmmanuel Vadot	vmmc-supply = <&vcc_d3_3v>;
202c66ec88fSEmmanuel Vadot	vqmmc-supply = <&vcc_vddq_vin0>;
203c66ec88fSEmmanuel Vadot	bus-width = <8>;
204c66ec88fSEmmanuel Vadot	non-removable;
205c66ec88fSEmmanuel Vadot	status = "okay";
206c66ec88fSEmmanuel Vadot};
207c66ec88fSEmmanuel Vadot
208c66ec88fSEmmanuel Vadot&pfc {
209c66ec88fSEmmanuel Vadot	avb_pins: avb0 {
210c66ec88fSEmmanuel Vadot		groups = "avb0_mdio", "avb0_rgmii", "avb0_txcrefclk";
211c66ec88fSEmmanuel Vadot		function = "avb0";
212c66ec88fSEmmanuel Vadot	};
213c66ec88fSEmmanuel Vadot
214c66ec88fSEmmanuel Vadot	i2c0_pins: i2c0 {
215c66ec88fSEmmanuel Vadot		groups = "i2c0";
216c66ec88fSEmmanuel Vadot		function = "i2c0";
217c66ec88fSEmmanuel Vadot	};
218c66ec88fSEmmanuel Vadot
219c66ec88fSEmmanuel Vadot	mmc_pins: mmc_3_3v {
220c66ec88fSEmmanuel Vadot		groups = "mmc_data8", "mmc_ctrl";
221c66ec88fSEmmanuel Vadot		function = "mmc";
222c66ec88fSEmmanuel Vadot		power-source = <3300>;
223c66ec88fSEmmanuel Vadot	};
224c66ec88fSEmmanuel Vadot
225c66ec88fSEmmanuel Vadot	qspi0_pins: qspi0 {
226c66ec88fSEmmanuel Vadot		groups = "qspi0_ctrl", "qspi0_data4";
227c66ec88fSEmmanuel Vadot		function = "qspi0";
228c66ec88fSEmmanuel Vadot	};
229c66ec88fSEmmanuel Vadot
230c66ec88fSEmmanuel Vadot	scif0_pins: scif0 {
231c66ec88fSEmmanuel Vadot		groups = "scif0_data";
232c66ec88fSEmmanuel Vadot		function = "scif0";
233c66ec88fSEmmanuel Vadot	};
234c66ec88fSEmmanuel Vadot};
235c66ec88fSEmmanuel Vadot
236c66ec88fSEmmanuel Vadot&rpc {
237c66ec88fSEmmanuel Vadot	pinctrl-0 = <&qspi0_pins>;
238c66ec88fSEmmanuel Vadot	pinctrl-names = "default";
239c66ec88fSEmmanuel Vadot
240c66ec88fSEmmanuel Vadot	status = "okay";
241c66ec88fSEmmanuel Vadot
242c66ec88fSEmmanuel Vadot	flash@0 {
243c66ec88fSEmmanuel Vadot		compatible = "spansion,s25fs512s", "jedec,spi-nor";
244c66ec88fSEmmanuel Vadot		reg = <0>;
245c66ec88fSEmmanuel Vadot		spi-max-frequency = <50000000>;
246c66ec88fSEmmanuel Vadot		spi-rx-bus-width = <4>;
247c66ec88fSEmmanuel Vadot
248c66ec88fSEmmanuel Vadot		partitions {
249c66ec88fSEmmanuel Vadot			compatible = "fixed-partitions";
250c66ec88fSEmmanuel Vadot			#address-cells = <1>;
251c66ec88fSEmmanuel Vadot			#size-cells = <1>;
252c66ec88fSEmmanuel Vadot
253c66ec88fSEmmanuel Vadot			bootparam@0 {
254c66ec88fSEmmanuel Vadot				reg = <0x00000000 0x040000>;
255c66ec88fSEmmanuel Vadot				read-only;
256c66ec88fSEmmanuel Vadot			};
257c66ec88fSEmmanuel Vadot			cr7@40000 {
258c66ec88fSEmmanuel Vadot				reg = <0x00040000 0x080000>;
259c66ec88fSEmmanuel Vadot				read-only;
260c66ec88fSEmmanuel Vadot			};
261c66ec88fSEmmanuel Vadot			cert_header_sa3@c0000 {
262c66ec88fSEmmanuel Vadot				reg = <0x000c0000 0x080000>;
263c66ec88fSEmmanuel Vadot				read-only;
264c66ec88fSEmmanuel Vadot			};
265c66ec88fSEmmanuel Vadot			bl2@140000 {
266c66ec88fSEmmanuel Vadot				reg = <0x00140000 0x040000>;
267c66ec88fSEmmanuel Vadot				read-only;
268c66ec88fSEmmanuel Vadot			};
269c66ec88fSEmmanuel Vadot			cert_header_sa6@180000 {
270c66ec88fSEmmanuel Vadot				reg = <0x00180000 0x040000>;
271c66ec88fSEmmanuel Vadot				read-only;
272c66ec88fSEmmanuel Vadot			};
273c66ec88fSEmmanuel Vadot			bl31@1c0000 {
274c66ec88fSEmmanuel Vadot				reg = <0x001c0000 0x460000>;
275c66ec88fSEmmanuel Vadot				read-only;
276c66ec88fSEmmanuel Vadot			};
277c66ec88fSEmmanuel Vadot			uboot@640000 {
278c66ec88fSEmmanuel Vadot				reg = <0x00640000 0x0c0000>;
279c66ec88fSEmmanuel Vadot				read-only;
280c66ec88fSEmmanuel Vadot			};
281c66ec88fSEmmanuel Vadot			uboot-env@700000 {
282c66ec88fSEmmanuel Vadot				reg = <0x00700000 0x040000>;
283c66ec88fSEmmanuel Vadot				read-only;
284c66ec88fSEmmanuel Vadot			};
285c66ec88fSEmmanuel Vadot			dtb@740000 {
286c66ec88fSEmmanuel Vadot				reg = <0x00740000 0x080000>;
287c66ec88fSEmmanuel Vadot			};
288c66ec88fSEmmanuel Vadot			kernel@7c0000 {
289c66ec88fSEmmanuel Vadot				reg = <0x007c0000 0x1400000>;
290c66ec88fSEmmanuel Vadot			};
291c66ec88fSEmmanuel Vadot			user@1bc0000 {
292c66ec88fSEmmanuel Vadot				reg = <0x01bc0000 0x2440000>;
293c66ec88fSEmmanuel Vadot			};
294c66ec88fSEmmanuel Vadot		};
295c66ec88fSEmmanuel Vadot	};
296c66ec88fSEmmanuel Vadot};
297c66ec88fSEmmanuel Vadot
298c66ec88fSEmmanuel Vadot&scif0 {
299c66ec88fSEmmanuel Vadot	pinctrl-0 = <&scif0_pins>;
300c66ec88fSEmmanuel Vadot	pinctrl-names = "default";
301c66ec88fSEmmanuel Vadot
302c66ec88fSEmmanuel Vadot	status = "okay";
303c66ec88fSEmmanuel Vadot};
304