* Patch by Rahul Shanbhag, 19 Feb 2004:
[platform/kernel/u-boot.git] / drivers / smc91111.h
index 4efa256..1d9555e 100644 (file)
@@ -178,6 +178,31 @@ typedef unsigned long int          dword;
                                })
 #endif
 
+#if defined(CONFIG_SMC_USE_32_BIT)
+
+#define        SMC_inl(r)      (*((volatile dword *)(SMC_BASE_ADDRESS+(r))))
+
+#define SMC_insl(r,b,l)        ({      int __i ;  \
+                                       dword *__b2;  \
+                                       __b2 = (dword *) b;  \
+                                       for (__i = 0; __i < l; __i++) {  \
+                                         *(__b2 + __i) = SMC_inl(r);  \
+                                         SMC_inl(0);  \
+                                       };  \
+                               })
+
+#define        SMC_outl(d,r)   (*((volatile dword *)(SMC_BASE_ADDRESS+(r))) = d)
+
+#define SMC_outsl(r,b,l)       ({      int __i; \
+                                       dword *__b2; \
+                                       __b2 = (dword *) b; \
+                                       for (__i = 0; __i < l; __i++) { \
+                                           SMC_outl( *(__b2 + __i), r); \
+                                       } \
+                               })
+
+#endif /* CONFIG_SMC_USE_32_BIT */
+
 #endif
 
 /*---------------------------------------------------------------
@@ -281,7 +306,17 @@ typedef unsigned long int          dword;
 #define RPC_LED_100    (0x05)  /* LED = 100Mbps link dectect */
 #define RPC_LED_TX     (0x06)  /* LED = TX packet occurred */
 #define RPC_LED_RX     (0x07)  /* LED = RX packet occurred */
-#define RPC_DEFAULT (RPC_ANEG | (RPC_LED_100 << RPC_LSXA_SHFT) | (RPC_LED_FD << RPC_LSXB_SHFT) | RPC_SPEED | RPC_DPLX)
+#if defined(CONFIG_DK1C20) || defined(CONFIG_DK1S10)
+/* buggy schematic: LEDa -> yellow, LEDb --> green */
+#define RPC_DEFAULT    ( RPC_SPEED | RPC_DPLX | RPC_ANEG       \
+                       | (RPC_LED_TX_RX << RPC_LSXA_SHFT)      \
+                       | (RPC_LED_100_10 << RPC_LSXB_SHFT)     )
+#else
+/* SMSC reference design: LEDa --> green, LEDb --> yellow */
+#define RPC_DEFAULT    ( RPC_SPEED | RPC_DPLX | RPC_ANEG       \
+                       | (RPC_LED_100_10 << RPC_LSXA_SHFT)     \
+                       | (RPC_LED_TX_RX << RPC_LSXB_SHFT)      )
+#endif
 
 /* Bank 0 0x000C is reserved */