dts: arm: at91: Add SAMA5D3-EDS Board
authorJerry Ray <jerry.ray@microchip.com>
Fri, 9 Sep 2022 16:30:22 +0000 (11:30 -0500)
committerClaudiu Beznea <claudiu.beznea@microchip.com>
Wed, 14 Sep 2022 07:33:30 +0000 (10:33 +0300)
The SAMA5D3-EDS board is an Ethernet Development Platform allowing for
evaluating many Microchip ethernet switch and PHY products.  Various
daughter cards can connect via an RGMII connector or an RMII connector.

The EDS board is not intended for stand-alone use and has no ethernet
capabilities when no daughter board is connected.  As such, this device
tree is intended to be used with a DT overlay defining the add-on board.
To better ensure consistency, some items are defined here as a form of
documentation so that all add-on overlays will use the same terms.

Link: https://www.microchip.com/en-us/development-tool/SAMA5D3-ETHERNET-DEVELOPMENT-SYSTEM
Signed-off-by: Jerry Ray <jerry.ray@microchip.com>
[claudiu.beznea: s/gpio-inputs/gpio-keys in at91-sama5d3_eds.dts]
Signed-off-by: Claudiu Beznea <claudiu.beznea@microchip.com>
Link: https://lore.kernel.org/r/20220909163022.13022-2-jerry.ray@microchip.com
arch/arm/boot/dts/Makefile
arch/arm/boot/dts/at91-sama5d3_eds.dts [new file with mode: 0644]

index 595e870..98ffdf2 100644 (file)
@@ -61,6 +61,7 @@ dtb-$(CONFIG_SOC_SAM_V7) += \
        at91-sama5d2_icp.dtb \
        at91-sama5d2_ptc_ek.dtb \
        at91-sama5d2_xplained.dtb \
+       at91-sama5d3_eds.dtb \
        at91-sama5d3_ksz9477_evb.dtb \
        at91-sama5d3_xplained.dtb \
        at91-dvk_som60.dtb \
diff --git a/arch/arm/boot/dts/at91-sama5d3_eds.dts b/arch/arm/boot/dts/at91-sama5d3_eds.dts
new file mode 100644 (file)
index 0000000..c287b03
--- /dev/null
@@ -0,0 +1,307 @@
+// SPDX-License-Identifier: GPL-2.0+ OR MIT
+/*
+ * at91-sama5d3_eds.dts - Device Tree file for the SAMA5D3 Ethernet
+ *    Development System board.
+ *
+ * Copyright (C) 2022 Microchip Technology Inc. and its subsidiaries
+ *
+ * Author: Jerry Ray <jerry.ray@microchip.com>
+ */
+/dts-v1/;
+#include "sama5d36.dtsi"
+
+/ {
+       model = "SAMA5D3 Ethernet Development System";
+       compatible = "microchip,sama5d3-eds", "atmel,sama5d36",
+                    "atmel,sama5d3", "atmel,sama5";
+
+       chosen {
+               stdout-path = "serial0:115200n8";
+       };
+
+       gpio-keys {
+               compatible = "gpio-keys";
+
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_key_gpio>;
+
+               button-3 {
+                       label = "PB_USER";
+                       gpios = <&pioE 29 GPIO_ACTIVE_LOW>;
+                       linux,code = <0x104>;
+                       wakeup-source;
+               };
+       };
+
+       memory@20000000 {
+               reg = <0x20000000 0x10000000>;
+       };
+
+       vcc_3v3_reg: regulator-1 {
+               compatible = "regulator-fixed";
+               regulator-name = "VCC_3V3";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               regulator-always-on;
+       };
+
+       vcc_2v5_reg: regulator-2 {
+               compatible = "regulator-fixed";
+               regulator-name = "VCC_2V5";
+               regulator-min-microvolt = <2500000>;
+               regulator-max-microvolt = <2500000>;
+               regulator-always-on;
+               vin-supply = <&vcc_3v3_reg>;
+       };
+
+       vcc_1v8_reg: regulator-3 {
+               compatible = "regulator-fixed";
+               regulator-name = "VCC_1V8";
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <1800000>;
+               regulator-always-on;
+               vin-supply = <&vcc_3v3_reg>;
+       };
+
+       vcc_1v2_reg: regulator-4 {
+               compatible = "regulator-fixed";
+               regulator-name = "VCC_1V2";
+               regulator-min-microvolt = <1200000>;
+               regulator-max-microvolt = <1200000>;
+               regulator-always-on;
+       };
+
+       vcc_mmc0_reg: regulator-5 {
+               compatible = "regulator-fixed";
+               regulator-name = "mmc0-card-supply";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               regulator-always-on;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_vcc_mmc0_reg_gpio>;
+               gpio = <&pioE 2 GPIO_ACTIVE_LOW>;
+       };
+};
+
+&can0 {
+       status = "okay";
+};
+
+&dbgu {
+       status = "okay";
+};
+
+&ebi {
+       pinctrl-0 = <&pinctrl_ebi_nand_addr>;
+       pinctrl-names = "default";
+       status = "okay";
+
+       nand_controller: nand-controller {
+               status = "okay";
+
+               nand@3 {
+                       reg = <0x3 0x0 0x2>;
+                       atmel,rb = <0>;
+                       nand-bus-width = <8>;
+                       nand-ecc-mode = "hw";
+                       nand-ecc-strength = <4>;
+                       nand-ecc-step-size = <512>;
+                       nand-on-flash-bbt;
+                       label = "atmel_nand";
+
+                       partitions {
+                               compatible = "fixed-partitions";
+                               #address-cells = <1>;
+                               #size-cells = <1>;
+
+                               at91bootstrap@0 {
+                                       label = "at91bootstrap";
+                                       reg = <0x0 0x40000>;
+                               };
+
+                               bootloader@40000 {
+                                       label = "bootloader";
+                                       reg = <0x40000 0xc0000>;
+                               };
+
+                               bootloaderenvred@100000 {
+                                       label = "bootloader env redundant";
+                                       reg = <0x100000 0x40000>;
+                               };
+
+                               bootloaderenv@140000 {
+                                       label = "bootloader env";
+                                       reg = <0x140000 0x40000>;
+                               };
+
+                               dtb@180000 {
+                                       label = "device tree";
+                                       reg = <0x180000 0x80000>;
+                               };
+
+                               kernel@200000 {
+                                       label = "kernel";
+                                       reg = <0x200000 0x600000>;
+                               };
+
+                               rootfs@800000 {
+                                       label = "rootfs";
+                                       reg = <0x800000 0x0f800000>;
+                               };
+                       };
+               };
+       };
+};
+
+&i2c0 {
+       pinctrl-0 = <&pinctrl_i2c0_pu>;
+       status = "okay";
+};
+
+&i2c1 {
+       status = "okay";
+};
+
+&i2c2 {
+       pinctrl-0 = <&pinctrl_i2c2_pu>;
+       status = "okay";
+};
+
+&main_xtal {
+       clock-frequency = <12000000>;
+};
+
+&mmc0 {
+       pinctrl-0 = <&pinctrl_mmc0_clk_cmd_dat0 &pinctrl_mmc0_dat1_3
+                    &pinctrl_mmc0_dat4_7 &pinctrl_mmc0_cd>;
+       vmmc-supply = <&vcc_mmc0_reg>;
+       vqmmc-supply = <&vcc_3v3_reg>;
+       status = "okay";
+       slot@0 {
+               reg = <0>;
+               bus-width = <8>;
+               cd-gpios = <&pioE 0 GPIO_ACTIVE_LOW>;
+       };
+};
+
+&pinctrl {
+       board {
+               pinctrl_i2c0_pu: i2c0-pu {
+                       atmel,pins =
+                               <AT91_PIOA 30 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>,
+                               <AT91_PIOA 31 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>;
+               };
+
+               pinctrl_i2c2_pu: i2c2-pu {
+                       atmel,pins =
+                               <AT91_PIOA 18 AT91_PERIPH_B AT91_PINCTRL_PULL_UP>,
+                               <AT91_PIOA 19 AT91_PERIPH_B AT91_PINCTRL_PULL_UP>;
+               };
+
+               pinctrl_key_gpio: key-gpio-0 {
+                       atmel,pins =
+                               <AT91_PIOE 29 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP_DEGLITCH>;
+               };
+
+               pinctrl_mmc0_cd: mmc0-cd {
+                       atmel,pins =
+                               <AT91_PIOE 0 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP_DEGLITCH>;
+               };
+
+               /* Reserved for reset signal to the RGMII connector. */
+               pinctrl_rgmii_rstn: rgmii-rstn {
+                       atmel,pins =
+                               <AT91_PIOD 18 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP_DEGLITCH>;
+               };
+
+               /* Reserved for an interrupt line from the RMII and RGMII connectors. */
+               pinctrl_spi_irqn: spi-irqn {
+                       atmel,pins =
+                               <AT91_PIOB 28 AT91_PERIPH_GPIO AT91_PINCTRL_DEGLITCH>;
+               };
+
+               pinctrl_spi0_cs: spi0-cs-default {
+                       atmel,pins =
+                               <AT91_PIOD 13 AT91_PERIPH_GPIO AT91_PINCTRL_NONE
+                                AT91_PIOD 16 AT91_PERIPH_GPIO AT91_PINCTRL_NONE>;
+               };
+
+               pinctrl_spi1_cs: spi1-cs-default {
+                       atmel,pins = <AT91_PIOC 25 AT91_PERIPH_GPIO AT91_PINCTRL_NONE
+                                     AT91_PIOC 28 AT91_PERIPH_GPIO AT91_PINCTRL_NONE>;
+               };
+
+               pinctrl_usba_vbus: usba-vbus {
+                       atmel,pins =
+                               <AT91_PIOE 9 AT91_PERIPH_GPIO AT91_PINCTRL_DEGLITCH>;
+               };
+
+               pinctrl_usb_default: usb-default {
+                       atmel,pins =
+                               <AT91_PIOE 3 AT91_PERIPH_GPIO AT91_PINCTRL_NONE
+                                AT91_PIOE 4 AT91_PERIPH_GPIO AT91_PINCTRL_NONE>;
+               };
+
+               /* Reserved for VBUS fault interrupt. */
+               pinctrl_vbusfault_irqn: vbusfault-irqn {
+                       atmel,pins =
+                               <AT91_PIOE 5 AT91_PERIPH_GPIO AT91_PINCTRL_DEGLITCH>;
+               };
+
+               pinctrl_vcc_mmc0_reg_gpio: vcc-mmc0-reg-gpio-default {
+                       atmel,pins = <AT91_PIOE 2 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP>;
+               };
+       };
+};
+
+&slow_xtal {
+       clock-frequency = <32768>;
+};
+
+&spi0 {
+       pinctrl-names = "default", "cs";
+       pinctrl-1 = <&pinctrl_spi0_cs>;
+       cs-gpios = <&pioD 13 0>, <0>, <0>, <&pioD 16 0>;
+       status = "okay";
+};
+
+&spi1 {
+       pinctrl-names = "default", "cs";
+       pinctrl-1 = <&pinctrl_spi1_cs>;
+       cs-gpios = <&pioC 25 0>, <0>, <0>, <&pioC 28 0>;
+       status = "okay";
+};
+
+&tcb0 {
+       timer0: timer@0 {
+               compatible = "atmel,tcb-timer";
+               reg = <0>;
+       };
+
+       timer1: timer@1 {
+               compatible = "atmel,tcb-timer";
+               reg = <1>;
+       };
+};
+
+&usb0 {        /* USB Device port with VBUS detection. */
+       atmel,vbus-gpio = <&pioE 9 GPIO_ACTIVE_HIGH>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_usba_vbus>;
+       status = "okay";
+};
+
+&usb1 {        /* 3-port Host. First port is unused. */
+       atmel,vbus-gpio = <0
+                          &pioE 3 GPIO_ACTIVE_HIGH
+                          &pioE 4 GPIO_ACTIVE_HIGH
+                         >;
+       num-ports = <3>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_usb_default>;
+       status = "okay";
+};
+
+&usb2 {
+       status = "okay";
+};