[PATCH v4 05/10] net/fec: add dual fec support for mx28
From: Shawn Guo <hidden>
Date: 2011-01-11 11:38:20
Also in:
netdev
On Tue, Jan 11, 2011 at 11:27:17AM +0100, Sascha Hauer wrote:
On Thu, Jan 06, 2011 at 03:13:13PM +0800, Shawn Guo wrote:quoted
This patch is to add mx28 dual fec support. Here are some key notes for mx28 fec controller. - The mx28 fec controller naming ENET-MAC is a different IP from FEC used on other i.mx variants. But they are basically compatible on software interface, so it's possible to share the same driver. - ENET-MAC design on mx28 made an improper assumption that it runs on a big-endian system. As the result, driver has to swap every frame going to and coming from the controller. - The external phys can only be configured by fec0, which means fec1 can not work independently and both phys need to be configured by mii_bus attached on fec0. - ENET-MAC reset will get mac address registers reset too. - ENET-MAC MII/RMII mode and 10M/100M speed are configured differently FEC. - ETHER_EN bit must be set to get ENET-MAC interrupt work. Signed-off-by: Shawn Guo <redacted> --- Changes for v4: - Use #ifndef CONFIG_ARM to include ColdFire header files - Define quirk bits in id_entry.driver_data to handle controller difference, which is more scalable than using device name - Define fec0_mii_bus as a static function in fec_enet_mii_init to fold the mii_bus instance attached on fec0 - Use cpu_to_be32 over __swab32 in function swap_buffer Changes for v3: - Move v2 changes into patch #3 - Use device name to check if it's running on ENET-MAC drivers/net/Kconfig | 7 ++- drivers/net/fec.c | 148 +++++++++++++++++++++++++++++++++++++++++++++------ drivers/net/fec.h | 5 +- 3 files changed, 139 insertions(+), 21 deletions(-)diff --git a/drivers/net/Kconfig b/drivers/net/Kconfig index 4f1755b..f34629b 100644 --- a/drivers/net/Kconfig +++ b/drivers/net/Kconfig@@ -1944,18 +1944,19 @@ config 68360_ENET config FEC bool "FEC ethernet controller (of ColdFire and some i.MX CPUs)" depends on M523x || M527x || M5272 || M528x || M520x || M532x || \ - MACH_MX27 || ARCH_MX35 || ARCH_MX25 || ARCH_MX5 + MACH_MX27 || ARCH_MX35 || ARCH_MX25 || ARCH_MX5 || SOC_IMX28 select PHYLIB help Say Y here if you want to use the built-in 10/100 Fast ethernet controller on some Motorola ColdFire and Freescale i.MX processors. config FEC2 - bool "Second FEC ethernet controller (on some ColdFire CPUs)" + bool "Second FEC ethernet controller" depends on FEC help Say Y here if you want to use the second built-in 10/100 Fast - ethernet controller on some Motorola ColdFire processors. + ethernet controller on some Motorola ColdFire and Freescale + i.MX processors.This option is used nowhere and should be removed. Certainly it does not have the effect of enabling the second ethernet controller.
As David has merged it, I would send a follow-up patch to remove it. -- Regards, Shawn