if_bwn - Update siba_bwn to fix a serious issue with SPROM offsets.
[dragonfly.git] / sys / dev / netif / bwn / siba / sibareg.h
blobc6416a831fca1a2548e1d976b5d87e7472dd9f20
1 /*-
2 * Copyright (c) 2007 Bruce M. Simpson.
3 * All rights reserved.
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 * 1. Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer.
10 * 2. Redistributions in binary form must reproduce the above copyright
11 * notice, this list of conditions and the following disclaimer in the
12 * documentation and/or other materials provided with the distribution.
14 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
15 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
16 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
17 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
18 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
19 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
20 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
21 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
22 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
23 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
24 * SUCH DAMAGE.
26 * $FreeBSD: head/sys/dev/siba/sibareg.h 299541 2016-05-12 16:14:16Z adrian $
30 * TODO: sprom
31 * TODO: implement dma translation bits (if needed for system bus)
34 #ifndef _SIBA_SIBAREG_H_
35 #define _SIBA_SIBAREG_H_
37 #define PCI_DEVICE_ID_BCM4401 0x4401
38 #define PCI_DEVICE_ID_BCM4401B0 0x4402
39 #define PCI_DEVICE_ID_BCM4401B1 0x170c
40 #define SIBA_PCIR_BAR PCIR_BAR(0)
41 #define SIBA_CCID_BCM4710 0x4710
42 #define SIBA_CCID_BCM4704 0x4704
43 #define SIBA_CCID_SENTRY5 0x5365
46 * ChipCommon registers.
48 #define SIBA_CC_CHIPID 0x0000
49 #define SIBA_CC_IDMASK 0x0000ffff
50 #define SIBA_CC_ID(id) (id & SIBA_CC_IDMASK)
51 #define SIBA_CC_REVMASK 0x000f0000
52 #define SIBA_CC_REVSHIFT 16
53 #define SIBA_CC_REV(id) \
54 ((id & SIBA_CC_REVMASK) >> SIBA_CC_REVSHIFT)
55 #define SIBA_CC_PKGMASK 0x00F00000
56 #define SIBA_CC_PKGSHIFT 20
57 #define SIBA_CC_PKG(id) \
58 ((id & SIBA_CC_PKGMASK) >> SIBA_CC_PKGSHIFT)
59 #define SIBA_CC_NCORESMASK 0x0F000000
60 #define SIBA_CC_NCORESSHIFT 24
61 #define SIBA_CC_NCORES(id) \
62 ((id & SIBA_CC_NCORESMASK) >> SIBA_CC_NCORESSHIFT)
63 #define SIBA_CC_CAPS 0x0004
64 #define SIBA_CC_CAPS_PWCTL 0x00040000
65 #define SIBA_CC_CAPS_PMU 0x10000000 /* PMU (rev >= 20) */
66 #define SIBA_CC_CHIPCTL 0x0028 /* rev >= 11 */
67 #define SIBA_CC_CHIPSTAT 0x002C /* rev >= 11 */
68 #define SIBA_CC_BCAST_ADDR 0x0050 /* Broadcast Address */
69 #define SIBA_CC_BCAST_DATA 0x0054 /* Broadcast Data */
70 #define SIBA_CC_PLLONDELAY 0x00B0 /* Rev >= 4 only */
71 #define SIBA_CC_FREFSELDELAY 0x00B4 /* Rev >= 4 only */
72 #define SIBA_CC_CLKSLOW 0x00b8 /* 6 <= Rev <= 9 only */
73 #define SIBA_CC_CLKSLOW_SRC 0x00000007
74 #define SIBA_CC_CLKSLOW_SRC_CRYSTAL 0x00000001
75 #define SIBA_CC_CLKSLOW_FSLOW 0x00000800
76 #define SIBA_CC_CLKSLOW_IPLL 0x00001000
77 #define SIBA_CC_CLKSLOW_ENXTAL 0x00002000
78 #define SIBA_CC_CLKSYSCTL 0x00C0 /* Rev >= 3 only */
79 #define SIBA_CC_CLKCTLSTATUS 0x01e0
80 #define SIBA_CC_CLKCTLSTATUS_HT 0x00010000
81 #define SIBA_CC_UART0 0x0300 /* offset of UART0 */
82 #define SIBA_CC_UART1 0x0400 /* offset of UART1 */
83 #define SIBA_CC_PMUCTL 0x0600 /* PMU control */
84 #define SIBA_CC_PMUCTL_PLL_UPD 0x00000400
85 #define SIBA_CC_PMUCTL_ILP 0xffff0000 /* mask */
86 #define SIBA_CC_PMUCTL_NOILP 0x00000200
87 #define SIBA_CC_PMUCTL_XF 0x0000007c /* crystal freq */
88 #define SIBA_CC_PMUCTL_XF_VAL(id) ((id & 0x0000007c) >> 2)
89 #define SIBA_CC_PMUCAPS 0x0604
90 #define SIBA_CC_PMUCAPS_REV 0x000000ff
91 #define SIBA_CC_PMU_MINRES 0x0618
92 #define SIBA_CC_PMU_MAXRES 0x061c
93 #define SIBA_CC_PMU_TABSEL 0x0620
94 #define SIBA_CC_PMU_DEPMSK 0x0624
95 #define SIBA_CC_PMU_UPDNTM 0x0628
96 #define SIBA_CC_CHIPCTL_ADDR 0x0650
97 #define SIBA_CC_CHIPCTL_DATA 0x0654
98 #define SIBA_CC_REGCTL_ADDR 0x0658
99 #define SIBA_CC_REGCTL_DATA 0x065c
100 #define SIBA_CC_PLLCTL_ADDR 0x0660
101 #define SIBA_CC_PLLCTL_DATA 0x0664
103 #define SIBA_CC_PMU0_PLL0 0
104 #define SIBA_CC_PMU0_PLL0_PDIV_MSK 0x00000001
105 #define SIBA_CC_PMU0_PLL0_PDIV_FREQ 25000
106 #define SIBA_CC_PMU0_PLL1 1
107 #define SIBA_CC_PMU0_PLL1_IMSK 0xf0000000
108 #define SIBA_CC_PMU0_PLL1_FMSK 0x0fffff00
109 #define SIBA_CC_PMU0_PLL1_STOPMOD 0x00000040
110 #define SIBA_CC_PMU0_PLL2 2
111 #define SIBA_CC_PMU0_PLL2_IMSKHI 0x0000000f
112 #define SIBA_CC_PMU1_PLL0 0
113 #define SIBA_CC_PMU1_PLL0_P1DIV 0x00f00000
114 #define SIBA_CC_PMU1_PLL0_P2DIV 0x0f000000
115 #define SIBA_CC_PMU1_PLL1 1
116 #define SIBA_CC_PMU1_PLL2 2
117 #define SIBA_CC_PMU1_PLL2_NDIVMODE 0x000e0000
118 #define SIBA_CC_PMU1_PLL2_NDIVINT 0x1ff00000
119 #define SIBA_CC_PMU1_PLL3 3
120 #define SIBA_CC_PMU1_PLL3_NDIVFRAC 0x00ffffff
121 #define SIBA_CC_PMU1_PLL4 4
122 #define SIBA_CC_PMU1_PLL5 5
123 #define SIBA_CC_PMU1_PLL5_CLKDRV 0xffffff00
125 #define SIBA_CC_PMU0_DEFAULT_XTALFREQ 20000
126 #define SIBA_CC_PMU1_DEFAULT_FREQ 15360
128 #define SIBA_CC_PMU1_PLLTAB_ENTRY \
130 { 12000, 1, 3, 22, 0x9, 0xffffef }, \
131 { 13000, 2, 1, 6, 0xb, 0x483483 }, \
132 { 14400, 3, 1, 10, 0xa, 0x1c71c7 }, \
133 { 15360, 4, 1, 5, 0xb, 0x755555 }, \
134 { 16200, 5, 1, 10, 0x5, 0x6e9e06 }, \
135 { 16800, 6, 1, 10, 0x5, 0x3cf3cf }, \
136 { 19200, 7, 1, 9, 0x5, 0x17b425 }, \
137 { 19800, 8, 1, 11, 0x4, 0xa57eb }, \
138 { 20000, 9, 1, 11, 0x4, 0 }, \
139 { 24000, 10, 3, 11, 0xa, 0 }, \
140 { 25000, 11, 5, 16, 0xb, 0 }, \
141 { 26000, 12, 1, 2, 0x10, 0xec4ec4 }, \
142 { 30000, 13, 3, 8, 0xb, 0 }, \
143 { 38400, 14, 1, 5, 0x4, 0x955555 }, \
144 { 40000, 15, 1, 2, 0xb, 0 } \
147 #define SIBA_CC_PMU0_PLLTAB_ENTRY \
149 { 12000, 1, 73, 349525, }, { 13000, 2, 67, 725937, }, \
150 { 14400, 3, 61, 116508, }, { 15360, 4, 57, 305834, }, \
151 { 16200, 5, 54, 336579, }, { 16800, 6, 52, 399457, }, \
152 { 19200, 7, 45, 873813, }, { 19800, 8, 44, 466033, }, \
153 { 20000, 9, 44, 0, }, { 25000, 10, 70, 419430, }, \
154 { 26000, 11, 67, 725937, }, { 30000, 12, 58, 699050, }, \
155 { 38400, 13, 45, 873813, }, { 40000, 14, 45, 0, }, \
158 #define SIBA_CC_PMU_4312_PA_REF 2
159 #define SIBA_CC_PMU_4325_BURST 1
160 #define SIBA_CC_PMU_4325_CLBURST 3
161 #define SIBA_CC_PMU_4325_LN 10
162 #define SIBA_CC_PMU_4325_CRYSTAL 13
163 #define SIBA_CC_PMU_4325_RX_PWR 15
164 #define SIBA_CC_PMU_4325_TX_PWR 16
165 #define SIBA_CC_PMU_4325_LOGEN_PWR 18
166 #define SIBA_CC_PMU_4325_AFE_PWR 19
167 #define SIBA_CC_PMU_4325_BBPLL_PWR 20
168 #define SIBA_CC_PMU_4325_HT 21
169 #define SIBA_CC_PMU_4328_EXT_SWITCH_PWM 0
170 #define SIBA_CC_PMU_4328_BB_SWITCH_PWM 1
171 #define SIBA_CC_PMU_4328_BB_SWITCH_BURST 2
172 #define SIBA_CC_PMU_4328_BB_EXT_SWITCH_BURST 3
173 #define SIBA_CC_PMU_4328_ILP_REQUEST 4
174 #define SIBA_CC_PMU_4328_RADSWITCH_PWM 5 /* radio switch */
175 #define SIBA_CC_PMU_4328_RADSWITCH_BURST 6
176 #define SIBA_CC_PMU_4328_ROM_SWITCH 7
177 #define SIBA_CC_PMU_4328_PA_REF 8
178 #define SIBA_CC_PMU_4328_RADIO 9
179 #define SIBA_CC_PMU_4328_AFE 10
180 #define SIBA_CC_PMU_4328_PLL 11
181 #define SIBA_CC_PMU_4328_BG_FILTBYP 12
182 #define SIBA_CC_PMU_4328_TX_FILTBYP 13
183 #define SIBA_CC_PMU_4328_RX_FILTBYP 14
184 #define SIBA_CC_PMU_4328_CRYSTAL_PU 15
185 #define SIBA_CC_PMU_4328_CRYSTAL_EN 16
186 #define SIBA_CC_PMU_4328_BB_PLL_FILTBYP 17
187 #define SIBA_CC_PMU_4328_RF_PLL_FILTBYP 18
188 #define SIBA_CC_PMU_4328_BB_PLL_PU 19
189 #define SIBA_CC_PMU_5354_PA_REF 8
190 #define SIBA_CC_PMU_5354_BB_PLL_PU 19
192 #define SIBA_CC_PMU_4325_RES_UPDOWN \
194 { SIBA_CC_PMU_4325_CRYSTAL, 0x1501 } \
197 #define SIBA_CC_PMU_4325_RES_DEPEND \
199 { SIBA_CC_PMU_4325_HT, SIBA_CC_PMU_DEP_ADD, \
200 ((1 << SIBA_CC_PMU_4325_RX_PWR) | \
201 (1 << SIBA_CC_PMU_4325_TX_PWR) | \
202 (1 << SIBA_CC_PMU_4325_LOGEN_PWR) | \
203 (1 << SIBA_CC_PMU_4325_AFE_PWR)) } \
206 #define SIBA_CC_PMU_4328_RES_UPDOWN \
208 { SIBA_CC_PMU_4328_EXT_SWITCH_PWM, 0x0101 }, \
209 { SIBA_CC_PMU_4328_BB_SWITCH_PWM, 0x1f01 }, \
210 { SIBA_CC_PMU_4328_BB_SWITCH_BURST, 0x010f }, \
211 { SIBA_CC_PMU_4328_BB_EXT_SWITCH_BURST, 0x0101 }, \
212 { SIBA_CC_PMU_4328_ILP_REQUEST, 0x0202 }, \
213 { SIBA_CC_PMU_4328_RADSWITCH_PWM, 0x0f01 }, \
214 { SIBA_CC_PMU_4328_RADSWITCH_BURST, 0x0f01 }, \
215 { SIBA_CC_PMU_4328_ROM_SWITCH, 0x0101 }, \
216 { SIBA_CC_PMU_4328_PA_REF, 0x0f01 }, \
217 { SIBA_CC_PMU_4328_RADIO, 0x0f01 }, \
218 { SIBA_CC_PMU_4328_AFE, 0x0f01 }, \
219 { SIBA_CC_PMU_4328_PLL, 0x0f01 }, \
220 { SIBA_CC_PMU_4328_BG_FILTBYP, 0x0101 }, \
221 { SIBA_CC_PMU_4328_TX_FILTBYP, 0x0101 }, \
222 { SIBA_CC_PMU_4328_RX_FILTBYP, 0x0101 }, \
223 { SIBA_CC_PMU_4328_CRYSTAL_PU, 0x0101 }, \
224 { SIBA_CC_PMU_4328_CRYSTAL_EN, 0xa001 }, \
225 { SIBA_CC_PMU_4328_BB_PLL_FILTBYP, 0x0101 }, \
226 { SIBA_CC_PMU_4328_RF_PLL_FILTBYP, 0x0101 }, \
227 { SIBA_CC_PMU_4328_BB_PLL_PU, 0x0701 }, \
230 #define SIBA_CC_PMU_4328_RES_DEPEND \
232 { SIBA_CC_PMU_4328_ILP_REQUEST, SIBA_CC_PMU_DEP_SET, \
233 ((1 << SIBA_CC_PMU_4328_EXT_SWITCH_PWM) | \
234 (1 << SIBA_CC_PMU_4328_BB_SWITCH_PWM)) }, \
237 #define SIBA_CC_CHST_4325_PMUTOP_2B 0x00000200
239 #define SIBA_BAR0 0x80
240 #define SIBA_IRQMASK 0x94
241 #define SIBA_GPIO_IN 0xb0
242 #define SIBA_GPIO_OUT 0xb4
243 #define SIBA_GPIO_OUT_EN 0xb8
244 #define SIBA_GPIO_CRYSTAL 0x40
245 #define SIBA_GPIO_PLL 0x80
247 #define SIBA_REGWIN(x) \
248 (SIBA_ENUM_START + ((x) * SIBA_CORE_LEN))
249 #define SIBA_CORE_LEN 0x00001000 /* Size of cfg per core */
250 #define SIBA_CFG_END 0x00010000 /* Upper bound of cfg space */
251 #define SIBA_MAX_CORES (SIBA_CFG_END/SIBA_CORE_LEN) /* #max cores */
252 #define SIBA_ENUM_START 0x18000000U
253 #define SIBA_ENUM_END 0x18010000U
255 #define SIBA_DMA_TRANSLATION_MASK 0xc0000000
257 #define SIBA_PCI_DMA 0x40000000U
258 #define SIBA_TPS 0x0f18
259 #define SIBA_TPS_BPFLAG 0x0000003f
260 #define SIBA_IAS 0x0f90 /* Initiator Agent State */
261 #define SIBA_IAS_INBAND_ERR 0x00020000
262 #define SIBA_IAS_TIMEOUT 0x00040000
263 #define SIBA_INTR_MASK 0x0f94
264 #define SIBA_TGSLOW 0x0f98
265 #define SIBA_TGSLOW_RESET 0x00000001 /* target state low */
266 #define SIBA_TGSLOW_REJECT_22 0x00000002
267 #define SIBA_TGSLOW_REJECT_23 0x00000004
268 #define SIBA_TGSLOW_CLOCK 0x00010000
269 #define SIBA_TGSLOW_FGC 0x00020000
270 #define SIBA_TGSHIGH 0x0f9c
271 #define SIBA_TGSHIGH_SERR 0x00000001
272 #define SIBA_TGSHIGH_BUSY 0x00000004
273 #define SIBA_TGSHIGH_DMA64 0x10000000
274 #define SIBA_IMCFGLO 0x0fa8
275 #define SIBA_IMCFGLO_SERTO 0x00000007
276 #define SIBA_IMCFGLO_REQTO 0x00000070
277 #define SIBA_IDLOW 0x0ff8
278 #define SIBA_IDLOW_SSBREV 0xf0000000
279 #define SIBA_IDLOW_SSBREV_22 0x00000000
280 #define SIBA_IDLOW_SSBREV_23 0x10000000
281 #define SIBA_IDLOW_SSBREV_24 0x40000000
282 #define SIBA_IDLOW_SSBREV_25 0x50000000
283 #define SIBA_IDLOW_SSBREV_26 0x60000000
284 #define SIBA_IDLOW_SSBREV_27 0x70000000
285 #define SIBA_IDHIGH 0x0ffc
286 #define SIBA_IDHIGH_CORECODEMASK 0x00008FF0 /* Core Code */
287 #define SIBA_IDHIGH_CORECODE_SHIFT 4
288 #define SIBA_IDHIGH_CORECODE(id) \
289 ((id & SIBA_IDHIGH_CORECODEMASK) >> SIBA_IDHIGH_CORECODE_SHIFT)
290 /* Revision Code (low part) */
291 #define SIBA_IDHIGH_REVLO 0x0000000f
292 /* Revision Code (high part) */
293 #define SIBA_IDHIGH_REVHI 0x00007000
294 #define SIBA_IDHIGH_REVHI_SHIFT 8
295 #define SIBA_IDHIGH_REV(id) \
296 ((id & SIBA_IDHIGH_REVLO) | ((id & SIBA_IDHIGH_REVHI) >> \
297 SIBA_IDHIGH_REVHI_SHIFT))
298 #define SIBA_IDHIGH_VENDORMASK 0xFFFF0000 /* Vendor Code */
299 #define SIBA_IDHIGH_VENDOR_SHIFT 16
300 #define SIBA_IDHIGH_VENDOR(id) \
301 ((id & SIBA_IDHIGH_VENDORMASK) >> SIBA_IDHIGH_VENDOR_SHIFT)
303 #define SIBA_SPROMSIZE_R123 64
304 #define SIBA_SPROMSIZE_R4 220
305 #define SIBA_SPROM_BASE 0x1000
306 #define SIBA_SPROM_REV_CRC 0xff00
308 #define SIBA_SPROM1_MAC_80211BG 0x1048
309 #define SIBA_SPROM1_MAC_ETH 0x104e
310 #define SIBA_SPROM1_MAC_80211A 0x1054
311 #define SIBA_SPROM1_ETHPHY 0x105a
312 #define SIBA_SPROM1_ETHPHY_MII_ETH0 0x001f
313 #define SIBA_SPROM1_ETHPHY_MII_ETH1 0x03e0
314 #define SIBA_SPROM1_ETHPHY_MDIO_ETH0 (1 << 14)
315 #define SIBA_SPROM1_ETHPHY_MDIO_ETH1 (1 << 15)
316 #define SIBA_SPROM1_BOARDINFO 0x105c
317 #define SIBA_SPROM1_BOARDINFO_BREV 0x00ff
318 #define SIBA_SPROM1_BOARDINFO_CCODE 0x0f00
319 #define SIBA_SPROM1_BOARDINFO_ANTBG 0x3000
320 #define SIBA_SPROM1_BOARDINFO_ANTA 0xc000
321 #define SIBA_SPROM1_PA0B0 0x105e
322 #define SIBA_SPROM1_PA0B1 0x1060
323 #define SIBA_SPROM1_PA0B2 0x1062
324 #define SIBA_SPROM1_GPIOA 0x1064
325 #define SIBA_SPROM1_GPIOA_P0 0x00ff
326 #define SIBA_SPROM1_GPIOA_P1 0xff00
327 #define SIBA_SPROM1_GPIOB 0x1066
328 #define SIBA_SPROM1_GPIOB_P2 0x00ff
329 #define SIBA_SPROM1_GPIOB_P3 0xff00
330 #define SIBA_SPROM1_MAXPWR 0x1068
331 #define SIBA_SPROM1_MAXPWR_BG 0x00ff
332 #define SIBA_SPROM1_MAXPWR_A 0xff00
333 #define SIBA_SPROM1_PA1B0 0x106a
334 #define SIBA_SPROM1_PA1B1 0x106c
335 #define SIBA_SPROM1_PA1B2 0x106e
336 #define SIBA_SPROM1_TSSI 0x1070
337 #define SIBA_SPROM1_TSSI_BG 0x00ff
338 #define SIBA_SPROM1_TSSI_A 0xff00
339 #define SIBA_SPROM1_BFLOW 0x1072
340 #define SIBA_SPROM1_AGAIN 0x1074
341 #define SIBA_SPROM1_AGAIN_BG 0x00ff
342 #define SIBA_SPROM1_AGAIN_A 0xff00
344 #define SIBA_SPROM2_BFHIGH 0x1038
346 #define SIBA_SPROM3_MAC_80211BG 0x104a
348 #define SIBA_SPROM4_MAC_80211BG 0x104c
349 #define SIBA_SPROM4_ETHPHY 0x105a
350 #define SIBA_SPROM4_ETHPHY_ET0A 0x001f
351 #define SIBA_SPROM4_ETHPHY_ET1A 0x03e0
352 #define SIBA_SPROM4_CCODE 0x1052
353 #define SIBA_SPROM4_ANTAVAIL 0x105d
354 #define SIBA_SPROM4_ANTAVAIL_A 0x00ff
355 #define SIBA_SPROM4_ANTAVAIL_BG 0xff00
356 #define SIBA_SPROM4_BFLOW 0x1044
357 #define SIBA_SPROM4_AGAIN01 0x105e
358 #define SIBA_SPROM4_AGAIN0 0x00ff
359 #define SIBA_SPROM4_AGAIN1 0xff00
360 #define SIBA_SPROM4_AGAIN23 0x1060
361 #define SIBA_SPROM4_AGAIN2 0x00ff
362 #define SIBA_SPROM4_AGAIN3 0xff00
363 #define SIBA_SPROM4_TXPID2G01 0x0062
364 #define SIBA_SPROM4_TXPID2G0 0x00ff
365 #define SIBA_SPROM4_TXPID2G1 0xff00
366 #define SIBA_SPROM4_TXPID2G23 0x0064
367 #define SIBA_SPROM4_TXPID2G2 0x00ff
368 #define SIBA_SPROM4_TXPID2G3 0xff00
369 #define SIBA_SPROM4_TXPID5G01 0x0066
370 #define SIBA_SPROM4_TXPID5G0 0x00ff
371 #define SIBA_SPROM4_TXPID5G1 0xff00
372 #define SIBA_SPROM4_TXPID5G23 0x0068
373 #define SIBA_SPROM4_TXPID5G2 0x00ff
374 #define SIBA_SPROM4_TXPID5G3 0xff00
375 #define SIBA_SPROM4_TXPID5GL01 0x006a
376 #define SIBA_SPROM4_TXPID5GL0 0x00ff
377 #define SIBA_SPROM4_TXPID5GL1 0xff00
378 #define SIBA_SPROM4_TXPID5GL23 0x006c
379 #define SIBA_SPROM4_TXPID5GL2 0x00ff
380 #define SIBA_SPROM4_TXPID5GL3 0xff00
381 #define SIBA_SPROM4_TXPID5GH01 0x006e
382 #define SIBA_SPROM4_TXPID5GH0 0x00ff
383 #define SIBA_SPROM4_TXPID5GH1 0xff00
384 #define SIBA_SPROM4_TXPID5GH23 0x0070
385 #define SIBA_SPROM4_TXPID5GH2 0x00ff
386 #define SIBA_SPROM4_TXPID5GH3 0xff00
387 #define SIBA_SPROM4_BFHIGH 0x1046
388 #define SIBA_SPROM4_MAXP_BG 0x1080
389 #define SIBA_SPROM4_MAXP_BG_MASK 0x00ff
390 #define SIBA_SPROM4_TSSI_BG 0xff00
391 #define SIBA_SPROM4_MAXP_A 0x108a
392 #define SIBA_SPROM4_MAXP_A_MASK 0x00ff
393 #define SIBA_SPROM4_TSSI_A 0xff00
394 #define SIBA_SPROM4_GPIOA 0x1056
395 #define SIBA_SPROM4_GPIOA_P0 0x00ff
396 #define SIBA_SPROM4_GPIOA_P1 0xff00
397 #define SIBA_SPROM4_GPIOB 0x1058
398 #define SIBA_SPROM4_GPIOB_P2 0x00ff
399 #define SIBA_SPROM4_GPIOB_P3 0xff00
401 /* The following four blocks share the same structure */
402 #define SIBA_SPROM4_PWR_INFO_CORE0 0x1080
403 #define SIBA_SPROM4_PWR_INFO_CORE1 0x10AE
404 #define SIBA_SPROM4_PWR_INFO_CORE2 0x10DC
405 #define SIBA_SPROM4_PWR_INFO_CORE3 0x110A
407 #define SIBA_SPROM4_2G_MAXP_ITSSI 0x00 /* 2 GHz ITSSI and 2 GHz Max Power */
408 #define SIBA_SPROM4_2G_MAXP 0x00FF
409 #define SIBA_SPROM4_2G_ITSSI 0xFF00
410 #define SIBA_SPROM4_2G_ITSSI_SHIFT 8
411 #define SIBA_SPROM4_2G_PA_0 0x02 /* 2 GHz power amp */
412 #define SIBA_SPROM4_2G_PA_1 0x04
413 #define SIBA_SPROM4_2G_PA_2 0x06
414 #define SIBA_SPROM4_2G_PA_3 0x08
415 #define SIBA_SPROM4_5G_MAXP_ITSSI 0x0A /* 5 GHz ITSSI and 5.3 GHz Max Power */
416 #define SIBA_SPROM4_5G_MAXP 0x00FF
417 #define SIBA_SPROM4_5G_ITSSI 0xFF00
418 #define SIBA_SPROM4_5G_ITSSI_SHIFT 8
419 #define SIBA_SPROM4_5GHL_MAXP 0x0C /* 5.2 GHz and 5.8 GHz Max Power */
420 #define SIBA_SPROM4_5GH_MAXP 0x00FF
421 #define SIBA_SPROM4_5GL_MAXP 0xFF00
422 #define SIBA_SPROM4_5GL_MAXP_SHIFT 8
423 #define SIBA_SPROM4_5G_PA_0 0x0E /* 5.3 GHz power amp */
424 #define SIBA_SPROM4_5G_PA_1 0x10
425 #define SIBA_SPROM4_5G_PA_2 0x12
426 #define SIBA_SPROM4_5G_PA_3 0x14
427 #define SIBA_SPROM4_5GL_PA_0 0x16 /* 5.2 GHz power amp */
428 #define SIBA_SPROM4_5GL_PA_1 0x18
429 #define SIBA_SPROM4_5GL_PA_2 0x1A
430 #define SIBA_SPROM4_5GL_PA_3 0x1C
431 #define SIBA_SPROM4_5GH_PA_0 0x1E /* 5.8 GHz power amp */
432 #define SIBA_SPROM4_5GH_PA_1 0x20
433 #define SIBA_SPROM4_5GH_PA_2 0x22
434 #define SIBA_SPROM4_5GH_PA_3 0x24
436 #define SIBA_SPROM5_BFLOW 0x104a
437 #define SIBA_SPROM5_BFHIGH 0x104c
438 #define SIBA_SPROM5_MAC_80211BG 0x1052
439 #define SIBA_SPROM5_CCODE 0x1044
440 #define SIBA_SPROM5_GPIOA 0x1076
441 #define SIBA_SPROM5_GPIOA_P0 0x00ff
442 #define SIBA_SPROM5_GPIOA_P1 0xff00
443 #define SIBA_SPROM5_GPIOB 0x1078
444 #define SIBA_SPROM5_GPIOB_P2 0x00ff
445 #define SIBA_SPROM5_GPIOB_P3 0xff00
447 #define SIBA_SPROM8_BFLOW 0x1084
448 #define SIBA_SPROM8_BFHIGH 0x1086
449 #define SIBA_SPROM8_BFL2LO 0x1088
450 #define SIBA_SPROM8_BFL2HI 0x108a
451 #define SIBA_SPROM8_MAC_80211BG 0x108c
452 #define SIBA_SPROM8_CCODE 0x1092
453 #define SIBA_SPROM8_ANTAVAIL 0x109c
454 #define SIBA_SPROM8_ANTAVAIL_A 0xff00
455 #define SIBA_SPROM8_ANTAVAIL_BG 0x00ff
456 #define SIBA_SPROM8_AGAIN01 0x109e
457 #define SIBA_SPROM8_AGAIN0 0x00ff
458 #define SIBA_SPROM8_AGAIN1 0xff00
459 #define SIBA_SPROM8_GPIOA 0x1096
460 #define SIBA_SPROM8_GPIOA_P0 0x00ff
461 #define SIBA_SPROM8_GPIOA_P1 0xff00
462 #define SIBA_SPROM8_GPIOB 0x1098
463 #define SIBA_SPROM8_GPIOB_P2 0x00ff
464 #define SIBA_SPROM8_GPIOB_P3 0xff00
465 #define SIBA_SPROM8_AGAIN23 0x10a0
466 #define SIBA_SPROM8_AGAIN2 0x00ff
467 #define SIBA_SPROM8_AGAIN3 0xff00
468 #define SIBA_SPROM8_RSSIPARM2G 0x10a4
469 #define SIBA_SPROM8_RSSISMF2G 0x000f
470 #define SIBA_SPROM8_RSSISMC2G 0x00f0
471 #define SIBA_SPROM8_RSSISAV2G 0x0700 /* BITMASK */
472 #define SIBA_SPROM8_BXA2G 0x1800 /* BITMASK */
473 #define SIBA_SPROM8_RSSIPARM5G 0x10a6
474 #define SIBA_SPROM8_RSSISMF5G 0x000f
475 #define SIBA_SPROM8_RSSISMC5G 0x00f0
476 #define SIBA_SPROM8_RSSISAV5G 0x0700 /* BITMASK */
477 #define SIBA_SPROM8_BXA5G 0x1800 /* BITMASK */
478 #define SIBA_SPROM8_TRI25G 0x10a8
479 #define SIBA_SPROM8_TRI2G 0x00ff
480 #define SIBA_SPROM8_TRI5G 0xff00
481 #define SIBA_SPROM8_TRI5GHL 0x10aa
482 #define SIBA_SPROM8_TRI5GL 0x00ff
483 #define SIBA_SPROM8_TRI5GH 0xff00
484 #define SIBA_SPROM8_RXPO 0x10ac
485 #define SIBA_SPROM8_RXPO2G 0x00ff
486 #define SIBA_SPROM8_RXPO5G 0xff00
488 /* The FEM blocks share the same structure */
489 #define SIBA_SPROM8_FEM2G 0x10ae
490 #define SIBA_SPROM8_FEM5G 0x10b0
491 #define SSB_SROM8_FEM_TSSIPOS 0x0001
492 #define SSB_SROM8_FEM_EXTPA_GAIN 0x0006
493 #define SSB_SROM8_FEM_PDET_RANGE 0x00F8
494 #define SSB_SROM8_FEM_TR_ISO 0x0700
495 #define SSB_SROM8_FEM_ANTSWLUT 0xF800
497 #define SIBA_SPROM8_MAXP_BG 0x10c0
498 #define SIBA_SPROM8_MAXP_BG_MASK 0x00ff
499 #define SIBA_SPROM8_TSSI_BG 0xff00
500 #define SIBA_SPROM8_PA0B0 0x10c2
501 #define SIBA_SPROM8_PA0B1 0x10c4
502 #define SIBA_SPROM8_PA0B2 0x10c6
503 #define SIBA_SPROM8_MAXP_A 0x10c8
504 #define SIBA_SPROM8_MAXP_A_MASK 0x00ff
505 #define SIBA_SPROM8_TSSI_A 0xff00
506 #define SIBA_SPROM8_MAXP_AHL 0x10ca
507 #define SIBA_SPROM8_MAXP_AH_MASK 0x00ff
508 #define SIBA_SPROM8_MAXP_AL_MASK 0xff00
509 #define SIBA_SPROM8_PA1B0 0x10cc
510 #define SIBA_SPROM8_PA1B1 0x10ce
511 #define SIBA_SPROM8_PA1B2 0x10d0
512 #define SIBA_SPROM8_PA1LOB0 0x10d2
513 #define SIBA_SPROM8_PA1LOB1 0x10d4
514 #define SIBA_SPROM8_PA1LOB2 0x10d6
515 #define SIBA_SPROM8_PA1HIB0 0x10d8
516 #define SIBA_SPROM8_PA1HIB1 0x10da
517 #define SIBA_SPROM8_PA1HIB2 0x10dc
518 #define SIBA_SPROM8_CCK2GPO 0x1140
519 #define SIBA_SPROM8_OFDM2GPO 0x1142
520 #define SIBA_SPROM8_OFDM5GPO 0x1146
521 #define SIBA_SPROM8_OFDM5GLPO 0x114a
522 #define SIBA_SPROM8_OFDM5GHPO 0x114e
523 #define SIBA_SPROM8_CDDPO 0x1192
524 #define SIBA_SPROM8_STBCPO 0x1194
525 #define SIBA_SPROM8_BW40PO 0x1196
526 #define SIBA_SPROM8_BWDUPPO 0x1198
528 /* There are 4 blocks with power info sharing the same layout */
529 #define SIBA_SROM8_PWR_INFO_CORE0 0x10C0
530 #define SIBA_SROM8_PWR_INFO_CORE1 0x10E0
531 #define SIBA_SROM8_PWR_INFO_CORE2 0x1100
532 #define SIBA_SROM8_PWR_INFO_CORE3 0x1120
534 #define SIBA_SROM8_2G_MAXP_ITSSI 0x00
535 #define SIBA_SPROM8_2G_MAXP 0x00FF
536 #define SIBA_SPROM8_2G_ITSSI 0xFF00
537 #define SIBA_SPROM8_2G_ITSSI_SHIFT 8
538 #define SIBA_SROM8_2G_PA_0 0x02 /* 2GHz power amp settings */
539 #define SIBA_SROM8_2G_PA_1 0x04
540 #define SIBA_SROM8_2G_PA_2 0x06
541 #define SIBA_SROM8_5G_MAXP_ITSSI 0x08 /* 5GHz ITSSI and 5.3GHz Max Power */
542 #define SIBA_SPROM8_5G_MAXP 0x00FF
543 #define SIBA_SPROM8_5G_ITSSI 0xFF00
544 #define SIBA_SPROM8_5G_ITSSI_SHIFT 8
545 #define SIBA_SPROM8_5GHL_MAXP 0x0A /* 5.2GHz and 5.8GHz Max Power */
546 #define SIBA_SPROM8_5GH_MAXP 0x00FF
547 #define SIBA_SPROM8_5GL_MAXP 0xFF00
548 #define SIBA_SPROM8_5GL_MAXP_SHIFT 8
549 #define SIBA_SROM8_5G_PA_0 0x0C /* 5.3GHz power amp settings */
550 #define SIBA_SROM8_5G_PA_1 0x0E
551 #define SIBA_SROM8_5G_PA_2 0x10
552 #define SIBA_SROM8_5GL_PA_0 0x12 /* 5.2GHz power amp settings */
553 #define SIBA_SROM8_5GL_PA_1 0x14
554 #define SIBA_SROM8_5GL_PA_2 0x16
555 #define SIBA_SROM8_5GH_PA_0 0x18 /* 5.8GHz power amp settings */
556 #define SIBA_SROM8_5GH_PA_1 0x1A
557 #define SIBA_SROM8_5GH_PA_2 0x1C
559 #define SIBA_BOARDVENDOR_DELL 0x1028
560 #define SIBA_BOARDVENDOR_BCM 0x14e4
561 #define SIBA_BOARD_BCM4309G 0x0421
562 #define SIBA_BOARD_MP4318 0x044a
563 #define SIBA_BOARD_BU4306 0x0416
564 #define SIBA_BOARD_BU4309 0x040a
565 #define SIBA_BOARD_BCM4321 0x046d
567 #define SIBA_PCICORE_BCAST_ADDR SIBA_CC_BCAST_ADDR
568 #define SIBA_PCICORE_BCAST_DATA SIBA_CC_BCAST_DATA
569 #define SIBA_PCICORE_SBTOPCI0 0x0100
570 #define SIBA_PCICORE_SBTOPCI1 0x0104
571 #define SIBA_PCICORE_SBTOPCI2 0x0108
572 #define SIBA_PCICORE_MDIO_CTL 0x0128
573 #define SIBA_PCICORE_MDIO_DATA 0x012c
574 #define SIBA_PCICORE_SBTOPCI_PREF 0x00000004
575 #define SIBA_PCICORE_SBTOPCI_BURST 0x00000008
576 #define SIBA_PCICORE_SBTOPCI_MRM 0x00000020
578 #define SIBA_CHIPPACK_BCM4712S 1 /* Small 200pin 4712 */
580 #endif /* _SIBA_SIBAREG_H_ */