diff options
author | Greg Ungerer <gerg@uclinux.org> | 2010-03-10 07:37:06 -0800 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2010-03-10 07:37:06 -0800 |
commit | 717ea4b3474852057b1ce2c639ce219f4f8d3a8d (patch) | |
tree | 487c597b8cff1a8697daca04cc2da7559332c3fa /drivers/net/smc91x.h | |
parent | 7f29a3baa825725d29db399663790d15c78cddcf (diff) | |
download | op-kernel-dev-717ea4b3474852057b1ce2c639ce219f4f8d3a8d.zip op-kernel-dev-717ea4b3474852057b1ce2c639ce219f4f8d3a8d.tar.gz |
net: add ColdFire support to the smc91x driver
Some embedded ColdFire based boards use the SMC 91x family of ethernet
devices. (For example the Freescale M5249C3 and MoretonBay NETtel).
Add IO access support to the SMC91x driver, and allow this driver to
be configured for ColdFire platforms.
Signed-off-by: Greg Ungerer <gerg@uclinux.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/smc91x.h')
-rw-r--r-- | drivers/net/smc91x.h | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/drivers/net/smc91x.h b/drivers/net/smc91x.h index a6ee883..8d2772c 100644 --- a/drivers/net/smc91x.h +++ b/drivers/net/smc91x.h @@ -344,6 +344,34 @@ static inline void LPD7_SMC_outsw (unsigned char* a, int r, #define SMC_IRQ_FLAGS IRQF_TRIGGER_HIGH +#elif defined(CONFIG_COLDFIRE) + +#define SMC_CAN_USE_8BIT 0 +#define SMC_CAN_USE_16BIT 1 +#define SMC_CAN_USE_32BIT 0 +#define SMC_NOWAIT 1 + +static inline void mcf_insw(void *a, unsigned char *p, int l) +{ + u16 *wp = (u16 *) p; + while (l-- > 0) + *wp++ = readw(a); +} + +static inline void mcf_outsw(void *a, unsigned char *p, int l) +{ + u16 *wp = (u16 *) p; + while (l-- > 0) + writew(*wp++, a); +} + +#define SMC_inw(a, r) _swapw(readw((a) + (r))) +#define SMC_outw(v, a, r) writew(_swapw(v), (a) + (r)) +#define SMC_insw(a, r, p, l) mcf_insw(a + r, p, l) +#define SMC_outsw(a, r, p, l) mcf_outsw(a + r, p, l) + +#define SMC_IRQ_FLAGS (IRQF_DISABLED) + #else /* |