| 1 | /*************************************************************************** |
|---|
| 2 | * Copyright (c) 2004-2009, Broadcom Corporation |
|---|
| 3 | * All Rights Reserved |
|---|
| 4 | * Confidential Property of Broadcom Corporation |
|---|
| 5 | * |
|---|
| 6 | * THIS SOFTWARE MAY ONLY BE USED SUBJECT TO AN EXECUTED SOFTWARE LICENSE |
|---|
| 7 | * AGREEMENT BETWEEN THE USER AND BROADCOM. YOU HAVE NO RIGHT TO USE OR |
|---|
| 8 | * EXPLOIT THIS MATERIAL EXCEPT SUBJECT TO THE TERMS OF SUCH AN AGREEMENT. |
|---|
| 9 | * |
|---|
| 10 | * $brcm_Workfile: bvsb_3520.c $ |
|---|
| 11 | * $brcm_Revision: Hydra_Software_Devel/15 $ |
|---|
| 12 | * $brcm_Date: 5/19/09 11:08a $ |
|---|
| 13 | * |
|---|
| 14 | * [File Description:] |
|---|
| 15 | * |
|---|
| 16 | * Revision History: |
|---|
| 17 | * |
|---|
| 18 | * $brcm_Log: /magnum/portinginterface/vsb/3520/bvsb_3520.c $ |
|---|
| 19 | * |
|---|
| 20 | * Hydra_Software_Devel/15 5/19/09 11:08a dliu |
|---|
| 21 | * PR55183: Add OOB lock interrupts |
|---|
| 22 | * |
|---|
| 23 | * Hydra_Software_Devel/14 3/24/09 3:39p dliu |
|---|
| 24 | * PR53219: Add OOB control for 3520 |
|---|
| 25 | * |
|---|
| 26 | * Hydra_Software_Devel/13 5/7/08 4:52p dliu |
|---|
| 27 | * PR38953: Roll some new NTSC changes back so it won't break BDTV |
|---|
| 28 | * |
|---|
| 29 | * Hydra_Software_Devel/12 5/6/08 11:07a dliu |
|---|
| 30 | * PR38953: Update NTSC settings from 3563 so it would compile |
|---|
| 31 | * |
|---|
| 32 | * Hydra_Software_Devel/11 2/13/07 12:05p dliu |
|---|
| 33 | * PR27857: Add Set_IFFreq function |
|---|
| 34 | * |
|---|
| 35 | * Hydra_Software_Devel/10 11/28/06 6:11p bandrews |
|---|
| 36 | * PR25214: Added missing comma in function table |
|---|
| 37 | * |
|---|
| 38 | * Hydra_Software_Devel/9 11/28/06 4:29p dliu |
|---|
| 39 | * PR23867: Update change from 3563 |
|---|
| 40 | * |
|---|
| 41 | * Hydra_Software_Devel/8 11/14/06 11:27a dliu |
|---|
| 42 | * PR25214: Added BVSB_3520_P_GetChipRevision() function |
|---|
| 43 | * |
|---|
| 44 | * Hydra_Software_Devel/7 7/5/06 7:40p vle |
|---|
| 45 | * PR 22314, PR 19529: undo change of "added symbol rate to QAM input |
|---|
| 46 | * parameters" |
|---|
| 47 | * |
|---|
| 48 | * Hydra_Software_Devel/6 6/23/06 2:38p dliu |
|---|
| 49 | * PR22314: Added Symbolrate to QAM input parameters |
|---|
| 50 | * |
|---|
| 51 | * Hydra_Software_Devel/5 6/5/06 5:51p enavarro |
|---|
| 52 | * PR 17253: fixed compiler warning |
|---|
| 53 | * |
|---|
| 54 | * Hydra_Software_Devel/4 9/29/05 4:14p dliu |
|---|
| 55 | * PR 17253: Added IFD weak signal detection and chroma kill |
|---|
| 56 | * |
|---|
| 57 | * Hydra_Software_Devel/3 1/26/05 1:25p enavarro |
|---|
| 58 | * PR 13901: latest oob changes |
|---|
| 59 | * |
|---|
| 60 | * Hydra_Software_Devel/2 10/1/04 3:25p brianlee |
|---|
| 61 | * PR12857: Modified code to comform to magnum coding convention. |
|---|
| 62 | * |
|---|
| 63 | ***************************************************************************/ |
|---|
| 64 | |
|---|
| 65 | #include "bstd.h" |
|---|
| 66 | #include "bchp_3520.h" |
|---|
| 67 | #include "bvsb.h" |
|---|
| 68 | #include "bvsb_priv.h" |
|---|
| 69 | #include "bvsb_3520.h" |
|---|
| 70 | #include "bvsb_3520_priv.h" |
|---|
| 71 | |
|---|
| 72 | |
|---|
| 73 | BDBG_MODULE(bvsb_3520); |
|---|
| 74 | |
|---|
| 75 | |
|---|
| 76 | static const BVSB_Settings defDevSettings = |
|---|
| 77 | { |
|---|
| 78 | { /* i2c settings */ |
|---|
| 79 | 0x0F, /* chipAddr */ |
|---|
| 80 | NULL, /* interruptEnableFunc */ |
|---|
| 81 | NULL /* interruptEnableFuncParam */ |
|---|
| 82 | }, |
|---|
| 83 | { /* VSB acquisition settings */ |
|---|
| 84 | BVSB_PhaseLoopBw_eMedium, /* BW */ |
|---|
| 85 | true, /* bAutoAcq */ |
|---|
| 86 | true, /* bFastAcq */ |
|---|
| 87 | true, /* bTei */ |
|---|
| 88 | true, /* bTerr */ |
|---|
| 89 | false, /* bNtscSweep */ |
|---|
| 90 | false, /* bRfiSweep */ |
|---|
| 91 | 0 /* PGA Gain, not used */ |
|---|
| 92 | }, |
|---|
| 93 | { /* QAM acquisition settings */ |
|---|
| 94 | BVSB_PhaseLoopBw_eMedium, |
|---|
| 95 | BVSB_IDepth_e12_17, /* idepth */ |
|---|
| 96 | BVSB_NyquistFilter_e12, /* nyquist filter rolloff */ |
|---|
| 97 | true, /* bAutoAcq */ |
|---|
| 98 | true, /* bFastAcq */ |
|---|
| 99 | true, /* bTerr */ |
|---|
| 100 | true, /* bEq */ |
|---|
| 101 | false, /* use 6MHz channelization */ |
|---|
| 102 | true, /* bTei */ |
|---|
| 103 | true, /* bSpinv */ |
|---|
| 104 | false, /* select DVB unmapper */ |
|---|
| 105 | 0 /* PGA Gain, not used */ |
|---|
| 106 | }, |
|---|
| 107 | { /* NTSC acquisition settings */ |
|---|
| 108 | BVSB_PhaseLoopBw_eMedium, |
|---|
| 109 | true, /* bFastAcq */ |
|---|
| 110 | true, /* bTerr */ |
|---|
| 111 | true, /* bAutoAcq */ |
|---|
| 112 | BVSB_PullInRange_eWide, /* wide pull-in range*/ |
|---|
| 113 | 45750000, /* not used in 3520 */ |
|---|
| 114 | BVSB_AnalogMode_eNTSC, /* not used in 3520 */ |
|---|
| 115 | BVSB_BtscCountry_eUS, /* not used in 3520 */ |
|---|
| 116 | 0 /* PGA Gain, not used */ |
|---|
| 117 | }, |
|---|
| 118 | { /* BTSC settings */ |
|---|
| 119 | BVSB_BtscDecodeMode_eStereo, /* decode mode */ |
|---|
| 120 | BVSB_BtscSampleRate_e48KHz, /* sample rate */ |
|---|
| 121 | true /* primary i2s output */ |
|---|
| 122 | }, |
|---|
| 123 | { /* OOB acquisition settings */ |
|---|
| 124 | BVSB_PhaseLoopBw_eMedium, |
|---|
| 125 | true, /* bAutoAcq */ |
|---|
| 126 | true, /* bSpinv */ |
|---|
| 127 | false /* bBypassFEC */ |
|---|
| 128 | }, |
|---|
| 129 | { /* Inband Transport output interface settings */ |
|---|
| 130 | false, /* bHead4 */ |
|---|
| 131 | false, /* bSync1 */ |
|---|
| 132 | false, /* bXBERT */ |
|---|
| 133 | false, /* bErrinv */ |
|---|
| 134 | false, /* bSyncinv */ |
|---|
| 135 | false, /* bVldinv */ |
|---|
| 136 | false, /* bClksup */ |
|---|
| 137 | true, /* bClkinv */ |
|---|
| 138 | true /* bSerial */ |
|---|
| 139 | }, |
|---|
| 140 | { /* placehoder for channel scan parameters, N/A for 3520 */ |
|---|
| 141 | 0, |
|---|
| 142 | 0, |
|---|
| 143 | 0 |
|---|
| 144 | }, |
|---|
| 145 | { /* API function table */ |
|---|
| 146 | BVSB_3520_P_Open, |
|---|
| 147 | BVSB_3520_P_Close, |
|---|
| 148 | BVSB_3520_P_InitAp, |
|---|
| 149 | BVSB_3520_P_GetApStatus, |
|---|
| 150 | BVSB_3520_P_GetApVersion, |
|---|
| 151 | BVSB_3520_P_ReadRegister, |
|---|
| 152 | BVSB_3520_P_WriteRegister, |
|---|
| 153 | BVSB_3520_P_Mi2cWrite, |
|---|
| 154 | BVSB_3520_P_Mi2cRead, |
|---|
| 155 | BVSB_3520_P_AcquireInband, |
|---|
| 156 | BVSB_3520_P_GetVsbStatus, |
|---|
| 157 | BVSB_3520_P_GetQamStatus, |
|---|
| 158 | BVSB_3520_P_GetNtscStatus, |
|---|
| 159 | BVSB_3520_P_ResetInbandStatus, |
|---|
| 160 | BVSB_3520_P_AcquireOob, |
|---|
| 161 | BVSB_3520_P_GetOobStatus, |
|---|
| 162 | BVSB_3520_P_ResetOobStatus, |
|---|
| 163 | BVSB_3520_P_ConfigBtsc, |
|---|
| 164 | BVSB_3520_P_SetBtscVolume, |
|---|
| 165 | BVSB_3520_P_GetBtscStatus, |
|---|
| 166 | BVSB_3520_P_SetInbandOi, |
|---|
| 167 | BVSB_3520_P_GetSoftDecisionBuf, |
|---|
| 168 | BVSB_3520_P_GetOobSoftDecisionBuf, |
|---|
| 169 | BVSB_3520_P_SetTmConfig, |
|---|
| 170 | BVSB_3520_P_GetTmConfig, |
|---|
| 171 | BVSB_3520_P_WriteConfig, |
|---|
| 172 | BVSB_3520_P_ReadConfig, |
|---|
| 173 | BVSB_3520_P_GetLockStateChangeEventHandle, |
|---|
| 174 | BVSB_3520_P_GetOobLockStateChangeEventHandle, |
|---|
| 175 | BVSB_3520_P_GetAntennaEventHandle, |
|---|
| 176 | BVSB_3520_P_GetInterruptEventHandle, |
|---|
| 177 | BVSB_3520_P_HandleInterrupt_isr, |
|---|
| 178 | BVSB_3520_P_ProcessInterruptEvent, |
|---|
| 179 | BVSB_3520_P_GetChipRevision, |
|---|
| 180 | NULL, /* DetectChannelSignal, */ |
|---|
| 181 | NULL, /* GetUnlockstatusEventHandle */ |
|---|
| 182 | NULL, /* GetLockstatusEventHandle*/ |
|---|
| 183 | BVSB_3520_P_SetInbandIfFreq, /* SetInbandIfFreq*/ |
|---|
| 184 | NULL, /*SetIfdPullInRange*/ |
|---|
| 185 | NULL, /*PowerDown*/ |
|---|
| 186 | NULL, /*SetPgaGain*/ |
|---|
| 187 | BVSB_3520_P_SetOobInterfaceControl |
|---|
| 188 | }, |
|---|
| 189 | NULL /* Timer */ |
|---|
| 190 | }; |
|---|
| 191 | |
|---|
| 192 | |
|---|
| 193 | /****************************************************************************** |
|---|
| 194 | BVSB_3520_GetDefaultSettings() |
|---|
| 195 | ******************************************************************************/ |
|---|
| 196 | BERR_Code BVSB_3520_GetDefaultSettings( |
|---|
| 197 | BVSB_Settings *pDefSettings /* [out] default settings */ |
|---|
| 198 | ) |
|---|
| 199 | { |
|---|
| 200 | *pDefSettings = defDevSettings; |
|---|
| 201 | return BERR_SUCCESS; |
|---|
| 202 | } |
|---|
| 203 | |
|---|
| 204 | |
|---|