Newer
Older
barebox / arch / arm / dts / at91-microchip-ksz9477-evb.dts
/*
 * at91-microchip-ksz9477-evb.dts - Device Tree file for the EVB-KSZ9477 board
 *
 *  Copyright (C) 2014 Atmel,
 *		  2014 Nicolas Ferre <nicolas.ferre@atmel.com>
 *		  2018 Ahmad Fatoum <a.fatoum@pengutronix.de>
 *
 * Licensed under GPLv2 or later.
 */
/dts-v1/;
#include <arm/sama5d36.dtsi>

/ {
	model = "Microchip EVB-KSZ9477";
	compatible = "atmel,sama5d3-ksz9477-evb", "atmel,sama5d3", "atmel,sama5";

	aliases {
		mmc0 = &mmc0;
	};

	chosen {
		stdout-path = &dbgu;

		environment {
			compatible = "barebox,environment";
			device-path = &mmc0, "partname:0";
			file-path = "barebox.env";
		};
	};
};

&{/memory} {
	reg = <0x20000000 0x10000000>;
};

&pinctrl {
	board {
		pinctrl_mmc0_cd: mmc0_cd {
			atmel,pins =
				<AT91_PIOE 0 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP_DEGLITCH>;
		};

		pinctrl_spi_ksz: spi_ksz {
			atmel,pins =
				<
				AT91_PIOB 28 AT91_PERIPH_GPIO AT91_PINCTRL_DEGLITCH
				AT91_PIOC 31 AT91_PERIPH_GPIO AT91_PINCTRL_DEGLITCH
				>;
		};
	};
};

&slow_xtal {
	clock-frequency = <32768>;
};

&main_xtal {
	clock-frequency = <12000000>;
};

&dbgu {
	status = "okay";
};

&macb0 {
	phy-mode = "rgmii";
	gpios = <&pioB 28 GPIO_ACTIVE_LOW>;
	status = "okay";

	fixed-link {
		speed = <1000>;
		full-duplex;
	};
};

&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>;
	};
};

&pmc {
	main: mainck {
		clock-frequency = <12000000>;
	};
};

&spi1 {
	pinctrl-0 = <&pinctrl_spi_ksz>;
	cs-gpios = <&pioC 25 0>;
	id = <1>;
	status = "okay";

	ksz9477: ksz9477@0 {
		compatible = "microchip,ksz9477", "microchip,ksz9893";
		reg = <0>;

		/* Bus clock is 132 MHz. */
		spi-max-frequency = <44000000>;
		spi-cpha;
		spi-cpol;
		gpios = <&pioB 28 GPIO_ACTIVE_LOW>;
		status = "okay";

		ports {
			#address-cells = <1>;
			#size-cells = <0>;

			port@0 {
				reg = <0>;
				label = "lan0";
			};

			port@1 {
				reg = <1>;
				label = "lan1";
			};

			port@2 {
				reg = <2>;
				label = "lan2";
			};

			port@3 {
				reg = <3>;
				label = "lan3";
			};

			port@4 {
				reg = <4>;
				label = "lan4";
			};

			port@5 {
				reg = <5>;
				label = "cpu";
				ethernet = <&macb0>;
				phy-mode = "rgmii-id";

				fixed-link {
					speed = <1000>;
					full-duplex;
				};
			};

			/* port 6 is connected to eth0 */
		};
	};
};