Realtek SMI-based Switches
==========================

The SMI "Simple Management Interface" is a two-wire protocol using
bit-banged GPIO that while it reuses the MDIO lines MCK and MDIO does
not use the MDIO protocol. This binding defines how to specify the
SMI-based Realtek devices.

Required properties:

- compatible: must be exactly one of:
      "realtek,rtl8366"
      "realtek,rtl8366rb" (4+1 ports)
      "realtek,rtl8366s"  (4+1 ports)
      "realtek,rtl8367"
      "realtek,rtl8367b"
      "realtek,rtl8368s"  (8 port)
      "realtek,rtl8369"
      "realtek,rtl8370"   (8 port)

Required properties:
- mdc-gpios: GPIO line for the MDC clock line.
- mdio-gpios: GPIO line for the MDIO data line.
- reset-gpios: GPIO line for the reset signal.

Optional properties:
- realtek,disable-leds: if the LED drivers are not used in the
  hardware design this will disable them so they are not turned on
  and wasting power.

Required subnodes:

- interrupt-controller

  This defines an interrupt controller with an IRQ line (typically
  a GPIO) that will demultiplex and handle the interrupt from the single
  interrupt line coming out of one of the SMI-based chips. It most
  importantly provides link up/down interrupts to the PHY blocks inside
  the ASIC.

Required properties of interrupt-controller:

- interrupt: parent interrupt, see interrupt-controller/interrupts.txt
- interrupt-controller: see interrupt-controller/interrupts.txt
- #address-cells: should be <0>
- #interrupt-cells: should be <1>

- mdio

  This defines the internal MDIO bus of the SMI device, mostly for the
  purpose of being able to hook the interrupts to the right PHY and
  the right PHY to the corresponding port.

Required properties of mdio:

- compatible: should be set to "realtek,smi-mdio" for all SMI devices

See net/mdio.txt for additional MDIO bus properties.

See net/dsa/dsa.txt for a list of additional required and optional properties
and subnodes of DSA switches.

Examples:

switch {
	compatible = "realtek,rtl8366rb";
	/* 22 = MDIO (has input reads), 21 = MDC (clock, output only) */
	mdc-gpios = <&gpio0 21 GPIO_ACTIVE_HIGH>;
	mdio-gpios = <&gpio0 22 GPIO_ACTIVE_HIGH>;
	reset-gpios = <&gpio0 14 GPIO_ACTIVE_LOW>;

	switch_intc: interrupt-controller {
		/* GPIO 15 provides the interrupt */
		interrupt-parent = <&gpio0>;
		interrupts = <15 IRQ_TYPE_LEVEL_LOW>;
		interrupt-controller;
		#address-cells = <0>;
		#interrupt-cells = <1>;
	};

	ports {
		#address-cells = <1>;
		#size-cells = <0>;
		reg = <0>;
		port@0 {
			reg = <0>;
			label = "lan0";
			phy-handle = <&phy0>;
		};
		port@1 {
			reg = <1>;
			label = "lan1";
			phy-handle = <&phy1>;
		};
		port@2 {
			reg = <2>;
			label = "lan2";
			phy-handle = <&phy2>;
		};
		port@3 {
			reg = <3>;
			label = "lan3";
			phy-handle = <&phy3>;
		};
		port@4 {
			reg = <4>;
			label = "wan";
			phy-handle = <&phy4>;
		};
		port@5 {
			reg = <5>;
			label = "cpu";
			ethernet = <&gmac0>;
			phy-mode = "rgmii";
			fixed-link {
				speed = <1000>;
				full-duplex;
			};
		};
	};

	mdio {
		compatible = "realtek,smi-mdio", "dsa-mdio";
		#address-cells = <1>;
		#size-cells = <0>;

		phy0: phy@0 {
			reg = <0>;
			interrupt-parent = <&switch_intc>;
			interrupts = <0>;
		};
		phy1: phy@1 {
			reg = <1>;
			interrupt-parent = <&switch_intc>;
			interrupts = <1>;
		};
		phy2: phy@2 {
			reg = <2>;
			interrupt-parent = <&switch_intc>;
			interrupts = <2>;
		};
		phy3: phy@3 {
			reg = <3>;
			interrupt-parent = <&switch_intc>;
			interrupts = <3>;
		};
		phy4: phy@4 {
			reg = <4>;
			interrupt-parent = <&switch_intc>;
			interrupts = <12>;
		};
	};
};
