Documentation / devicetree / bindings / net / cavium-pip.txt


Based on kernel version 6.8. Page generated on 2024-03-11 21:26 EST.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99
* PIP Ethernet nexus.

The PIP Ethernet nexus can control several data packet input/output
devices.  The devices have a two level grouping scheme.  There may be
several interfaces, and each interface may have several ports.  These
ports might be an individual Ethernet PHY.


Properties for the PIP nexus:
- compatible: "cavium,octeon-3860-pip"

  Compatibility with all cn3XXX, cn5XXX and cn6XXX SOCs.

- reg: The base address of the PIP's register bank.

- #address-cells: Must be <1>.

- #size-cells: Must be <0>.

Properties for PIP interfaces which is a child the PIP nexus:
- compatible: "cavium,octeon-3860-pip-interface"

  Compatibility with all cn3XXX, cn5XXX and cn6XXX SOCs.

- reg: The interface number.

- #address-cells: Must be <1>.

- #size-cells: Must be <0>.

Properties for PIP port which is a child the PIP interface:
- compatible: "cavium,octeon-3860-pip-port"

  Compatibility with all cn3XXX, cn5XXX and cn6XXX SOCs.

- reg: The port number within the interface group.

- phy-handle: Optional, see ethernet.txt file in the same directory.

- rx-delay: Delay value for RGMII receive clock. Optional. Disabled if 0.
  Value range is 1-31, and mapping to the actual delay varies depending on HW.

- tx-delay: Delay value for RGMII transmit clock. Optional. Disabled if 0.
  Value range is 1-31, and mapping to the actual delay varies depending on HW.

Example:

	pip@11800a0000000 {
		compatible = "cavium,octeon-3860-pip";
		#address-cells = <1>;
		#size-cells = <0>;
		reg = <0x11800 0xa0000000 0x0 0x2000>;

		interface@0 {
			compatible = "cavium,octeon-3860-pip-interface";
			#address-cells = <1>;
			#size-cells = <0>;
			reg = <0>; /* interface */

			ethernet@0 {
				compatible = "cavium,octeon-3860-pip-port";
				reg = <0x0>; /* Port */
				local-mac-address = [ 00 0f b7 10 63 60 ];
				phy-handle = <&phy2>;
			};
			ethernet@1 {
				compatible = "cavium,octeon-3860-pip-port";
				reg = <0x1>; /* Port */
				local-mac-address = [ 00 0f b7 10 63 61 ];
				phy-handle = <&phy3>;
			};
			ethernet@2 {
				compatible = "cavium,octeon-3860-pip-port";
				reg = <0x2>; /* Port */
				local-mac-address = [ 00 0f b7 10 63 62 ];
				phy-handle = <&phy4>;
			};
			ethernet@3 {
				compatible = "cavium,octeon-3860-pip-port";
				reg = <0x3>; /* Port */
				local-mac-address = [ 00 0f b7 10 63 63 ];
				phy-handle = <&phy5>;
			};
		};

		interface@1 {
			compatible = "cavium,octeon-3860-pip-interface";
			#address-cells = <1>;
			#size-cells = <0>;
			reg = <1>; /* interface */

			ethernet@0 {
				compatible = "cavium,octeon-3860-pip-port";
				reg = <0x0>; /* Port */
				local-mac-address = [ 00 0f b7 10 63 64 ];
				phy-handle = <&phy6>;
			};
		};
	};