linux/drivers/net/ethernet
Stefan Agner 3d125f9c91 net: fec: fix MDIO bus assignement for dual fec SoC's
On i.MX28, the MDIO bus is shared between the two FEC instances.
The driver makes sure that the second FEC uses the MDIO bus of the
first FEC. This is done conditionally if FEC_QUIRK_ENET_MAC is set.
However, in newer designs, such as Vybrid or i.MX6SX, each FEC MAC
has its own MDIO bus. Simply removing the quirk FEC_QUIRK_ENET_MAC
is not an option since other logic, triggered by this quirk, is
still needed.

Furthermore, there are board designs which use the same MDIO bus
for both PHY's even though the second bus would be available on the
SoC side. Such layout are popular since it saves pins on SoC side.
Due to the above quirk, those boards currently do work fine. The
boards in the mainline tree with such a layout are:
- Freescale Vybrid Tower with TWR-SER2 (vf610-twr.dts)
- Freescale i.MX6 SoloX SDB Board (imx6sx-sdb.dts)

This patch adds a new quirk FEC_QUIRK_SINGLE_MDIO for i.MX28, which
makes sure that the MDIO bus of the first FEC is used in any case.

However, the boards above do have a SoC with a MDIO bus for each FEC
instance. But the PHY's are not connected in a 1:1 configuration. A
proper device tree description is needed to allow the driver to
figure out where to find its PHY. This patch fixes that shortcoming
by adding a MDIO bus child node to the first FEC instance, along
with the two PHY's on that bus, and making use of the phy-handle
property to add a reference to the PHY's.

Acked-by: Sascha Hauer <s.hauer@pengutronix.de>
Signed-off-by: Stefan Agner <stefan@agner.ch>
Signed-off-by: David S. Miller <davem@davemloft.net>
2015-01-14 00:27:10 -05:00
..
3com net: typhoon: Remove redundant casts 2014-10-24 00:41:31 -04:00
8390 ne2k-pci: Add pci_disable_device in error handling 2014-12-27 02:20:55 -05:00
adaptec
adi
aeroflex
agere
allwinner net: sun4i-emac: fix error return code 2014-12-31 19:19:00 -05:00
alteon
altera Altera TSE: Add missing phydev 2015-01-02 15:45:10 -05:00
amd Driver core patches for 3.19-rc1 2014-12-14 16:10:09 -08:00
apm Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2014-11-06 22:01:18 -05:00
apple
arc
atheros alx: fix alx_poll() 2015-01-11 21:45:50 -05:00
broadcom net: Generalize ndo_gso_check to ndo_features_check 2014-12-26 17:20:56 -05:00
brocade net: incorrect use of init_completion fixup 2014-12-26 17:07:50 -05:00
cadence net/at91_ether: prepare and unprepare clock 2015-01-12 15:35:47 -05:00
calxeda
chelsio cxgb4vf: Initialize mdio_addr before using it 2015-01-13 16:31:52 -05:00
cirrus cirrus: cs89x0: fix time comparison 2014-12-15 11:44:21 -05:00
cisco enic: free all rq buffs when allocation fails 2015-01-02 16:43:45 -05:00
davicom Driver core patches for 3.19-rc1 2014-12-14 16:10:09 -08:00
dec uli526x: fix misspelling of current function in string 2014-12-09 16:18:46 -05:00
dlink
emulex net: Generalize ndo_gso_check to ndo_features_check 2014-12-26 17:20:56 -05:00
faraday
freescale net: fec: fix MDIO bus assignement for dual fec SoC's 2015-01-14 00:27:10 -05:00
fujitsu
hisilicon
hp hp100: fix misspelling of current function in string 2014-12-09 16:18:47 -05:00
i825xx
ibm Driver core patches for 3.19-rc1 2014-12-14 16:10:09 -08:00
icplus
intel i40e: Fix bug with TCP over IPv6 over VXLAN 2015-01-06 17:15:03 -08:00
marvell Driver core patches for 3.19-rc1 2014-12-14 16:10:09 -08:00
mellanox net/mlx4_core: Fix error flow in mlx4_init_hca() 2015-01-02 15:41:29 -05:00
micrel net: ethernet: micrel: ksz884x.c: Remove unused function 2014-12-22 16:23:09 -05:00
microchip
moxa net: ethernet: moxa: drop owner assignment from platform_drivers 2014-10-20 16:21:10 +02:00
myricom myri10ge: fix error return code 2014-12-31 19:19:00 -05:00
natsemi Driver core patches for 3.19-rc1 2014-12-14 16:10:09 -08:00
neterion
nuvoton net: ethernet: nuvoton: drop owner assignment from platform_drivers 2014-10-20 16:21:10 +02:00
nvidia
nxp
octeon net: ethernet: octeon: drop owner assignment from platform_drivers 2014-10-20 16:21:11 +02:00
oki-semi
packetengines
pasemi net-PA Semi: Deletion of unnecessary checks before the function call "pci_dev_put" 2014-12-05 21:14:20 -08:00
qlogic qla3xxx: don't allow never end busy loop 2015-01-06 17:41:36 -05:00
qualcomm net: qualcomm: Fix dependency 2014-11-11 18:12:32 -05:00
rdc
realtek 8139too: Add netif_napi_del in the driver 2014-12-22 16:31:58 -05:00
renesas sh_eth: Fix access to TRSCER register 2015-01-08 20:06:54 -08:00
rocker rocker: remove swdev mode 2014-12-09 18:24:47 -05:00
samsung Driver core patches for 3.19-rc1 2014-12-14 16:10:09 -08:00
seeq net: ethernet: seeq: drop owner assignment from platform_drivers 2014-10-20 16:21:12 +02:00
sfc ethtool: Support for configurable RSS hash function 2014-12-08 21:07:10 -05:00
sgi net: ethernet: sgi: drop owner assignment from platform_drivers 2014-10-20 16:21:12 +02:00
silan
sis
smsc net: smc91x: Fix build without gpiolib 2014-12-15 11:46:54 -05:00
stmicro net: ethernet: stmicro: stmmac: drop owner assignment from platform_drivers 2014-12-22 16:30:00 -05:00
sun sunvnet: fix a memory leak in vnet_handle_offloads 2014-12-19 13:19:45 -05:00
tehuti
ti drivers: net: cpsw: fix multicast flush in dual emac mode 2015-01-13 16:54:23 -05:00
tile
toshiba
tundra net: ethernet: tundra: drop owner assignment from platform_drivers 2014-10-20 16:21:13 +02:00
via net: ethernet: via: drop owner assignment from platform_drivers 2014-10-20 16:21:14 +02:00
wiznet Driver core patches for 3.19-rc1 2014-12-14 16:10:09 -08:00
xilinx net: axienet: fix error return code 2014-12-31 19:19:00 -05:00
xircom
xscale
dnet.c net: dnet: fix dnet_poll() 2015-01-11 21:44:55 -05:00
dnet.h
ec_bhf.c
ethoc.c
fealnx.c
jme.c jme: replace calls to redundant function 2014-12-12 15:15:41 -05:00
jme.h
Kconfig net: s6gmac: remove driver 2014-12-22 16:29:03 -05:00
korina.c
lantiq_etop.c
Makefile net: s6gmac: remove driver 2014-12-22 16:29:03 -05:00
netx-eth.c