⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 hamaro_cx24108.h

📁 机顶盒Hamaro解调器驱动。包含自动搜台
💻 H
字号:
/* hamaro_cx24108.h */

/*+++ *******************************************************************\
*
*   Copyright and Disclaimer:
*
*       ---------------------------------------------------------------
*       ALL SOFTWARE, APPLICATIONS, DOCUMENTATION, OR MATERIALS        
*       FURNISHED HEREIN IS PROVIDED *AS IS*.  CONEXANT DOES NOT MAKE  
*       ANY WARRANTIES, EITHER EXPRESS OR IMPLIED, AND HEREBY EXPRESSLY
*       DISCLAIMS ANY AND ALL SUCH WARRANTIES TO THE EXTENT PERMITTED  
*       BY LAW, INCLUDING, SPECIFICALLY, ANY IMPLIED WARRANTY ARISING  
*       BY STATUTE OR OTHERWISE IN LAW OR FROM A COURSE OF DEALING OR  
*       USAGE OF TRADE.  CONEXANT DOES NOT MAKE ANY WARRANTIES, EITHER 
*       EXPRESS OR IMPLIED, AND HEREBY EXPRESSLY DISCLAIMS ANY AND ALL 
*       SUCH WARRANTIES WITH RESPECT TO ALL SOFTWARE, APPLICATIONS,    
*       DOCUMENTATION, AND MATERIALS INCLUDING ALL IMPLIED WARRANTIES  
*       OF MERCHANTABILITY, OR OF MERCHANTABLE QUALITY, OR OF FITNESS  
*       FOR ANY PURPOSE, PARTICULAR, SPECIFIC OR OTHERWISE, OR OF      
*       NONINFRINGEMENT OF INTELLECTUAL PROPERTY RIGHTS OF OTHERS,     
*       RELATING TO THE SOFTWARE, APPLICATIONS, OPERATION,             
*       DOCUMENTATION, DATA OR RESULTS GENERATED BY THE OPERATION OR   
*       USE THEREOF, AND MATERIALS PROVIDED HEREIN.  THE ENTIRE RISK AS
*       TO THE SUBSTANCE, QUALITY AND PERFORMANCE OF SOFTWARE,         
*       APPLICATIONS, AND DOCUMENTATION DESCRIBING SUCH SOFTWARE       
*       REMAINS WITH THE BUYER.                                        
*                                                                      
*       REGARDLESS OF WHETHER ANY REMEDY SET FORTH HEREIN FAILS OF ITS 
*       ESSENTIAL PURPOSE OR OTHERWISE, CONEXANT SHALL NOT BE LIABLE   
*       FOR ANY EXEMPLARY, SPECIAL, PUNITIVE, SPECULATIVE, INDIRECT,   
*       CONSEQUENTIAL OR INCIDENTAL DAMAGES OF ANY KIND (INCLUDING     
*       WITHOUT LIMITATION LOST PROFITS, LOSS OF INCOME, LOSS OF       
*       GOODWILL, OR OTHER TANGIBLE OR INTANGIBLE BUSINESS LOSS)       
*       ARISING OUT OF OR IN CONNECTION WITH, DIRECTLY OR INDIRECTLY,  
*       SOFTWARE, APPLICATIONS, DOCUMENTATION, OR ANY SERVICES OR      
*       MATERIALS PROVIDED HEREUNDER, OR USE OR INABILITY TO USE THE   
*       SOFTWARE, EVEN IF CONEXANT HAS BEEN ADVISED OF THE POSSIBILITY 
*       OF SUCH DAMAGES.                                               
*
*       Copyright (c) 2001 Conexant Systems, Inc.
*       All Rights Reserved.
*       ---------------------------------------------------------------
*
*   Module Revision Id:
*
*       $Header: hamaro_cx24108.h, 5, 2006-11-11 1:49:44, Sunbey (VSS Migration)$
*
*   Abstract:
*
*       Contains CX24108-specific definitions, enums and prototypes.
*
\******************************************************************* ---*/


#ifndef HAMARO_CX24108_H_DEFINED
#define HAMARO_CX24108_H_DEFINED

#define HAMARO_CX24108_NOMSTEP        1000000UL         /* step size in hz to use when searching for vco edges */
#define HAMARO_CX24108_EDGESTEP       40UL              /* NOMSTEPS to step when looking for loss of lock */
#define HAMARO_CX24108_MINHILOWDIST   (2UL*HAMARO_MM)          /* catch binary search into same tuner pll cal'd freq */
#define HAMARO_CX24108_MAX_FIRSTEDGE  6                 /* max number of steps in attempt to lock into a vco to find edges */
#define HAMARO_CX24108_MAX_EDGEDIV    25                /* max bin search attempts to find vco edge */
#define HAMARO_CX24108_MAX_LOOP       20                /* max search attempts (40Mhz step size) to find edge. */

#define HAMARO_CX24108_VCOEDGES       11                /* vco count, breakpoint count */
#define HAMARO_CX24108_BPCNT          (HAMARO_CX24108_VCOEDGES-1)

#define HAMARO_CX24108_CPCS           8                 /* charge-pump current array count (array in HAMARO_TUNERPARMS) */
#define HAMARO_CX24108_SLOPES         3                 /* slope table array count (array in HAMARO_TUNERPARMS) */
#define HAMARO_CX24108_MSPS_1_TO_5    0                 /* array 0 of HAMARO_TUNERSLOPE (in HAMARO_TUNERPARMS) is for 1..5 Msps */
#define HAMARO_CX24108_MSPS_5_TO_15   1                 /* array 1 ... is for 5..15 Msps */
#define HAMARO_CX24108_MSPS_15_TO_45  2                 /* array 2 ... is for 15..45 Msps */
#define HAMARO_CX24108_MSTOTEMP       50                /* ms wait req'd to acheive op temp. at start/restart */
#define HAMARO_CX24108_VCOEDGE_LEN    (sizeof(HAMARO_VCO_EDGE)*(HAMARO_CX24108_VCOEDGES))
#define HAMARO_CX24108_VCOBP_LEN      (sizeof(HAMARO_VCO_BP)*(HAMARO_CX24108_BPCNT))
#define HAMARO_CX24108_BPDEFAULT      50                /* default breakpoint percentage */

#define HAMARO_CX24108_CPC_LOW        HAMARO_CPC_2MA           /* default tuner settings */
#define HAMARO_CX24108_CPC_MED        HAMARO_CPC_3MA           /* medium */
#define HAMARO_CX24108_CPC_HIGH       HAMARO_CPC_3MA           /* high setting */

#define HAMARO_CX24108_CPC_LOWPCT     50       
#define HAMARO_CX24108_CPC_HIPCT      50

#define HAMARO_CX24108_START_DIV2     0                 /* starting point of DIV/2 VCOs */
#define HAMARO_CX24108_START_DIV4     8                 /* starting point of DIV/4 VCOs */

#define HAMARO_CX24108_CPC_START      14UL              /* start point of CPC in bit-str sent to tuner via demod */

#define HAMARO_ANTI_ALIAS_FILTER_UNCERTANTY   1000UL    /* add 1mHz to BW filter setting */
#define HAMARO_SPECIAL_RANGE          1UL               /* tuner offset in mHz to induce, when HAMARO_NIM-A/B have equal Fdesired */

#define HAMARO_TUNER_BURST_SEQUENCY_WAIT_CYCLES  16UL   /* number of waiting loops for demod to become ready
                                                    to accept a new burst sequence */
#define HAMARO_TUNER_BURST_BYTE_WAIT_CYCLES       8UL   /* number of waiting loops for demod to become ready
                                                    to accept the next burst byte */

/*******************************************************************************************************/
/* macros */
/*******************************************************************************************************/
#define _HAMARO_TUNER_CX24108_lsbA(n) (n->tuner.cx24108.lsba)

/*******************************************************************************************************/
/* CX24108-specific enums */
/*******************************************************************************************************/
#ifndef HAMARO_cx24108prog_def                 
#define HAMARO_cx24108prog_def                /* allow tuner-specific enum to be include once at compile */
typedef enum HamaroCx24108prog{              /* CX24108 (Rosie) tuner control bit settings (ctl bits 20,19) */
  HAMARO_CX24108_BAND_PROG=0x00,              /* band select  */
  HAMARO_CX24108_VGA_PROG=0x01,               /* vga programming */
  HAMARO_CX24108_VCA_PROG=0x02,               /* vca programming */
  HAMARO_CX24108_PLL_PROG=0x03                /* pll programming */
} HAMARO_CX24108_PROG;
#endif  /* #ifndef cx24108prog_def */

/*******************************************************************************************************/
/* prototypes */
/*******************************************************************************************************/
#if HAMARO_INCLUDE_ROSIE
#ifndef HAMARO_CX24108_NOPROTO
BOOL  _HAMARO_TUNER_CX24108_powerup(HAMARO_NIM *nim);
void  _HAMARO_TUNER_CX24108_initialize(HAMARO_NIM *nim);
BOOL  _HAMARO_TUNER_CX24108_io(HAMARO_NIM *nim,HAMARO_CX24108_PROG ctl,unsigned long tunerdata);
void  _HAMARO_TUNER_CX24108_io_special(HAMARO_NIM *nim);
BOOL  _HAMARO_TUNER_CX24108_sendbyte(HAMARO_NIM *nim,unsigned char out_byte);
void  _HAMARO_TUNER_CX24108_defaultsettings(HAMARO_NIM *nim);
BOOL  _HAMARO_TUNER_CX24108_enable(HAMARO_NIM *nim,BOOL opt);
void  _HAMARO_TUNER_WaitForBurstSequenceRdy(HAMARO_NIM *nim);
void  _HAMARO_TUNER_WaitForBurstByteRdy(HAMARO_NIM *nim);
BOOL  _HAMARO_TUNER_CX24108_ready(HAMARO_NIM *nim);
BOOL  _HAMARO_TUNER_CX24108_readybyte(HAMARO_NIM *nim);
BOOL  _HAMARO_TUNER_validate_rdivval(HAMARO_NIM *nim,HAMARO_RDIVVAL rvalue);
BOOL  _HAMARO_TUNER_validate_frequency(HAMARO_NIM *nim,unsigned long freq);
unsigned long _HAMARO_TUNER_CX24108_calc_Fpll(HAMARO_NIM *nim,int na);
unsigned long _HAMARO_TUNER_CX24108_calc_pll(HAMARO_NIM *nim);
unsigned long  _HAMARO_TUNER_CX24108_calc_pllNA(HAMARO_NIM *nim);
BOOL  _HAMARO_TUNER_CX24108_setgainparms(HAMARO_NIM *nim,HAMARO_TUNERPARMS *tunerparms);
void  _HAMARO_TUNER_CX24108_adjust(HAMARO_NIM *nim);
BOOL  _HAMARO_TUNER_CX24108_band_info(HAMARO_NIM *nim,unsigned long Fr,unsigned int *bandbin,unsigned int *vcodivbin,HAMARO_VCOSET *vcoset,HAMARO_VCODIV *vcodiv,HAMARO_VCONO *vcono,unsigned long *tunpll);
unsigned long _HAMARO_TUNER_CX24108_vcoband_manual(HAMARO_NIM *nim,int vcoband);
void  _HAMARO_TUNER_CX24108_calc_bp(HAMARO_NIM *nim);
BOOL  _HAMARO_TUNER_CX24108_hardware_vcoedges(HAMARO_NIM *nim);
BOOL  _HAMARO_TUNER_CX24108_pll_status(HAMARO_NIM *nim,BOOL *locked);
BOOL  __HAMARO_TUNER_CX24108_first_edgeone(HAMARO_NIM *nim,unsigned long *mid_pt,BOOL *locked,HAMARO_VCOSET vcoband);
BOOL  _HAMARO_TUNER_CX24108_set_refdivider(HAMARO_NIM *nim,HAMARO_RDIVVAL rvalue);
BOOL  _HAMARO_TUNER_CX24108_set_freq(HAMARO_NIM *nim,unsigned long freq);
unsigned long  _HAMARO_TUNER_CX24108_hardware_vcoedge_low(HAMARO_NIM *nim,int vcoidx,unsigned long *first_edge);
unsigned long  _HAMARO_TUNER_CX24108_hardware_vcoedge_high(HAMARO_NIM *nim,int vcoidx,unsigned long low_edge,unsigned long first_edge,unsigned long vco_len);
BOOL   _HAMARO_TUNER_CX24108_first_edgelock(HAMARO_NIM *nim,unsigned long *mid_pt,BOOL *locked,HAMARO_VCOSET vcoband);
BOOL   __HAMARO_TUNER_CX24108_first_edgeone(HAMARO_NIM *nim,unsigned long *mid_pt,BOOL *locked,HAMARO_VCOSET vcoband);
BOOL   _HAMARO_TUNER_CX24108_SetGainSettings(HAMARO_NIM *nim,unsigned long symbolrateksps);
void   __HAMARO_DEBUG_vcoedges(HAMARO_NIM *nim);
void   __HAMARO_DEBUG_bandinfo(HAMARO_NIM *nim);
BOOL   _HAMARO_TUNER_CX24108_vco_range(HAMARO_NIM *nim,unsigned long  Fr,int vcoidx);
unsigned long  _HAMARO_TUNER_CX24108_vco_high(HAMARO_NIM *nim,int vcoidx);
unsigned long  _HAMARO_TUNER_CX24108_vco_low(HAMARO_NIM *nim,int vcoidx);
BOOL   _HAMARO_TUNER_CX24108_freq_manual(HAMARO_NIM *nim,unsigned long freq);

BOOL   _HAMARO_TUNER_CX24108_GetRegisters(HAMARO_NIM *nim,unsigned int *nvalue,int *avalue,HAMARO_RDIVVAL *rvalue);
BOOL   _HAMARO_TUNER_CX24108_SetParameters(HAMARO_NIM *nim,HAMARO_TUNERPARMS *tunerparms);
BOOL   _HAMARO_TUNER_CX24108_GetParameters(HAMARO_NIM *nim,HAMARO_TUNERPARMS *tunerparms);
BOOL   _HAMARO_TUNER_CX24108_SetFrequency(HAMARO_NIM *nim,unsigned long freq);
BOOL   _HAMARO_TUNER_CX24108_GetVCOBreakpoints(HAMARO_NIM *nim,int *bp_percentage,HAMARO_VCO_EDGE *vcoedge,HAMARO_VCO_BP *vcobp);
BOOL   _HAMARO_TUNER_CX24108_SetVCOBreakpointPercentage(HAMARO_NIM *nim,int bp_percentage);
BOOL   _HAMARO_TUNER_CX24108_GetVCOBreakpointPercentage(HAMARO_NIM *nim,int *bp_percentage);
BOOL   _HAMARO_TUNER_CX24108_SetFilterBandwidth(HAMARO_NIM *nim,unsigned long bandwidthkhz);
BOOL   _HAMARO_TUNER_CX24108_vco_na(HAMARO_NIM *nim,unsigned long na_str,unsigned long *Fvco);
#if HAMARO_INCLUDE_DEBUG
BOOL   _HAMARO_TUNER_CX24108_validate(HAMARO_NIM *nim);
#endif /* HAMARO_INCLUDE_DEBUG */
BOOL   _HAMARO_TUNER_CX24108_GetPLLFrequency(HAMARO_NIM *nim,unsigned long *pllfreq);
BOOL   _HAMARO_TUNER_CX24108_GetVCOEdges(HAMARO_NIM *nim,HAMARO_VCO_EDGE *vcoedge);
BOOL   _HAMARO_TUNER_CX24108_CalculateNAR(HAMARO_NIM *nim,unsigned long Fdesired,HAMARO_RDIVVAL R,unsigned int *N,unsigned int *A);
#endif /* #ifndef HAMARO_CX24108_NOPROTO */
#endif



/*******************************************************************************************************/
/*******************************************************************************************************/
/*******************************************************************************************************/
#endif  /* #ifndef HAMARO_CX24108_H_DEFINED */
/* CR 9509 : Add an extra newline */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -