162306a36Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0+ OR MIT
262306a36Sopenharmony_ci/*
362306a36Sopenharmony_ci * at91-sama5d3_eds.dts - Device Tree file for the SAMA5D3 Ethernet
462306a36Sopenharmony_ci *    Development System board.
562306a36Sopenharmony_ci *
662306a36Sopenharmony_ci * Copyright (C) 2022 Microchip Technology Inc. and its subsidiaries
762306a36Sopenharmony_ci *
862306a36Sopenharmony_ci * Author: Jerry Ray <jerry.ray@microchip.com>
962306a36Sopenharmony_ci */
1062306a36Sopenharmony_ci/dts-v1/;
1162306a36Sopenharmony_ci#include "sama5d36.dtsi"
1262306a36Sopenharmony_ci
1362306a36Sopenharmony_ci/ {
1462306a36Sopenharmony_ci	model = "SAMA5D3 Ethernet Development System";
1562306a36Sopenharmony_ci	compatible = "microchip,sama5d3-eds", "atmel,sama5d36",
1662306a36Sopenharmony_ci		     "atmel,sama5d3", "atmel,sama5";
1762306a36Sopenharmony_ci
1862306a36Sopenharmony_ci	chosen {
1962306a36Sopenharmony_ci		stdout-path = "serial0:115200n8";
2062306a36Sopenharmony_ci	};
2162306a36Sopenharmony_ci
2262306a36Sopenharmony_ci	gpio-keys {
2362306a36Sopenharmony_ci		compatible = "gpio-keys";
2462306a36Sopenharmony_ci
2562306a36Sopenharmony_ci		pinctrl-names = "default";
2662306a36Sopenharmony_ci		pinctrl-0 = <&pinctrl_key_gpio>;
2762306a36Sopenharmony_ci
2862306a36Sopenharmony_ci		button-3 {
2962306a36Sopenharmony_ci			label = "PB_USER";
3062306a36Sopenharmony_ci			gpios = <&pioE 29 GPIO_ACTIVE_LOW>;
3162306a36Sopenharmony_ci			linux,code = <0x104>;
3262306a36Sopenharmony_ci			wakeup-source;
3362306a36Sopenharmony_ci		};
3462306a36Sopenharmony_ci	};
3562306a36Sopenharmony_ci
3662306a36Sopenharmony_ci	memory@20000000 {
3762306a36Sopenharmony_ci		reg = <0x20000000 0x10000000>;
3862306a36Sopenharmony_ci	};
3962306a36Sopenharmony_ci
4062306a36Sopenharmony_ci	vcc_3v3_reg: regulator-1 {
4162306a36Sopenharmony_ci		compatible = "regulator-fixed";
4262306a36Sopenharmony_ci		regulator-name = "VCC_3V3";
4362306a36Sopenharmony_ci		regulator-min-microvolt = <3300000>;
4462306a36Sopenharmony_ci		regulator-max-microvolt = <3300000>;
4562306a36Sopenharmony_ci		regulator-always-on;
4662306a36Sopenharmony_ci	};
4762306a36Sopenharmony_ci
4862306a36Sopenharmony_ci	vcc_2v5_reg: regulator-2 {
4962306a36Sopenharmony_ci		compatible = "regulator-fixed";
5062306a36Sopenharmony_ci		regulator-name = "VCC_2V5";
5162306a36Sopenharmony_ci		regulator-min-microvolt = <2500000>;
5262306a36Sopenharmony_ci		regulator-max-microvolt = <2500000>;
5362306a36Sopenharmony_ci		regulator-always-on;
5462306a36Sopenharmony_ci		vin-supply = <&vcc_3v3_reg>;
5562306a36Sopenharmony_ci	};
5662306a36Sopenharmony_ci
5762306a36Sopenharmony_ci	vcc_1v8_reg: regulator-3 {
5862306a36Sopenharmony_ci		compatible = "regulator-fixed";
5962306a36Sopenharmony_ci		regulator-name = "VCC_1V8";
6062306a36Sopenharmony_ci		regulator-min-microvolt = <1800000>;
6162306a36Sopenharmony_ci		regulator-max-microvolt = <1800000>;
6262306a36Sopenharmony_ci		regulator-always-on;
6362306a36Sopenharmony_ci		vin-supply = <&vcc_3v3_reg>;
6462306a36Sopenharmony_ci	};
6562306a36Sopenharmony_ci
6662306a36Sopenharmony_ci	vcc_1v2_reg: regulator-4 {
6762306a36Sopenharmony_ci		compatible = "regulator-fixed";
6862306a36Sopenharmony_ci		regulator-name = "VCC_1V2";
6962306a36Sopenharmony_ci		regulator-min-microvolt = <1200000>;
7062306a36Sopenharmony_ci		regulator-max-microvolt = <1200000>;
7162306a36Sopenharmony_ci		regulator-always-on;
7262306a36Sopenharmony_ci	};
7362306a36Sopenharmony_ci
7462306a36Sopenharmony_ci	vcc_mmc0_reg: regulator-5 {
7562306a36Sopenharmony_ci		compatible = "regulator-fixed";
7662306a36Sopenharmony_ci		regulator-name = "mmc0-card-supply";
7762306a36Sopenharmony_ci		regulator-min-microvolt = <3300000>;
7862306a36Sopenharmony_ci		regulator-max-microvolt = <3300000>;
7962306a36Sopenharmony_ci		regulator-always-on;
8062306a36Sopenharmony_ci		pinctrl-names = "default";
8162306a36Sopenharmony_ci		pinctrl-0 = <&pinctrl_vcc_mmc0_reg_gpio>;
8262306a36Sopenharmony_ci		gpio = <&pioE 2 GPIO_ACTIVE_LOW>;
8362306a36Sopenharmony_ci	};
8462306a36Sopenharmony_ci};
8562306a36Sopenharmony_ci
8662306a36Sopenharmony_ci&can0 {
8762306a36Sopenharmony_ci	status = "okay";
8862306a36Sopenharmony_ci};
8962306a36Sopenharmony_ci
9062306a36Sopenharmony_ci&dbgu {
9162306a36Sopenharmony_ci	status = "okay";
9262306a36Sopenharmony_ci};
9362306a36Sopenharmony_ci
9462306a36Sopenharmony_ci&ebi {
9562306a36Sopenharmony_ci	pinctrl-0 = <&pinctrl_ebi_nand_addr>;
9662306a36Sopenharmony_ci	pinctrl-names = "default";
9762306a36Sopenharmony_ci	status = "okay";
9862306a36Sopenharmony_ci
9962306a36Sopenharmony_ci	nand_controller: nand-controller {
10062306a36Sopenharmony_ci		status = "okay";
10162306a36Sopenharmony_ci
10262306a36Sopenharmony_ci		nand@3 {
10362306a36Sopenharmony_ci			reg = <0x3 0x0 0x2>;
10462306a36Sopenharmony_ci			atmel,rb = <0>;
10562306a36Sopenharmony_ci			nand-bus-width = <8>;
10662306a36Sopenharmony_ci			nand-ecc-mode = "hw";
10762306a36Sopenharmony_ci			nand-ecc-strength = <4>;
10862306a36Sopenharmony_ci			nand-ecc-step-size = <512>;
10962306a36Sopenharmony_ci			nand-on-flash-bbt;
11062306a36Sopenharmony_ci			label = "atmel_nand";
11162306a36Sopenharmony_ci
11262306a36Sopenharmony_ci			partitions {
11362306a36Sopenharmony_ci				compatible = "fixed-partitions";
11462306a36Sopenharmony_ci				#address-cells = <1>;
11562306a36Sopenharmony_ci				#size-cells = <1>;
11662306a36Sopenharmony_ci
11762306a36Sopenharmony_ci				at91bootstrap@0 {
11862306a36Sopenharmony_ci					label = "at91bootstrap";
11962306a36Sopenharmony_ci					reg = <0x0 0x40000>;
12062306a36Sopenharmony_ci				};
12162306a36Sopenharmony_ci
12262306a36Sopenharmony_ci				bootloader@40000 {
12362306a36Sopenharmony_ci					label = "bootloader";
12462306a36Sopenharmony_ci					reg = <0x40000 0xc0000>;
12562306a36Sopenharmony_ci				};
12662306a36Sopenharmony_ci
12762306a36Sopenharmony_ci				bootloaderenvred@100000 {
12862306a36Sopenharmony_ci					label = "bootloader env redundant";
12962306a36Sopenharmony_ci					reg = <0x100000 0x40000>;
13062306a36Sopenharmony_ci				};
13162306a36Sopenharmony_ci
13262306a36Sopenharmony_ci				bootloaderenv@140000 {
13362306a36Sopenharmony_ci					label = "bootloader env";
13462306a36Sopenharmony_ci					reg = <0x140000 0x40000>;
13562306a36Sopenharmony_ci				};
13662306a36Sopenharmony_ci
13762306a36Sopenharmony_ci				dtb@180000 {
13862306a36Sopenharmony_ci					label = "device tree";
13962306a36Sopenharmony_ci					reg = <0x180000 0x80000>;
14062306a36Sopenharmony_ci				};
14162306a36Sopenharmony_ci
14262306a36Sopenharmony_ci				kernel@200000 {
14362306a36Sopenharmony_ci					label = "kernel";
14462306a36Sopenharmony_ci					reg = <0x200000 0x600000>;
14562306a36Sopenharmony_ci				};
14662306a36Sopenharmony_ci
14762306a36Sopenharmony_ci				rootfs@800000 {
14862306a36Sopenharmony_ci					label = "rootfs";
14962306a36Sopenharmony_ci					reg = <0x800000 0x0f800000>;
15062306a36Sopenharmony_ci				};
15162306a36Sopenharmony_ci			};
15262306a36Sopenharmony_ci		};
15362306a36Sopenharmony_ci	};
15462306a36Sopenharmony_ci};
15562306a36Sopenharmony_ci
15662306a36Sopenharmony_ci&i2c0 {
15762306a36Sopenharmony_ci	pinctrl-0 = <&pinctrl_i2c0_pu>;
15862306a36Sopenharmony_ci	status = "okay";
15962306a36Sopenharmony_ci};
16062306a36Sopenharmony_ci
16162306a36Sopenharmony_ci&i2c1 {
16262306a36Sopenharmony_ci	status = "okay";
16362306a36Sopenharmony_ci};
16462306a36Sopenharmony_ci
16562306a36Sopenharmony_ci&i2c2 {
16662306a36Sopenharmony_ci	pinctrl-0 = <&pinctrl_i2c2_pu>;
16762306a36Sopenharmony_ci	status = "okay";
16862306a36Sopenharmony_ci};
16962306a36Sopenharmony_ci
17062306a36Sopenharmony_ci&main_xtal {
17162306a36Sopenharmony_ci	clock-frequency = <12000000>;
17262306a36Sopenharmony_ci};
17362306a36Sopenharmony_ci
17462306a36Sopenharmony_ci&mmc0 {
17562306a36Sopenharmony_ci	pinctrl-0 = <&pinctrl_mmc0_clk_cmd_dat0 &pinctrl_mmc0_dat1_3
17662306a36Sopenharmony_ci		     &pinctrl_mmc0_dat4_7 &pinctrl_mmc0_cd>;
17762306a36Sopenharmony_ci	vmmc-supply = <&vcc_mmc0_reg>;
17862306a36Sopenharmony_ci	vqmmc-supply = <&vcc_3v3_reg>;
17962306a36Sopenharmony_ci	status = "okay";
18062306a36Sopenharmony_ci	slot@0 {
18162306a36Sopenharmony_ci		reg = <0>;
18262306a36Sopenharmony_ci		bus-width = <8>;
18362306a36Sopenharmony_ci		cd-gpios = <&pioE 0 GPIO_ACTIVE_LOW>;
18462306a36Sopenharmony_ci	};
18562306a36Sopenharmony_ci};
18662306a36Sopenharmony_ci
18762306a36Sopenharmony_ci&pinctrl {
18862306a36Sopenharmony_ci	board {
18962306a36Sopenharmony_ci		pinctrl_i2c0_pu: i2c0-pu {
19062306a36Sopenharmony_ci			atmel,pins =
19162306a36Sopenharmony_ci				<AT91_PIOA 30 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>,
19262306a36Sopenharmony_ci				<AT91_PIOA 31 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>;
19362306a36Sopenharmony_ci		};
19462306a36Sopenharmony_ci
19562306a36Sopenharmony_ci		pinctrl_i2c2_pu: i2c2-pu {
19662306a36Sopenharmony_ci			atmel,pins =
19762306a36Sopenharmony_ci				<AT91_PIOA 18 AT91_PERIPH_B AT91_PINCTRL_PULL_UP>,
19862306a36Sopenharmony_ci				<AT91_PIOA 19 AT91_PERIPH_B AT91_PINCTRL_PULL_UP>;
19962306a36Sopenharmony_ci		};
20062306a36Sopenharmony_ci
20162306a36Sopenharmony_ci		pinctrl_key_gpio: key-gpio-0 {
20262306a36Sopenharmony_ci			atmel,pins =
20362306a36Sopenharmony_ci				<AT91_PIOE 29 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP_DEGLITCH>;
20462306a36Sopenharmony_ci		};
20562306a36Sopenharmony_ci
20662306a36Sopenharmony_ci		pinctrl_mmc0_cd: mmc0-cd {
20762306a36Sopenharmony_ci			atmel,pins =
20862306a36Sopenharmony_ci				<AT91_PIOE 0 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP_DEGLITCH>;
20962306a36Sopenharmony_ci		};
21062306a36Sopenharmony_ci
21162306a36Sopenharmony_ci		/* Reserved for reset signal to the RGMII connector. */
21262306a36Sopenharmony_ci		pinctrl_rgmii_rstn: rgmii-rstn {
21362306a36Sopenharmony_ci			atmel,pins =
21462306a36Sopenharmony_ci				<AT91_PIOD 18 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP_DEGLITCH>;
21562306a36Sopenharmony_ci		};
21662306a36Sopenharmony_ci
21762306a36Sopenharmony_ci		/* Reserved for an interrupt line from the RMII and RGMII connectors. */
21862306a36Sopenharmony_ci		pinctrl_spi_irqn: spi-irqn {
21962306a36Sopenharmony_ci			atmel,pins =
22062306a36Sopenharmony_ci				<AT91_PIOB 28 AT91_PERIPH_GPIO AT91_PINCTRL_DEGLITCH>;
22162306a36Sopenharmony_ci		};
22262306a36Sopenharmony_ci
22362306a36Sopenharmony_ci		pinctrl_spi0_cs: spi0-cs-default {
22462306a36Sopenharmony_ci			atmel,pins =
22562306a36Sopenharmony_ci				<AT91_PIOD 13 AT91_PERIPH_GPIO AT91_PINCTRL_NONE
22662306a36Sopenharmony_ci				 AT91_PIOD 16 AT91_PERIPH_GPIO AT91_PINCTRL_NONE>;
22762306a36Sopenharmony_ci		};
22862306a36Sopenharmony_ci
22962306a36Sopenharmony_ci		pinctrl_spi1_cs: spi1-cs-default {
23062306a36Sopenharmony_ci			atmel,pins = <AT91_PIOC 25 AT91_PERIPH_GPIO AT91_PINCTRL_NONE
23162306a36Sopenharmony_ci				      AT91_PIOC 28 AT91_PERIPH_GPIO AT91_PINCTRL_NONE>;
23262306a36Sopenharmony_ci		};
23362306a36Sopenharmony_ci
23462306a36Sopenharmony_ci		pinctrl_usba_vbus: usba-vbus {
23562306a36Sopenharmony_ci			atmel,pins =
23662306a36Sopenharmony_ci				<AT91_PIOE 9 AT91_PERIPH_GPIO AT91_PINCTRL_DEGLITCH>;
23762306a36Sopenharmony_ci		};
23862306a36Sopenharmony_ci
23962306a36Sopenharmony_ci		pinctrl_usb_default: usb-default {
24062306a36Sopenharmony_ci			atmel,pins =
24162306a36Sopenharmony_ci				<AT91_PIOE 3 AT91_PERIPH_GPIO AT91_PINCTRL_NONE
24262306a36Sopenharmony_ci				 AT91_PIOE 4 AT91_PERIPH_GPIO AT91_PINCTRL_NONE>;
24362306a36Sopenharmony_ci		};
24462306a36Sopenharmony_ci
24562306a36Sopenharmony_ci		/* Reserved for VBUS fault interrupt. */
24662306a36Sopenharmony_ci		pinctrl_vbusfault_irqn: vbusfault-irqn {
24762306a36Sopenharmony_ci			atmel,pins =
24862306a36Sopenharmony_ci				<AT91_PIOE 5 AT91_PERIPH_GPIO AT91_PINCTRL_DEGLITCH>;
24962306a36Sopenharmony_ci		};
25062306a36Sopenharmony_ci
25162306a36Sopenharmony_ci		pinctrl_vcc_mmc0_reg_gpio: vcc-mmc0-reg-gpio-default {
25262306a36Sopenharmony_ci			atmel,pins = <AT91_PIOE 2 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP>;
25362306a36Sopenharmony_ci		};
25462306a36Sopenharmony_ci	};
25562306a36Sopenharmony_ci};
25662306a36Sopenharmony_ci
25762306a36Sopenharmony_ci&slow_xtal {
25862306a36Sopenharmony_ci	clock-frequency = <32768>;
25962306a36Sopenharmony_ci};
26062306a36Sopenharmony_ci
26162306a36Sopenharmony_ci&spi0 {
26262306a36Sopenharmony_ci	pinctrl-names = "default", "cs";
26362306a36Sopenharmony_ci	pinctrl-1 = <&pinctrl_spi0_cs>;
26462306a36Sopenharmony_ci	cs-gpios = <&pioD 13 0>, <0>, <0>, <&pioD 16 0>;
26562306a36Sopenharmony_ci	status = "okay";
26662306a36Sopenharmony_ci};
26762306a36Sopenharmony_ci
26862306a36Sopenharmony_ci&spi1 {
26962306a36Sopenharmony_ci	pinctrl-names = "default", "cs";
27062306a36Sopenharmony_ci	pinctrl-1 = <&pinctrl_spi1_cs>;
27162306a36Sopenharmony_ci	cs-gpios = <&pioC 25 0>, <0>, <0>, <&pioC 28 0>;
27262306a36Sopenharmony_ci	status = "okay";
27362306a36Sopenharmony_ci};
27462306a36Sopenharmony_ci
27562306a36Sopenharmony_ci&tcb0 {
27662306a36Sopenharmony_ci	timer0: timer@0 {
27762306a36Sopenharmony_ci		compatible = "atmel,tcb-timer";
27862306a36Sopenharmony_ci		reg = <0>;
27962306a36Sopenharmony_ci	};
28062306a36Sopenharmony_ci
28162306a36Sopenharmony_ci	timer1: timer@1 {
28262306a36Sopenharmony_ci		compatible = "atmel,tcb-timer";
28362306a36Sopenharmony_ci		reg = <1>;
28462306a36Sopenharmony_ci	};
28562306a36Sopenharmony_ci};
28662306a36Sopenharmony_ci
28762306a36Sopenharmony_ci&usb0 {	/* USB Device port with VBUS detection. */
28862306a36Sopenharmony_ci	atmel,vbus-gpio = <&pioE 9 GPIO_ACTIVE_HIGH>;
28962306a36Sopenharmony_ci	pinctrl-names = "default";
29062306a36Sopenharmony_ci	pinctrl-0 = <&pinctrl_usba_vbus>;
29162306a36Sopenharmony_ci	status = "okay";
29262306a36Sopenharmony_ci};
29362306a36Sopenharmony_ci
29462306a36Sopenharmony_ci&usb1 {	/* 3-port Host. First port is unused. */
29562306a36Sopenharmony_ci	atmel,vbus-gpio = <0
29662306a36Sopenharmony_ci			   &pioE 3 GPIO_ACTIVE_HIGH
29762306a36Sopenharmony_ci			   &pioE 4 GPIO_ACTIVE_HIGH
29862306a36Sopenharmony_ci			  >;
29962306a36Sopenharmony_ci	num-ports = <3>;
30062306a36Sopenharmony_ci	pinctrl-names = "default";
30162306a36Sopenharmony_ci	pinctrl-0 = <&pinctrl_usb_default>;
30262306a36Sopenharmony_ci	status = "okay";
30362306a36Sopenharmony_ci};
30462306a36Sopenharmony_ci
30562306a36Sopenharmony_ci&usb2 {
30662306a36Sopenharmony_ci	status = "okay";
30762306a36Sopenharmony_ci};
308