TI SoC Ethernet Switch Controller Device Tree Bindings
------------------------------------------------------

Required properties:
- compatible		: Should be one of the below:-
			  "ti,cpsw" for backward compatible
			  "ti,am335x-cpsw" for AM335x controllers
			  "ti,am4372-cpsw" for AM437x controllers
			  "ti,dra7-cpsw" for DRA7x controllers
- reg			: physical base address and size of the cpsw
			  registers map
- interrupts		: property with a value describing the interrupt
			  number
- interrupt-parent	: The parent interrupt controller
- cpdma_channels 	: Specifies number of channels in CPDMA
- ale_entries		: Specifies No of entries ALE can hold
- bd_ram_size		: Specifies internal descriptor RAM size
- mac_control		: Specifies Default MAC control register content
			  for the specific platform
- slaves		: Specifies number for slaves
- active_slave		: Specifies the slave to use for time stamping,
			  ethtool and SIOCGMIIPHY

Optional properties:
- ti,hwmods		: Must be "cpgmac0"
- dual_emac		: Specifies Switch to act as Dual EMAC
- syscon		: Phandle to the system control device node, which is
			  the control module device of the am33x
- mode-gpios		: Should be added if one/multiple gpio lines are
			  required to be driven so that cpsw data lines
			  can be connected to the phy via selective mux.
			  For example in dra72x-evm, pcf gpio has to be
			  driven low so that cpsw slave 0 and phy data
			  lines are connected via mux.
- cpts_clock_mult	: Numerator to convert input clock ticks into nanoseconds
- cpts_clock_shift	: Denominator to convert input clock ticks into nanoseconds
			  Mult and shift will be calculated basing on CPTS
			  rftclk frequency if both cpts_clock_shift and
			  cpts_clock_mult properties are not provided.

Slave Properties:
Required properties:
- phy-mode		: See ethernet.txt file in the same directory

Optional properties:
- dual_emac_res_vlan	: Specifies VID to be used to segregate the ports
- mac-address		: See ethernet.txt file in the same directory
- phy_id		: Specifies slave phy id (deprecated, use phy-handle)
- phy-handle		: See ethernet.txt file in the same directory

Slave sub-nodes:
- fixed-link		: See fixed-link.txt file in the same directory

Note: Exactly one of phy_id, phy-handle, or fixed-link must be specified.

Note: "ti,hwmods" field is used to fetch the base address and irq
resources from TI, omap hwmod data base during device registration.
Future plan is to migrate hwmod data base contents into device tree
blob so that, all the required data will be used from device tree dts
file.

Examples:

	mac: ethernet@4A100000 {
		compatible = "ti,cpsw";
		reg = <0x4A100000 0x1000>;
		interrupts = <55 0x4>;
		interrupt-parent = <&intc>;
		cpdma_channels = <8>;
		ale_entries = <1024>;
		bd_ram_size = <0x2000>;
		rx_descs = <64>;
		mac_control = <0x20>;
		slaves = <2>;
		active_slave = <0>;
		cpts_clock_mult = <0x80000000>;
		cpts_clock_shift = <29>;
		syscon = <&cm>;
		cpsw_emac0: slave@0 {
			phy_id = <&davinci_mdio>, <0>;
			phy-mode = "rgmii-txid";
			/* Filled in by U-Boot */
			mac-address = [ 00 00 00 00 00 00 ];
		};
		cpsw_emac1: slave@1 {
			phy_id = <&davinci_mdio>, <1>;
			phy-mode = "rgmii-txid";
			/* Filled in by U-Boot */
			mac-address = [ 00 00 00 00 00 00 ];
		};
	};

(or)
	mac: ethernet@4A100000 {
		compatible = "ti,cpsw";
		ti,hwmods = "cpgmac0";
		cpdma_channels = <8>;
		ale_entries = <1024>;
		bd_ram_size = <0x2000>;
		rx_descs = <64>;
		mac_control = <0x20>;
		slaves = <2>;
		active_slave = <0>;
		cpts_clock_mult = <0x80000000>;
		cpts_clock_shift = <29>;
		syscon = <&cm>;
		cpsw_emac0: slave@0 {
			phy_id = <&davinci_mdio>, <0>;
			phy-mode = "rgmii-txid";
			/* Filled in by U-Boot */
			mac-address = [ 00 00 00 00 00 00 ];
		};
		cpsw_emac1: slave@1 {
			phy_id = <&davinci_mdio>, <1>;
			phy-mode = "rgmii-txid";
			/* Filled in by U-Boot */
			mac-address = [ 00 00 00 00 00 00 ];
		};
	};
