TI J721E VIRT CPSWxg Ethernet mac
======================================

Required properties:
- compatible       : Should be "ti,j721e-cpsw-virt-mac" for J721E Family SoCs
- interrupt-parent : The parent interrupt controller - should point on TI
		System Control Interface (TI-SCI) IRQCHIP phandle [1]
- dma-coherent	: indicates that device operates with coherent memory.
- dmas		: list of UDMA controller channel specifiers [2]
- dma-names	: should be "tx0", "tx1", "tx2", "tx3", "tx4", "tx5", "tx6",
		"tx7", "rx";
- ti,psil-base : CPSWxg NUSS PSI-L endpoint thread ID base of the UDMA-P
		channels. The PSI-L endpoint node thread configuration
		subnodes must be present present with ti,psil-configX naming
		convention, where X is the thread ID offset [2].
- ti,remote-name: Name of the connected rpmsg-kdrv device represented
		by Eth switch FW running on the on of R5F cores.
		Should be "mpu_1_0_ethswitch-device-0" for J721E Family SoCs.

Required Sub-nodes:
- ti,psil-config0..ti,psil-config7 : PSI-L endpoint node threads configuration
		subnodes [2]

	Required properties:
	- linux,udma-mode : should be UDMA_PKT_MODE
	- statictr-type : should be PSIL_STATIC_TR_NONE
	- ti,needs-epib : CPSW NUSS provides/accepts EPIB with each packet
	- ti,psd-size	: CPSW NUSS provides/accepts 16 bytes of PS data with
			each packet

- virt_emac_port: contains VIRT CPSWxg Ethernet mac port descriptions
	Optional properties - all ports:
	- ti,label : Describes the label associated with this port
	- local-mac-address: array of 6 bytes, the assigned MAC address [3].
	- ti,rx-flow-id-base: Debug only. Defines the RX flow id to forcibly
			    used by driver.

The MAC address provided by Eth switch FW will be used if neither of
"mac-address" and "local-mac-address" is defined.

References:
 [1] Documentation/devicetree/bindings/interrupt-controller/ti,sci-irq.txt
 [2] Documentation/devicetree/bindings/dma/ti/k3-udma.txt
 [3] See Documentation/devicetree/bindings/net/ethernet.txt

Examples:
cpsw9g_virt_mac: main_r5fss_cpsw9g_virt_mac0 {
	compatible = "ti,j721e-cpsw-virt-mac";
	dma-coherent;
	ti,psil-base = <0x4a00>;
	ti,remote-name = "mpu_1_0_ethswitch-device-0";
	interrupt-parent = <&main_udmass_inta>;

	dmas = <&main_udmap &cpsw9g_virt_mac 0 UDMA_DIR_TX>,
	       <&main_udmap &cpsw9g_virt_mac 1 UDMA_DIR_TX>,
	       <&main_udmap &cpsw9g_virt_mac 2 UDMA_DIR_TX>,
	       <&main_udmap &cpsw9g_virt_mac 3 UDMA_DIR_TX>,
	       <&main_udmap &cpsw9g_virt_mac 4 UDMA_DIR_TX>,
	       <&main_udmap &cpsw9g_virt_mac 5 UDMA_DIR_TX>,
	       <&main_udmap &cpsw9g_virt_mac 6 UDMA_DIR_TX>,
	       <&main_udmap &cpsw9g_virt_mac 0 UDMA_DIR_RX>;
	dma-names = "tx0", "tx1", "tx2", "tx3",
		    "tx4", "tx5", "tx6",
		    "rx";

	virt_emac_port {
		ti,label = "virt-port";
		/* local-mac-address = [0 0 0 0 0 0]; */
	};

	ti,psil-config0 {
		linux,udma-mode = <UDMA_PKT_MODE>;
		statictr-type = <PSIL_STATIC_TR_NONE>;
		ti,needs-epib;
		ti,psd-size = <16>;
	};

	ti,psil-config1 {
		linux,udma-mode = <UDMA_PKT_MODE>;
		statictr-type = <PSIL_STATIC_TR_NONE>;
		ti,needs-epib;
		ti,psd-size = <16>;
	};

	ti,psil-config2 {
		linux,udma-mode = <UDMA_PKT_MODE>;
		statictr-type = <PSIL_STATIC_TR_NONE>;
		ti,needs-epib;
		ti,psd-size = <16>;
	};

	ti,psil-config3 {
		linux,udma-mode = <UDMA_PKT_MODE>;
		statictr-type = <PSIL_STATIC_TR_NONE>;
		ti,needs-epib;
		ti,psd-size = <16>;
	};

	ti,psil-config4 {
		linux,udma-mode = <UDMA_PKT_MODE>;
		statictr-type = <PSIL_STATIC_TR_NONE>;
		ti,needs-epib;
		ti,psd-size = <16>;
	};

	ti,psil-config5 {
		linux,udma-mode = <UDMA_PKT_MODE>;
		statictr-type = <PSIL_STATIC_TR_NONE>;
		ti,needs-epib;
		ti,psd-size = <16>;
	};

	ti,psil-config6 {
		linux,udma-mode = <UDMA_PKT_MODE>;
		statictr-type = <PSIL_STATIC_TR_NONE>;
		ti,needs-epib;
		ti,psd-size = <16>;
	};

	ti,psil-config7 {
		linux,udma-mode = <UDMA_PKT_MODE>;
		statictr-type = <PSIL_STATIC_TR_NONE>;
		ti,needs-epib;
		ti,psd-size = <16>;
	};
};
