163070d7cSYoshihiro Shimoda// SPDX-License-Identifier: GPL-2.0
263070d7cSYoshihiro Shimoda/*
363070d7cSYoshihiro Shimoda * Device Tree Source for the Falcon CPU board
463070d7cSYoshihiro Shimoda *
563070d7cSYoshihiro Shimoda * Copyright (C) 2020 Renesas Electronics Corp.
663070d7cSYoshihiro Shimoda */
763070d7cSYoshihiro Shimoda
8e8ac55a5SWolfram Sang#include <dt-bindings/gpio/gpio.h>
95e8c83b3SKieran Bingham#include <dt-bindings/input/input.h>
109d68a386SKieran Bingham#include <dt-bindings/leds/common.h>
119d68a386SKieran Bingham
1263070d7cSYoshihiro Shimoda#include "r8a779a0.dtsi"
1363070d7cSYoshihiro Shimoda
1463070d7cSYoshihiro Shimoda/ {
1563070d7cSYoshihiro Shimoda	model = "Renesas Falcon CPU board";
1663070d7cSYoshihiro Shimoda	compatible = "renesas,falcon-cpu", "renesas,r8a779a0";
1763070d7cSYoshihiro Shimoda
18e86ff34cSGeert Uytterhoeven	aliases {
19*1d351356SWolfram Sang		i2c0 = &i2c0;
20*1d351356SWolfram Sang		i2c1 = &i2c1;
21*1d351356SWolfram Sang		i2c2 = &i2c2;
22*1d351356SWolfram Sang		i2c3 = &i2c3;
23*1d351356SWolfram Sang		i2c4 = &i2c4;
24*1d351356SWolfram Sang		i2c5 = &i2c5;
25*1d351356SWolfram Sang		i2c6 = &i2c6;
26e86ff34cSGeert Uytterhoeven		serial0 = &scif0;
27e86ff34cSGeert Uytterhoeven	};
28e86ff34cSGeert Uytterhoeven
29e86ff34cSGeert Uytterhoeven	chosen {
30e86ff34cSGeert Uytterhoeven		stdout-path = "serial0:115200n8";
31e86ff34cSGeert Uytterhoeven	};
32e86ff34cSGeert Uytterhoeven
335e8c83b3SKieran Bingham	keys {
345e8c83b3SKieran Bingham		compatible = "gpio-keys";
355e8c83b3SKieran Bingham
365e8c83b3SKieran Bingham		pinctrl-0 = <&keys_pins>;
375e8c83b3SKieran Bingham		pinctrl-names = "default";
385e8c83b3SKieran Bingham
395e8c83b3SKieran Bingham		key-1 {
405e8c83b3SKieran Bingham			gpios = <&gpio6 18 GPIO_ACTIVE_LOW>;
415e8c83b3SKieran Bingham			linux,code = <KEY_1>;
425e8c83b3SKieran Bingham			label = "SW47";
435e8c83b3SKieran Bingham			wakeup-source;
445e8c83b3SKieran Bingham			debounce-interval = <20>;
455e8c83b3SKieran Bingham		};
465e8c83b3SKieran Bingham
475e8c83b3SKieran Bingham		key-2 {
485e8c83b3SKieran Bingham			gpios = <&gpio6 19 GPIO_ACTIVE_LOW>;
495e8c83b3SKieran Bingham			linux,code = <KEY_2>;
505e8c83b3SKieran Bingham			label = "SW48";
515e8c83b3SKieran Bingham			wakeup-source;
525e8c83b3SKieran Bingham			debounce-interval = <20>;
535e8c83b3SKieran Bingham		};
545e8c83b3SKieran Bingham
555e8c83b3SKieran Bingham		key-3 {
565e8c83b3SKieran Bingham			gpios = <&gpio6 20 GPIO_ACTIVE_LOW>;
575e8c83b3SKieran Bingham			linux,code = <KEY_3>;
585e8c83b3SKieran Bingham			label = "SW49";
595e8c83b3SKieran Bingham			wakeup-source;
605e8c83b3SKieran Bingham			debounce-interval = <20>;
615e8c83b3SKieran Bingham		};
625e8c83b3SKieran Bingham	};
635e8c83b3SKieran Bingham
649d68a386SKieran Bingham	leds {
659d68a386SKieran Bingham		compatible = "gpio-leds";
669d68a386SKieran Bingham
679d68a386SKieran Bingham		led-1 {
689d68a386SKieran Bingham			gpios = <&gpio4 18 GPIO_ACTIVE_HIGH>;
699d68a386SKieran Bingham			color = <LED_COLOR_ID_GREEN>;
709d68a386SKieran Bingham			function = LED_FUNCTION_INDICATOR;
719d68a386SKieran Bingham			function-enumerator = <1>;
729d68a386SKieran Bingham		};
739d68a386SKieran Bingham		led-2 {
749d68a386SKieran Bingham			gpios = <&gpio4 19 GPIO_ACTIVE_HIGH>;
759d68a386SKieran Bingham			color = <LED_COLOR_ID_GREEN>;
769d68a386SKieran Bingham			function = LED_FUNCTION_INDICATOR;
779d68a386SKieran Bingham			function-enumerator = <2>;
789d68a386SKieran Bingham		};
799d68a386SKieran Bingham		led-3 {
809d68a386SKieran Bingham			gpios = <&gpio4 20 GPIO_ACTIVE_HIGH>;
819d68a386SKieran Bingham			color = <LED_COLOR_ID_GREEN>;
829d68a386SKieran Bingham			function = LED_FUNCTION_INDICATOR;
839d68a386SKieran Bingham			function-enumerator = <3>;
849d68a386SKieran Bingham		};
859d68a386SKieran Bingham	};
869d68a386SKieran Bingham
8763070d7cSYoshihiro Shimoda	memory@48000000 {
8863070d7cSYoshihiro Shimoda		device_type = "memory";
8963070d7cSYoshihiro Shimoda		/* first 128MB is reserved for secure area. */
9063070d7cSYoshihiro Shimoda		reg = <0x0 0x48000000 0x0 0x78000000>;
9163070d7cSYoshihiro Shimoda	};
9263070d7cSYoshihiro Shimoda
9363070d7cSYoshihiro Shimoda	memory@500000000 {
9463070d7cSYoshihiro Shimoda		device_type = "memory";
9563070d7cSYoshihiro Shimoda		reg = <0x5 0x00000000 0x0 0x80000000>;
9663070d7cSYoshihiro Shimoda	};
9763070d7cSYoshihiro Shimoda
9863070d7cSYoshihiro Shimoda	memory@600000000 {
9963070d7cSYoshihiro Shimoda		device_type = "memory";
10063070d7cSYoshihiro Shimoda		reg = <0x6 0x00000000 0x0 0x80000000>;
10163070d7cSYoshihiro Shimoda	};
10263070d7cSYoshihiro Shimoda
10363070d7cSYoshihiro Shimoda	memory@700000000 {
10463070d7cSYoshihiro Shimoda		device_type = "memory";
10563070d7cSYoshihiro Shimoda		reg = <0x7 0x00000000 0x0 0x80000000>;
10663070d7cSYoshihiro Shimoda	};
107ee33cd69STakeshi Saito
1085a6bca1fSKieran Bingham	mini-dp-con {
1095a6bca1fSKieran Bingham		compatible = "dp-connector";
1105a6bca1fSKieran Bingham		label = "CN5";
1115a6bca1fSKieran Bingham		type = "mini";
1125a6bca1fSKieran Bingham
1135a6bca1fSKieran Bingham		port {
1145a6bca1fSKieran Bingham			mini_dp_con_in: endpoint {
1155a6bca1fSKieran Bingham				remote-endpoint = <&sn65dsi86_out>;
1165a6bca1fSKieran Bingham			};
1175a6bca1fSKieran Bingham		};
1185a6bca1fSKieran Bingham	};
1195a6bca1fSKieran Bingham
1205a6bca1fSKieran Bingham	reg_1p2v: regulator-1p2v {
1215a6bca1fSKieran Bingham		compatible = "regulator-fixed";
1225a6bca1fSKieran Bingham		regulator-name = "fixed-1.2V";
1235a6bca1fSKieran Bingham		regulator-min-microvolt = <1200000>;
1245a6bca1fSKieran Bingham		regulator-max-microvolt = <1200000>;
1255a6bca1fSKieran Bingham		regulator-boot-on;
1265a6bca1fSKieran Bingham		regulator-always-on;
1275a6bca1fSKieran Bingham	};
1285a6bca1fSKieran Bingham
129ee33cd69STakeshi Saito	reg_1p8v: regulator-1p8v {
130ee33cd69STakeshi Saito		compatible = "regulator-fixed";
131ee33cd69STakeshi Saito		regulator-name = "fixed-1.8V";
132ee33cd69STakeshi Saito		regulator-min-microvolt = <1800000>;
133ee33cd69STakeshi Saito		regulator-max-microvolt = <1800000>;
134ee33cd69STakeshi Saito		regulator-boot-on;
135ee33cd69STakeshi Saito		regulator-always-on;
136ee33cd69STakeshi Saito	};
137ee33cd69STakeshi Saito
138ee33cd69STakeshi Saito	reg_3p3v: regulator-3p3v {
139ee33cd69STakeshi Saito		compatible = "regulator-fixed";
140ee33cd69STakeshi Saito		regulator-name = "fixed-3.3V";
141ee33cd69STakeshi Saito		regulator-min-microvolt = <3300000>;
142ee33cd69STakeshi Saito		regulator-max-microvolt = <3300000>;
143ee33cd69STakeshi Saito		regulator-boot-on;
144ee33cd69STakeshi Saito		regulator-always-on;
145ee33cd69STakeshi Saito	};
1465a6bca1fSKieran Bingham
1475a6bca1fSKieran Bingham	sn65dsi86_refclk: clk-x6 {
1485a6bca1fSKieran Bingham		compatible = "fixed-clock";
1495a6bca1fSKieran Bingham		#clock-cells = <0>;
1505a6bca1fSKieran Bingham		clock-frequency = <38400000>;
1515a6bca1fSKieran Bingham	};
1525a6bca1fSKieran Bingham};
1535a6bca1fSKieran Bingham
1545a6bca1fSKieran Bingham&dsi0 {
1555a6bca1fSKieran Bingham	status = "okay";
1565a6bca1fSKieran Bingham
1575a6bca1fSKieran Bingham	ports {
1585a6bca1fSKieran Bingham		port@1 {
1595a6bca1fSKieran Bingham			dsi0_out: endpoint {
1605a6bca1fSKieran Bingham				remote-endpoint = <&sn65dsi86_in>;
1615a6bca1fSKieran Bingham				data-lanes = <1 2 3 4>;
1625a6bca1fSKieran Bingham			};
1635a6bca1fSKieran Bingham		};
1645a6bca1fSKieran Bingham	};
1655a6bca1fSKieran Bingham};
1665a6bca1fSKieran Bingham
1675a6bca1fSKieran Bingham&du {
1685a6bca1fSKieran Bingham	status = "okay";
16963070d7cSYoshihiro Shimoda};
17063070d7cSYoshihiro Shimoda
17163070d7cSYoshihiro Shimoda&extal_clk {
17263070d7cSYoshihiro Shimoda	clock-frequency = <16666666>;
17363070d7cSYoshihiro Shimoda};
17463070d7cSYoshihiro Shimoda
17563070d7cSYoshihiro Shimoda&extalr_clk {
17663070d7cSYoshihiro Shimoda	clock-frequency = <32768>;
17763070d7cSYoshihiro Shimoda};
17863070d7cSYoshihiro Shimoda
1790e6fb83eSWolfram Sang&i2c0 {
1800e6fb83eSWolfram Sang	pinctrl-0 = <&i2c0_pins>;
1810e6fb83eSWolfram Sang	pinctrl-names = "default";
1820e6fb83eSWolfram Sang
1830e6fb83eSWolfram Sang	status = "okay";
1840e6fb83eSWolfram Sang	clock-frequency = <400000>;
185405daa39SGeert Uytterhoeven
186405daa39SGeert Uytterhoeven	eeprom@50 {
187405daa39SGeert Uytterhoeven		compatible = "rohm,br24g01", "atmel,24c01";
188405daa39SGeert Uytterhoeven		label = "cpu-board";
189405daa39SGeert Uytterhoeven		reg = <0x50>;
190405daa39SGeert Uytterhoeven		pagesize = <8>;
191405daa39SGeert Uytterhoeven	};
1920e6fb83eSWolfram Sang};
1930e6fb83eSWolfram Sang
1940e6fb83eSWolfram Sang&i2c1 {
1950e6fb83eSWolfram Sang	pinctrl-0 = <&i2c1_pins>;
1960e6fb83eSWolfram Sang	pinctrl-names = "default";
1970e6fb83eSWolfram Sang
1980e6fb83eSWolfram Sang	status = "okay";
1990e6fb83eSWolfram Sang	clock-frequency = <400000>;
2005a6bca1fSKieran Bingham
2015a6bca1fSKieran Bingham	bridge@2c {
2029a4259e5SKieran Bingham		pinctrl-0 = <&irq0_pins>;
2039a4259e5SKieran Bingham		pinctrl-names = "default";
2049a4259e5SKieran Bingham
2055a6bca1fSKieran Bingham		compatible = "ti,sn65dsi86";
2065a6bca1fSKieran Bingham		reg = <0x2c>;
2075a6bca1fSKieran Bingham
2085a6bca1fSKieran Bingham		clocks = <&sn65dsi86_refclk>;
2095a6bca1fSKieran Bingham		clock-names = "refclk";
2105a6bca1fSKieran Bingham
2119a4259e5SKieran Bingham		interrupt-parent = <&intc_ex>;
2129a4259e5SKieran Bingham		interrupts = <0 IRQ_TYPE_LEVEL_HIGH>;
2135a6bca1fSKieran Bingham
2145a6bca1fSKieran Bingham		vccio-supply = <&reg_1p8v>;
2155a6bca1fSKieran Bingham		vpll-supply = <&reg_1p8v>;
2165a6bca1fSKieran Bingham		vcca-supply = <&reg_1p2v>;
2175a6bca1fSKieran Bingham		vcc-supply = <&reg_1p2v>;
2185a6bca1fSKieran Bingham
2195a6bca1fSKieran Bingham		ports {
2205a6bca1fSKieran Bingham			#address-cells = <1>;
2215a6bca1fSKieran Bingham			#size-cells = <0>;
2225a6bca1fSKieran Bingham
2235a6bca1fSKieran Bingham			port@0 {
2245a6bca1fSKieran Bingham				reg = <0>;
2255a6bca1fSKieran Bingham				sn65dsi86_in: endpoint {
2265a6bca1fSKieran Bingham					remote-endpoint = <&dsi0_out>;
2275a6bca1fSKieran Bingham				};
2285a6bca1fSKieran Bingham			};
2295a6bca1fSKieran Bingham
2305a6bca1fSKieran Bingham			port@1 {
2315a6bca1fSKieran Bingham				reg = <1>;
2325a6bca1fSKieran Bingham				sn65dsi86_out: endpoint {
2335a6bca1fSKieran Bingham					remote-endpoint = <&mini_dp_con_in>;
2345a6bca1fSKieran Bingham				};
2355a6bca1fSKieran Bingham			};
2365a6bca1fSKieran Bingham		};
2375a6bca1fSKieran Bingham	};
2380e6fb83eSWolfram Sang};
2390e6fb83eSWolfram Sang
2400e6fb83eSWolfram Sang&i2c6 {
2410e6fb83eSWolfram Sang	pinctrl-0 = <&i2c6_pins>;
2420e6fb83eSWolfram Sang	pinctrl-names = "default";
2430e6fb83eSWolfram Sang
2440e6fb83eSWolfram Sang	status = "okay";
2450e6fb83eSWolfram Sang	clock-frequency = <400000>;
2460e6fb83eSWolfram Sang};
2470e6fb83eSWolfram Sang
248ee33cd69STakeshi Saito&mmc0 {
249ee33cd69STakeshi Saito	pinctrl-0 = <&mmc_pins>;
250ee33cd69STakeshi Saito	pinctrl-1 = <&mmc_pins>;
251ee33cd69STakeshi Saito	pinctrl-names = "default", "state_uhs";
252ee33cd69STakeshi Saito
253ee33cd69STakeshi Saito	vmmc-supply = <&reg_3p3v>;
254ee33cd69STakeshi Saito	vqmmc-supply = <&reg_1p8v>;
255ee33cd69STakeshi Saito	mmc-hs200-1_8v;
256ee33cd69STakeshi Saito	mmc-hs400-1_8v;
257ee33cd69STakeshi Saito	bus-width = <8>;
258ee33cd69STakeshi Saito	no-sd;
259ee33cd69STakeshi Saito	no-sdio;
260ee33cd69STakeshi Saito	non-removable;
261ee33cd69STakeshi Saito	full-pwr-cycle-in-suspend;
262ee33cd69STakeshi Saito	status = "okay";
263ee33cd69STakeshi Saito};
264ee33cd69STakeshi Saito
2650e6fb83eSWolfram Sang&pfc {
2669e921faaSWolfram Sang	pinctrl-0 = <&scif_clk_pins>;
2679e921faaSWolfram Sang	pinctrl-names = "default";
2689e921faaSWolfram Sang
2690e6fb83eSWolfram Sang	i2c0_pins: i2c0 {
2700e6fb83eSWolfram Sang		groups = "i2c0";
2710e6fb83eSWolfram Sang		function = "i2c0";
2720e6fb83eSWolfram Sang	};
2730e6fb83eSWolfram Sang
2740e6fb83eSWolfram Sang	i2c1_pins: i2c1 {
2750e6fb83eSWolfram Sang		groups = "i2c1";
2760e6fb83eSWolfram Sang		function = "i2c1";
2770e6fb83eSWolfram Sang	};
2780e6fb83eSWolfram Sang
2790e6fb83eSWolfram Sang	i2c6_pins: i2c6 {
2800e6fb83eSWolfram Sang		groups = "i2c6";
2810e6fb83eSWolfram Sang		function = "i2c6";
2820e6fb83eSWolfram Sang	};
2839e921faaSWolfram Sang
2849a4259e5SKieran Bingham	irq0_pins: irq0 {
2859a4259e5SKieran Bingham		groups = "intc_ex_irq0";
2869a4259e5SKieran Bingham		function = "intc_ex";
2879a4259e5SKieran Bingham	};
2889a4259e5SKieran Bingham
2895e8c83b3SKieran Bingham	keys_pins: keys {
2905e8c83b3SKieran Bingham		pins = "GP_6_18", "GP_6_19", "GP_6_20";
2915e8c83b3SKieran Bingham		bias-pull-up;
2925e8c83b3SKieran Bingham	};
2935e8c83b3SKieran Bingham
294ee33cd69STakeshi Saito	mmc_pins: mmc {
295ee33cd69STakeshi Saito		groups = "mmc_data8", "mmc_ctrl", "mmc_ds";
296ee33cd69STakeshi Saito		function = "mmc";
297ee33cd69STakeshi Saito		power-source = <1800>;
298ee33cd69STakeshi Saito	};
299ee33cd69STakeshi Saito
300f28daeedSWolfram Sang	qspi0_pins: qspi0 {
301f28daeedSWolfram Sang		groups = "qspi0_ctrl", "qspi0_data4";
302f28daeedSWolfram Sang		function = "qspi0";
303f28daeedSWolfram Sang	};
304f28daeedSWolfram Sang
3059e921faaSWolfram Sang	scif0_pins: scif0 {
3069e921faaSWolfram Sang		groups = "scif0_data", "scif0_ctrl";
3079e921faaSWolfram Sang		function = "scif0";
3089e921faaSWolfram Sang	};
3099e921faaSWolfram Sang
3109e921faaSWolfram Sang	scif_clk_pins: scif_clk {
3119e921faaSWolfram Sang		groups = "scif_clk";
3129e921faaSWolfram Sang		function = "scif_clk";
3139e921faaSWolfram Sang	};
3140e6fb83eSWolfram Sang};
3150e6fb83eSWolfram Sang
316f28daeedSWolfram Sang&rpc {
317f28daeedSWolfram Sang	pinctrl-0 = <&qspi0_pins>;
318f28daeedSWolfram Sang	pinctrl-names = "default";
319f28daeedSWolfram Sang
320f28daeedSWolfram Sang	status = "okay";
321f28daeedSWolfram Sang
322f28daeedSWolfram Sang	flash@0 {
323f28daeedSWolfram Sang		compatible = "spansion,s25fs512s", "jedec,spi-nor";
324f28daeedSWolfram Sang		reg = <0>;
325f28daeedSWolfram Sang		spi-max-frequency = <40000000>;
326f28daeedSWolfram Sang		spi-rx-bus-width = <4>;
327f28daeedSWolfram Sang
328f28daeedSWolfram Sang		partitions {
329f28daeedSWolfram Sang			compatible = "fixed-partitions";
330f28daeedSWolfram Sang			#address-cells = <1>;
331f28daeedSWolfram Sang			#size-cells = <1>;
332f28daeedSWolfram Sang
333f28daeedSWolfram Sang			boot@0 {
334f28daeedSWolfram Sang				reg = <0x0 0xcc0000>;
335f28daeedSWolfram Sang				read-only;
336f28daeedSWolfram Sang			};
337f28daeedSWolfram Sang			user@cc0000 {
338f28daeedSWolfram Sang				reg = <0xcc0000 0x3340000>;
339f28daeedSWolfram Sang			};
340f28daeedSWolfram Sang		};
341f28daeedSWolfram Sang	};
342f28daeedSWolfram Sang};
343f28daeedSWolfram Sang
3440fc129baSGeert Uytterhoeven&rwdt {
3450fc129baSGeert Uytterhoeven	timeout-sec = <60>;
3460fc129baSGeert Uytterhoeven	status = "okay";
3470fc129baSGeert Uytterhoeven};
3480fc129baSGeert Uytterhoeven
34963070d7cSYoshihiro Shimoda&scif0 {
3509e921faaSWolfram Sang	pinctrl-0 = <&scif0_pins>;
3519e921faaSWolfram Sang	pinctrl-names = "default";
3529e921faaSWolfram Sang
3539e921faaSWolfram Sang	uart-has-rtscts;
35463070d7cSYoshihiro Shimoda	status = "okay";
35563070d7cSYoshihiro Shimoda};
3569e921faaSWolfram Sang
3579e921faaSWolfram Sang&scif_clk {
3589e921faaSWolfram Sang	clock-frequency = <24000000>;
3599e921faaSWolfram Sang};
360