Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0 */
0002 #ifndef __SMC91X_H__
0003 #define __SMC91X_H__
0004 
0005 /*
0006  * These bits define which access sizes a platform can support, rather
0007  * than the maximal access size.  So, if your platform can do 16-bit
0008  * and 32-bit accesses to the SMC91x device, but not 8-bit, set both
0009  * SMC91X_USE_16BIT and SMC91X_USE_32BIT.
0010  *
0011  * The SMC91x driver requires at least one of SMC91X_USE_8BIT or
0012  * SMC91X_USE_16BIT to be supported - just setting SMC91X_USE_32BIT is
0013  * an invalid configuration.
0014  */
0015 #define SMC91X_USE_8BIT (1 << 0)
0016 #define SMC91X_USE_16BIT (1 << 1)
0017 #define SMC91X_USE_32BIT (1 << 2)
0018 
0019 #define SMC91X_NOWAIT       (1 << 3)
0020 
0021 /* two bits for IO_SHIFT, let's hope later designs will keep this sane */
0022 #define SMC91X_IO_SHIFT_0   (0 << 4)
0023 #define SMC91X_IO_SHIFT_1   (1 << 4)
0024 #define SMC91X_IO_SHIFT_2   (2 << 4)
0025 #define SMC91X_IO_SHIFT_3   (3 << 4)
0026 #define SMC91X_IO_SHIFT(x)  (((x) >> 4) & 0x3)
0027 
0028 #define SMC91X_USE_DMA      (1 << 6)
0029 
0030 #define RPC_LED_100_10  (0x00)  /* LED = 100Mbps OR's with 10Mbps link detect */
0031 #define RPC_LED_RES (0x01)  /* LED = Reserved */
0032 #define RPC_LED_10  (0x02)  /* LED = 10Mbps link detect */
0033 #define RPC_LED_FD  (0x03)  /* LED = Full Duplex Mode */
0034 #define RPC_LED_TX_RX   (0x04)  /* LED = TX or RX packet occurred */
0035 #define RPC_LED_100 (0x05)  /* LED = 100Mbps link detect */
0036 #define RPC_LED_TX  (0x06)  /* LED = TX packet occurred */
0037 #define RPC_LED_RX  (0x07)  /* LED = RX packet occurred */
0038 
0039 struct smc91x_platdata {
0040     unsigned long flags;
0041     unsigned char leda;
0042     unsigned char ledb;
0043     bool pxa_u16_align4;    /* PXA buggy u16 writes on 4*n+2 addresses */
0044 };
0045 
0046 #endif /* __SMC91X_H__ */