Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 3f518509 authored by Marcin Wojtas's avatar Marcin Wojtas Committed by David S. Miller
Browse files

ethernet: Add new driver for Marvell Armada 375 network unit



This commit adds a new network driver for the network controller in Marvell
Armada 375 SoC.

Given the controller is very different from the ones in the other Marvell
SoCs that use the mv643xx_eth (Kirkwood, Orion, Discovery) and mvneta
(Armada 370/38x/XP) drivers, a new driver is needed.

Signed-off-by: default avatarMarcin Wojtas <mw@semihalf.com>
[Ezequiel: coding style cleanup]
Signed-off-by: default avatarEzequiel Garcia <ezequiel.garcia@free-electrons.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent b6428817
Loading
Loading
Loading
Loading
+61 −0
Original line number Original line Diff line number Diff line
* Marvell Armada 375 Ethernet Controller (PPv2)

Required properties:

- compatible: should be "marvell,armada-375-pp2"
- reg: addresses and length of the register sets for the device.
  Must contain the following register sets:
	- common controller registers
	- LMS registers
  In addition, at least one port register set is required.
- clocks: a pointer to the reference clocks for this device, consequently:
	- main controller clock
	- GOP clock
- clock-names: names of used clocks, must be "pp_clk" and "gop_clk".

The ethernet ports are represented by subnodes. At least one port is
required.

Required properties (port):

- interrupts: interrupt for the port
- port-id: should be '0' or '1' for ethernet ports, and '2' for the
           loopback port
- phy-mode: See ethernet.txt file in the same directory

Optional properties (port):

- marvell,loopback: port is loopback mode
- phy: a phandle to a phy node defining the PHY address (as the reg
  property, a single integer). Note: if this property isn't present,
  then fixed link is assumed, and the 'fixed-link' property is
  mandatory.

Example:

ethernet@f0000 {
	compatible = "marvell,armada-375-pp2";
	reg = <0xf0000 0xa000>,
	      <0xc0000 0x3060>,
	      <0xc4000 0x100>,
	      <0xc5000 0x100>;
	clocks = <&gateclk 3>, <&gateclk 19>;
	clock-names = "pp_clk", "gop_clk";
	status = "okay";

	eth0: eth0@c4000 {
		interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
		port-id = <0>;
		status = "okay";
		phy = <&phy0>;
		phy-mode = "gmii";
	};

	eth1: eth1@c5000 {
		interrupts = <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>;
		port-id = <1>;
		status = "okay";
		phy = <&phy3>;
		phy-mode = "gmii";
	};
};
+8 −0
Original line number Original line Diff line number Diff line
@@ -54,6 +54,14 @@ config MVNETA
	  driver, which should be used for the older Marvell SoCs
	  driver, which should be used for the older Marvell SoCs
	  (Dove, Orion, Discovery, Kirkwood).
	  (Dove, Orion, Discovery, Kirkwood).


config MVPP2
	tristate "Marvell Armada 375 network interface support"
	depends on MACH_ARMADA_375
	select MVMDIO
	---help---
	  This driver supports the network interface units in the
	  Marvell ARMADA 375 SoC.

config PXA168_ETH
config PXA168_ETH
	tristate "Marvell pxa168 ethernet support"
	tristate "Marvell pxa168 ethernet support"
	depends on CPU_PXA168
	depends on CPU_PXA168
+1 −0
Original line number Original line Diff line number Diff line
@@ -5,6 +5,7 @@
obj-$(CONFIG_MVMDIO) += mvmdio.o
obj-$(CONFIG_MVMDIO) += mvmdio.o
obj-$(CONFIG_MV643XX_ETH) += mv643xx_eth.o
obj-$(CONFIG_MV643XX_ETH) += mv643xx_eth.o
obj-$(CONFIG_MVNETA) += mvneta.o
obj-$(CONFIG_MVNETA) += mvneta.o
obj-$(CONFIG_MVPP2) += mvpp2.o
obj-$(CONFIG_PXA168_ETH) += pxa168_eth.o
obj-$(CONFIG_PXA168_ETH) += pxa168_eth.o
obj-$(CONFIG_SKGE) += skge.o
obj-$(CONFIG_SKGE) += skge.o
obj-$(CONFIG_SKY2) += sky2.o
obj-$(CONFIG_SKY2) += sky2.o
+6393 −0

File added.

Preview size limit exceeded, changes collapsed.