source: svn/newcon3bcm2_21bu/nexus/modules/frontend/common/include/nexus_frontend_oob.h

Last change on this file was 76, checked in by megakiss, 10 years ago

1W 대기전력을 만족시키기 위하여 POWEROFF시 튜너를 Standby 상태로 함

  • Property svn:executable set to *
File size: 10.1 KB
Line 
1/***************************************************************************
2*     (c)2004-2011 Broadcom Corporation
3
4*  This program is the proprietary software of Broadcom Corporation and/or its licensors,
5*  and may only be used, duplicated, modified or distributed pursuant to the terms and
6*  conditions of a separate, written license agreement executed between you and Broadcom
7*  (an "Authorized License").  Except as set forth in an Authorized License, Broadcom grants
8*  no license (express or implied), right to use, or waiver of any kind with respect to the
9*  Software, and Broadcom expressly reserves all rights in and to the Software and all
10*  intellectual property rights therein.  IF YOU HAVE NO AUTHORIZED LICENSE, THEN YOU
11*  HAVE NO RIGHT TO USE THIS SOFTWARE IN ANY WAY, AND SHOULD IMMEDIATELY
12*  NOTIFY BROADCOM AND DISCONTINUE ALL USE OF THE SOFTWARE. 
13*   
14*  Except as expressly set forth in the Authorized License,
15*   
16*  1.     This program, including its structure, sequence and organization, constitutes the valuable trade
17*  secrets of Broadcom, and you shall use all reasonable efforts to protect the confidentiality thereof,
18*  and to use this information only in connection with your use of Broadcom integrated circuit products.
19*   
20*  2.     TO THE MAXIMUM EXTENT PERMITTED BY LAW, THE SOFTWARE IS PROVIDED "AS IS"
21*  AND WITH ALL FAULTS AND BROADCOM MAKES NO PROMISES, REPRESENTATIONS OR
22*  WARRANTIES, EITHER EXPRESS, IMPLIED, STATUTORY, OR OTHERWISE, WITH RESPECT TO
23*  THE SOFTWARE.  BROADCOM SPECIFICALLY DISCLAIMS ANY AND ALL IMPLIED WARRANTIES
24*  OF TITLE, MERCHANTABILITY, NONINFRINGEMENT, FITNESS FOR A PARTICULAR PURPOSE,
25*  LACK OF VIRUSES, ACCURACY OR COMPLETENESS, QUIET ENJOYMENT, QUIET POSSESSION
26*  OR CORRESPONDENCE TO DESCRIPTION. YOU ASSUME THE ENTIRE RISK ARISING OUT OF
27*  USE OR PERFORMANCE OF THE SOFTWARE.
28
29*  3.     TO THE MAXIMUM EXTENT PERMITTED BY LAW, IN NO EVENT SHALL BROADCOM OR ITS
30*  LICENSORS BE LIABLE FOR (i) CONSEQUENTIAL, INCIDENTAL, SPECIAL, INDIRECT, OR
31*  EXEMPLARY DAMAGES WHATSOEVER ARISING OUT OF OR IN ANY WAY RELATING TO YOUR
32*  USE OF OR INABILITY TO USE THE SOFTWARE EVEN IF BROADCOM HAS BEEN ADVISED OF
33*  THE POSSIBILITY OF SUCH DAMAGES; OR (ii) ANY AMOUNT IN EXCESS OF THE AMOUNT
34*  ACTUALLY PAID FOR THE SOFTWARE ITSELF OR U.S. $1, WHICHEVER IS GREATER. THESE
35*  LIMITATIONS SHALL APPLY NOTWITHSTANDING ANY FAILURE OF ESSENTIAL PURPOSE OF
36*  ANY LIMITED REMEDY.
37*
38* $brcm_Workfile: nexus_frontend_oob.h $
39* $brcm_Revision: 13 $
40* $brcm_Date: 7/14/11 8:46a $
41*
42* API Description:
43*   API name: Frontend OutOfBand
44*    Generic APIs for Out-of-band tuning.
45*
46* Revision History:
47*
48* $brcm_Log: /nexus/modules/frontend/common/include/nexus_frontend_oob.h $
49*
50* 13   7/14/11 8:46a erickson
51* SW7125-772: add status
52*
53* 12   5/11/11 10:58a erickson
54* SW3128-10: add asyncStatusReadyCallback
55*
56* 11   4/15/11 4:30p erickson
57* SW7422-413: add NEXUS_FrontendOutOfBandBertSource
58*
59* 10   10/28/10 4:06p mphillip
60* SW7420-1020: Add asynchronous status support to oob frontends
61*
62* 9   9/8/10 2:23p mphillip
63* SW7400-2900: Add power and ber support to oob tuner
64*
65* 8   8/5/10 4:32p erickson
66* SW7405-4722: Add support for "Frequency offset" and "Null packets" for
67*  ADS and expose "auto acquire" in nexus for AOB
68*
69* 7   6/26/09 1:58p erickson
70* PR56288: add NEXUS_FrontendOutOfBandSettings.openDrain
71*
72* 6   3/5/09 10:42a jgarrett
73* PR 52817: Correcting SNR units
74*
75* 5   9/23/08 9:16a jgarrett
76* PR 46513: Merging 97459 support to mainline
77*
78* PR44830/1   7/23/08 2:47p anilmm
79* PR44830: Add OOB frequency
80*
81* 4   2/12/08 2:34p jgarrett
82* PR 39009: Unifying status
83*
84* 3   1/23/08 8:37p vobadm
85* PR35457: update docs
86*
87* 2   1/23/08 5:16p erickson
88* PR35457: update docs
89*
90* 1   1/18/08 2:19p jgarrett
91* PR 38808: Merging to main branch
92*
93* Nexus_Devel/2   10/5/07 5:51p jgarrett
94* PR 35551: successful build
95*
96* Nexus_Devel/1   10/4/07 2:41p jgarrett
97* PR 35551: Adding initial version
98*
99***************************************************************************/
100#ifndef NEXUS_FRONTEND_OOB_H__
101#define NEXUS_FRONTEND_OOB_H__
102
103#ifdef __cplusplus
104extern "C" {
105#endif
106
107/***************************************************************************
108Summary:
109Out of band tuning modes
110***************************************************************************/
111typedef enum NEXUS_FrontendOutOfBandMode
112{
113    NEXUS_FrontendOutOfBandMode_eAnnexAQpsk,
114    NEXUS_FrontendOutOfBandMode_eDvs167Qpsk = NEXUS_FrontendOutOfBandMode_eAnnexAQpsk,
115    NEXUS_FrontendOutOfBandMode_eDvs178Qpsk,
116    NEXUS_FrontendOutOfBandMode_ePod_AnnexAQpsk,
117    NEXUS_FrontendOutOfBandMode_ePod_Dvs167Qpsk = NEXUS_FrontendOutOfBandMode_ePod_AnnexAQpsk,
118    NEXUS_FrontendOutOfBandMode_ePod_Dvs178Qpsk,
119    NEXUS_FrontendOutOfBandMode_eMax
120} NEXUS_FrontendOutOfBandMode;
121
122/***************************************************************************
123Summary:
124Spectrum inversion control
125***************************************************************************/
126typedef enum NEXUS_FrontendOutOfBandSpectrum
127{
128    NEXUS_FrontendOutOfBandSpectrum_eAuto,
129    NEXUS_FrontendOutOfBandSpectrum_eNonInverted,
130    NEXUS_FrontendOutOfBandSpectrum_eInverted,
131    NEXUS_FrontendOutOfBandSpectrum_eMax
132} NEXUS_FrontendOutOfBandSpectrum;
133
134/***************************************************************************
135Summary:
136    Enumeration for BERT Input Source
137
138****************************************************************************/
139typedef enum NEXUS_FrontendOutOfBandBertSource
140{
141    NEXUS_FrontendOutOfBandBertSource_eIChOutput, /* BERT input source is the receiver I-channel output */
142    NEXUS_FrontendOutOfBandBertSource_eQChOutput, /* BERT input source is the receiver Q-channel output */
143    NEXUS_FrontendOutOfBandBertSource_eIQChOutputInterleave, /* BERT input source is the receiver I-channel and Q-channel output interleaved */
144    NEXUS_FrontendOutOfBandBertSource_eFecOutput, /* BERT input source is the FEC output */
145    NEXUS_FrontendOutOfBandBertSource_eMax
146} NEXUS_FrontendOutOfBandBertSource;
147
148/***************************************************************************
149Summary:
150Out-of-band tuning parameters
151***************************************************************************/
152typedef struct NEXUS_FrontendOutOfBandSettings
153{
154    NEXUS_FrontendOutOfBandMode mode;
155    unsigned frequency;
156    NEXUS_FrontendOutOfBandSpectrum spectrum;
157    unsigned symbolRate;                        /* Symbol Rate in Baud */
158    NEXUS_CallbackDesc lockCallback;            /* Lock status changed callback */
159    bool openDrain;                             /* true = open drain, false = normal mode; not supported for 3255. */
160    bool autoAcquire;
161    NEXUS_FrontendOutOfBandBertSource bertSource;          /*BERT input source. */
162    NEXUS_CallbackDesc asyncStatusReadyCallback;   /* Callback will be called when the async out of band status is ready. */
163} NEXUS_FrontendOutOfBandSettings;
164
165/***************************************************************************
166Summary:
167    Initialize an out-of-band settings structure to defaults
168***************************************************************************/
169void NEXUS_Frontend_GetDefaultOutOfBandSettings(
170    NEXUS_FrontendOutOfBandSettings *pSettings
171    );
172
173/***************************************************************************
174Summary:
175    Tune a frontend to an out-of-band channel
176***************************************************************************/
177NEXUS_Error NEXUS_Frontend_TuneOutOfBand(
178    NEXUS_FrontendHandle handle,
179    const NEXUS_FrontendOutOfBandSettings *pSettings
180    );
181
182/***************************************************************************
183Summary:
184Out-of-band tuning status
185***************************************************************************/
186typedef struct NEXUS_FrontendOutOfBandStatus
187{
188    NEXUS_FrontendOutOfBandSettings settings; /* Settings provided at last call to NEXUS_Frontend_TuneOutOfBand */   
189
190    NEXUS_FrontendOutOfBandMode mode;
191    NEXUS_FrontendOutOfBandSpectrum spectrum;
192    unsigned symbolRate;                /* Symbol Rate in Baud */
193    unsigned ifFreq;                    /* in Hertz, IF freq. */
194    unsigned loFreq;                    /* in Hertz, LO freq. */
195    unsigned sysXtalFreq;               /* in Hertz, Sys. Xtal freq. */
196    bool isFecLocked;
197    bool isQamLocked;
198    int snrEstimate;                /* in 1/100 db */
199    int agcIntLevel;                /* in 1/10 percent */
200    int agcExtLevel;                /* in 1/10 percent */
201    int carrierFreqOffset;          /* in 1/1000 Hz */
202    int carrierPhaseOffset;         /* in 1/1000 Hz */
203    unsigned uncorrectedCount;          /* not self-clearing  */
204    unsigned correctedCount;            /* not self-clearing*/
205    unsigned berErrorCount;             /* not self-clearing */
206    unsigned postRsBer;                 /* OCAP requires postRsBer for OOB channel. postRsBer will be reset on every channel change. Same units as berEstimate. */
207    unsigned postRsBerElapsedTime;      /* postRsBer over this time. In units of seconds. */
208    int fdcChannelPower;                /* OCAP DPM support for OOB channel, in 10's of dBmV units */
209} NEXUS_FrontendOutOfBandStatus;
210
211/***************************************************************************
212Summary:
213    Get the out-of-band status of a frontend
214***************************************************************************/
215NEXUS_Error NEXUS_Frontend_GetOutOfBandStatus(
216    NEXUS_FrontendHandle handle,
217    NEXUS_FrontendOutOfBandStatus *pStatus /* [out] */
218    );
219
220/***************************************************************************
221Summary:
222    Request the asynchronous status of an OutOfBand frontend
223***************************************************************************/
224NEXUS_Error NEXUS_Frontend_RequestOutOfBandAsyncStatus(
225    NEXUS_FrontendHandle handle
226    );
227
228/***************************************************************************
229Summary:
230    Get the asynchronous status of an OutOfBand frontend
231***************************************************************************/
232NEXUS_Error NEXUS_Frontend_GetOutOfBandAsyncStatus(
233    NEXUS_FrontendHandle handle,
234    NEXUS_FrontendOutOfBandStatus *pStatus /* [out] */
235    );
236
237#ifdef __cplusplus
238}
239#endif
240
241#endif /* #ifndef NEXUS_FRONTEND_OOB_H__ */
242
Note: See TracBrowser for help on using the repository browser.