1 /**************************************************************************** 2 **+-----------------------------------------------------------------------+** 3 **| |** 4 **| Copyright(c) 1998 - 2008 Texas Instruments. All rights reserved. |** 5 **| All rights reserved. |** 6 **| |** 7 **| Redistribution and use in source and binary forms, with or without |** 8 **| modification, are permitted provided that the following conditions |** 9 **| are met: |** 10 **| |** 11 **| * Redistributions of source code must retain the above copyright |** 12 **| notice, this list of conditions and the following disclaimer. |** 13 **| * Redistributions in binary form must reproduce the above copyright |** 14 **| notice, this list of conditions and the following disclaimer in |** 15 **| the documentation and/or other materials provided with the |** 16 **| distribution. |** 17 **| * Neither the name Texas Instruments nor the names of its |** 18 **| contributors may be used to endorse or promote products derived |** 19 **| from this software without specific prior written permission. |** 20 **| |** 21 **| THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |** 22 **| "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT |** 23 **| LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR |** 24 **| A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT |** 25 **| OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |** 26 **| SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT |** 27 **| LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |** 28 **| DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |** 29 **| THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |** 30 **| (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |** 31 **| OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |** 32 **| |** 33 **+-----------------------------------------------------------------------+** 34 ****************************************************************************/ 35 36 /** \file public_types.h 37 * \brief Basic types and general macros, bit manipulations, etc. 38 * 39 */ 40 41 #ifndef PUBLIC_TYPES_H 42 #define PUBLIC_TYPES_H 43 44 45 /****************************************************************************** 46 47 Basic definitions 48 49 ******************************************************************************/ 50 #ifndef uint8 51 typedef unsigned char uint8; 52 #endif 53 #ifndef uint16 54 typedef unsigned short uint16; 55 #endif 56 #ifndef uint32 57 typedef unsigned long int uint32; 58 #endif 59 60 #ifndef int8 61 typedef signed char int8; 62 #endif 63 #ifndef int16 64 typedef short int16; 65 #endif 66 #ifndef int32 67 typedef long int int32; 68 #endif 69 70 #ifndef TRUE 71 #define TRUE 1 72 #endif 73 #ifndef FALSE 74 #define FALSE 0 75 #endif 76 77 /* !! LAC - NULL definition conflicts with the compilers version. 78 I redid this definition to the ANSI version.... 79 #define NULL 0 80 */ 81 #if !defined( NULL ) 82 #if defined( __cplusplus ) 83 #define NULL 0 84 #else 85 #define NULL ((void *)0) 86 #endif 87 #endif 88 89 /* Bool_e should be used when we need it to be a byte. */ 90 typedef uint8 Bool_e; 91 92 /* Bool32 should be used whenever possible for efficiency */ 93 typedef uint32 Bool32; 94 95 /* to align enum to 32/16 bits */ 96 #define MAX_POSITIVE32 0x7FFFFFFF 97 #define MAX_POSITIVE16 0x7FFF 98 99 100 #define MAC_ADDR_SIZE 6 101 102 #ifndef HOST_COMPILE 103 #define HOST_COMPILE /* temp fix for suppl build err */ 104 #endif 105 106 #ifdef HOST_COMPILE 107 #else 108 typedef struct macAddress_t 109 { 110 uint8 addr[MAC_ADDR_SIZE]; 111 }macAddress_t; 112 #endif 113 114 115 #define BIT_0 0x00000001 116 #define BIT_1 0x00000002 117 #define BIT_2 0x00000004 118 #define BIT_3 0x00000008 119 #define BIT_4 0x00000010 120 #define BIT_5 0x00000020 121 #define BIT_6 0x00000040 122 #define BIT_7 0x00000080 123 #define BIT_8 0x00000100 124 #define BIT_9 0x00000200 125 #define BIT_10 0x00000400 126 #define BIT_11 0x00000800 127 #define BIT_12 0x00001000 128 #define BIT_13 0x00002000 129 #define BIT_14 0x00004000 130 #define BIT_15 0x00008000 131 #define BIT_16 0x00010000 132 #define BIT_17 0x00020000 133 #define BIT_18 0x00040000 134 #define BIT_19 0x00080000 135 #define BIT_20 0x00100000 136 #define BIT_21 0x00200000 137 #define BIT_22 0x00400000 138 #define BIT_23 0x00800000 139 #define BIT_24 0x01000000 140 #define BIT_25 0x02000000 141 #define BIT_26 0x04000000 142 #define BIT_27 0x08000000 143 #define BIT_28 0x10000000 144 #define BIT_29 0x20000000 145 #define BIT_30 0x40000000 146 #define BIT_31 0x80000000 147 148 #define BIT_32 0x00000001 149 #define BIT_33 0x00000002 150 #define BIT_34 0x00000004 151 #define BIT_35 0x00000008 152 #define BIT_36 0x00000010 153 #define BIT_37 0x00000020 154 #define BIT_38 0x00000040 155 #define BIT_39 0x00000080 156 #define BIT_40 0x00000100 157 #define BIT_41 0x00000200 158 #define BIT_42 0x00000400 159 #define BIT_43 0x00000800 160 #define BIT_44 0x00001000 161 #define BIT_45 0x00002000 162 #define BIT_46 0x00004000 163 #define BIT_47 0x00008000 164 #define BIT_48 0x00010000 165 #define BIT_49 0x00020000 166 #define BIT_50 0x00040000 167 #define BIT_51 0x00080000 168 #define BIT_52 0x00100000 169 #define BIT_53 0x00200000 170 #define BIT_54 0x00400000 171 #define BIT_55 0x00800000 172 #define BIT_56 0x01000000 173 #define BIT_57 0x02000000 174 #define BIT_58 0x04000000 175 #define BIT_59 0x08000000 176 #define BIT_60 0x10000000 177 #define BIT_61 0x20000000 178 #define BIT_62 0x40000000 179 #define BIT_63 0x80000000 180 181 182 /****************************************************************************** 183 184 CHANNELS, BAND & REG DOMAINS definitions 185 186 ******************************************************************************/ 187 188 189 typedef uint8 Channel_e; 190 191 typedef enum 192 { 193 RADIO_BAND_2_4GHZ = 0, /* 2.4 Ghz band */ 194 RADIO_BAND_5GHZ = 1, /* 5 Ghz band */ 195 RADIO_BAND_JAPAN_4_9_GHZ = 2, 196 DEFAULT_BAND = RADIO_BAND_2_4GHZ, 197 INVALID_BAND = 0xFE, 198 MAX_RADIO_BANDS = 0xFF 199 } RadioBand_enum; 200 201 #ifdef HOST_COMPILE 202 typedef uint8 RadioBand_e; 203 #else 204 typedef RadioBand_enum RadioBand_e; 205 #endif 206 207 208 typedef enum 209 { 210 NO_RATE = 0, 211 RATE_1MBPS = 0x0A, 212 RATE_2MBPS = 0x14, 213 RATE_5_5MBPS = 0x37, 214 RATE_6MBPS = 0x0B, 215 RATE_9MBPS = 0x0F, 216 RATE_11MBPS = 0x6E, 217 RATE_12MBPS = 0x0A, 218 RATE_18MBPS = 0x0E, 219 RATE_22MBPS = 0xDC, 220 RATE_24MBPS = 0x09, 221 RATE_36MBPS = 0x0D, 222 RATE_48MBPS = 0x08, 223 RATE_54MBPS = 0x0C 224 } Rate_enum; 225 226 #ifdef HOST_COMPILE 227 typedef uint8 Rate_e; 228 #else 229 typedef Rate_enum Rate_e; 230 #endif 231 232 typedef enum 233 { 234 RATE_INDEX_1MBPS = 0, 235 RATE_INDEX_2MBPS = 1, 236 RATE_INDEX_5_5MBPS = 2, 237 RATE_INDEX_6MBPS = 3, 238 RATE_INDEX_9MBPS = 4, 239 RATE_INDEX_11MBPS = 5, 240 RATE_INDEX_12MBPS = 6, 241 RATE_INDEX_18MBPS = 7, 242 RATE_INDEX_22MBPS = 8, 243 RATE_INDEX_24MBPS = 9, 244 RATE_INDEX_36MBPS = 10, 245 RATE_INDEX_48MBPS = 11, 246 RATE_INDEX_54MBPS = 12, 247 RATE_INDEX_MAX = RATE_INDEX_54MBPS, 248 MAX_RATE_INDEX, 249 INVALID_RATE_INDEX = MAX_RATE_INDEX, 250 RATE_INDEX_ENUM_MAX_SIZE = 0x7FFFFFFF 251 } RateIndex_e; 252 253 #define SHORT_PREAMBLE_BIT BIT_0 /* CCK or Barker depending on the rate */ 254 #define OFDM_RATE_BIT BIT_6 255 #define PBCC_RATE_BIT BIT_7 256 257 258 typedef enum 259 { 260 CCK_LONG = 0, 261 CCK_SHORT = SHORT_PREAMBLE_BIT, 262 PBCC_LONG = PBCC_RATE_BIT, 263 PBCC_SHORT = PBCC_RATE_BIT | SHORT_PREAMBLE_BIT, 264 OFDM = OFDM_RATE_BIT 265 } Mod_enum; 266 267 #ifdef HOST_COMPILE 268 typedef uint8 Mod_e; 269 #else 270 typedef Mod_enum Mod_e; 271 #endif 272 273 274 typedef uint16 BasicRateSet_t; 275 276 277 /****************************************************************************** 278 279 Transmit-Descriptor RATE-SET field definitions... 280 281 Define a new "Rate-Set" for TX path that incorporates the 282 Rate & Modulation info into a single 16-bit field. 283 284 TxdRateSet_t: 285 b15 - Indicates Preamble type (1=SHORT, 0=LONG). 286 Notes: 287 Must be LONG (0) for 1Mbps rate. 288 Does not apply (set to 0) for RevG-OFDM rates. 289 b14 - Indicates PBCC encoding (1=PBCC, 0=not). 290 Notes: 291 Does not apply (set to 0) for rates 1 and 2 Mbps. 292 Does not apply (set to 0) for RevG-OFDM rates. 293 b13 - Unused (set to 0). 294 b12-b0 - Supported Rate indicator bits as defined below. 295 296 ******************************************************************************/ 297 298 typedef uint16 TxdRateSet_t; 299 300 301 /****************************************************************************** 302 303 CHIP_ID definitions 304 305 ******************************************************************************/ 306 #define TNETW1150_PG10_CHIP_ID 0x04010101 307 #define TNETW1150_PG11_CHIP_ID 0x04020101 308 #define TNETW1150_CHIP_ID 0x04030101 /* 1150 PG2.0, 1250, 1350, 1450*/ 309 #define TNETW1350A_CHIP_ID 0x06010101 310 #define TNETW1251_CHIP_ID_PG1_0 0x07010101 311 #define TNETW1251_CHIP_ID_PG1_1 0x07020101 312 #define TNETW1251_CHIP_ID_PG1_2 0x07030101 313 314 #define IS_CHIP_PG_LESS_THEN_PG12() ((CHIP_ID == TNETW1251_CHIP_ID_PG1_0) || (CHIP_ID == TNETW1251_CHIP_ID_PG1_1)) 315 316 /****************************************************************************** 317 Enable bits for SOC1251 PG1.2 318 ******************************************************************************/ 319 #define PDET_BINARY_OFFSET_EN BIT_0 320 #define STOP_TOGGLE_MONADC_EN BIT_1 321 #define RX_ADC_BIAS_DEC_EN BIT_2 322 #define RX_LNB_AND_DIGI_GAIN_EN BIT_3 323 324 325 #endif /* PUBLIC_TYPES_H*/ 326