summaryrefslogtreecommitdiffstats
path: root/drivers/net/smc91x.h
diff options
context:
space:
mode:
authorPete Popov <ppopov@embeddedalley.com>2005-11-10 04:46:05 +0100
committerJeff Garzik <jgarzik@pobox.com>2005-11-11 14:32:47 +0100
commit557934554655ac119d96a1bdb6ed75319bb9d1b1 (patch)
treebe50370f30729f13e5488162369861c8bad4f9aa /drivers/net/smc91x.h
parent[PATCH] SAA9730: Driver overhaul (diff)
downloadlinux-557934554655ac119d96a1bdb6ed75319bb9d1b1.tar.xz
linux-557934554655ac119d96a1bdb6ed75319bb9d1b1.zip
[PATCH] smc91x: DB1200 support.
The following patch support the SMC9111 present on DB1200 boards. Signed-off-by: Nicolas Pitre <nico@cam.org> Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
Diffstat (limited to '')
-rw-r--r--drivers/net/smc91x.h32
1 files changed, 32 insertions, 0 deletions
diff --git a/drivers/net/smc91x.h b/drivers/net/smc91x.h
index 817f200742c3..a10cd184d597 100644
--- a/drivers/net/smc91x.h
+++ b/drivers/net/smc91x.h
@@ -289,6 +289,38 @@ static inline void SMC_outsw (unsigned long a, int r, unsigned char* p, int l)
#define RPC_LSA_DEFAULT RPC_LED_TX_RX
#define RPC_LSB_DEFAULT RPC_LED_100_10
+#elif defined(CONFIG_SOC_AU1X00)
+
+#include <au1xxx.h>
+
+/* We can only do 16-bit reads and writes in the static memory space. */
+#define SMC_CAN_USE_8BIT 0
+#define SMC_CAN_USE_16BIT 1
+#define SMC_CAN_USE_32BIT 0
+#define SMC_IO_SHIFT 0
+#define SMC_NOWAIT 1
+
+#define SMC_inw(a, r) au_readw((unsigned long)((a) + (r)))
+#define SMC_insw(a, r, p, l) \
+ do { \
+ unsigned long _a = (unsigned long)((a) + (r)); \
+ int _l = (l); \
+ u16 *_p = (u16 *)(p); \
+ while (_l-- > 0) \
+ *_p++ = au_readw(_a); \
+ } while(0)
+#define SMC_outw(v, a, r) au_writew(v, (unsigned long)((a) + (r)))
+#define SMC_outsw(a, r, p, l) \
+ do { \
+ unsigned long _a = (unsigned long)((a) + (r)); \
+ int _l = (l); \
+ const u16 *_p = (const u16 *)(p); \
+ while (_l-- > 0) \
+ au_writew(*_p++ , _a); \
+ } while(0)
+
+#define set_irq_type(irq, type) do {} while (0)
+
#else
#define SMC_CAN_USE_8BIT 1