rk fb: from rk3368 fb only need to reserved 1 framebuffer
[firefly-linux-kernel-4.4.55.git] / drivers / net / usb / sr9700.h
1 /*
2  *  Copyright (c) 2009 jokeliu@163.com
3  *
4  * This program is free software; you can redistribute it and/or
5  * modify it under the terms of the GNU General Public License
6  * version 2 as published by the Free Software Foundation.
7  *
8  * Author : jokeliujl <jokeliu@163.com>
9  * Date : 2010-10-01
10  */
11
12 /* sr9700 spec. register table on android platform */
13 /* Registers */
14 #define NCR                     0x00
15 #define NSR                     0x01
16 #define TCR                     0x02
17 #define TSR1            0x03
18 #define TSR2            0x04
19 #define RCR                     0x05
20 #define RSR                     0x06
21 #define ROCR            0x07
22 #define BPTR            0x08
23 #define FCTR            0x09
24 #define FCR                     0x0A
25 #define EPCR            0x0B
26 #define EPAR            0x0C
27 #define EPDR            0x0D    // 0x0D ~ 0x0E
28 #define WCR                     0x0F
29 #define PAR                     0x10
30 #define MAR                     0x16
31 #define PRR                     0x1F
32 #define TWPAL           0x20
33 #define TWPAH           0x21
34 #define TRPAL           0x22
35 #define TRPAH           0x23
36 #define RWPAL           0x24
37 #define RWPAH           0x25
38 #define RRPAL           0x26
39 #define RRPAH           0x27
40 #define VID                     0x28
41 #define PID                     0x2A
42 #define CHIPR           0x2C
43 #define USBDA           0xF0
44 #define RXC                     0xF1
45 #define TXC_USBS        0xF2
46 #define USBC            0xF4
47
48 /* Bit definition for registers */
49 // Network Control Reg
50 #define NCR_RST                 (1 << 0)
51 #define NCR_LBK                 (3 << 1)
52 #define NCR_FDX                 (1 << 3)
53 #define NCR_WAKEEN              (1 << 6)
54 // Network Status Reg
55 #define NSR_RXRDY       (1 << 0)
56 #define NSR_RXOV        (1 << 1)
57 #define NSR_TX1END      (1 << 2)
58 #define NSR_TX2END      (1 << 3)
59 #define NSR_TXFULL      (1 << 4)
60 #define NSR_WAKEST      (1 << 5)
61 #define NSR_LINKST      (1 << 6)
62 #define NSR_SPEED       (1 << 7)
63 // Tx Control Reg
64 #define TCR_CRC_DIS             (1 << 1)
65 #define TCR_PAD_DIS             (1 << 2)
66 #define TCR_LC_CARE             (1 << 3)
67 #define TCR_CRS_CARE    (1 << 4)
68 #define TCR_EXCECM              (1 << 5)
69 #define TCR_LF_EN               (1 << 6)
70 // Tx Status Reg for Packet 1
71 #define TSR1_EC         (1 << 2)
72 #define TSR1_COL        (1 << 3)
73 #define TSR1_LC         (1 << 4)
74 #define TSR1_NC         (1 << 5)
75 #define TSR1_LOC                (1 << 6)
76 #define TSR1_TLF        (1 << 7)
77 // Tx Status Reg for Packet 2
78 #define TSR2_EC         (1 << 2)
79 #define TSR2_COL        (1 << 3)
80 #define TSR2_LC         (1 << 4)
81 #define TSR2_NC         (1 << 5)
82 #define TSR2_LOC                (1 << 6)
83 #define TSR2_TLF        (1 << 7)
84 // Rx Control Reg
85 #define RCR_RXEN                (1 << 0)
86 #define RCR_PRMSC               (1 << 1)
87 #define RCR_RUNT                (1 << 2)
88 #define RCR_ALL                 (1 << 3)
89 #define RCR_DIS_CRC             (1 << 4)
90 #define RCR_DIS_LONG    (1 << 5)
91 // Rx Status Reg
92 #define RSR_AE          (1 << 2)
93 #define RSR_MF          (1 << 6)
94 #define RSR_RF          (1 << 7)
95 // Recv Overflow Counter Reg
96 #define ROCR_ROC                (0x7F << 0)
97 #define ROCR_RXFU               (1 << 7)
98 // Back Pressure Threshold Reg
99 #define BPTR_JPT        (0x0F << 0)
100 #define BPTR_BPHW       (0x0F << 4)
101 // Flow Control Threshold Reg
102 #define FCTR_LWOT               (0x0F << 0)
103 #define FCTR_HWOT               (0x0F << 4)
104 // rx/tx Flow Control Reg
105 #define FCR_FLCE        (1 << 0)
106 #define FCR_BKPA        (1 << 4)
107 #define FCR_TXPEN       (1 << 5)
108 #define FCR_TXPF        (1 << 6)
109 #define FCR_TXP0        (1 << 7)
110 // EEPROM & PHY Control Reg
111 #define EPCR_ERRE               (1 << 0)
112 #define EPCR_ERPRW              (1 << 1)
113 #define EPCR_ERPRR              (1 << 2)
114 #define EPCR_EPOS               (1 << 3)
115 #define EPCR_WEP                (1 << 4)
116 // EEPROM & PHY Address Reg
117 #define EPAR_EROA               (0x3F << 0)
118 #define EPAR_PHY_ADR    (0x03 << 6)
119 // Wakeup Control Reg
120 #define WCR_MAGICST             (1 << 0)
121 #define WCR_LINKST              (1 << 2)
122 #define WCR_MAGICEN             (1 << 3)
123 #define WCR_LINKEN              (1 << 5)
124 // Phy Reset Reg
125 #define PRR_PHY_RST             (1 << 0)
126 // USB Device Address Reg
127 #define USBDA_USBFA     (0x7F << 0)
128 // TX packet Counter & USB Status Reg
129 #define TXC_USBS_TXC0   (1 << 0)
130 #define TXC_USBS_TXC1   (1 << 1)
131 #define TXC_USBS_TXC2   (1 << 2)
132 #define TXC_USBS_EP1RDY (1 << 5)
133 #define TXC_USBS_SUSFLAG        (1 << 6)
134 #define TXC_USBS_RXFAULT        (1 << 7)
135 // USB Control Reg
136 #define USBC_EP3NAK     (1 << 4)
137 #define USBC_EP3ACK     (1 << 5)
138
139 /* Variables */
140 #define QF_RD_REGS              0x00
141 #define QF_WR_REGS              0x01
142 #define QF_WR_REG               0x03
143 #define QF_REQ_RD_REG   (USB_DIR_IN | USB_TYPE_VENDOR | USB_RECIP_DEVICE)
144 #define QF_REQ_WR_REG   (USB_DIR_OUT | USB_TYPE_VENDOR | USB_RECIP_DEVICE)
145
146 #define QF_SHARE_TIMEOUT        1000
147 #define QF_EEPROM_LEN           256
148 #define QF_MCAST_SIZE           8
149 #define QF_MCAST_MAX            64
150 #define QF_TX_OVERHEAD          2       // 2bytes header
151 #define QF_RX_OVERHEAD          7       // 3bytes header + 4crc tail
152
153 /*----------------------------------------------------------------------------------------------*/