| 1 | /******************************************************************************* |
|---|
| 2 | * |
|---|
| 3 | * FILE NAME : MxL_Common.h |
|---|
| 4 | * |
|---|
| 5 | * AUTHOR : Howard Chan / Patrick Dizon |
|---|
| 6 | * DATE CREATED : June 4, 2010 |
|---|
| 7 | * |
|---|
| 8 | * DESCRIPTION : MxL201RF V6 Type enumeration & struct declaration |
|---|
| 9 | * |
|---|
| 10 | ******************************************************************************* |
|---|
| 11 | * Copyright (c) 2010, MaxLinear, Inc. |
|---|
| 12 | ******************************************************************************/ |
|---|
| 13 | |
|---|
| 14 | #ifndef __MxL201RF_COMMON_H |
|---|
| 15 | #define __MxL201RF_COMMON_H |
|---|
| 16 | |
|---|
| 17 | #if defined( __cplusplus ) |
|---|
| 18 | extern "C" /* Use "C" external linkage */ |
|---|
| 19 | { |
|---|
| 20 | #endif |
|---|
| 21 | |
|---|
| 22 | #include "MxL_User_Define.h" |
|---|
| 23 | |
|---|
| 24 | |
|---|
| 25 | /******************************/ |
|---|
| 26 | /* MxL201RF Err message */ |
|---|
| 27 | /******************************/ |
|---|
| 28 | typedef enum{ |
|---|
| 29 | MxL_OK = 0x0, |
|---|
| 30 | MxL_ERR_INIT = 0x1, |
|---|
| 31 | MxL_ERR_RFTUNE = 0x2, |
|---|
| 32 | MxL_ERR_SET_REG = 0x3, |
|---|
| 33 | MxL_ERR_GET_REG = 0x4, |
|---|
| 34 | MxL_ERR_MODE = 0x10, |
|---|
| 35 | MxL_ERR_IF_FREQ = 0x11, |
|---|
| 36 | MxL_ERR_XTAL_FREQ = 0x12, |
|---|
| 37 | MxL_ERR_BANDWIDTH = 0x13, |
|---|
| 38 | MxL_GET_ID_FAIL = 0x14, |
|---|
| 39 | MxL_ERR_OTHERS = 0x0A |
|---|
| 40 | }MxL_ERR_MSG; |
|---|
| 41 | |
|---|
| 42 | /******************************/ |
|---|
| 43 | /* MxL201RF Chip verstion */ |
|---|
| 44 | /******************************/ |
|---|
| 45 | typedef enum{ |
|---|
| 46 | MxL_UNKNOWN_ID = 0x00, |
|---|
| 47 | MxL_201RF_ES4 = 0x06 |
|---|
| 48 | }MxL201RF_ChipVersion; |
|---|
| 49 | |
|---|
| 50 | |
|---|
| 51 | /****************************************************************************** |
|---|
| 52 | CONSTANTS |
|---|
| 53 | ******************************************************************************/ |
|---|
| 54 | |
|---|
| 55 | #ifndef MHz |
|---|
| 56 | #define MHz 1000000 |
|---|
| 57 | #endif |
|---|
| 58 | |
|---|
| 59 | #define MAX_ARRAY_SIZE 100 |
|---|
| 60 | |
|---|
| 61 | |
|---|
| 62 | /* Enumeration of Mode */ |
|---|
| 63 | typedef enum |
|---|
| 64 | { |
|---|
| 65 | MxL_MODE_DVBT = 0x01, |
|---|
| 66 | MxL_MODE_ATSC = 0x02, |
|---|
| 67 | MxL_MODE_CAB_OPT1 = 0x10, |
|---|
| 68 | MxL_MODE_CAB_STD = 0x11 /*Cable "Standard" setting */ |
|---|
| 69 | } MxL201RF_Mode ; |
|---|
| 70 | |
|---|
| 71 | /* Enumeration of Acceptable IF Frequencies */ |
|---|
| 72 | typedef enum |
|---|
| 73 | { |
|---|
| 74 | MxL_IF_4_MHZ = 4000000, |
|---|
| 75 | MxL_IF_4_5_MHZ = 4500000, |
|---|
| 76 | MxL_IF_4_57_MHZ = 4570000, |
|---|
| 77 | MxL_IF_5_MHZ = 5000000, |
|---|
| 78 | MxL_IF_5_38_MHZ = 5380000, |
|---|
| 79 | MxL_IF_6_MHZ = 6000000, |
|---|
| 80 | MxL_IF_6_28_MHZ = 6280000, |
|---|
| 81 | MxL_IF_7_2_MHZ = 7200000, |
|---|
| 82 | MxL_IF_35_25_MHZ = 35250000, |
|---|
| 83 | MxL_IF_36_MHZ = 36000000, |
|---|
| 84 | MxL_IF_36_15_MHZ = 36150000, |
|---|
| 85 | MxL_IF_44_MHZ = 44000000 |
|---|
| 86 | } MxL201RF_IF_Freq ; |
|---|
| 87 | |
|---|
| 88 | /* Enumeration of Acceptable Crystal Frequencies */ |
|---|
| 89 | typedef enum |
|---|
| 90 | { |
|---|
| 91 | MxL_XTAL_16_MHZ = 16000000, |
|---|
| 92 | MxL_XTAL_20_MHZ = 20000000, |
|---|
| 93 | MxL_XTAL_20_25_MHZ = 20250000, |
|---|
| 94 | MxL_XTAL_20_48_MHZ = 20480000, |
|---|
| 95 | MxL_XTAL_24_MHZ = 24000000, |
|---|
| 96 | MxL_XTAL_25_MHZ = 25000000, |
|---|
| 97 | MxL_XTAL_25_14_MHZ = 25140000, |
|---|
| 98 | MxL_XTAL_28_8_MHZ = 28800000, |
|---|
| 99 | MxL_XTAL_32_MHZ = 32000000, |
|---|
| 100 | MxL_XTAL_40_MHZ = 40000000, |
|---|
| 101 | MxL_XTAL_44_MHZ = 44000000, |
|---|
| 102 | MxL_XTAL_48_MHZ = 48000000, |
|---|
| 103 | MxL_XTAL_49_3811_MHZ = 49381100 |
|---|
| 104 | } MxL201RF_Xtal_Freq ; |
|---|
| 105 | |
|---|
| 106 | /* Enumeration of Acceptable IF Bandwidths */ |
|---|
| 107 | typedef enum |
|---|
| 108 | { |
|---|
| 109 | MxL_BW_6MHz = 6, |
|---|
| 110 | MxL_BW_7MHz = 7, |
|---|
| 111 | MxL_BW_8MHz = 8 |
|---|
| 112 | } MxL201RF_BW_MHz; |
|---|
| 113 | |
|---|
| 114 | /* Enumeration of Inverted/Normal IF Spectrum */ |
|---|
| 115 | typedef enum |
|---|
| 116 | { |
|---|
| 117 | MxL_NORMAL_IF = 0 , |
|---|
| 118 | MxL_INVERT_IF |
|---|
| 119 | |
|---|
| 120 | } MxL201RF_IF_Spectrum ; |
|---|
| 121 | |
|---|
| 122 | /* Enumeration of Clock out Enable/Disable */ |
|---|
| 123 | typedef enum |
|---|
| 124 | { |
|---|
| 125 | MxL_CLKOUT_DISABLE = 0 , |
|---|
| 126 | MxL_CLKOUT_ENABLE |
|---|
| 127 | |
|---|
| 128 | } MxL201RF_ClkOut; |
|---|
| 129 | |
|---|
| 130 | /* Enumeration of Clock out Amplitude */ |
|---|
| 131 | typedef enum |
|---|
| 132 | { |
|---|
| 133 | MxL_CLKOUT_AMP_0 = 0 , /* min Clock out Amplitude */ |
|---|
| 134 | MxL_CLKOUT_AMP_1, |
|---|
| 135 | MxL_CLKOUT_AMP_2, |
|---|
| 136 | MxL_CLKOUT_AMP_3, |
|---|
| 137 | MxL_CLKOUT_AMP_4, |
|---|
| 138 | MxL_CLKOUT_AMP_5, |
|---|
| 139 | MxL_CLKOUT_AMP_6, |
|---|
| 140 | MxL_CLKOUT_AMP_7, |
|---|
| 141 | MxL_CLKOUT_AMP_8, |
|---|
| 142 | MxL_CLKOUT_AMP_9, |
|---|
| 143 | MxL_CLKOUT_AMP_10, |
|---|
| 144 | MxL_CLKOUT_AMP_11, |
|---|
| 145 | MxL_CLKOUT_AMP_12, |
|---|
| 146 | MxL_CLKOUT_AMP_13, |
|---|
| 147 | MxL_CLKOUT_AMP_14, |
|---|
| 148 | MxL_CLKOUT_AMP_15 /* max Clock out Amplitude */ |
|---|
| 149 | |
|---|
| 150 | } MxL201RF_ClkOut_Amp; |
|---|
| 151 | |
|---|
| 152 | /* Enumeration of I2C Addresses */ |
|---|
| 153 | typedef enum |
|---|
| 154 | { |
|---|
| 155 | MxL_I2C_ADDR_96 = 96 , |
|---|
| 156 | MxL_I2C_ADDR_97 = 97 , |
|---|
| 157 | MxL_I2C_ADDR_98 = 98 , |
|---|
| 158 | MxL_I2C_ADDR_99 = 99 |
|---|
| 159 | } MxL201RF_I2CAddr ; |
|---|
| 160 | |
|---|
| 161 | /* Enumeration of Acceptable Crystal Capacitor values */ |
|---|
| 162 | typedef enum |
|---|
| 163 | { |
|---|
| 164 | MxL_XTAL_CAP_0_PF = 0, |
|---|
| 165 | MxL_XTAL_CAP_1_PF = 1, |
|---|
| 166 | MxL_XTAL_CAP_2_PF = 2, |
|---|
| 167 | MxL_XTAL_CAP_3_PF = 3, |
|---|
| 168 | MxL_XTAL_CAP_4_PF = 4, |
|---|
| 169 | MxL_XTAL_CAP_5_PF = 5, |
|---|
| 170 | MxL_XTAL_CAP_6_PF = 6, |
|---|
| 171 | MxL_XTAL_CAP_7_PF = 7, |
|---|
| 172 | MxL_XTAL_CAP_8_PF = 8, |
|---|
| 173 | MxL_XTAL_CAP_9_PF = 9, |
|---|
| 174 | MxL_XTAL_CAP_10_PF = 10, |
|---|
| 175 | MxL_XTAL_CAP_11_PF = 11, |
|---|
| 176 | MxL_XTAL_CAP_12_PF = 12, |
|---|
| 177 | MxL_XTAL_CAP_13_PF = 13, |
|---|
| 178 | MxL_XTAL_CAP_14_PF = 14, |
|---|
| 179 | MxL_XTAL_CAP_15_PF = 15, |
|---|
| 180 | MxL_XTAL_CAP_16_PF = 16, |
|---|
| 181 | MxL_XTAL_CAP_17_PF = 17, |
|---|
| 182 | MxL_XTAL_CAP_18_PF = 18, |
|---|
| 183 | MxL_XTAL_CAP_19_PF = 19, |
|---|
| 184 | MxL_XTAL_CAP_20_PF = 20, |
|---|
| 185 | MxL_XTAL_CAP_21_PF = 21, |
|---|
| 186 | MxL_XTAL_CAP_22_PF = 22, |
|---|
| 187 | MxL_XTAL_CAP_23_PF = 23, |
|---|
| 188 | MxL_XTAL_CAP_24_PF = 24, |
|---|
| 189 | MxL_XTAL_CAP_25_PF = 25 |
|---|
| 190 | } MxL201RF_Xtal_Cap; |
|---|
| 191 | |
|---|
| 192 | /* SHFLUT */ |
|---|
| 193 | typedef struct |
|---|
| 194 | { |
|---|
| 195 | UINT32 Ch_Freq_Hz; |
|---|
| 196 | UINT8 Reg1_Val; |
|---|
| 197 | UINT8 Reg2_Val; |
|---|
| 198 | } ShiftLUT; |
|---|
| 199 | /*//20120319 csm disable , link error |
|---|
| 200 | const ShiftLUT SHIFT_LUT8[]= |
|---|
| 201 | { |
|---|
| 202 | {331000000, 0x18, 0x04}, |
|---|
| 203 | {338000000, 0x2C, 0x04}, |
|---|
| 204 | {339000000, 0xB4, 0x07}, |
|---|
| 205 | {346000000, 0xD4, 0x07}, |
|---|
| 206 | {363000000, 0xD0, 0x07}, |
|---|
| 207 | {394000000, 0x2C, 0x04}, |
|---|
| 208 | {403000000, 0x62, 0x04}, |
|---|
| 209 | {410000000, 0x2C, 0x04}, |
|---|
| 210 | {411000000, 0xD4, 0x07}, |
|---|
| 211 | {418000000, 0xD4, 0x07}, |
|---|
| 212 | {434000000, 0xD4, 0x07}, |
|---|
| 213 | {435000000, 0xD4, 0x07}, |
|---|
| 214 | {466000000, 0x2C, 0x04}, |
|---|
| 215 | {506000000, 0xD4, 0x07}, |
|---|
| 216 | {538000000, 0x2C, 0x04}, |
|---|
| 217 | {578000000, 0xD4, 0x07}, |
|---|
| 218 | {610000000, 0x2C, 0x04}, |
|---|
| 219 | {650000000, 0xD4, 0x07}, |
|---|
| 220 | {682000000, 0x3C, 0x04}, |
|---|
| 221 | {722000000, 0xCA, 0x07}, |
|---|
| 222 | {754000000, 0x34, 0x04}, |
|---|
| 223 | {794000000, 0xCC, 0x07}, |
|---|
| 224 | {826000000, 0x34, 0x04}, |
|---|
| 225 | {866000000, 0xCC, 0x07}, |
|---|
| 226 | {898000000, 0x34, 0x04}, |
|---|
| 227 | {938000000, 0xCC, 0x07}, |
|---|
| 228 | {970000000, 0x34, 0x04}, |
|---|
| 229 | {-1, 0, 0} |
|---|
| 230 | }; |
|---|
| 231 | |
|---|
| 232 | const ShiftLUT SHIFT_LUT6[]= |
|---|
| 233 | { |
|---|
| 234 | {339000000, 0xD4, 0x07}, |
|---|
| 235 | {345000000, 0x2C, 0x04}, |
|---|
| 236 | {357000000, 0x2C, 0x04}, |
|---|
| 237 | {363000000, 0xD2, 0x07}, |
|---|
| 238 | {375000000, 0xD4, 0x07}, |
|---|
| 239 | {381000000, 0x2C, 0x04}, |
|---|
| 240 | {393000000, 0x2C, 0x04}, |
|---|
| 241 | {399000000, 0xD4, 0x07}, |
|---|
| 242 | {411000000, 0xD4, 0x07}, |
|---|
| 243 | {417000000, 0x2C, 0x04}, |
|---|
| 244 | {429000000, 0x2C, 0x04}, |
|---|
| 245 | {435000000, 0xD4, 0x07}, |
|---|
| 246 | {447000000, 0xD4, 0x07}, |
|---|
| 247 | {453000000, 0x2C, 0x04}, |
|---|
| 248 | {465000000, 0x2C, 0x04}, |
|---|
| 249 | {471000000, 0xD4, 0x07}, |
|---|
| 250 | {501000000, 0x2C, 0x04}, |
|---|
| 251 | {507000000, 0xD4, 0x07}, |
|---|
| 252 | {537000000, 0x2C, 0x04}, |
|---|
| 253 | {543000000, 0xD4, 0x07}, |
|---|
| 254 | {573000000, 0x2C, 0x04}, |
|---|
| 255 | {579000000, 0xD4, 0x07}, |
|---|
| 256 | {609000000, 0x2C, 0x04}, |
|---|
| 257 | {615000000, 0xD4, 0x07}, |
|---|
| 258 | {645000000, 0x37, 0x04}, |
|---|
| 259 | {651000000, 0xCA, 0x07}, |
|---|
| 260 | {681000000, 0x34, 0x04}, |
|---|
| 261 | {687000000, 0xCC, 0x07}, |
|---|
| 262 | {717000000, 0x2C, 0x04}, |
|---|
| 263 | {723000000, 0xD4, 0x07}, |
|---|
| 264 | {753000000, 0x2C, 0x04}, |
|---|
| 265 | {759000000, 0xD4, 0x07}, |
|---|
| 266 | {789000000, 0x2C, 0x04}, |
|---|
| 267 | {795000000, 0xD4, 0x07}, |
|---|
| 268 | {825000000, 0x34, 0x04}, |
|---|
| 269 | {831000000, 0xCC, 0x07}, |
|---|
| 270 | {861000000, 0x34, 0x04}, |
|---|
| 271 | {867000000, 0xCC, 0x07}, |
|---|
| 272 | {897000000, 0x34, 0x04}, |
|---|
| 273 | {903000000, 0xCC, 0x07}, |
|---|
| 274 | {933000000, 0x34, 0x04}, |
|---|
| 275 | {939000000, 0xCC, 0x07}, |
|---|
| 276 | {969000000, 0x34, 0x04}, |
|---|
| 277 | {975000000, 0xCC, 0x07}, |
|---|
| 278 | {-1, 0, 0} |
|---|
| 279 | }; |
|---|
| 280 | */ |
|---|
| 281 | /* ===================== |
|---|
| 282 | MxL201RF Tuner Struct |
|---|
| 283 | ===================== */ |
|---|
| 284 | typedef struct _MxL201RF_TunerConfigS |
|---|
| 285 | { |
|---|
| 286 | MxL201RF_I2CAddr I2C_Addr; |
|---|
| 287 | MxL201RF_Mode Mode; |
|---|
| 288 | MxL201RF_Xtal_Freq Xtal_Freq; |
|---|
| 289 | MxL201RF_IF_Freq IF_Freq; |
|---|
| 290 | MxL201RF_IF_Spectrum IF_Spectrum; |
|---|
| 291 | MxL201RF_ClkOut ClkOut_Setting; |
|---|
| 292 | MxL201RF_ClkOut_Amp ClkOut_Amp; |
|---|
| 293 | MxL201RF_BW_MHz BW_MHz; |
|---|
| 294 | UINT32 RF_Freq_Hz; |
|---|
| 295 | MxL201RF_Xtal_Cap Xtal_Cap; |
|---|
| 296 | } MxL201RF_TunerConfigS ; |
|---|
| 297 | |
|---|
| 298 | #if defined( __cplusplus ) |
|---|
| 299 | } |
|---|
| 300 | #endif |
|---|
| 301 | |
|---|
| 302 | #endif /* __MxL201RF_COMMON_H__*/ |
|---|
| 303 | |
|---|