diff options
Diffstat (limited to 'drivers/net/smc91x.h')
-rw-r--r-- | drivers/net/smc91x.h | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/drivers/net/smc91x.h b/drivers/net/smc91x.h index 54799544bda3..8d2772cc42f2 100644 --- a/drivers/net/smc91x.h +++ b/drivers/net/smc91x.h | |||
@@ -330,6 +330,48 @@ static inline void LPD7_SMC_outsw (unsigned char* a, int r, | |||
330 | 330 | ||
331 | #include <unit/smc91111.h> | 331 | #include <unit/smc91111.h> |
332 | 332 | ||
333 | #elif defined(CONFIG_ARCH_MSM) | ||
334 | |||
335 | #define SMC_CAN_USE_8BIT 0 | ||
336 | #define SMC_CAN_USE_16BIT 1 | ||
337 | #define SMC_CAN_USE_32BIT 0 | ||
338 | #define SMC_NOWAIT 1 | ||
339 | |||
340 | #define SMC_inw(a, r) readw((a) + (r)) | ||
341 | #define SMC_outw(v, a, r) writew(v, (a) + (r)) | ||
342 | #define SMC_insw(a, r, p, l) readsw((a) + (r), p, l) | ||
343 | #define SMC_outsw(a, r, p, l) writesw((a) + (r), p, l) | ||
344 | |||
345 | #define SMC_IRQ_FLAGS IRQF_TRIGGER_HIGH | ||
346 | |||
347 | #elif defined(CONFIG_COLDFIRE) | ||
348 | |||
349 | #define SMC_CAN_USE_8BIT 0 | ||
350 | #define SMC_CAN_USE_16BIT 1 | ||
351 | #define SMC_CAN_USE_32BIT 0 | ||
352 | #define SMC_NOWAIT 1 | ||
353 | |||
354 | static inline void mcf_insw(void *a, unsigned char *p, int l) | ||
355 | { | ||
356 | u16 *wp = (u16 *) p; | ||
357 | while (l-- > 0) | ||
358 | *wp++ = readw(a); | ||
359 | } | ||
360 | |||
361 | static inline void mcf_outsw(void *a, unsigned char *p, int l) | ||
362 | { | ||
363 | u16 *wp = (u16 *) p; | ||
364 | while (l-- > 0) | ||
365 | writew(*wp++, a); | ||
366 | } | ||
367 | |||
368 | #define SMC_inw(a, r) _swapw(readw((a) + (r))) | ||
369 | #define SMC_outw(v, a, r) writew(_swapw(v), (a) + (r)) | ||
370 | #define SMC_insw(a, r, p, l) mcf_insw(a + r, p, l) | ||
371 | #define SMC_outsw(a, r, p, l) mcf_outsw(a + r, p, l) | ||
372 | |||
373 | #define SMC_IRQ_FLAGS (IRQF_DISABLED) | ||
374 | |||
333 | #else | 375 | #else |
334 | 376 | ||
335 | /* | 377 | /* |