Training courses

Kernel and Embedded Linux

Bootlin training courses

Embedded Linux, kernel,
Yocto Project, Buildroot, real-time,
graphics, boot time, debugging...

Bootlin logo

Elixir Cross Referencer

Microchip KSZ Series Ethernet switches
==================================

Required properties:

- compatible: For external switch chips, compatible string must be exactly one
  of the following:
  - "microchip,ksz8765"
  - "microchip,ksz8794"
  - "microchip,ksz8795"
  - "microchip,ksz9477"
  - "microchip,ksz9897"
  - "microchip,ksz9896"
  - "microchip,ksz9567"
  - "microchip,ksz8565"
  - "microchip,ksz9893"
  - "microchip,ksz9563"
  - "microchip,ksz8563"

Optional properties:

- reset-gpios		: Should be a gpio specifier for a reset line
- microchip,synclko-125 : Set if the output SYNCLKO frequency should be set to
			  125MHz instead of 25MHz.

See Documentation/devicetree/bindings/net/dsa/dsa.txt for a list of additional
required and optional properties.

Examples:

Ethernet switch connected via SPI to the host, CPU port wired to eth0:

	eth0: ethernet@10001000 {
		fixed-link {
			speed = <1000>;
			full-duplex;
		};
	};

	spi1: spi@f8008000 {
		pinctrl-0 = <&pinctrl_spi_ksz>;
		cs-gpios = <&pioC 25 0>;
		id = <1>;

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

			spi-max-frequency = <44000000>;
			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 = <&eth0>;
					fixed-link {
						speed = <1000>;
						full-duplex;
					};
				};
			};
		};
		ksz8565: ksz8565@0 {
			compatible = "microchip,ksz8565";
			reg = <0>;

			spi-max-frequency = <44000000>;
			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@6 {
					reg = <6>;
					label = "cpu";
					ethernet = <&eth0>;
					fixed-link {
						speed = <1000>;
						full-duplex;
					};
				};
			};
		};
	};