[PATCH] PPC 44x EMAC driver: add 440GR support

Add PowerPC 440GR support

Signed-off-by: Stefan Roese <sr@denx.de>
Signed-off-by: Eugene Surovegin <ebs@ebshome.net>
Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
This commit is contained in:
Eugene Surovegin 2005-10-29 12:45:31 -07:00 committed by Jeff Garzik
parent 7ad8a89c2e
commit 1b195916dd
4 changed files with 8 additions and 6 deletions

View File

@ -1203,7 +1203,7 @@ config IBM_EMAC_RX_SKB_HEADROOM
config IBM_EMAC_PHY_RX_CLK_FIX config IBM_EMAC_PHY_RX_CLK_FIX
bool "PHY Rx clock workaround" bool "PHY Rx clock workaround"
depends on IBM_EMAC && (405EP || 440GX || 440EP) depends on IBM_EMAC && (405EP || 440GX || 440EP || 440GR)
help help
Enable this if EMAC attached to a PHY which doesn't generate Enable this if EMAC attached to a PHY which doesn't generate
RX clock if there is no link, if this is the case, you will RX clock if there is no link, if this is the case, you will

View File

@ -26,7 +26,8 @@
/* This is a simple check to prevent use of this driver on non-tested SoCs */ /* This is a simple check to prevent use of this driver on non-tested SoCs */
#if !defined(CONFIG_405GP) && !defined(CONFIG_405GPR) && !defined(CONFIG_405EP) && \ #if !defined(CONFIG_405GP) && !defined(CONFIG_405GPR) && !defined(CONFIG_405EP) && \
!defined(CONFIG_440GP) && !defined(CONFIG_440GX) && !defined(CONFIG_440SP) && \ !defined(CONFIG_440GP) && !defined(CONFIG_440GX) && !defined(CONFIG_440SP) && \
!defined(CONFIG_440EP) && !defined(CONFIG_NP405H) && !defined(CONFIG_440SPE) !defined(CONFIG_440EP) && !defined(CONFIG_NP405H) && !defined(CONFIG_440SPE) && \
!defined(CONFIG_440GR)
#error "Unknown SoC. Please, check chip user manual and make sure EMAC defines are OK" #error "Unknown SoC. Please, check chip user manual and make sure EMAC defines are OK"
#endif #endif

View File

@ -87,10 +87,11 @@ MODULE_LICENSE("GPL");
*/ */
static u32 busy_phy_map; static u32 busy_phy_map;
#if defined(CONFIG_IBM_EMAC_PHY_RX_CLK_FIX) && (defined(CONFIG_405EP) || defined(CONFIG_440EP)) #if defined(CONFIG_IBM_EMAC_PHY_RX_CLK_FIX) && \
(defined(CONFIG_405EP) || defined(CONFIG_440EP) || defined(CONFIG_440GR))
/* 405EP has "EMAC to PHY Control Register" (CPC0_EPCTL) which can help us /* 405EP has "EMAC to PHY Control Register" (CPC0_EPCTL) which can help us
* with PHY RX clock problem. * with PHY RX clock problem.
* 440EP has more sane SDR0_MFR register implementation than 440GX, which * 440EP/440GR has more sane SDR0_MFR register implementation than 440GX, which
* also allows controlling each EMAC clock * also allows controlling each EMAC clock
*/ */
static inline void EMAC_RX_CLK_TX(int idx) static inline void EMAC_RX_CLK_TX(int idx)
@ -100,7 +101,7 @@ static inline void EMAC_RX_CLK_TX(int idx)
#if defined(CONFIG_405EP) #if defined(CONFIG_405EP)
mtdcr(0xf3, mfdcr(0xf3) | (1 << idx)); mtdcr(0xf3, mfdcr(0xf3) | (1 << idx));
#else /* CONFIG_440EP */ #else /* CONFIG_440EP || CONFIG_440GR */
SDR_WRITE(DCRN_SDR_MFR, SDR_READ(DCRN_SDR_MFR) | (0x08000000 >> idx)); SDR_WRITE(DCRN_SDR_MFR, SDR_READ(DCRN_SDR_MFR) | (0x08000000 >> idx));
#endif #endif

View File

@ -32,7 +32,7 @@
* reflect the fact that 40x and 44x have slightly different MALs. --ebs * reflect the fact that 40x and 44x have slightly different MALs. --ebs
*/ */
#if defined(CONFIG_405GP) || defined(CONFIG_405GPR) || defined(CONFIG_405EP) || \ #if defined(CONFIG_405GP) || defined(CONFIG_405GPR) || defined(CONFIG_405EP) || \
defined(CONFIG_440EP) || defined(CONFIG_NP405H) defined(CONFIG_440EP) || defined(CONFIG_440GR) || defined(CONFIG_NP405H)
#define MAL_VERSION 1 #define MAL_VERSION 1
#elif defined(CONFIG_440GP) || defined(CONFIG_440GX) || defined(CONFIG_440SP) || \ #elif defined(CONFIG_440GP) || defined(CONFIG_440GX) || defined(CONFIG_440SP) || \
defined(CONFIG_440SPE) defined(CONFIG_440SPE)