diff mbox series

[v1] ARM: at91: add Microchip EVB-KSZ9477 board

Message ID 20211111081045.711323-1-o.rempel@pengutronix.de (mailing list archive)
State New, archived
Headers show
Series [v1] ARM: at91: add Microchip EVB-KSZ9477 board | expand

Commit Message

Oleksij Rempel Nov. 11, 2021, 8:10 a.m. UTC
Add KSZ9477 managed switch evaluation kit with SAMA5D36 MPU:
https://www.microchip.com/en-us/development-tool/evb-ksz9477

Signed-off-by: Oleksij Rempel <o.rempel@pengutronix.de>
---
 arch/arm/boot/dts/Makefile                    |   1 +
 .../arm/boot/dts/at91-sama5d3_ksz9477_evb.dts | 209 ++++++++++++++++++
 2 files changed, 210 insertions(+)
 create mode 100644 arch/arm/boot/dts/at91-sama5d3_ksz9477_evb.dts

Comments

Nicolas Ferre Dec. 8, 2021, 11:35 a.m. UTC | #1
On 11/11/2021 at 09:10, Oleksij Rempel wrote:
> Add KSZ9477 managed switch evaluation kit with SAMA5D36 MPU:
> https://www.microchip.com/en-us/development-tool/evb-ksz9477
> 
> Signed-off-by: Oleksij Rempel <o.rempel@pengutronix.de>

Patch looks good to me:
Acked-by: Nicolas Ferre <nicolas.ferre@microchip.com>

Thanks Oleksij, best regards,
   Nicolas

> ---
>   arch/arm/boot/dts/Makefile                    |   1 +
>   .../arm/boot/dts/at91-sama5d3_ksz9477_evb.dts | 209 ++++++++++++++++++
>   2 files changed, 210 insertions(+)
>   create mode 100644 arch/arm/boot/dts/at91-sama5d3_ksz9477_evb.dts
> 
> diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
> index 7e0934180724..ff0557b9dfc7 100644
> --- a/arch/arm/boot/dts/Makefile
> +++ b/arch/arm/boot/dts/Makefile
> @@ -59,6 +59,7 @@ dtb-$(CONFIG_SOC_SAM_V7) += \
>          at91-sama5d2_icp.dtb \
>          at91-sama5d2_ptc_ek.dtb \
>          at91-sama5d2_xplained.dtb \
> +       at91-sama5d3_ksz9477_evb.dtb \
>          at91-sama5d3_xplained.dtb \
>          at91-dvk_som60.dtb \
>          at91-gatwick.dtb \
> diff --git a/arch/arm/boot/dts/at91-sama5d3_ksz9477_evb.dts b/arch/arm/boot/dts/at91-sama5d3_ksz9477_evb.dts
> new file mode 100644
> index 000000000000..443e8b022897
> --- /dev/null
> +++ b/arch/arm/boot/dts/at91-sama5d3_ksz9477_evb.dts
> @@ -0,0 +1,209 @@
> +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
> +/*
> + * Copyright (c) 2021 Oleksij Rempel <kernel@pengutronix.de>, Pengutronix
> + */
> +/dts-v1/;
> +#include "sama5d36.dtsi"
> +
> +/ {
> +       model = "EVB-KSZ9477";
> +       compatible = "microchip,sama5d3-ksz9477-evb", "atmel,sama5d36",
> +                    "atmel,sama5d3", "atmel,sama5";
> +
> +       chosen {
> +               stdout-path = &dbgu;
> +       };
> +
> +       reg_3v3: regulator-3v3 {
> +               compatible = "regulator-fixed";
> +               regulator-name = "3v3";
> +               regulator-min-microvolt = <3300000>;
> +               regulator-max-microvolt = <3300000>;
> +       };
> +
> +       reg_vcc_mmc0: regulator-mmc0 {
> +               compatible = "regulator-fixed";
> +               pinctrl-names = "default";
> +               pinctrl-0 = <&pinctrl_mcc0_vcc>;
> +               regulator-name = "mmc0-vcc";
> +               regulator-max-microvolt = <3300000>;
> +               regulator-min-microvolt = <3300000>;
> +               gpio = <&pioE 2 GPIO_ACTIVE_LOW>;
> +       };
> +};
> +
> +&dbgu {
> +       status = "okay";
> +};
> +
> +&ebi {
> +       pinctrl-0 = <&pinctrl_ebi_nand_addr>;
> +       pinctrl-names = "default";
> +       status = "okay";
> +};
> +
> +&i2c0 {
> +       pinctrl-0 = <&pinctrl_i2c0_pu>;
> +       status = "okay";
> +};
> +
> +&macb0 {
> +       phy-mode = "rgmii";
> +       status = "okay";
> +
> +       fixed-link {
> +               speed = <1000>;
> +               full-duplex;
> +       };
> +};
> +
> +&main_xtal {
> +       clock-frequency = <12000000>;
> +};
> +
> +&mmc0 {
> +       pinctrl-0 = <&pinctrl_mmc0_clk_cmd_dat0 &pinctrl_mmc0_dat1_3
> +                    &pinctrl_mmc0_dat4_7 &pinctrl_mmc0_cd>;
> +       status = "okay";
> +
> +       slot@0 {
> +               reg = <0>;
> +               bus-width = <8>;
> +               cd-gpios = <&pioE 0 GPIO_ACTIVE_LOW>;
> +               disable-wp;
> +               vmmc-supply = <&reg_vcc_mmc0>;
> +               vqmmc-supply = <&reg_3v3>;
> +       };
> +};
> +
> +&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";
> +       };
> +};
> +
> +&slow_xtal {
> +       clock-frequency = <32768>;
> +};
> +
> +&spi0 {
> +       cs-gpios = <&pioD 13 GPIO_ACTIVE_LOW>, <0>, <0>,
> +                  <&pioD 16 GPIO_ACTIVE_LOW>;
> +       status = "okay";
> +};
> +
> +&spi1 {
> +       pinctrl-0 = <&pinctrl_spi_ksz>;
> +       cs-gpios = <&pioC 25 GPIO_ACTIVE_LOW>;
> +       status = "okay";
> +
> +       switch@0 {
> +               compatible = "microchip,ksz9477";
> +               reg = <0>;
> +               spi-max-frequency = <1000000>;
> +               spi-cpha;
> +               spi-cpol;
> +
> +               ports {
> +                       #address-cells = <1>;
> +                       #size-cells = <0>;
> +
> +                       port@0 {
> +                               reg = <0>;
> +                               label = "lan1";
> +                       };
> +
> +                       port@1 {
> +                               reg = <1>;
> +                               label = "lan2";
> +                       };
> +
> +                       port@2 {
> +                               reg = <2>;
> +                               label = "lan3";
> +                       };
> +
> +                       port@3 {
> +                               reg = <3>;
> +                               label = "lan4";
> +                       };
> +
> +                       port@4 {
> +                               reg = <4>;
> +                               label = "lan5";
> +                       };
> +
> +                       port@5 {
> +                               reg = <5>;
> +                               label = "cpu";
> +                               ethernet = <&macb0>;
> +                               phy-mode = "rgmii-txid";
> +
> +                               fixed-link {
> +                                       speed = <1000>;
> +                                       full-duplex;
> +                               };
> +                       };
> +               };
> +       };
> +};
> +
> +&usb0 {
> +       pinctrl-names = "default";
> +       pinctrl-0 = <&pinctrl_usba_vbus>;
> +       atmel,vbus-gpio = <&pioE 9 GPIO_ACTIVE_HIGH>;
> +       status = "okay";
> +};
> +
> +&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_mmc0_cd: mmc0-cd {
> +                       atmel,pins = <AT91_PIOE 0 AT91_PERIPH_GPIO AT91_PINCTRL_NONE>;
> +               };
> +
> +               pinctrl_mcc0_vcc: mmc0-vcc {
> +                       atmel,pins = <AT91_PIOE 2 AT91_PERIPH_GPIO AT91_PINCTRL_NONE>;
> +               };
> +
> +               pinctrl_spi_ksz: spi-ksz {
> +                       atmel,pins =
> +                               <
> +                               /* SPI1_MISO */
> +                               AT91_PIOC 22 AT91_PERIPH_A AT91_PINCTRL_PULL_UP
> +                               /* SPI1_MOSI */
> +                               AT91_PIOC 23 AT91_PERIPH_A AT91_PINCTRL_NONE
> +                               /* SPI1_SPCK */
> +                               AT91_PIOC 24 AT91_PERIPH_A AT91_PINCTRL_NONE
> +
> +                               /* SPI CS */
> +                               AT91_PIOC 25 AT91_PERIPH_GPIO AT91_PINCTRL_NONE
> +                               /* switch IRQ */
> +                               AT91_PIOB 28 AT91_PERIPH_GPIO AT91_PINCTRL_DEGLITCH
> +                               /* switch PME_N, SoC IN */
> +                               AT91_PIOC 30 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP
> +                               /* switch RST */
> +                               AT91_PIOC 31 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP_DEGLITCH
> +                               >;
> +               };
> +
> +               pinctrl_usba_vbus: usba-vbus {
> +                       atmel,pins =
> +                               <AT91_PIOE 9 AT91_PERIPH_GPIO AT91_PINCTRL_DEGLITCH>;
> +               };
> +       };
> +};
> --
> 2.30.2
>
diff mbox series

Patch

diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
index 7e0934180724..ff0557b9dfc7 100644
--- a/arch/arm/boot/dts/Makefile
+++ b/arch/arm/boot/dts/Makefile
@@ -59,6 +59,7 @@  dtb-$(CONFIG_SOC_SAM_V7) += \
 	at91-sama5d2_icp.dtb \
 	at91-sama5d2_ptc_ek.dtb \
 	at91-sama5d2_xplained.dtb \
+	at91-sama5d3_ksz9477_evb.dtb \
 	at91-sama5d3_xplained.dtb \
 	at91-dvk_som60.dtb \
 	at91-gatwick.dtb \
diff --git a/arch/arm/boot/dts/at91-sama5d3_ksz9477_evb.dts b/arch/arm/boot/dts/at91-sama5d3_ksz9477_evb.dts
new file mode 100644
index 000000000000..443e8b022897
--- /dev/null
+++ b/arch/arm/boot/dts/at91-sama5d3_ksz9477_evb.dts
@@ -0,0 +1,209 @@ 
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+/*
+ * Copyright (c) 2021 Oleksij Rempel <kernel@pengutronix.de>, Pengutronix
+ */
+/dts-v1/;
+#include "sama5d36.dtsi"
+
+/ {
+	model = "EVB-KSZ9477";
+	compatible = "microchip,sama5d3-ksz9477-evb", "atmel,sama5d36",
+		     "atmel,sama5d3", "atmel,sama5";
+
+	chosen {
+		stdout-path = &dbgu;
+	};
+
+	reg_3v3: regulator-3v3 {
+		compatible = "regulator-fixed";
+		regulator-name = "3v3";
+		regulator-min-microvolt = <3300000>;
+		regulator-max-microvolt = <3300000>;
+	};
+
+	reg_vcc_mmc0: regulator-mmc0 {
+		compatible = "regulator-fixed";
+		pinctrl-names = "default";
+		pinctrl-0 = <&pinctrl_mcc0_vcc>;
+		regulator-name = "mmc0-vcc";
+		regulator-max-microvolt = <3300000>;
+		regulator-min-microvolt = <3300000>;
+		gpio = <&pioE 2 GPIO_ACTIVE_LOW>;
+	};
+};
+
+&dbgu {
+	status = "okay";
+};
+
+&ebi {
+	pinctrl-0 = <&pinctrl_ebi_nand_addr>;
+	pinctrl-names = "default";
+	status = "okay";
+};
+
+&i2c0 {
+	pinctrl-0 = <&pinctrl_i2c0_pu>;
+	status = "okay";
+};
+
+&macb0 {
+	phy-mode = "rgmii";
+	status = "okay";
+
+	fixed-link {
+		speed = <1000>;
+		full-duplex;
+	};
+};
+
+&main_xtal {
+	clock-frequency = <12000000>;
+};
+
+&mmc0 {
+	pinctrl-0 = <&pinctrl_mmc0_clk_cmd_dat0 &pinctrl_mmc0_dat1_3
+		     &pinctrl_mmc0_dat4_7 &pinctrl_mmc0_cd>;
+	status = "okay";
+
+	slot@0 {
+		reg = <0>;
+		bus-width = <8>;
+		cd-gpios = <&pioE 0 GPIO_ACTIVE_LOW>;
+		disable-wp;
+		vmmc-supply = <&reg_vcc_mmc0>;
+		vqmmc-supply = <&reg_3v3>;
+	};
+};
+
+&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";
+	};
+};
+
+&slow_xtal {
+	clock-frequency = <32768>;
+};
+
+&spi0 {
+	cs-gpios = <&pioD 13 GPIO_ACTIVE_LOW>, <0>, <0>,
+		   <&pioD 16 GPIO_ACTIVE_LOW>;
+	status = "okay";
+};
+
+&spi1 {
+	pinctrl-0 = <&pinctrl_spi_ksz>;
+	cs-gpios = <&pioC 25 GPIO_ACTIVE_LOW>;
+	status = "okay";
+
+	switch@0 {
+		compatible = "microchip,ksz9477";
+		reg = <0>;
+		spi-max-frequency = <1000000>;
+		spi-cpha;
+		spi-cpol;
+
+		ports {
+			#address-cells = <1>;
+			#size-cells = <0>;
+
+			port@0 {
+				reg = <0>;
+				label = "lan1";
+			};
+
+			port@1 {
+				reg = <1>;
+				label = "lan2";
+			};
+
+			port@2 {
+				reg = <2>;
+				label = "lan3";
+			};
+
+			port@3 {
+				reg = <3>;
+				label = "lan4";
+			};
+
+			port@4 {
+				reg = <4>;
+				label = "lan5";
+			};
+
+			port@5 {
+				reg = <5>;
+				label = "cpu";
+				ethernet = <&macb0>;
+				phy-mode = "rgmii-txid";
+
+				fixed-link {
+					speed = <1000>;
+					full-duplex;
+				};
+			};
+		};
+	};
+};
+
+&usb0 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_usba_vbus>;
+	atmel,vbus-gpio = <&pioE 9 GPIO_ACTIVE_HIGH>;
+	status = "okay";
+};
+
+&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_mmc0_cd: mmc0-cd {
+			atmel,pins = <AT91_PIOE 0 AT91_PERIPH_GPIO AT91_PINCTRL_NONE>;
+		};
+
+		pinctrl_mcc0_vcc: mmc0-vcc {
+			atmel,pins = <AT91_PIOE 2 AT91_PERIPH_GPIO AT91_PINCTRL_NONE>;
+		};
+
+		pinctrl_spi_ksz: spi-ksz {
+			atmel,pins =
+				<
+				/* SPI1_MISO */
+				AT91_PIOC 22 AT91_PERIPH_A AT91_PINCTRL_PULL_UP
+				/* SPI1_MOSI */
+				AT91_PIOC 23 AT91_PERIPH_A AT91_PINCTRL_NONE
+				/* SPI1_SPCK */
+				AT91_PIOC 24 AT91_PERIPH_A AT91_PINCTRL_NONE
+
+				/* SPI CS */
+				AT91_PIOC 25 AT91_PERIPH_GPIO AT91_PINCTRL_NONE
+				/* switch IRQ */
+				AT91_PIOB 28 AT91_PERIPH_GPIO AT91_PINCTRL_DEGLITCH
+				/* switch PME_N, SoC IN */
+				AT91_PIOC 30 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP
+				/* switch RST */
+				AT91_PIOC 31 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP_DEGLITCH
+				>;
+		};
+
+		pinctrl_usba_vbus: usba-vbus {
+			atmel,pins =
+				<AT91_PIOE 9 AT91_PERIPH_GPIO AT91_PINCTRL_DEGLITCH>;
+		};
+	};
+};