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
10034bd9009STakeshi Kihara	reg_1p8v: regulator-1p8v {
10134bd9009STakeshi Kihara		compatible = "regulator-fixed";
10234bd9009STakeshi Kihara		regulator-name = "fixed-1.8V";
10334bd9009STakeshi Kihara		regulator-min-microvolt = <1800000>;
10434bd9009STakeshi Kihara		regulator-max-microvolt = <1800000>;
10534bd9009STakeshi Kihara		regulator-boot-on;
10634bd9009STakeshi Kihara		regulator-always-on;
10734bd9009STakeshi Kihara	};
10834bd9009STakeshi Kihara
10934bd9009STakeshi Kihara	reg_3p3v: regulator-3p3v {
11034bd9009STakeshi Kihara		compatible = "regulator-fixed";
11134bd9009STakeshi Kihara		regulator-name = "fixed-3.3V";
11234bd9009STakeshi Kihara		regulator-min-microvolt = <3300000>;
11334bd9009STakeshi Kihara		regulator-max-microvolt = <3300000>;
11434bd9009STakeshi Kihara		regulator-boot-on;
11534bd9009STakeshi Kihara		regulator-always-on;
11634bd9009STakeshi Kihara	};
117e4d755cfSYoshihiro Shimoda};
118e4d755cfSYoshihiro Shimoda
11996f7071dSGeert Uytterhoeven&avb0 {
12096f7071dSGeert Uytterhoeven	pinctrl-0 = <&avb0_pins>;
12196f7071dSGeert Uytterhoeven	pinctrl-names = "default";
12296f7071dSGeert Uytterhoeven	phy-handle = <&phy0>;
12396f7071dSGeert Uytterhoeven	tx-internal-delay-ps = <2000>;
12496f7071dSGeert Uytterhoeven	status = "okay";
12596f7071dSGeert Uytterhoeven
12696f7071dSGeert Uytterhoeven	phy0: ethernet-phy@0 {
12796f7071dSGeert Uytterhoeven		compatible = "ethernet-phy-id0022.1622",
12896f7071dSGeert Uytterhoeven			     "ethernet-phy-ieee802.3-c22";
12996f7071dSGeert Uytterhoeven		rxc-skew-ps = <1500>;
13096f7071dSGeert Uytterhoeven		reg = <0>;
13196f7071dSGeert Uytterhoeven		interrupt-parent = <&gpio7>;
13296f7071dSGeert Uytterhoeven		interrupts = <5 IRQ_TYPE_LEVEL_LOW>;
13396f7071dSGeert Uytterhoeven		reset-gpios = <&gpio7 10 GPIO_ACTIVE_LOW>;
13496f7071dSGeert Uytterhoeven	};
13596f7071dSGeert Uytterhoeven};
13696f7071dSGeert Uytterhoeven
137e4d755cfSYoshihiro Shimoda&extal_clk {
138e4d755cfSYoshihiro Shimoda	clock-frequency = <16666666>;
139e4d755cfSYoshihiro Shimoda};
140e4d755cfSYoshihiro Shimoda
141e4d755cfSYoshihiro Shimoda&extalr_clk {
142e4d755cfSYoshihiro Shimoda	clock-frequency = <32768>;
143e4d755cfSYoshihiro Shimoda};
144e4d755cfSYoshihiro Shimoda
145e4d755cfSYoshihiro Shimoda&hscif0 {
146e4d755cfSYoshihiro Shimoda	status = "okay";
147e4d755cfSYoshihiro Shimoda};
148e4d755cfSYoshihiro Shimoda
14977643815SGeert Uytterhoeven&i2c0 {
15077643815SGeert Uytterhoeven	pinctrl-0 = <&i2c0_pins>;
15177643815SGeert Uytterhoeven	pinctrl-names = "default";
15277643815SGeert Uytterhoeven
15377643815SGeert Uytterhoeven	status = "okay";
15477643815SGeert Uytterhoeven	clock-frequency = <400000>;
15577643815SGeert Uytterhoeven
15692378fd2SGeert Uytterhoeven	io_expander_a: gpio@20 {
15792378fd2SGeert Uytterhoeven		compatible = "onnn,pca9654";
15892378fd2SGeert Uytterhoeven		reg = <0x20>;
15992378fd2SGeert Uytterhoeven		interrupt-parent = <&gpio0>;
16092378fd2SGeert Uytterhoeven		interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
16192378fd2SGeert Uytterhoeven		gpio-controller;
16292378fd2SGeert Uytterhoeven		#gpio-cells = <2>;
16392378fd2SGeert Uytterhoeven		interrupt-controller;
16492378fd2SGeert Uytterhoeven		#interrupt-cells = <2>;
16592378fd2SGeert Uytterhoeven	};
16692378fd2SGeert Uytterhoeven
16777643815SGeert Uytterhoeven	eeprom@50 {
16877643815SGeert Uytterhoeven		compatible = "rohm,br24g01", "atmel,24c01";
16977643815SGeert Uytterhoeven		label = "cpu-board";
17077643815SGeert Uytterhoeven		reg = <0x50>;
17177643815SGeert Uytterhoeven		pagesize = <8>;
17277643815SGeert Uytterhoeven	};
17377643815SGeert Uytterhoeven};
17477643815SGeert Uytterhoeven
17534bd9009STakeshi Kihara&mmc0 {
17634bd9009STakeshi Kihara	pinctrl-0 = <&mmc_pins>;
17734bd9009STakeshi Kihara	pinctrl-1 = <&mmc_pins>;
17834bd9009STakeshi Kihara	pinctrl-names = "default", "state_uhs";
17934bd9009STakeshi Kihara
18034bd9009STakeshi Kihara	vmmc-supply = <&reg_3p3v>;
18134bd9009STakeshi Kihara	vqmmc-supply = <&reg_1p8v>;
18234bd9009STakeshi Kihara	mmc-hs200-1_8v;
18334bd9009STakeshi Kihara	mmc-hs400-1_8v;
18434bd9009STakeshi Kihara	bus-width = <8>;
18534bd9009STakeshi Kihara	no-sd;
18634bd9009STakeshi Kihara	no-sdio;
18734bd9009STakeshi Kihara	non-removable;
18834bd9009STakeshi Kihara	full-pwr-cycle-in-suspend;
18934bd9009STakeshi Kihara	status = "okay";
19034bd9009STakeshi Kihara};
19134bd9009STakeshi Kihara
1927a8d590dSGeert Uytterhoeven&pfc {
1937a8d590dSGeert Uytterhoeven	pinctrl-0 = <&scif_clk_pins>;
1947a8d590dSGeert Uytterhoeven	pinctrl-names = "default";
1957a8d590dSGeert Uytterhoeven
19696f7071dSGeert Uytterhoeven	avb0_pins: avb0 {
19796f7071dSGeert Uytterhoeven		mux {
19896f7071dSGeert Uytterhoeven			groups = "avb0_link", "avb0_mdio", "avb0_rgmii",
19996f7071dSGeert Uytterhoeven				 "avb0_txcrefclk";
20096f7071dSGeert Uytterhoeven			function = "avb0";
20196f7071dSGeert Uytterhoeven		};
20296f7071dSGeert Uytterhoeven
20396f7071dSGeert Uytterhoeven		pins_mdio {
20496f7071dSGeert Uytterhoeven			groups = "avb0_mdio";
20596f7071dSGeert Uytterhoeven			drive-strength = <21>;
20696f7071dSGeert Uytterhoeven		};
20796f7071dSGeert Uytterhoeven
20896f7071dSGeert Uytterhoeven		pins_mii {
20996f7071dSGeert Uytterhoeven			groups = "avb0_rgmii";
21096f7071dSGeert Uytterhoeven			drive-strength = <21>;
21196f7071dSGeert Uytterhoeven		};
21296f7071dSGeert Uytterhoeven
21396f7071dSGeert Uytterhoeven	};
2147a8d590dSGeert Uytterhoeven	hscif0_pins: hscif0 {
2157a8d590dSGeert Uytterhoeven		groups = "hscif0_data";
2167a8d590dSGeert Uytterhoeven		function = "hscif0";
2177a8d590dSGeert Uytterhoeven	};
2187a8d590dSGeert Uytterhoeven
21977643815SGeert Uytterhoeven	i2c0_pins: i2c0 {
22077643815SGeert Uytterhoeven		groups = "i2c0";
22177643815SGeert Uytterhoeven		function = "i2c0";
22277643815SGeert Uytterhoeven	};
22377643815SGeert Uytterhoeven
2246672f840SGeert Uytterhoeven	keys_pins: keys {
2256672f840SGeert Uytterhoeven		pins = "GP_5_0", "GP_5_1", "GP_5_2";
2266672f840SGeert Uytterhoeven		bias-pull-up;
2276672f840SGeert Uytterhoeven	};
2286672f840SGeert Uytterhoeven
22934bd9009STakeshi Kihara	mmc_pins: mmc {
23034bd9009STakeshi Kihara		groups = "mmc_data8", "mmc_ctrl", "mmc_ds";
23134bd9009STakeshi Kihara		function = "mmc";
23234bd9009STakeshi Kihara		power-source = <1800>;
23334bd9009STakeshi Kihara	};
23434bd9009STakeshi Kihara
235*5c1bf1e3SHai Pham	qspi0_pins: qspi0 {
236*5c1bf1e3SHai Pham		groups = "qspi0_ctrl", "qspi0_data4";
237*5c1bf1e3SHai Pham		function = "qspi0";
238*5c1bf1e3SHai Pham	};
239*5c1bf1e3SHai Pham
2407a8d590dSGeert Uytterhoeven	scif_clk_pins: scif_clk {
2417a8d590dSGeert Uytterhoeven		groups = "scif_clk";
2427a8d590dSGeert Uytterhoeven		function = "scif_clk";
2437a8d590dSGeert Uytterhoeven	};
2447a8d590dSGeert Uytterhoeven};
2457a8d590dSGeert Uytterhoeven
246*5c1bf1e3SHai Pham&rpc {
247*5c1bf1e3SHai Pham	pinctrl-0 = <&qspi0_pins>;
248*5c1bf1e3SHai Pham	pinctrl-names = "default";
249*5c1bf1e3SHai Pham
250*5c1bf1e3SHai Pham	status = "okay";
251*5c1bf1e3SHai Pham
252*5c1bf1e3SHai Pham	flash@0 {
253*5c1bf1e3SHai Pham		compatible = "spansion,s25fs512s", "jedec,spi-nor";
254*5c1bf1e3SHai Pham		reg = <0>;
255*5c1bf1e3SHai Pham		spi-max-frequency = <40000000>;
256*5c1bf1e3SHai Pham		spi-rx-bus-width = <4>;
257*5c1bf1e3SHai Pham
258*5c1bf1e3SHai Pham		partitions {
259*5c1bf1e3SHai Pham			compatible = "fixed-partitions";
260*5c1bf1e3SHai Pham			#address-cells = <1>;
261*5c1bf1e3SHai Pham			#size-cells = <1>;
262*5c1bf1e3SHai Pham
263*5c1bf1e3SHai Pham			boot@0 {
264*5c1bf1e3SHai Pham				reg = <0x0 0x1200000>;
265*5c1bf1e3SHai Pham				read-only;
266*5c1bf1e3SHai Pham			};
267*5c1bf1e3SHai Pham			user@1200000 {
268*5c1bf1e3SHai Pham				reg = <0x1200000 0x2e00000>;
269*5c1bf1e3SHai Pham			};
270*5c1bf1e3SHai Pham		};
271*5c1bf1e3SHai Pham	};
272*5c1bf1e3SHai Pham};
273*5c1bf1e3SHai Pham
274e4d755cfSYoshihiro Shimoda&scif_clk {
275e4d755cfSYoshihiro Shimoda	clock-frequency = <24000000>;
276e4d755cfSYoshihiro Shimoda};
277495e36c3SGeert Uytterhoeven
278495e36c3SGeert Uytterhoeven&rwdt {
279495e36c3SGeert Uytterhoeven	timeout-sec = <60>;
280495e36c3SGeert Uytterhoeven	status = "okay";
281495e36c3SGeert Uytterhoeven};
282