diff options
Diffstat (limited to 'drivers/net/smc91x.h')
-rw-r--r-- | drivers/net/smc91x.h | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/drivers/net/smc91x.h b/drivers/net/smc91x.h index d2767e6584a9..7053026d6c76 100644 --- a/drivers/net/smc91x.h +++ b/drivers/net/smc91x.h | |||
@@ -55,6 +55,53 @@ | |||
55 | #define SMC_insw(a, r, p, l) readsw((a) + (r), p, l) | 55 | #define SMC_insw(a, r, p, l) readsw((a) + (r), p, l) |
56 | #define SMC_outsw(a, r, p, l) writesw((a) + (r), p, l) | 56 | #define SMC_outsw(a, r, p, l) writesw((a) + (r), p, l) |
57 | 57 | ||
58 | #elif defined(CONFIG_BFIN) | ||
59 | |||
60 | #define SMC_IRQ_FLAGS IRQF_TRIGGER_HIGH | ||
61 | |||
62 | # if defined (CONFIG_BFIN561_EZKIT) | ||
63 | #define SMC_CAN_USE_8BIT 0 | ||
64 | #define SMC_CAN_USE_16BIT 1 | ||
65 | #define SMC_CAN_USE_32BIT 1 | ||
66 | #define SMC_IO_SHIFT 0 | ||
67 | #define SMC_NOWAIT 1 | ||
68 | #define SMC_USE_BFIN_DMA 0 | ||
69 | |||
70 | |||
71 | #define SMC_inw(a, r) readw((a) + (r)) | ||
72 | #define SMC_outw(v, a, r) writew(v, (a) + (r)) | ||
73 | #define SMC_inl(a, r) readl((a) + (r)) | ||
74 | #define SMC_outl(v, a, r) writel(v, (a) + (r)) | ||
75 | #define SMC_outsl(a, r, p, l) outsl((unsigned long *)((a) + (r)), p, l) | ||
76 | #define SMC_insl(a, r, p, l) insl ((unsigned long *)((a) + (r)), p, l) | ||
77 | # else | ||
78 | #define SMC_CAN_USE_8BIT 0 | ||
79 | #define SMC_CAN_USE_16BIT 1 | ||
80 | #define SMC_CAN_USE_32BIT 0 | ||
81 | #define SMC_IO_SHIFT 0 | ||
82 | #define SMC_NOWAIT 1 | ||
83 | #define SMC_USE_BFIN_DMA 0 | ||
84 | |||
85 | |||
86 | #define SMC_inw(a, r) readw((a) + (r)) | ||
87 | #define SMC_outw(v, a, r) writew(v, (a) + (r)) | ||
88 | #define SMC_outsw(a, r, p, l) outsw((unsigned long *)((a) + (r)), p, l) | ||
89 | #define SMC_insw(a, r, p, l) insw ((unsigned long *)((a) + (r)), p, l) | ||
90 | # endif | ||
91 | /* check if the mac in reg is valid */ | ||
92 | #define SMC_GET_MAC_ADDR(addr) \ | ||
93 | do { \ | ||
94 | unsigned int __v; \ | ||
95 | __v = SMC_inw(ioaddr, ADDR0_REG); \ | ||
96 | addr[0] = __v; addr[1] = __v >> 8; \ | ||
97 | __v = SMC_inw(ioaddr, ADDR1_REG); \ | ||
98 | addr[2] = __v; addr[3] = __v >> 8; \ | ||
99 | __v = SMC_inw(ioaddr, ADDR2_REG); \ | ||
100 | addr[4] = __v; addr[5] = __v >> 8; \ | ||
101 | if (*(u32 *)(&addr[0]) == 0xFFFFFFFF) { \ | ||
102 | random_ether_addr(addr); \ | ||
103 | } \ | ||
104 | } while (0) | ||
58 | #elif defined(CONFIG_REDWOOD_5) || defined(CONFIG_REDWOOD_6) | 105 | #elif defined(CONFIG_REDWOOD_5) || defined(CONFIG_REDWOOD_6) |
59 | 106 | ||
60 | /* We can only do 16-bit reads and writes in the static memory space. */ | 107 | /* We can only do 16-bit reads and writes in the static memory space. */ |