xref: /freebsd/sys/contrib/device-tree/src/arm64/renesas/r8a779f4-s4sk.dts (revision 0e8011faf58b743cc652e3b2ad0f7671227610df)
184943d6fSEmmanuel Vadot// SPDX-License-Identifier: (GPL-2.0 OR MIT)
284943d6fSEmmanuel Vadot/*
384943d6fSEmmanuel Vadot * Device Tree Source for the R-Car S4 Starter Kit board
484943d6fSEmmanuel Vadot *
584943d6fSEmmanuel Vadot * Copyright (C) 2023 Renesas Electronics Corp.
684943d6fSEmmanuel Vadot */
784943d6fSEmmanuel Vadot
884943d6fSEmmanuel Vadot/dts-v1/;
984943d6fSEmmanuel Vadot#include <dt-bindings/gpio/gpio.h>
1084943d6fSEmmanuel Vadot#include "r8a779f4.dtsi"
1184943d6fSEmmanuel Vadot
1284943d6fSEmmanuel Vadot/ {
1384943d6fSEmmanuel Vadot	model = "R-Car S4 Starter Kit board";
1484943d6fSEmmanuel Vadot	compatible = "renesas,s4sk", "renesas,r8a779f4", "renesas,r8a779f0";
1584943d6fSEmmanuel Vadot
1684943d6fSEmmanuel Vadot	aliases {
17*0e8011faSEmmanuel Vadot		i2c0 = &i2c0;
18*0e8011faSEmmanuel Vadot		i2c1 = &i2c1;
19*0e8011faSEmmanuel Vadot		i2c2 = &i2c2;
20*0e8011faSEmmanuel Vadot		i2c3 = &i2c3;
21*0e8011faSEmmanuel Vadot		i2c4 = &i2c4;
22*0e8011faSEmmanuel Vadot		i2c5 = &i2c5;
2384943d6fSEmmanuel Vadot		serial0 = &hscif0;
2484943d6fSEmmanuel Vadot		serial1 = &hscif1;
257d0873ebSEmmanuel Vadot		ethernet0 = &rswitch;
2684943d6fSEmmanuel Vadot	};
2784943d6fSEmmanuel Vadot
2884943d6fSEmmanuel Vadot	chosen {
2984943d6fSEmmanuel Vadot		bootargs = "ignore_loglevel rw root=/dev/nfs ip=on";
3084943d6fSEmmanuel Vadot		stdout-path = "serial0:921600n8";
3184943d6fSEmmanuel Vadot	};
3284943d6fSEmmanuel Vadot
3384943d6fSEmmanuel Vadot	memory@48000000 {
3484943d6fSEmmanuel Vadot		device_type = "memory";
3584943d6fSEmmanuel Vadot		/* first 128MB is reserved for secure area. */
3684943d6fSEmmanuel Vadot		/* The last 512MB is reserved for CR. */
3784943d6fSEmmanuel Vadot		reg = <0x0 0x48000000 0x0 0x58000000>;
3884943d6fSEmmanuel Vadot	};
3984943d6fSEmmanuel Vadot
4084943d6fSEmmanuel Vadot	memory@480000000 {
4184943d6fSEmmanuel Vadot		device_type = "memory";
4284943d6fSEmmanuel Vadot		reg = <0x4 0x80000000 0x0 0x80000000>;
4384943d6fSEmmanuel Vadot	};
4484943d6fSEmmanuel Vadot
4584943d6fSEmmanuel Vadot	vcc_sdhi: regulator-vcc-sdhi {
4684943d6fSEmmanuel Vadot		compatible = "regulator-fixed";
4784943d6fSEmmanuel Vadot		regulator-name = "SDHI Vcc";
4884943d6fSEmmanuel Vadot		regulator-min-microvolt = <3300000>;
4984943d6fSEmmanuel Vadot		regulator-max-microvolt = <3300000>;
5084943d6fSEmmanuel Vadot		gpio = <&gpio1 24 GPIO_ACTIVE_HIGH>;
5184943d6fSEmmanuel Vadot		enable-active-high;
5284943d6fSEmmanuel Vadot	};
5384943d6fSEmmanuel Vadot};
5484943d6fSEmmanuel Vadot
5584943d6fSEmmanuel Vadot&eth_serdes {
5684943d6fSEmmanuel Vadot	status = "okay";
5784943d6fSEmmanuel Vadot};
5884943d6fSEmmanuel Vadot
5984943d6fSEmmanuel Vadot&extal_clk {
6084943d6fSEmmanuel Vadot	clock-frequency = <20000000>;
6184943d6fSEmmanuel Vadot};
6284943d6fSEmmanuel Vadot
6384943d6fSEmmanuel Vadot&extalr_clk {
6484943d6fSEmmanuel Vadot	clock-frequency = <32768>;
6584943d6fSEmmanuel Vadot};
6684943d6fSEmmanuel Vadot
6784943d6fSEmmanuel Vadot&hscif0 {
6884943d6fSEmmanuel Vadot	pinctrl-0 = <&hscif0_pins>;
6984943d6fSEmmanuel Vadot	pinctrl-names = "default";
7084943d6fSEmmanuel Vadot
7184943d6fSEmmanuel Vadot	uart-has-rtscts;
7284943d6fSEmmanuel Vadot	status = "okay";
7384943d6fSEmmanuel Vadot};
7484943d6fSEmmanuel Vadot
7584943d6fSEmmanuel Vadot&hscif1 {
7684943d6fSEmmanuel Vadot	pinctrl-0 = <&hscif1_pins>;
7784943d6fSEmmanuel Vadot	pinctrl-names = "default";
7884943d6fSEmmanuel Vadot
7984943d6fSEmmanuel Vadot	uart-has-rtscts;
8084943d6fSEmmanuel Vadot	status = "okay";
8184943d6fSEmmanuel Vadot};
8284943d6fSEmmanuel Vadot
8384943d6fSEmmanuel Vadot&i2c2 {
8484943d6fSEmmanuel Vadot	pinctrl-0 = <&i2c2_pins>;
8584943d6fSEmmanuel Vadot	pinctrl-names = "default";
8684943d6fSEmmanuel Vadot
8784943d6fSEmmanuel Vadot	status = "okay";
8884943d6fSEmmanuel Vadot	clock-frequency = <400000>;
8984943d6fSEmmanuel Vadot};
9084943d6fSEmmanuel Vadot
9184943d6fSEmmanuel Vadot&i2c4 {
9284943d6fSEmmanuel Vadot	pinctrl-0 = <&i2c4_pins>;
9384943d6fSEmmanuel Vadot	pinctrl-names = "default";
9484943d6fSEmmanuel Vadot
9584943d6fSEmmanuel Vadot	status = "okay";
9684943d6fSEmmanuel Vadot	clock-frequency = <400000>;
9784943d6fSEmmanuel Vadot};
9884943d6fSEmmanuel Vadot
9984943d6fSEmmanuel Vadot&i2c5 {
10084943d6fSEmmanuel Vadot	pinctrl-0 = <&i2c5_pins>;
10184943d6fSEmmanuel Vadot	pinctrl-names = "default";
10284943d6fSEmmanuel Vadot
10384943d6fSEmmanuel Vadot	status = "okay";
10484943d6fSEmmanuel Vadot	clock-frequency = <400000>;
10584943d6fSEmmanuel Vadot
10684943d6fSEmmanuel Vadot	eeprom@50 {
10784943d6fSEmmanuel Vadot		compatible = "st,24c16", "atmel,24c16";
10884943d6fSEmmanuel Vadot		reg = <0x50>;
10984943d6fSEmmanuel Vadot		pagesize = <16>;
11084943d6fSEmmanuel Vadot	};
11184943d6fSEmmanuel Vadot};
11284943d6fSEmmanuel Vadot
11384943d6fSEmmanuel Vadot&mmc0 {
11484943d6fSEmmanuel Vadot	pinctrl-0 = <&sd_pins>;
11584943d6fSEmmanuel Vadot	pinctrl-names = "default";
11684943d6fSEmmanuel Vadot
11784943d6fSEmmanuel Vadot	vmmc-supply = <&vcc_sdhi>;
11884943d6fSEmmanuel Vadot	cd-gpios = <&gpio1 23 GPIO_ACTIVE_LOW>;
11984943d6fSEmmanuel Vadot	bus-width = <4>;
12084943d6fSEmmanuel Vadot	status = "okay";
12184943d6fSEmmanuel Vadot};
12284943d6fSEmmanuel Vadot
12384943d6fSEmmanuel Vadot&pfc {
12484943d6fSEmmanuel Vadot	pinctrl-0 = <&scif_clk_pins>;
12584943d6fSEmmanuel Vadot	pinctrl-names = "default";
12684943d6fSEmmanuel Vadot
12784943d6fSEmmanuel Vadot	hscif0_pins: hscif0 {
12884943d6fSEmmanuel Vadot		groups = "hscif0_data", "hscif0_ctrl";
12984943d6fSEmmanuel Vadot		function = "hscif0";
13084943d6fSEmmanuel Vadot	};
13184943d6fSEmmanuel Vadot
13284943d6fSEmmanuel Vadot	hscif1_pins: hscif1 {
13384943d6fSEmmanuel Vadot		groups = "hscif1_data", "hscif1_ctrl";
13484943d6fSEmmanuel Vadot		function = "hscif1";
13584943d6fSEmmanuel Vadot	};
13684943d6fSEmmanuel Vadot
13784943d6fSEmmanuel Vadot	i2c2_pins: i2c2 {
13884943d6fSEmmanuel Vadot		groups = "i2c2";
13984943d6fSEmmanuel Vadot		function = "i2c2";
14084943d6fSEmmanuel Vadot	};
14184943d6fSEmmanuel Vadot
14284943d6fSEmmanuel Vadot	i2c4_pins: i2c4 {
14384943d6fSEmmanuel Vadot		groups = "i2c4";
14484943d6fSEmmanuel Vadot		function = "i2c4";
14584943d6fSEmmanuel Vadot	};
14684943d6fSEmmanuel Vadot
14784943d6fSEmmanuel Vadot	i2c5_pins: i2c5 {
14884943d6fSEmmanuel Vadot		groups = "i2c5";
14984943d6fSEmmanuel Vadot		function = "i2c5";
15084943d6fSEmmanuel Vadot	};
15184943d6fSEmmanuel Vadot
15284943d6fSEmmanuel Vadot	scif_clk_pins: scif_clk {
15384943d6fSEmmanuel Vadot		groups = "scif_clk";
15484943d6fSEmmanuel Vadot		function = "scif_clk";
15584943d6fSEmmanuel Vadot	};
15684943d6fSEmmanuel Vadot
15784943d6fSEmmanuel Vadot	sd_pins: sd {
15884943d6fSEmmanuel Vadot		groups = "mmc_data4", "mmc_ctrl";
15984943d6fSEmmanuel Vadot		function = "mmc";
16084943d6fSEmmanuel Vadot		power-source = <3300>;
16184943d6fSEmmanuel Vadot	};
16284943d6fSEmmanuel Vadot
16384943d6fSEmmanuel Vadot	tsn0_pins: tsn0 {
16484943d6fSEmmanuel Vadot		groups = "tsn0_mdio_b", "tsn0_link_b";
16584943d6fSEmmanuel Vadot		function = "tsn0";
16684943d6fSEmmanuel Vadot		drive-strength = <18>;
16784943d6fSEmmanuel Vadot		power-source = <3300>;
16884943d6fSEmmanuel Vadot	};
16984943d6fSEmmanuel Vadot
17084943d6fSEmmanuel Vadot	tsn1_pins: tsn1 {
17184943d6fSEmmanuel Vadot		groups = "tsn1_mdio_b", "tsn1_link_b";
17284943d6fSEmmanuel Vadot		function = "tsn1";
17384943d6fSEmmanuel Vadot		drive-strength = <18>;
17484943d6fSEmmanuel Vadot		power-source = <3300>;
17584943d6fSEmmanuel Vadot	};
17684943d6fSEmmanuel Vadot};
17784943d6fSEmmanuel Vadot
17884943d6fSEmmanuel Vadot&rswitch {
17984943d6fSEmmanuel Vadot	pinctrl-0 = <&tsn0_pins>, <&tsn1_pins>;
18084943d6fSEmmanuel Vadot	pinctrl-names = "default";
18184943d6fSEmmanuel Vadot	status = "okay";
18284943d6fSEmmanuel Vadot
18384943d6fSEmmanuel Vadot	ethernet-ports {
18484943d6fSEmmanuel Vadot		#address-cells = <1>;
18584943d6fSEmmanuel Vadot		#size-cells = <0>;
18684943d6fSEmmanuel Vadot
18784943d6fSEmmanuel Vadot		port@0 {
18884943d6fSEmmanuel Vadot			reg = <0>;
18984943d6fSEmmanuel Vadot			phy-handle = <&ic99>;
19084943d6fSEmmanuel Vadot			phy-mode = "sgmii";
19184943d6fSEmmanuel Vadot			phys = <&eth_serdes 0>;
19284943d6fSEmmanuel Vadot
19384943d6fSEmmanuel Vadot			mdio {
19484943d6fSEmmanuel Vadot				#address-cells = <1>;
19584943d6fSEmmanuel Vadot				#size-cells = <0>;
19684943d6fSEmmanuel Vadot
19784943d6fSEmmanuel Vadot				ic99: ethernet-phy@1 {
19884943d6fSEmmanuel Vadot					reg = <1>;
19984943d6fSEmmanuel Vadot					compatible = "ethernet-phy-ieee802.3-c45";
20084943d6fSEmmanuel Vadot					interrupt-parent = <&gpio3>;
20184943d6fSEmmanuel Vadot					interrupts = <10 IRQ_TYPE_LEVEL_LOW>;
20284943d6fSEmmanuel Vadot				};
20384943d6fSEmmanuel Vadot			};
20484943d6fSEmmanuel Vadot		};
20584943d6fSEmmanuel Vadot
20684943d6fSEmmanuel Vadot		port@1 {
20784943d6fSEmmanuel Vadot			reg = <1>;
20884943d6fSEmmanuel Vadot			phy-handle = <&ic102>;
20984943d6fSEmmanuel Vadot			phy-mode = "sgmii";
21084943d6fSEmmanuel Vadot			phys = <&eth_serdes 1>;
21184943d6fSEmmanuel Vadot
21284943d6fSEmmanuel Vadot			mdio {
21384943d6fSEmmanuel Vadot				#address-cells = <1>;
21484943d6fSEmmanuel Vadot				#size-cells = <0>;
21584943d6fSEmmanuel Vadot
21684943d6fSEmmanuel Vadot				ic102: ethernet-phy@2 {
21784943d6fSEmmanuel Vadot					reg = <2>;
21884943d6fSEmmanuel Vadot					compatible = "ethernet-phy-ieee802.3-c45";
21984943d6fSEmmanuel Vadot					interrupt-parent = <&gpio3>;
22084943d6fSEmmanuel Vadot					interrupts = <11 IRQ_TYPE_LEVEL_LOW>;
22184943d6fSEmmanuel Vadot				};
22284943d6fSEmmanuel Vadot			};
22384943d6fSEmmanuel Vadot		};
22484943d6fSEmmanuel Vadot
22584943d6fSEmmanuel Vadot		port@2 {
22684943d6fSEmmanuel Vadot			status = "disabled";
22784943d6fSEmmanuel Vadot		};
22884943d6fSEmmanuel Vadot	};
22984943d6fSEmmanuel Vadot};
23084943d6fSEmmanuel Vadot
23184943d6fSEmmanuel Vadot&rwdt {
23284943d6fSEmmanuel Vadot	timeout-sec = <60>;
23384943d6fSEmmanuel Vadot	status = "okay";
23484943d6fSEmmanuel Vadot};
23584943d6fSEmmanuel Vadot
23684943d6fSEmmanuel Vadot&scif_clk {
23784943d6fSEmmanuel Vadot	clock-frequency = <24000000>;
23884943d6fSEmmanuel Vadot};
23984943d6fSEmmanuel Vadot
24084943d6fSEmmanuel Vadot&ufs {
24184943d6fSEmmanuel Vadot	status = "okay";
24284943d6fSEmmanuel Vadot};
24384943d6fSEmmanuel Vadot
24484943d6fSEmmanuel Vadot&ufs30_clk {
24584943d6fSEmmanuel Vadot	clock-frequency = <38400000>;
24684943d6fSEmmanuel Vadot};
247