[linux][PATCH v2 2/2] dts: arm: at91: Add SAMA5D3-EDS Board

Claudiu.Beznea at microchip.com Claudiu.Beznea at microchip.com
Tue Aug 23 00:28:31 PDT 2022


On 22.08.2022 21:13, Jerry Ray wrote:
> EXTERNAL EMAIL: Do not click links or open attachments unless you know the content is safe
> 
> The SAMA5D3-EDS board is an Ethernet Development Platform allowing for
> evaluating many Microchip ethernet switch and PHY products.  Various
> daughter cards can connect up 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.
> 
> Google search keywords: "Microchip SAMA5D3-EDS"
> 
> Signed-off-by: Jerry Ray <jerry.ray at microchip.com>
> ---
> v1->v2:
>  - Modified the compatible field in the device tree to reflect Microchip
>    Ethernet Development System Board.
> ---
>  arch/arm/boot/dts/at91-sama5d3_eds.dts | 314 +++++++++++++++++++++++++
>  1 file changed, 314 insertions(+)
>  create mode 100644 arch/arm/boot/dts/at91-sama5d3_eds.dts
> 
> diff --git a/arch/arm/boot/dts/at91-sama5d3_eds.dts b/arch/arm/boot/dts/at91-sama5d3_eds.dts
> new file mode 100644

You have to add this file to Makefile to be compiled.

> index 000000000000..626f7bbe0164
> --- /dev/null
> +++ b/arch/arm/boot/dts/at91-sama5d3_eds.dts
> @@ -0,0 +1,314 @@
> +// SPDX-License-Identifier: GPL-2.0-or-later
> +/*
> + * at91-sama5d3_eds.dts - Device Tree file for the SAMA5D3 Ethernet
> + *    Development System board.
> + *
> + *  Copyright (C) 2022 Microchip Technology, Inc. and its subsidiaries
> + *               2022 Jerry Ray <jerry.ray at microchip.com>
> + */
> +/dts-v1/;
> +#include "sama5d36.dtsi"
> +
> +/ {
> +       model = "SAMA5D3 Ethernet Development System";
> +       compatible = "microchip,sama5d3-eds", "atmel,sama5d3", "atmel,sama5";
> +
> +       chosen {
> +               stdout-path = "serial0:115200n8";
> +       };
> +
> +       clocks {
> +               slow_xtal {
> +                       clock-frequency = <32768>;
> +               };
> +
> +               main_xtal {
> +                       clock-frequency = <12000000>;
> +               };
> +       };
> +
> +       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 at 20000000 {
> +               reg = <0x20000000 0x10000000>;
> +       };
> +
> +       regulators: regulators {
> +               compatible = "simple-bus";
> +               #address-cells = <1>;
> +               #size-cells = <0>;

Also, check "make W=1 dtbs". Please solve the warning related to
regulators. You can remove simple bus here, it should be fine w/o it and
compilation warning should be gone.

Thank you,
Claudiu Beznea

> +
> +               vcc_3v3_reg: BUCK_REG1 {
> +                       compatible = "regulator-fixed";
> +                       regulator-name = "VCC_3V3";
> +                       regulator-min-microvolt = <3300000>;
> +                       regulator-max-microvolt = <3300000>;
> +                       regulator-always-on;
> +               };
> +
> +               vcc_2v5_reg: LDO_REG2 {
> +                       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: LDO_REG3 {
> +                       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: BUCK_REG4 {
> +                       compatible = "regulator-fixed";
> +                       regulator-name = "VCC_1V2";
> +                       regulator-min-microvolt = <1200000>;
> +                       regulator-max-microvolt = <1200000>;
> +                       regulator-always-on;
> +               };
> +
> +               vcc_mmc0_reg: fixedregulator_mmc0 {
> +                       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 at 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 at 0 {
> +                                       label = "at91bootstrap";
> +                                       reg = <0x0 0x40000>;
> +                               };
> +
> +                               bootloader at 40000 {
> +                                       label = "bootloader";
> +                                       reg = <0x40000 0xc0000>;
> +                               };
> +
> +                               bootloaderenvred at 100000 {
> +                                       label = "bootloader env redundant";
> +                                       reg = <0x100000 0x40000>;
> +                               };
> +
> +                               bootloaderenv at 140000 {
> +                                       label = "bootloader env";
> +                                       reg = <0x140000 0x40000>;
> +                               };
> +
> +                               dtb at 180000 {
> +                                       label = "device tree";
> +                                       reg = <0x180000 0x80000>;
> +                               };
> +
> +                               kernel at 200000 {
> +                                       label = "kernel";
> +                                       reg = <0x200000 0x600000>;
> +                               };
> +
> +                               rootfs at 800000 {
> +                                       label = "rootfs";
> +                                       reg = <0x800000 0x0f800000>;
> +                               };
> +                       };
> +               };
> +       };
> +};
> +
> +&i2c0 {
> +       pinctrl-0 = <&pinctrl_i2c0_pu>;
> +       status = "okay";
> +};
> +
> +&i2c1 {
> +       status = "okay";
> +};
> +
> +&i2c2 {
> +       dmas = <0>, <0>;        /* Do not use DMA for i2c2 */
> +       pinctrl-0 = <&pinctrl_i2c2_pu>;
> +       status = "okay";
> +};
> +
> +&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 at 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>;
> +               };
> +
> +               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>;
> +               };
> +
> +               pinctrl_vcc_mmc0_reg_gpio: vcc_mmc0_reg_gpio_default {
> +                       atmel,pins = <AT91_PIOE 2 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP>;
> +               };
> +
> +               /* 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>;
> +               };
> +
> +               /* Reserved for VBUS fault interrupt. */
> +               pinctrl_vbusfault_irqn: vbusfault_irqn {
> +                       atmel,pins =
> +                               <AT91_PIOE 5 AT91_PERIPH_GPIO AT91_PINCTRL_DEGLITCH>;
> +               };
> +       };
> +};
> +
> +&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 at 0 {
> +               compatible = "atmel,tcb-timer";
> +               reg = <0>;
> +       };
> +
> +       timer1: timer at 1 {
> +               compatible = "atmel,tcb-timer";
> +               reg = <1>;
> +       };
> +};
> +
> +&usb0 {
> +       atmel,vbus-gpio = <&pioE 9 GPIO_ACTIVE_HIGH>;
> +       pinctrl-names = "default";
> +       pinctrl-0 = <&pinctrl_usba_vbus>;
> +       status = "okay";
> +};
> +
> +&usb1 {
> +       atmel,vbus-gpio = <0
> +                          &pioE 3 GPIO_ACTIVE_HIGH
> +                          &pioE 4 GPIO_ACTIVE_HIGH
> +                         >;
> +       pinctrl-names = "default";
> +       pinctrl-0 = <&pinctrl_usb_default>;
> +       num-ports = <3>;
> +       status = "okay";
> +};
> +
> +&usb2 {
> +       status = "okay";
> +};
> --
> 2.17.1
> 
> 
> _______________________________________________
> linux-arm-kernel mailing list
> linux-arm-kernel at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel



More information about the linux-arm-kernel mailing list