📄 hamaro_regs.h
字号:
/* hamaro_regs.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_regs.h, 4, 2007-8-17 15:37:13, Tim Lu$
*
* Abstract:
*
* Contains structure and definitions used internally by the Hamaro Driver software.
*
\******************************************************************* ---*/
#ifndef HAMARO_REGS_H_DEFINED
#define HAMARO_REGS_H_DEFINED
/*******************************************************************************************************/
/* Include Hamaro internal */
/*******************************************************************************************************/
#include "hamaro_gbls.h" /* Hamaro Globals */
#ifdef __cplusplus
extern "C" {
#else
#endif /* __cplusplus */
/*******************************************************************************************************/
/* Register-specific Enums */
/*******************************************************************************************************/
enum HAMARORegDataType{ /* all possible types of register data must be defined */
HAMARO_REGT_BIT=1, /* bit (most common type) */
HAMARO_REGT_BYTE, /* byte-wide register */
HAMARO_REGT_MINT, /* int with n-bit msb in first register, remaining bits in next reg(s) */
HAMARO_REGT_INT, /* int type */
HAMARO_REGT_UINT, /* unsigned int register type */
HAMARO_REGT_LONG, /* standard long */
HAMARO_REGT_ULONG, /* unsigned long */
HAMARO_REGT_BITHL, /* special-purpose: bit is set high, then immediatly set low */
HAMARO_REGT_NULL, /* byte-wide register */
HAMARO_REGT_EOLIST=0 /* end-of-list indicator */
};
/*******************************************************************************************************/
/* REGRW */
/*******************************************************************************************************/
enum HamaroRegRW{ /* register access controls */
HAMARO_REG_RW=1, /* register has full read/write capabilities */
HAMARO_REG_RO=2, /* register is read-only */
HAMARO_REG_WO=3, /* register is write-only */
HAMARO_REG_UNUSED=0 /* register is unused (also EOL indicator) */
};
/*******************************************************************************************************/
/* REGFILTER (upgraded to Hamaro) */
/*******************************************************************************************************/
#define HAMARO_REGF unsigned int
typedef enum HamaroRegFilter{
HAMARO_REGF_COBRA=0x01, /* register item is part of Cobra-class */
HAMARO_REGF_CAM_DEF=0x02, /* register is used within camaric-only default settings */
HAMARO_REGF_CAM_EXT=0x04, /* Register is an extended register (to acomodate Hamaro) */
HAMARO_REGF_CAM_ONLY=0x08, /* Register is a Hamaro-only register */
HAMARO_REGF_CAM_RED=0x10, /* Register is reduced to accomodate Hamaro (none id'd yet) */
HAMARO_REGF_VIPER=0x20, /* Viper/Mongoose register */
HAMARO_REGF_ZEROB6=0x80, /* zero bit 6 before write (accomodate register 0x29) */
HAMARO_REGF_NONE=0 /* no particular filter attached to a register item */
}_HAMARO_REGF;
/*******************************************************************************************************/
/* REGISTER Struct */
/*******************************************************************************************************/
typedef struct /* REGISTER. This struct will be used to control access to */
{ /* register mapped items in the various demods */
char *regname; /* asciz name of register */
unsigned short bit_field; /* register simplification ID */
unsigned char address; /* address from register map (hex) */
unsigned char start_bit; /* starting pt. of bits in addr */
unsigned char bit_count; /* length of reg item in bits */
enum HamaroRegRW access_level; /* Indicates if register HW can be read/written */
HAMARO_REGF regfilter; /* Additional layer of filterization */
enum HAMARORegDataType reg_type; /* type of data held in register(s): */
/* ... BIT, COMP2, COMP1, FLOAT, UINT, INT ,....*/
unsigned long default_value; /* holds default value (for reset) to write to the register */
char *p_hw_mask; /* holds hardware mask string -- 1st byte of mask is first reg addr */
}HAMARO_REGISTER_MAP;
/*******************************************************************************************************/
/* external reference to Register array in hamaro_reg.c */
/*******************************************************************************************************/
extern const HAMARO_REGISTER_MAP hamaro_demod_register_map[];
/*******************************************************************************************************/
/* Register-specific test functions */
/*******************************************************************************************************/
char *hamaro_test_regname(const char *regname);
char *hamaro_test_regidx(const char *regname);
char *hamaro_test_regrw(int regrw);
char *hamaro_test_regfilt(int regfilt);
char *hamaro_test_regtype(int regtype);
char *hamaro_test_regshad(int regtype);
#if HAMARO_INCLUDE_VIPER
/**********************************************************************************
* Viper tuner register address enumerations
**********************************************************************************/
typedef enum hamaro_viper_register_address {
HAMARO_CX24128_CHIP_ID_00 = 0x00,
HAMARO_CX24128_CHIP_VERSION_01 = 0x01,
HAMARO_CX24128_XTAL_02 = 0x02,
HAMARO_CX24128_TEST_MUX_SEL_03 = 0x03,
HAMARO_CX24128_LO_TEST = 0x10,
HAMARO_CX24128_LO_CTL1 = 0x11,
HAMARO_CX24128_LO_CTL2 = 0x12,
HAMARO_CX24128_BAND_SEL2_14 = 0x14,
HAMARO_CX24128_BAND_SEL3_15 = 0x15,
HAMARO_CX24128_BAND_SEL4_16 = 0x16,
HAMARO_CX24128_BAND_SEL5_17 = 0x17,
HAMARO_CX24128_VCO_18 = 0x18,
HAMARO_CX24128_LO1_19 = 0x19,
HAMARO_CX24128_LO2_1A = 0x1A,
HAMARO_CX24128_LO3_1B = 0x1B,
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -