Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging-2.6
[pandora-kernel.git] / drivers / staging / ath6kl / include / common / AR6002 / hw4.0 / hw / si_reg.h
1 // ------------------------------------------------------------------
2 // Copyright (c) 2004-2010 Atheros Corporation.  All rights reserved.
3 // 
4 //
5 // Permission to use, copy, modify, and/or distribute this software for any
6 // purpose with or without fee is hereby granted, provided that the above
7 // copyright notice and this permission notice appear in all copies.
8 //
9 // THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
10 // WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
11 // MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
12 // ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
13 // WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
14 // ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
15 // OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
16 //
17 //
18 // ------------------------------------------------------------------
19 //===================================================================
20 // Author(s): ="Atheros"
21 //===================================================================
22
23
24 #ifndef _SI_REG_REG_H_
25 #define _SI_REG_REG_H_
26
27 #define SI_CONFIG_ADDRESS                        0x00000000
28 #define SI_CONFIG_OFFSET                         0x00000000
29 #define SI_CONFIG_ERR_INT_MSB                    19
30 #define SI_CONFIG_ERR_INT_LSB                    19
31 #define SI_CONFIG_ERR_INT_MASK                   0x00080000
32 #define SI_CONFIG_ERR_INT_GET(x)                 (((x) & SI_CONFIG_ERR_INT_MASK) >> SI_CONFIG_ERR_INT_LSB)
33 #define SI_CONFIG_ERR_INT_SET(x)                 (((x) << SI_CONFIG_ERR_INT_LSB) & SI_CONFIG_ERR_INT_MASK)
34 #define SI_CONFIG_BIDIR_OD_DATA_MSB              18
35 #define SI_CONFIG_BIDIR_OD_DATA_LSB              18
36 #define SI_CONFIG_BIDIR_OD_DATA_MASK             0x00040000
37 #define SI_CONFIG_BIDIR_OD_DATA_GET(x)           (((x) & SI_CONFIG_BIDIR_OD_DATA_MASK) >> SI_CONFIG_BIDIR_OD_DATA_LSB)
38 #define SI_CONFIG_BIDIR_OD_DATA_SET(x)           (((x) << SI_CONFIG_BIDIR_OD_DATA_LSB) & SI_CONFIG_BIDIR_OD_DATA_MASK)
39 #define SI_CONFIG_I2C_MSB                        16
40 #define SI_CONFIG_I2C_LSB                        16
41 #define SI_CONFIG_I2C_MASK                       0x00010000
42 #define SI_CONFIG_I2C_GET(x)                     (((x) & SI_CONFIG_I2C_MASK) >> SI_CONFIG_I2C_LSB)
43 #define SI_CONFIG_I2C_SET(x)                     (((x) << SI_CONFIG_I2C_LSB) & SI_CONFIG_I2C_MASK)
44 #define SI_CONFIG_POS_SAMPLE_MSB                 7
45 #define SI_CONFIG_POS_SAMPLE_LSB                 7
46 #define SI_CONFIG_POS_SAMPLE_MASK                0x00000080
47 #define SI_CONFIG_POS_SAMPLE_GET(x)              (((x) & SI_CONFIG_POS_SAMPLE_MASK) >> SI_CONFIG_POS_SAMPLE_LSB)
48 #define SI_CONFIG_POS_SAMPLE_SET(x)              (((x) << SI_CONFIG_POS_SAMPLE_LSB) & SI_CONFIG_POS_SAMPLE_MASK)
49 #define SI_CONFIG_POS_DRIVE_MSB                  6
50 #define SI_CONFIG_POS_DRIVE_LSB                  6
51 #define SI_CONFIG_POS_DRIVE_MASK                 0x00000040
52 #define SI_CONFIG_POS_DRIVE_GET(x)               (((x) & SI_CONFIG_POS_DRIVE_MASK) >> SI_CONFIG_POS_DRIVE_LSB)
53 #define SI_CONFIG_POS_DRIVE_SET(x)               (((x) << SI_CONFIG_POS_DRIVE_LSB) & SI_CONFIG_POS_DRIVE_MASK)
54 #define SI_CONFIG_INACTIVE_DATA_MSB              5
55 #define SI_CONFIG_INACTIVE_DATA_LSB              5
56 #define SI_CONFIG_INACTIVE_DATA_MASK             0x00000020
57 #define SI_CONFIG_INACTIVE_DATA_GET(x)           (((x) & SI_CONFIG_INACTIVE_DATA_MASK) >> SI_CONFIG_INACTIVE_DATA_LSB)
58 #define SI_CONFIG_INACTIVE_DATA_SET(x)           (((x) << SI_CONFIG_INACTIVE_DATA_LSB) & SI_CONFIG_INACTIVE_DATA_MASK)
59 #define SI_CONFIG_INACTIVE_CLK_MSB               4
60 #define SI_CONFIG_INACTIVE_CLK_LSB               4
61 #define SI_CONFIG_INACTIVE_CLK_MASK              0x00000010
62 #define SI_CONFIG_INACTIVE_CLK_GET(x)            (((x) & SI_CONFIG_INACTIVE_CLK_MASK) >> SI_CONFIG_INACTIVE_CLK_LSB)
63 #define SI_CONFIG_INACTIVE_CLK_SET(x)            (((x) << SI_CONFIG_INACTIVE_CLK_LSB) & SI_CONFIG_INACTIVE_CLK_MASK)
64 #define SI_CONFIG_DIVIDER_MSB                    3
65 #define SI_CONFIG_DIVIDER_LSB                    0
66 #define SI_CONFIG_DIVIDER_MASK                   0x0000000f
67 #define SI_CONFIG_DIVIDER_GET(x)                 (((x) & SI_CONFIG_DIVIDER_MASK) >> SI_CONFIG_DIVIDER_LSB)
68 #define SI_CONFIG_DIVIDER_SET(x)                 (((x) << SI_CONFIG_DIVIDER_LSB) & SI_CONFIG_DIVIDER_MASK)
69
70 #define SI_CS_ADDRESS                            0x00000004
71 #define SI_CS_OFFSET                             0x00000004
72 #define SI_CS_BIT_CNT_IN_LAST_BYTE_MSB           13
73 #define SI_CS_BIT_CNT_IN_LAST_BYTE_LSB           11
74 #define SI_CS_BIT_CNT_IN_LAST_BYTE_MASK          0x00003800
75 #define SI_CS_BIT_CNT_IN_LAST_BYTE_GET(x)        (((x) & SI_CS_BIT_CNT_IN_LAST_BYTE_MASK) >> SI_CS_BIT_CNT_IN_LAST_BYTE_LSB)
76 #define SI_CS_BIT_CNT_IN_LAST_BYTE_SET(x)        (((x) << SI_CS_BIT_CNT_IN_LAST_BYTE_LSB) & SI_CS_BIT_CNT_IN_LAST_BYTE_MASK)
77 #define SI_CS_DONE_ERR_MSB                       10
78 #define SI_CS_DONE_ERR_LSB                       10
79 #define SI_CS_DONE_ERR_MASK                      0x00000400
80 #define SI_CS_DONE_ERR_GET(x)                    (((x) & SI_CS_DONE_ERR_MASK) >> SI_CS_DONE_ERR_LSB)
81 #define SI_CS_DONE_ERR_SET(x)                    (((x) << SI_CS_DONE_ERR_LSB) & SI_CS_DONE_ERR_MASK)
82 #define SI_CS_DONE_INT_MSB                       9
83 #define SI_CS_DONE_INT_LSB                       9
84 #define SI_CS_DONE_INT_MASK                      0x00000200
85 #define SI_CS_DONE_INT_GET(x)                    (((x) & SI_CS_DONE_INT_MASK) >> SI_CS_DONE_INT_LSB)
86 #define SI_CS_DONE_INT_SET(x)                    (((x) << SI_CS_DONE_INT_LSB) & SI_CS_DONE_INT_MASK)
87 #define SI_CS_START_MSB                          8
88 #define SI_CS_START_LSB                          8
89 #define SI_CS_START_MASK                         0x00000100
90 #define SI_CS_START_GET(x)                       (((x) & SI_CS_START_MASK) >> SI_CS_START_LSB)
91 #define SI_CS_START_SET(x)                       (((x) << SI_CS_START_LSB) & SI_CS_START_MASK)
92 #define SI_CS_RX_CNT_MSB                         7
93 #define SI_CS_RX_CNT_LSB                         4
94 #define SI_CS_RX_CNT_MASK                        0x000000f0
95 #define SI_CS_RX_CNT_GET(x)                      (((x) & SI_CS_RX_CNT_MASK) >> SI_CS_RX_CNT_LSB)
96 #define SI_CS_RX_CNT_SET(x)                      (((x) << SI_CS_RX_CNT_LSB) & SI_CS_RX_CNT_MASK)
97 #define SI_CS_TX_CNT_MSB                         3
98 #define SI_CS_TX_CNT_LSB                         0
99 #define SI_CS_TX_CNT_MASK                        0x0000000f
100 #define SI_CS_TX_CNT_GET(x)                      (((x) & SI_CS_TX_CNT_MASK) >> SI_CS_TX_CNT_LSB)
101 #define SI_CS_TX_CNT_SET(x)                      (((x) << SI_CS_TX_CNT_LSB) & SI_CS_TX_CNT_MASK)
102
103 #define SI_TX_DATA0_ADDRESS                      0x00000008
104 #define SI_TX_DATA0_OFFSET                       0x00000008
105 #define SI_TX_DATA0_DATA3_MSB                    31
106 #define SI_TX_DATA0_DATA3_LSB                    24
107 #define SI_TX_DATA0_DATA3_MASK                   0xff000000
108 #define SI_TX_DATA0_DATA3_GET(x)                 (((x) & SI_TX_DATA0_DATA3_MASK) >> SI_TX_DATA0_DATA3_LSB)
109 #define SI_TX_DATA0_DATA3_SET(x)                 (((x) << SI_TX_DATA0_DATA3_LSB) & SI_TX_DATA0_DATA3_MASK)
110 #define SI_TX_DATA0_DATA2_MSB                    23
111 #define SI_TX_DATA0_DATA2_LSB                    16
112 #define SI_TX_DATA0_DATA2_MASK                   0x00ff0000
113 #define SI_TX_DATA0_DATA2_GET(x)                 (((x) & SI_TX_DATA0_DATA2_MASK) >> SI_TX_DATA0_DATA2_LSB)
114 #define SI_TX_DATA0_DATA2_SET(x)                 (((x) << SI_TX_DATA0_DATA2_LSB) & SI_TX_DATA0_DATA2_MASK)
115 #define SI_TX_DATA0_DATA1_MSB                    15
116 #define SI_TX_DATA0_DATA1_LSB                    8
117 #define SI_TX_DATA0_DATA1_MASK                   0x0000ff00
118 #define SI_TX_DATA0_DATA1_GET(x)                 (((x) & SI_TX_DATA0_DATA1_MASK) >> SI_TX_DATA0_DATA1_LSB)
119 #define SI_TX_DATA0_DATA1_SET(x)                 (((x) << SI_TX_DATA0_DATA1_LSB) & SI_TX_DATA0_DATA1_MASK)
120 #define SI_TX_DATA0_DATA0_MSB                    7
121 #define SI_TX_DATA0_DATA0_LSB                    0
122 #define SI_TX_DATA0_DATA0_MASK                   0x000000ff
123 #define SI_TX_DATA0_DATA0_GET(x)                 (((x) & SI_TX_DATA0_DATA0_MASK) >> SI_TX_DATA0_DATA0_LSB)
124 #define SI_TX_DATA0_DATA0_SET(x)                 (((x) << SI_TX_DATA0_DATA0_LSB) & SI_TX_DATA0_DATA0_MASK)
125
126 #define SI_TX_DATA1_ADDRESS                      0x0000000c
127 #define SI_TX_DATA1_OFFSET                       0x0000000c
128 #define SI_TX_DATA1_DATA7_MSB                    31
129 #define SI_TX_DATA1_DATA7_LSB                    24
130 #define SI_TX_DATA1_DATA7_MASK                   0xff000000
131 #define SI_TX_DATA1_DATA7_GET(x)                 (((x) & SI_TX_DATA1_DATA7_MASK) >> SI_TX_DATA1_DATA7_LSB)
132 #define SI_TX_DATA1_DATA7_SET(x)                 (((x) << SI_TX_DATA1_DATA7_LSB) & SI_TX_DATA1_DATA7_MASK)
133 #define SI_TX_DATA1_DATA6_MSB                    23
134 #define SI_TX_DATA1_DATA6_LSB                    16
135 #define SI_TX_DATA1_DATA6_MASK                   0x00ff0000
136 #define SI_TX_DATA1_DATA6_GET(x)                 (((x) & SI_TX_DATA1_DATA6_MASK) >> SI_TX_DATA1_DATA6_LSB)
137 #define SI_TX_DATA1_DATA6_SET(x)                 (((x) << SI_TX_DATA1_DATA6_LSB) & SI_TX_DATA1_DATA6_MASK)
138 #define SI_TX_DATA1_DATA5_MSB                    15
139 #define SI_TX_DATA1_DATA5_LSB                    8
140 #define SI_TX_DATA1_DATA5_MASK                   0x0000ff00
141 #define SI_TX_DATA1_DATA5_GET(x)                 (((x) & SI_TX_DATA1_DATA5_MASK) >> SI_TX_DATA1_DATA5_LSB)
142 #define SI_TX_DATA1_DATA5_SET(x)                 (((x) << SI_TX_DATA1_DATA5_LSB) & SI_TX_DATA1_DATA5_MASK)
143 #define SI_TX_DATA1_DATA4_MSB                    7
144 #define SI_TX_DATA1_DATA4_LSB                    0
145 #define SI_TX_DATA1_DATA4_MASK                   0x000000ff
146 #define SI_TX_DATA1_DATA4_GET(x)                 (((x) & SI_TX_DATA1_DATA4_MASK) >> SI_TX_DATA1_DATA4_LSB)
147 #define SI_TX_DATA1_DATA4_SET(x)                 (((x) << SI_TX_DATA1_DATA4_LSB) & SI_TX_DATA1_DATA4_MASK)
148
149 #define SI_RX_DATA0_ADDRESS                      0x00000010
150 #define SI_RX_DATA0_OFFSET                       0x00000010
151 #define SI_RX_DATA0_DATA3_MSB                    31
152 #define SI_RX_DATA0_DATA3_LSB                    24
153 #define SI_RX_DATA0_DATA3_MASK                   0xff000000
154 #define SI_RX_DATA0_DATA3_GET(x)                 (((x) & SI_RX_DATA0_DATA3_MASK) >> SI_RX_DATA0_DATA3_LSB)
155 #define SI_RX_DATA0_DATA3_SET(x)                 (((x) << SI_RX_DATA0_DATA3_LSB) & SI_RX_DATA0_DATA3_MASK)
156 #define SI_RX_DATA0_DATA2_MSB                    23
157 #define SI_RX_DATA0_DATA2_LSB                    16
158 #define SI_RX_DATA0_DATA2_MASK                   0x00ff0000
159 #define SI_RX_DATA0_DATA2_GET(x)                 (((x) & SI_RX_DATA0_DATA2_MASK) >> SI_RX_DATA0_DATA2_LSB)
160 #define SI_RX_DATA0_DATA2_SET(x)                 (((x) << SI_RX_DATA0_DATA2_LSB) & SI_RX_DATA0_DATA2_MASK)
161 #define SI_RX_DATA0_DATA1_MSB                    15
162 #define SI_RX_DATA0_DATA1_LSB                    8
163 #define SI_RX_DATA0_DATA1_MASK                   0x0000ff00
164 #define SI_RX_DATA0_DATA1_GET(x)                 (((x) & SI_RX_DATA0_DATA1_MASK) >> SI_RX_DATA0_DATA1_LSB)
165 #define SI_RX_DATA0_DATA1_SET(x)                 (((x) << SI_RX_DATA0_DATA1_LSB) & SI_RX_DATA0_DATA1_MASK)
166 #define SI_RX_DATA0_DATA0_MSB                    7
167 #define SI_RX_DATA0_DATA0_LSB                    0
168 #define SI_RX_DATA0_DATA0_MASK                   0x000000ff
169 #define SI_RX_DATA0_DATA0_GET(x)                 (((x) & SI_RX_DATA0_DATA0_MASK) >> SI_RX_DATA0_DATA0_LSB)
170 #define SI_RX_DATA0_DATA0_SET(x)                 (((x) << SI_RX_DATA0_DATA0_LSB) & SI_RX_DATA0_DATA0_MASK)
171
172 #define SI_RX_DATA1_ADDRESS                      0x00000014
173 #define SI_RX_DATA1_OFFSET                       0x00000014
174 #define SI_RX_DATA1_DATA7_MSB                    31
175 #define SI_RX_DATA1_DATA7_LSB                    24
176 #define SI_RX_DATA1_DATA7_MASK                   0xff000000
177 #define SI_RX_DATA1_DATA7_GET(x)                 (((x) & SI_RX_DATA1_DATA7_MASK) >> SI_RX_DATA1_DATA7_LSB)
178 #define SI_RX_DATA1_DATA7_SET(x)                 (((x) << SI_RX_DATA1_DATA7_LSB) & SI_RX_DATA1_DATA7_MASK)
179 #define SI_RX_DATA1_DATA6_MSB                    23
180 #define SI_RX_DATA1_DATA6_LSB                    16
181 #define SI_RX_DATA1_DATA6_MASK                   0x00ff0000
182 #define SI_RX_DATA1_DATA6_GET(x)                 (((x) & SI_RX_DATA1_DATA6_MASK) >> SI_RX_DATA1_DATA6_LSB)
183 #define SI_RX_DATA1_DATA6_SET(x)                 (((x) << SI_RX_DATA1_DATA6_LSB) & SI_RX_DATA1_DATA6_MASK)
184 #define SI_RX_DATA1_DATA5_MSB                    15
185 #define SI_RX_DATA1_DATA5_LSB                    8
186 #define SI_RX_DATA1_DATA5_MASK                   0x0000ff00
187 #define SI_RX_DATA1_DATA5_GET(x)                 (((x) & SI_RX_DATA1_DATA5_MASK) >> SI_RX_DATA1_DATA5_LSB)
188 #define SI_RX_DATA1_DATA5_SET(x)                 (((x) << SI_RX_DATA1_DATA5_LSB) & SI_RX_DATA1_DATA5_MASK)
189 #define SI_RX_DATA1_DATA4_MSB                    7
190 #define SI_RX_DATA1_DATA4_LSB                    0
191 #define SI_RX_DATA1_DATA4_MASK                   0x000000ff
192 #define SI_RX_DATA1_DATA4_GET(x)                 (((x) & SI_RX_DATA1_DATA4_MASK) >> SI_RX_DATA1_DATA4_LSB)
193 #define SI_RX_DATA1_DATA4_SET(x)                 (((x) << SI_RX_DATA1_DATA4_LSB) & SI_RX_DATA1_DATA4_MASK)
194
195
196 #ifndef __ASSEMBLER__
197
198 typedef struct si_reg_reg_s {
199   volatile unsigned int si_config;
200   volatile unsigned int si_cs;
201   volatile unsigned int si_tx_data0;
202   volatile unsigned int si_tx_data1;
203   volatile unsigned int si_rx_data0;
204   volatile unsigned int si_rx_data1;
205 } si_reg_reg_t;
206
207 #endif /* __ASSEMBLER__ */
208
209 #endif /* _SI_REG_H_ */