]> git.karo-electronics.de Git - mv-sheeva.git/blobdiff - drivers/staging/brcm80211/include/bcmsrom_fmt.h
Merge branch 'master' into tk71
[mv-sheeva.git] / drivers / staging / brcm80211 / include / bcmsrom_fmt.h
diff --git a/drivers/staging/brcm80211/include/bcmsrom_fmt.h b/drivers/staging/brcm80211/include/bcmsrom_fmt.h
new file mode 100644 (file)
index 0000000..ae2bff8
--- /dev/null
@@ -0,0 +1,367 @@
+/*
+ * Copyright (c) 2010 Broadcom Corporation
+ *
+ * Permission to use, copy, modify, and/or distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
+ * SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
+ * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
+ * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+#ifndef        _bcmsrom_fmt_h_
+#define        _bcmsrom_fmt_h_
+
+/* Maximum srom: 6 Kilobits == 768 bytes */
+#define        SROM_MAX                768
+#define SROM_MAXW              384
+#define VARS_MAX               4096
+
+/* PCI fields */
+#define PCI_F0DEVID            48
+
+#define        SROM_WORDS              64
+
+#define SROM3_SWRGN_OFF                28      /* s/w region offset in words */
+
+#define        SROM_SSID               2
+
+#define        SROM_WL1LHMAXP          29
+
+#define        SROM_WL1LPAB0           30
+#define        SROM_WL1LPAB1           31
+#define        SROM_WL1LPAB2           32
+
+#define        SROM_WL1HPAB0           33
+#define        SROM_WL1HPAB1           34
+#define        SROM_WL1HPAB2           35
+
+#define        SROM_MACHI_IL0          36
+#define        SROM_MACMID_IL0         37
+#define        SROM_MACLO_IL0          38
+#define        SROM_MACHI_ET0          39
+#define        SROM_MACMID_ET0         40
+#define        SROM_MACLO_ET0          41
+#define        SROM_MACHI_ET1          42
+#define        SROM_MACMID_ET1         43
+#define        SROM_MACLO_ET1          44
+#define        SROM3_MACHI             37
+#define        SROM3_MACMID            38
+#define        SROM3_MACLO             39
+
+#define        SROM_BXARSSI2G          40
+#define        SROM_BXARSSI5G          41
+
+#define        SROM_TRI52G             42
+#define        SROM_TRI5GHL            43
+
+#define        SROM_RXPO52G            45
+
+#define        SROM2_ENETPHY           45
+
+#define        SROM_AABREV             46
+/* Fields in AABREV */
+#define        SROM_BR_MASK            0x00ff
+#define        SROM_CC_MASK            0x0f00
+#define        SROM_CC_SHIFT           8
+#define        SROM_AA0_MASK           0x3000
+#define        SROM_AA0_SHIFT          12
+#define        SROM_AA1_MASK           0xc000
+#define        SROM_AA1_SHIFT          14
+
+#define        SROM_WL0PAB0            47
+#define        SROM_WL0PAB1            48
+#define        SROM_WL0PAB2            49
+
+#define        SROM_LEDBH10            50
+#define        SROM_LEDBH32            51
+
+#define        SROM_WL10MAXP           52
+
+#define        SROM_WL1PAB0            53
+#define        SROM_WL1PAB1            54
+#define        SROM_WL1PAB2            55
+
+#define        SROM_ITT                56
+
+#define        SROM_BFL                57
+#define        SROM_BFL2               28
+#define        SROM3_BFL2              61
+
+#define        SROM_AG10               58
+
+#define        SROM_CCODE              59
+
+#define        SROM_OPO                60
+
+#define        SROM3_LEDDC             62
+
+#define        SROM_CRCREV             63
+
+/* SROM Rev 4: Reallocate the software part of the srom to accomodate
+ * MIMO features. It assumes up to two PCIE functions and 440 bytes
+ * of useable srom i.e. the useable storage in chips with OTP that
+ * implements hardware redundancy.
+ */
+
+#define        SROM4_WORDS             220
+
+#define        SROM4_SIGN              32
+#define        SROM4_SIGNATURE         0x5372
+
+#define        SROM4_BREV              33
+
+#define        SROM4_BFL0              34
+#define        SROM4_BFL1              35
+#define        SROM4_BFL2              36
+#define        SROM4_BFL3              37
+#define        SROM5_BFL0              37
+#define        SROM5_BFL1              38
+#define        SROM5_BFL2              39
+#define        SROM5_BFL3              40
+
+#define        SROM4_MACHI             38
+#define        SROM4_MACMID            39
+#define        SROM4_MACLO             40
+#define        SROM5_MACHI             41
+#define        SROM5_MACMID            42
+#define        SROM5_MACLO             43
+
+#define        SROM4_CCODE             41
+#define        SROM4_REGREV            42
+#define        SROM5_CCODE             34
+#define        SROM5_REGREV            35
+
+#define        SROM4_LEDBH10           43
+#define        SROM4_LEDBH32           44
+#define        SROM5_LEDBH10           59
+#define        SROM5_LEDBH32           60
+
+#define        SROM4_LEDDC             45
+#define        SROM5_LEDDC             45
+
+#define        SROM4_AA                46
+#define        SROM4_AA2G_MASK         0x00ff
+#define        SROM4_AA2G_SHIFT        0
+#define        SROM4_AA5G_MASK         0xff00
+#define        SROM4_AA5G_SHIFT        8
+
+#define        SROM4_AG10              47
+#define        SROM4_AG32              48
+
+#define        SROM4_TXPID2G           49
+#define        SROM4_TXPID5G           51
+#define        SROM4_TXPID5GL          53
+#define        SROM4_TXPID5GH          55
+
+#define SROM4_TXRXC            61
+#define SROM4_TXCHAIN_MASK     0x000f
+#define SROM4_TXCHAIN_SHIFT    0
+#define SROM4_RXCHAIN_MASK     0x00f0
+#define SROM4_RXCHAIN_SHIFT    4
+#define SROM4_SWITCH_MASK      0xff00
+#define SROM4_SWITCH_SHIFT     8
+
+/* Per-path fields */
+#define        MAX_PATH_SROM           4
+#define        SROM4_PATH0             64
+#define        SROM4_PATH1             87
+#define        SROM4_PATH2             110
+#define        SROM4_PATH3             133
+
+#define        SROM4_2G_ITT_MAXP       0
+#define        SROM4_2G_PA             1
+#define        SROM4_5G_ITT_MAXP       5
+#define        SROM4_5GLH_MAXP         6
+#define        SROM4_5G_PA             7
+#define        SROM4_5GL_PA            11
+#define        SROM4_5GH_PA            15
+
+/* Fields in the ITT_MAXP and 5GLH_MAXP words */
+#define        B2G_MAXP_MASK           0xff
+#define        B2G_ITT_SHIFT           8
+#define        B5G_MAXP_MASK           0xff
+#define        B5G_ITT_SHIFT           8
+#define        B5GH_MAXP_MASK          0xff
+#define        B5GL_MAXP_SHIFT         8
+
+/* All the miriad power offsets */
+#define        SROM4_2G_CCKPO          156
+#define        SROM4_2G_OFDMPO         157
+#define        SROM4_5G_OFDMPO         159
+#define        SROM4_5GL_OFDMPO        161
+#define        SROM4_5GH_OFDMPO        163
+#define        SROM4_2G_MCSPO          165
+#define        SROM4_5G_MCSPO          173
+#define        SROM4_5GL_MCSPO         181
+#define        SROM4_5GH_MCSPO         189
+#define        SROM4_CDDPO             197
+#define        SROM4_STBCPO            198
+#define        SROM4_BW40PO            199
+#define        SROM4_BWDUPPO           200
+
+#define        SROM4_CRCREV            219
+
+/* SROM Rev 8: Make space for a 48word hardware header for PCIe rev >= 6.
+ * This is acombined srom for both MIMO and SISO boards, usable in
+ * the .130 4Kilobit OTP with hardware redundancy.
+ */
+
+#define        SROM8_SIGN              64
+
+#define        SROM8_BREV              65
+
+#define        SROM8_BFL0              66
+#define        SROM8_BFL1              67
+#define        SROM8_BFL2              68
+#define        SROM8_BFL3              69
+
+#define        SROM8_MACHI             70
+#define        SROM8_MACMID            71
+#define        SROM8_MACLO             72
+
+#define        SROM8_CCODE             73
+#define        SROM8_REGREV            74
+
+#define        SROM8_LEDBH10           75
+#define        SROM8_LEDBH32           76
+
+#define        SROM8_LEDDC             77
+
+#define        SROM8_AA                78
+
+#define        SROM8_AG10              79
+#define        SROM8_AG32              80
+
+#define        SROM8_TXRXC             81
+
+#define        SROM8_BXARSSI2G         82
+#define        SROM8_BXARSSI5G         83
+#define        SROM8_TRI52G            84
+#define        SROM8_TRI5GHL           85
+#define        SROM8_RXPO52G           86
+
+#define SROM8_FEM2G            87
+#define SROM8_FEM5G            88
+#define SROM8_FEM_ANTSWLUT_MASK                0xf800
+#define SROM8_FEM_ANTSWLUT_SHIFT       11
+#define SROM8_FEM_TR_ISO_MASK          0x0700
+#define SROM8_FEM_TR_ISO_SHIFT         8
+#define SROM8_FEM_PDET_RANGE_MASK      0x00f8
+#define SROM8_FEM_PDET_RANGE_SHIFT     3
+#define SROM8_FEM_EXTPA_GAIN_MASK      0x0006
+#define SROM8_FEM_EXTPA_GAIN_SHIFT     1
+#define SROM8_FEM_TSSIPOS_MASK         0x0001
+#define SROM8_FEM_TSSIPOS_SHIFT                0
+
+#define SROM8_THERMAL          89
+
+/* Temp sense related entries */
+#define SROM8_MPWR_RAWTS               90
+#define SROM8_TS_SLP_OPT_CORRX 91
+/* FOC: freiquency offset correction, HWIQ: H/W IOCAL enable, IQSWP: IQ CAL swap disable */
+#define SROM8_FOC_HWIQ_IQSWP   92
+
+/* Temperature delta for PHY calibration */
+#define SROM8_PHYCAL_TEMPDELTA 93
+
+/* Per-path offsets & fields */
+#define        SROM8_PATH0             96
+#define        SROM8_PATH1             112
+#define        SROM8_PATH2             128
+#define        SROM8_PATH3             144
+
+#define        SROM8_2G_ITT_MAXP       0
+#define        SROM8_2G_PA             1
+#define        SROM8_5G_ITT_MAXP       4
+#define        SROM8_5GLH_MAXP         5
+#define        SROM8_5G_PA             6
+#define        SROM8_5GL_PA            9
+#define        SROM8_5GH_PA            12
+
+/* All the miriad power offsets */
+#define        SROM8_2G_CCKPO          160
+
+#define        SROM8_2G_OFDMPO         161
+#define        SROM8_5G_OFDMPO         163
+#define        SROM8_5GL_OFDMPO        165
+#define        SROM8_5GH_OFDMPO        167
+
+#define        SROM8_2G_MCSPO          169
+#define        SROM8_5G_MCSPO          177
+#define        SROM8_5GL_MCSPO         185
+#define        SROM8_5GH_MCSPO         193
+
+#define        SROM8_CDDPO             201
+#define        SROM8_STBCPO            202
+#define        SROM8_BW40PO            203
+#define        SROM8_BWDUPPO           204
+
+/* SISO PA parameters are in the path0 spaces */
+#define        SROM8_SISO              96
+
+/* Legacy names for SISO PA paramters */
+#define        SROM8_W0_ITTMAXP        (SROM8_SISO + SROM8_2G_ITT_MAXP)
+#define        SROM8_W0_PAB0           (SROM8_SISO + SROM8_2G_PA)
+#define        SROM8_W0_PAB1           (SROM8_SISO + SROM8_2G_PA + 1)
+#define        SROM8_W0_PAB2           (SROM8_SISO + SROM8_2G_PA + 2)
+#define        SROM8_W1_ITTMAXP        (SROM8_SISO + SROM8_5G_ITT_MAXP)
+#define        SROM8_W1_MAXP_LCHC      (SROM8_SISO + SROM8_5GLH_MAXP)
+#define        SROM8_W1_PAB0           (SROM8_SISO + SROM8_5G_PA)
+#define        SROM8_W1_PAB1           (SROM8_SISO + SROM8_5G_PA + 1)
+#define        SROM8_W1_PAB2           (SROM8_SISO + SROM8_5G_PA + 2)
+#define        SROM8_W1_PAB0_LC        (SROM8_SISO + SROM8_5GL_PA)
+#define        SROM8_W1_PAB1_LC        (SROM8_SISO + SROM8_5GL_PA + 1)
+#define        SROM8_W1_PAB2_LC        (SROM8_SISO + SROM8_5GL_PA + 2)
+#define        SROM8_W1_PAB0_HC        (SROM8_SISO + SROM8_5GH_PA)
+#define        SROM8_W1_PAB1_HC        (SROM8_SISO + SROM8_5GH_PA + 1)
+#define        SROM8_W1_PAB2_HC        (SROM8_SISO + SROM8_5GH_PA + 2)
+
+#define        SROM8_CRCREV            219
+
+/* SROM REV 9 */
+#define SROM9_2GPO_CCKBW20     160
+#define SROM9_2GPO_CCKBW20UL   161
+#define SROM9_2GPO_LOFDMBW20   162
+#define SROM9_2GPO_LOFDMBW20UL 164
+
+#define SROM9_5GLPO_LOFDMBW20  166
+#define SROM9_5GLPO_LOFDMBW20UL        168
+#define SROM9_5GMPO_LOFDMBW20  170
+#define SROM9_5GMPO_LOFDMBW20UL        172
+#define SROM9_5GHPO_LOFDMBW20  174
+#define SROM9_5GHPO_LOFDMBW20UL        176
+
+#define SROM9_2GPO_MCSBW20     178
+#define SROM9_2GPO_MCSBW20UL   180
+#define SROM9_2GPO_MCSBW40     182
+
+#define SROM9_5GLPO_MCSBW20    184
+#define SROM9_5GLPO_MCSBW20UL  186
+#define SROM9_5GLPO_MCSBW40    188
+#define SROM9_5GMPO_MCSBW20    190
+#define SROM9_5GMPO_MCSBW20UL  192
+#define SROM9_5GMPO_MCSBW40    194
+#define SROM9_5GHPO_MCSBW20    196
+#define SROM9_5GHPO_MCSBW20UL  198
+#define SROM9_5GHPO_MCSBW40    200
+
+#define SROM9_PO_MCS32         202
+#define SROM9_PO_LOFDM40DUP    203
+
+#define SROM9_REV_CRC          219
+
+typedef struct {
+       u8 tssipos;             /* TSSI positive slope, 1: positive, 0: negative */
+       u8 extpagain;   /* Ext PA gain-type: full-gain: 0, pa-lite: 1, no_pa: 2 */
+       u8 pdetrange;   /* support 32 combinations of different Pdet dynamic ranges */
+       u8 triso;               /* TR switch isolation */
+       u8 antswctrllut;        /* antswctrl lookup table configuration: 32 possible choices */
+} srom_fem_t;
+
+#endif                         /* _bcmsrom_fmt_h_ */