Thomas Petazzoni | aee4411 | 2017-03-07 16:52:59 +0100 | [diff] [blame] | 1 | * Marvell Armada 375 Ethernet Controller (PPv2.1) |
| 2 | Marvell Armada 7K/8K Ethernet Controller (PPv2.2) |
Marcin Wojtas | 3f51850 | 2014-07-10 16:52:13 -0300 | [diff] [blame] | 3 | |
| 4 | Required properties: |
| 5 | |
Thomas Petazzoni | aee4411 | 2017-03-07 16:52:59 +0100 | [diff] [blame] | 6 | - compatible: should be one of: |
| 7 | "marvell,armada-375-pp2" |
| 8 | "marvell,armada-7k-pp2" |
Marcin Wojtas | 3f51850 | 2014-07-10 16:52:13 -0300 | [diff] [blame] | 9 | - reg: addresses and length of the register sets for the device. |
Thomas Petazzoni | aee4411 | 2017-03-07 16:52:59 +0100 | [diff] [blame] | 10 | For "marvell,armada-375-pp2", must contain the following register |
| 11 | sets: |
Marcin Wojtas | 3f51850 | 2014-07-10 16:52:13 -0300 | [diff] [blame] | 12 | - common controller registers |
| 13 | - LMS registers |
Thomas Petazzoni | aee4411 | 2017-03-07 16:52:59 +0100 | [diff] [blame] | 14 | - one register area per Ethernet port |
| 15 | For "marvell,armada-7k-pp2", must contain the following register |
| 16 | sets: |
| 17 | - packet processor registers |
| 18 | - networking interfaces registers |
| 19 | |
| 20 | - clocks: pointers to the reference clocks for this device, consequently: |
| 21 | - main controller clock (for both armada-375-pp2 and armada-7k-pp2) |
| 22 | - GOP clock (for both armada-375-pp2 and armada-7k-pp2) |
| 23 | - MG clock (only for armada-7k-pp2) |
| 24 | - clock-names: names of used clocks, must be "pp_clk", "gop_clk" and |
| 25 | "mg_clk" (the latter only for armada-7k-pp2). |
Marcin Wojtas | 3f51850 | 2014-07-10 16:52:13 -0300 | [diff] [blame] | 26 | |
| 27 | The ethernet ports are represented by subnodes. At least one port is |
| 28 | required. |
| 29 | |
| 30 | Required properties (port): |
| 31 | |
| 32 | - interrupts: interrupt for the port |
Thomas Petazzoni | aee4411 | 2017-03-07 16:52:59 +0100 | [diff] [blame] | 33 | - port-id: ID of the port from the MAC point of view |
| 34 | - gop-port-id: only for marvell,armada-7k-pp2, ID of the port from the |
| 35 | GOP (Group Of Ports) point of view. This ID is used to index the |
| 36 | per-port registers in the second register area. |
Marcin Wojtas | 3f51850 | 2014-07-10 16:52:13 -0300 | [diff] [blame] | 37 | - phy-mode: See ethernet.txt file in the same directory |
| 38 | |
| 39 | Optional properties (port): |
| 40 | |
| 41 | - marvell,loopback: port is loopback mode |
| 42 | - phy: a phandle to a phy node defining the PHY address (as the reg |
Thomas Petazzoni | 4b741bc | 2017-02-02 17:47:44 +0100 | [diff] [blame] | 43 | property, a single integer). |
Marcin Wojtas | 3f51850 | 2014-07-10 16:52:13 -0300 | [diff] [blame] | 44 | |
Thomas Petazzoni | aee4411 | 2017-03-07 16:52:59 +0100 | [diff] [blame] | 45 | Example for marvell,armada-375-pp2: |
Marcin Wojtas | 3f51850 | 2014-07-10 16:52:13 -0300 | [diff] [blame] | 46 | |
| 47 | ethernet@f0000 { |
| 48 | compatible = "marvell,armada-375-pp2"; |
| 49 | reg = <0xf0000 0xa000>, |
| 50 | <0xc0000 0x3060>, |
| 51 | <0xc4000 0x100>, |
| 52 | <0xc5000 0x100>; |
| 53 | clocks = <&gateclk 3>, <&gateclk 19>; |
| 54 | clock-names = "pp_clk", "gop_clk"; |
| 55 | status = "okay"; |
| 56 | |
| 57 | eth0: eth0@c4000 { |
| 58 | interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>; |
| 59 | port-id = <0>; |
| 60 | status = "okay"; |
| 61 | phy = <&phy0>; |
| 62 | phy-mode = "gmii"; |
| 63 | }; |
| 64 | |
| 65 | eth1: eth1@c5000 { |
| 66 | interrupts = <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>; |
| 67 | port-id = <1>; |
| 68 | status = "okay"; |
| 69 | phy = <&phy3>; |
| 70 | phy-mode = "gmii"; |
| 71 | }; |
| 72 | }; |
Thomas Petazzoni | aee4411 | 2017-03-07 16:52:59 +0100 | [diff] [blame] | 73 | |
| 74 | Example for marvell,armada-7k-pp2: |
| 75 | |
| 76 | cpm_ethernet: ethernet@0 { |
| 77 | compatible = "marvell,armada-7k-pp22"; |
| 78 | reg = <0x0 0x100000>, <0x129000 0xb000>; |
| 79 | clocks = <&cpm_syscon0 1 3>, <&cpm_syscon0 1 9>, <&cpm_syscon0 1 5>; |
| 80 | clock-names = "pp_clk", "gop_clk", "gp_clk"; |
| 81 | |
| 82 | eth0: eth0 { |
| 83 | interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>; |
| 84 | port-id = <0>; |
| 85 | gop-port-id = <0>; |
| 86 | }; |
| 87 | |
| 88 | eth1: eth1 { |
| 89 | interrupts = <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>; |
| 90 | port-id = <1>; |
| 91 | gop-port-id = <2>; |
| 92 | }; |
| 93 | |
| 94 | eth2: eth2 { |
| 95 | interrupts = <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>; |
| 96 | port-id = <2>; |
| 97 | gop-port-id = <3>; |
| 98 | }; |
| 99 | }; |