1e4d755cfSYoshihiro Shimoda// SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2e4d755cfSYoshihiro Shimoda/*
3e4d755cfSYoshihiro Shimoda * Device Tree Source for the White Hawk CPU board
4e4d755cfSYoshihiro Shimoda *
5e4d755cfSYoshihiro Shimoda * Copyright (C) 2022 Renesas Electronics Corp.
6e4d755cfSYoshihiro Shimoda */
7e4d755cfSYoshihiro Shimoda
8e4d755cfSYoshihiro Shimoda#include "r8a779g0.dtsi"
9e4d755cfSYoshihiro Shimoda
1060dc0e87SGeert Uytterhoeven#include <dt-bindings/gpio/gpio.h>
116672f840SGeert Uytterhoeven#include <dt-bindings/input/input.h>
1260dc0e87SGeert Uytterhoeven#include <dt-bindings/leds/common.h>
1360dc0e87SGeert Uytterhoeven
14e4d755cfSYoshihiro Shimoda/ {
15e4d755cfSYoshihiro Shimoda	model = "Renesas White Hawk CPU board";
16e4d755cfSYoshihiro Shimoda	compatible = "renesas,white-hawk-cpu", "renesas,r8a779g0";
17e4d755cfSYoshihiro Shimoda
187bb9e424SGeert Uytterhoeven	aliases {
1996f7071dSGeert Uytterhoeven		ethernet0 = &avb0;
207bb9e424SGeert Uytterhoeven		serial0 = &hscif0;
217bb9e424SGeert Uytterhoeven	};
227bb9e424SGeert Uytterhoeven
237bb9e424SGeert Uytterhoeven	chosen {
24f4b7dffdSKuninori Morimoto		bootargs = "ignore_loglevel rw root=/dev/nfs ip=on";
257bb9e424SGeert Uytterhoeven		stdout-path = "serial0:921600n8";
267bb9e424SGeert Uytterhoeven	};
277bb9e424SGeert Uytterhoeven
286672f840SGeert Uytterhoeven	keys {
296672f840SGeert Uytterhoeven		compatible = "gpio-keys";
306672f840SGeert Uytterhoeven
316672f840SGeert Uytterhoeven		pinctrl-0 = <&keys_pins>;
326672f840SGeert Uytterhoeven		pinctrl-names = "default";
336672f840SGeert Uytterhoeven
346672f840SGeert Uytterhoeven		key-1 {
356672f840SGeert Uytterhoeven			gpios = <&gpio5 0 GPIO_ACTIVE_LOW>;
366672f840SGeert Uytterhoeven			linux,code = <KEY_1>;
376672f840SGeert Uytterhoeven			label = "SW47";
386672f840SGeert Uytterhoeven			wakeup-source;
396672f840SGeert Uytterhoeven			debounce-interval = <20>;
406672f840SGeert Uytterhoeven		};
416672f840SGeert Uytterhoeven
426672f840SGeert Uytterhoeven		key-2 {
436672f840SGeert Uytterhoeven			gpios = <&gpio5 1 GPIO_ACTIVE_LOW>;
446672f840SGeert Uytterhoeven			linux,code = <KEY_2>;
456672f840SGeert Uytterhoeven			label = "SW48";
466672f840SGeert Uytterhoeven			wakeup-source;
476672f840SGeert Uytterhoeven			debounce-interval = <20>;
486672f840SGeert Uytterhoeven		};
496672f840SGeert Uytterhoeven
506672f840SGeert Uytterhoeven		key-3 {
516672f840SGeert Uytterhoeven			gpios = <&gpio5 2 GPIO_ACTIVE_LOW>;
526672f840SGeert Uytterhoeven			linux,code = <KEY_3>;
536672f840SGeert Uytterhoeven			label = "SW49";
546672f840SGeert Uytterhoeven			wakeup-source;
556672f840SGeert Uytterhoeven			debounce-interval = <20>;
566672f840SGeert Uytterhoeven		};
576672f840SGeert Uytterhoeven	};
586672f840SGeert Uytterhoeven
5960dc0e87SGeert Uytterhoeven	leds {
6060dc0e87SGeert Uytterhoeven		compatible = "gpio-leds";
6160dc0e87SGeert Uytterhoeven
6260dc0e87SGeert Uytterhoeven		led-1 {
6360dc0e87SGeert Uytterhoeven			gpios = <&gpio7 0 GPIO_ACTIVE_HIGH>;
6460dc0e87SGeert Uytterhoeven			color = <LED_COLOR_ID_GREEN>;
6560dc0e87SGeert Uytterhoeven			function = LED_FUNCTION_INDICATOR;
6660dc0e87SGeert Uytterhoeven			function-enumerator = <1>;
6760dc0e87SGeert Uytterhoeven		};
6860dc0e87SGeert Uytterhoeven
6960dc0e87SGeert Uytterhoeven		led-2 {
7060dc0e87SGeert Uytterhoeven			gpios = <&gpio7 1 GPIO_ACTIVE_HIGH>;
7160dc0e87SGeert Uytterhoeven			color = <LED_COLOR_ID_GREEN>;
7260dc0e87SGeert Uytterhoeven			function = LED_FUNCTION_INDICATOR;
7360dc0e87SGeert Uytterhoeven			function-enumerator = <2>;
7460dc0e87SGeert Uytterhoeven		};
7560dc0e87SGeert Uytterhoeven
7660dc0e87SGeert Uytterhoeven		led-3 {
7760dc0e87SGeert Uytterhoeven			gpios = <&gpio7 2 GPIO_ACTIVE_HIGH>;
7860dc0e87SGeert Uytterhoeven			color = <LED_COLOR_ID_GREEN>;
7960dc0e87SGeert Uytterhoeven			function = LED_FUNCTION_INDICATOR;
8060dc0e87SGeert Uytterhoeven			function-enumerator = <3>;
8160dc0e87SGeert Uytterhoeven		};
8260dc0e87SGeert Uytterhoeven	};
8360dc0e87SGeert Uytterhoeven
84e4d755cfSYoshihiro Shimoda	memory@48000000 {
85e4d755cfSYoshihiro Shimoda		device_type = "memory";
86e4d755cfSYoshihiro Shimoda		/* first 128MB is reserved for secure area. */
87e4d755cfSYoshihiro Shimoda		reg = <0x0 0x48000000 0x0 0x78000000>;
88e4d755cfSYoshihiro Shimoda	};
89e4d755cfSYoshihiro Shimoda
90e4d755cfSYoshihiro Shimoda	memory@480000000 {
91e4d755cfSYoshihiro Shimoda		device_type = "memory";
92e4d755cfSYoshihiro Shimoda		reg = <0x4 0x80000000 0x0 0x80000000>;
93e4d755cfSYoshihiro Shimoda	};
94e4d755cfSYoshihiro Shimoda
95e4d755cfSYoshihiro Shimoda	memory@600000000 {
96e4d755cfSYoshihiro Shimoda		device_type = "memory";
97e4d755cfSYoshihiro Shimoda		reg = <0x6 0x00000000 0x1 0x00000000>;
98e4d755cfSYoshihiro Shimoda	};
9934bd9009STakeshi Kihara
100df9645b9STomi Valkeinen	mini-dp-con {
101df9645b9STomi Valkeinen		compatible = "dp-connector";
102df9645b9STomi Valkeinen		label = "CN5";
103df9645b9STomi Valkeinen		type = "mini";
104df9645b9STomi Valkeinen
105df9645b9STomi Valkeinen		port {
106df9645b9STomi Valkeinen			mini_dp_con_in: endpoint {
107df9645b9STomi Valkeinen				remote-endpoint = <&sn65dsi86_out>;
108df9645b9STomi Valkeinen			};
109df9645b9STomi Valkeinen		};
110df9645b9STomi Valkeinen	};
111df9645b9STomi Valkeinen
112df9645b9STomi Valkeinen	reg_1p2v: regulator-1p2v {
113df9645b9STomi Valkeinen		compatible = "regulator-fixed";
114df9645b9STomi Valkeinen		regulator-name = "fixed-1.2V";
115df9645b9STomi Valkeinen		regulator-min-microvolt = <1200000>;
116df9645b9STomi Valkeinen		regulator-max-microvolt = <1200000>;
117df9645b9STomi Valkeinen		regulator-boot-on;
118df9645b9STomi Valkeinen		regulator-always-on;
119df9645b9STomi Valkeinen	};
120df9645b9STomi Valkeinen
12134bd9009STakeshi Kihara	reg_1p8v: regulator-1p8v {
12234bd9009STakeshi Kihara		compatible = "regulator-fixed";
12334bd9009STakeshi Kihara		regulator-name = "fixed-1.8V";
12434bd9009STakeshi Kihara		regulator-min-microvolt = <1800000>;
12534bd9009STakeshi Kihara		regulator-max-microvolt = <1800000>;
12634bd9009STakeshi Kihara		regulator-boot-on;
12734bd9009STakeshi Kihara		regulator-always-on;
12834bd9009STakeshi Kihara	};
12934bd9009STakeshi Kihara
13034bd9009STakeshi Kihara	reg_3p3v: regulator-3p3v {
13134bd9009STakeshi Kihara		compatible = "regulator-fixed";
13234bd9009STakeshi Kihara		regulator-name = "fixed-3.3V";
13334bd9009STakeshi Kihara		regulator-min-microvolt = <3300000>;
13434bd9009STakeshi Kihara		regulator-max-microvolt = <3300000>;
13534bd9009STakeshi Kihara		regulator-boot-on;
13634bd9009STakeshi Kihara		regulator-always-on;
13734bd9009STakeshi Kihara	};
138df9645b9STomi Valkeinen
139df9645b9STomi Valkeinen	sn65dsi86_refclk: clk-x6 {
140df9645b9STomi Valkeinen		compatible = "fixed-clock";
141df9645b9STomi Valkeinen		#clock-cells = <0>;
142df9645b9STomi Valkeinen		clock-frequency = <38400000>;
143df9645b9STomi Valkeinen	};
144e4d755cfSYoshihiro Shimoda};
145e4d755cfSYoshihiro Shimoda
14696f7071dSGeert Uytterhoeven&avb0 {
14796f7071dSGeert Uytterhoeven	pinctrl-0 = <&avb0_pins>;
14896f7071dSGeert Uytterhoeven	pinctrl-names = "default";
14996f7071dSGeert Uytterhoeven	phy-handle = <&phy0>;
15096f7071dSGeert Uytterhoeven	tx-internal-delay-ps = <2000>;
15196f7071dSGeert Uytterhoeven	status = "okay";
15296f7071dSGeert Uytterhoeven
15396f7071dSGeert Uytterhoeven	phy0: ethernet-phy@0 {
15496f7071dSGeert Uytterhoeven		compatible = "ethernet-phy-id0022.1622",
15596f7071dSGeert Uytterhoeven			     "ethernet-phy-ieee802.3-c22";
15696f7071dSGeert Uytterhoeven		rxc-skew-ps = <1500>;
15796f7071dSGeert Uytterhoeven		reg = <0>;
15896f7071dSGeert Uytterhoeven		interrupt-parent = <&gpio7>;
15996f7071dSGeert Uytterhoeven		interrupts = <5 IRQ_TYPE_LEVEL_LOW>;
16096f7071dSGeert Uytterhoeven		reset-gpios = <&gpio7 10 GPIO_ACTIVE_LOW>;
16196f7071dSGeert Uytterhoeven	};
16296f7071dSGeert Uytterhoeven};
16396f7071dSGeert Uytterhoeven
164df9645b9STomi Valkeinen&dsi0 {
165df9645b9STomi Valkeinen	status = "okay";
166df9645b9STomi Valkeinen
167df9645b9STomi Valkeinen	ports {
168df9645b9STomi Valkeinen		port@1 {
169df9645b9STomi Valkeinen			dsi0_out: endpoint {
170df9645b9STomi Valkeinen				remote-endpoint = <&sn65dsi86_in>;
171df9645b9STomi Valkeinen				data-lanes = <1 2 3 4>;
172df9645b9STomi Valkeinen			};
173df9645b9STomi Valkeinen		};
174df9645b9STomi Valkeinen	};
175df9645b9STomi Valkeinen};
176df9645b9STomi Valkeinen
177df9645b9STomi Valkeinen&du {
178df9645b9STomi Valkeinen	status = "okay";
179df9645b9STomi Valkeinen};
180df9645b9STomi Valkeinen
181e4d755cfSYoshihiro Shimoda&extal_clk {
182e4d755cfSYoshihiro Shimoda	clock-frequency = <16666666>;
183e4d755cfSYoshihiro Shimoda};
184e4d755cfSYoshihiro Shimoda
185e4d755cfSYoshihiro Shimoda&extalr_clk {
186e4d755cfSYoshihiro Shimoda	clock-frequency = <32768>;
187e4d755cfSYoshihiro Shimoda};
188e4d755cfSYoshihiro Shimoda
189e4d755cfSYoshihiro Shimoda&hscif0 {
190*9cd79bc1SGeert Uytterhoeven	pinctrl-0 = <&hscif0_pins>;
191*9cd79bc1SGeert Uytterhoeven	pinctrl-names = "default";
192*9cd79bc1SGeert Uytterhoeven
193e4d755cfSYoshihiro Shimoda	status = "okay";
194e4d755cfSYoshihiro Shimoda};
195e4d755cfSYoshihiro Shimoda
19677643815SGeert Uytterhoeven&i2c0 {
19777643815SGeert Uytterhoeven	pinctrl-0 = <&i2c0_pins>;
19877643815SGeert Uytterhoeven	pinctrl-names = "default";
19977643815SGeert Uytterhoeven
20077643815SGeert Uytterhoeven	status = "okay";
20177643815SGeert Uytterhoeven	clock-frequency = <400000>;
20277643815SGeert Uytterhoeven
20392378fd2SGeert Uytterhoeven	io_expander_a: gpio@20 {
20492378fd2SGeert Uytterhoeven		compatible = "onnn,pca9654";
20592378fd2SGeert Uytterhoeven		reg = <0x20>;
20692378fd2SGeert Uytterhoeven		interrupt-parent = <&gpio0>;
20792378fd2SGeert Uytterhoeven		interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
20892378fd2SGeert Uytterhoeven		gpio-controller;
20992378fd2SGeert Uytterhoeven		#gpio-cells = <2>;
21092378fd2SGeert Uytterhoeven		interrupt-controller;
21192378fd2SGeert Uytterhoeven		#interrupt-cells = <2>;
21292378fd2SGeert Uytterhoeven	};
21392378fd2SGeert Uytterhoeven
21477643815SGeert Uytterhoeven	eeprom@50 {
21577643815SGeert Uytterhoeven		compatible = "rohm,br24g01", "atmel,24c01";
21677643815SGeert Uytterhoeven		label = "cpu-board";
21777643815SGeert Uytterhoeven		reg = <0x50>;
21877643815SGeert Uytterhoeven		pagesize = <8>;
21977643815SGeert Uytterhoeven	};
22077643815SGeert Uytterhoeven};
22177643815SGeert Uytterhoeven
222df9645b9STomi Valkeinen&i2c1 {
223df9645b9STomi Valkeinen	pinctrl-0 = <&i2c1_pins>;
224df9645b9STomi Valkeinen	pinctrl-names = "default";
225df9645b9STomi Valkeinen
226df9645b9STomi Valkeinen	status = "okay";
227df9645b9STomi Valkeinen	clock-frequency = <400000>;
228df9645b9STomi Valkeinen
229df9645b9STomi Valkeinen	bridge@2c {
230df9645b9STomi Valkeinen		compatible = "ti,sn65dsi86";
231df9645b9STomi Valkeinen		reg = <0x2c>;
232df9645b9STomi Valkeinen
233df9645b9STomi Valkeinen		clocks = <&sn65dsi86_refclk>;
234df9645b9STomi Valkeinen		clock-names = "refclk";
235df9645b9STomi Valkeinen
236df9645b9STomi Valkeinen		interrupt-parent = <&intc_ex>;
237df9645b9STomi Valkeinen		interrupts = <0 IRQ_TYPE_LEVEL_HIGH>;
238df9645b9STomi Valkeinen
239df9645b9STomi Valkeinen		enable-gpios = <&gpio1 26 GPIO_ACTIVE_HIGH>;
240df9645b9STomi Valkeinen
241df9645b9STomi Valkeinen		vccio-supply = <&reg_1p8v>;
242df9645b9STomi Valkeinen		vpll-supply = <&reg_1p8v>;
243df9645b9STomi Valkeinen		vcca-supply = <&reg_1p2v>;
244df9645b9STomi Valkeinen		vcc-supply = <&reg_1p2v>;
245df9645b9STomi Valkeinen
246df9645b9STomi Valkeinen		ports {
247df9645b9STomi Valkeinen			#address-cells = <1>;
248df9645b9STomi Valkeinen			#size-cells = <0>;
249df9645b9STomi Valkeinen
250df9645b9STomi Valkeinen			port@0 {
251df9645b9STomi Valkeinen				reg = <0>;
252df9645b9STomi Valkeinen				sn65dsi86_in: endpoint {
253df9645b9STomi Valkeinen					remote-endpoint = <&dsi0_out>;
254df9645b9STomi Valkeinen				};
255df9645b9STomi Valkeinen			};
256df9645b9STomi Valkeinen
257df9645b9STomi Valkeinen			port@1 {
258df9645b9STomi Valkeinen				reg = <1>;
259df9645b9STomi Valkeinen				sn65dsi86_out: endpoint {
260df9645b9STomi Valkeinen					remote-endpoint = <&mini_dp_con_in>;
261df9645b9STomi Valkeinen				};
262df9645b9STomi Valkeinen			};
263df9645b9STomi Valkeinen		};
264df9645b9STomi Valkeinen	};
265df9645b9STomi Valkeinen};
266df9645b9STomi Valkeinen
26734bd9009STakeshi Kihara&mmc0 {
26834bd9009STakeshi Kihara	pinctrl-0 = <&mmc_pins>;
26934bd9009STakeshi Kihara	pinctrl-1 = <&mmc_pins>;
27034bd9009STakeshi Kihara	pinctrl-names = "default", "state_uhs";
27134bd9009STakeshi Kihara
27234bd9009STakeshi Kihara	vmmc-supply = <&reg_3p3v>;
27334bd9009STakeshi Kihara	vqmmc-supply = <&reg_1p8v>;
27434bd9009STakeshi Kihara	mmc-hs200-1_8v;
27534bd9009STakeshi Kihara	mmc-hs400-1_8v;
27634bd9009STakeshi Kihara	bus-width = <8>;
27734bd9009STakeshi Kihara	no-sd;
27834bd9009STakeshi Kihara	no-sdio;
27934bd9009STakeshi Kihara	non-removable;
28034bd9009STakeshi Kihara	full-pwr-cycle-in-suspend;
28134bd9009STakeshi Kihara	status = "okay";
28234bd9009STakeshi Kihara};
28334bd9009STakeshi Kihara
2847a8d590dSGeert Uytterhoeven&pfc {
2857a8d590dSGeert Uytterhoeven	pinctrl-0 = <&scif_clk_pins>;
2867a8d590dSGeert Uytterhoeven	pinctrl-names = "default";
2877a8d590dSGeert Uytterhoeven
28896f7071dSGeert Uytterhoeven	avb0_pins: avb0 {
28996f7071dSGeert Uytterhoeven		mux {
29096f7071dSGeert Uytterhoeven			groups = "avb0_link", "avb0_mdio", "avb0_rgmii",
29196f7071dSGeert Uytterhoeven				 "avb0_txcrefclk";
29296f7071dSGeert Uytterhoeven			function = "avb0";
29396f7071dSGeert Uytterhoeven		};
29496f7071dSGeert Uytterhoeven
29596f7071dSGeert Uytterhoeven		pins_mdio {
29696f7071dSGeert Uytterhoeven			groups = "avb0_mdio";
29796f7071dSGeert Uytterhoeven			drive-strength = <21>;
29896f7071dSGeert Uytterhoeven		};
29996f7071dSGeert Uytterhoeven
30096f7071dSGeert Uytterhoeven		pins_mii {
30196f7071dSGeert Uytterhoeven			groups = "avb0_rgmii";
30296f7071dSGeert Uytterhoeven			drive-strength = <21>;
30396f7071dSGeert Uytterhoeven		};
30496f7071dSGeert Uytterhoeven
30596f7071dSGeert Uytterhoeven	};
3067a8d590dSGeert Uytterhoeven	hscif0_pins: hscif0 {
3077a8d590dSGeert Uytterhoeven		groups = "hscif0_data";
3087a8d590dSGeert Uytterhoeven		function = "hscif0";
3097a8d590dSGeert Uytterhoeven	};
3107a8d590dSGeert Uytterhoeven
31177643815SGeert Uytterhoeven	i2c0_pins: i2c0 {
31277643815SGeert Uytterhoeven		groups = "i2c0";
31377643815SGeert Uytterhoeven		function = "i2c0";
31477643815SGeert Uytterhoeven	};
31577643815SGeert Uytterhoeven
316df9645b9STomi Valkeinen	i2c1_pins: i2c1 {
317df9645b9STomi Valkeinen		groups = "i2c1";
318df9645b9STomi Valkeinen		function = "i2c1";
319df9645b9STomi Valkeinen	};
320df9645b9STomi Valkeinen
3216672f840SGeert Uytterhoeven	keys_pins: keys {
3226672f840SGeert Uytterhoeven		pins = "GP_5_0", "GP_5_1", "GP_5_2";
3236672f840SGeert Uytterhoeven		bias-pull-up;
3246672f840SGeert Uytterhoeven	};
3256672f840SGeert Uytterhoeven
32634bd9009STakeshi Kihara	mmc_pins: mmc {
32734bd9009STakeshi Kihara		groups = "mmc_data8", "mmc_ctrl", "mmc_ds";
32834bd9009STakeshi Kihara		function = "mmc";
32934bd9009STakeshi Kihara		power-source = <1800>;
33034bd9009STakeshi Kihara	};
33134bd9009STakeshi Kihara
3325c1bf1e3SHai Pham	qspi0_pins: qspi0 {
3335c1bf1e3SHai Pham		groups = "qspi0_ctrl", "qspi0_data4";
3345c1bf1e3SHai Pham		function = "qspi0";
3355c1bf1e3SHai Pham	};
3365c1bf1e3SHai Pham
3377a8d590dSGeert Uytterhoeven	scif_clk_pins: scif_clk {
3387a8d590dSGeert Uytterhoeven		groups = "scif_clk";
3397a8d590dSGeert Uytterhoeven		function = "scif_clk";
3407a8d590dSGeert Uytterhoeven	};
3417a8d590dSGeert Uytterhoeven};
3427a8d590dSGeert Uytterhoeven
3435c1bf1e3SHai Pham&rpc {
3445c1bf1e3SHai Pham	pinctrl-0 = <&qspi0_pins>;
3455c1bf1e3SHai Pham	pinctrl-names = "default";
3465c1bf1e3SHai Pham
3475c1bf1e3SHai Pham	status = "okay";
3485c1bf1e3SHai Pham
3495c1bf1e3SHai Pham	flash@0 {
3505c1bf1e3SHai Pham		compatible = "spansion,s25fs512s", "jedec,spi-nor";
3515c1bf1e3SHai Pham		reg = <0>;
3525c1bf1e3SHai Pham		spi-max-frequency = <40000000>;
3535c1bf1e3SHai Pham		spi-rx-bus-width = <4>;
3545c1bf1e3SHai Pham
3555c1bf1e3SHai Pham		partitions {
3565c1bf1e3SHai Pham			compatible = "fixed-partitions";
3575c1bf1e3SHai Pham			#address-cells = <1>;
3585c1bf1e3SHai Pham			#size-cells = <1>;
3595c1bf1e3SHai Pham
3605c1bf1e3SHai Pham			boot@0 {
3615c1bf1e3SHai Pham				reg = <0x0 0x1200000>;
3625c1bf1e3SHai Pham				read-only;
3635c1bf1e3SHai Pham			};
3645c1bf1e3SHai Pham			user@1200000 {
3655c1bf1e3SHai Pham				reg = <0x1200000 0x2e00000>;
3665c1bf1e3SHai Pham			};
3675c1bf1e3SHai Pham		};
3685c1bf1e3SHai Pham	};
3695c1bf1e3SHai Pham};
3705c1bf1e3SHai Pham
371495e36c3SGeert Uytterhoeven&rwdt {
372495e36c3SGeert Uytterhoeven	timeout-sec = <60>;
373495e36c3SGeert Uytterhoeven	status = "okay";
374495e36c3SGeert Uytterhoeven};
375d13f817aSWolfram Sang
376d13f817aSWolfram Sang&scif_clk {
377d13f817aSWolfram Sang	clock-frequency = <24000000>;
378d13f817aSWolfram Sang};
379