📄 mxl5005s.c
字号:
state->CH_Ctrl[9].Ctrl_Num = RFSYN_SEL_VCO_HI ; state->CH_Ctrl[9].size = 1 ; state->CH_Ctrl[9].addr[0] = 111; state->CH_Ctrl[9].bit[0] = 6; state->CH_Ctrl[9].val[0] = 1; state->CH_Ctrl[10].Ctrl_Num = RFSYN_SEL_DIVM ; state->CH_Ctrl[10].size = 1 ; state->CH_Ctrl[10].addr[0] = 111; state->CH_Ctrl[10].bit[0] = 5; state->CH_Ctrl[10].val[0] = 0; state->CH_Ctrl[11].Ctrl_Num = RFSYN_RF_DIV_BIAS ; state->CH_Ctrl[11].size = 2 ; state->CH_Ctrl[11].addr[0] = 110; state->CH_Ctrl[11].bit[0] = 0; state->CH_Ctrl[11].val[0] = 1; state->CH_Ctrl[11].addr[1] = 110; state->CH_Ctrl[11].bit[1] = 1; state->CH_Ctrl[11].val[1] = 0; state->CH_Ctrl[12].Ctrl_Num = DN_SEL_FREQ ; state->CH_Ctrl[12].size = 3 ; state->CH_Ctrl[12].addr[0] = 69; state->CH_Ctrl[12].bit[0] = 2; state->CH_Ctrl[12].val[0] = 0; state->CH_Ctrl[12].addr[1] = 69; state->CH_Ctrl[12].bit[1] = 3; state->CH_Ctrl[12].val[1] = 0; state->CH_Ctrl[12].addr[2] = 69; state->CH_Ctrl[12].bit[2] = 4; state->CH_Ctrl[12].val[2] = 0; state->CH_Ctrl[13].Ctrl_Num = RFSYN_VCO_BIAS ; state->CH_Ctrl[13].size = 6 ; state->CH_Ctrl[13].addr[0] = 110; state->CH_Ctrl[13].bit[0] = 2; state->CH_Ctrl[13].val[0] = 0; state->CH_Ctrl[13].addr[1] = 110; state->CH_Ctrl[13].bit[1] = 3; state->CH_Ctrl[13].val[1] = 0; state->CH_Ctrl[13].addr[2] = 110; state->CH_Ctrl[13].bit[2] = 4; state->CH_Ctrl[13].val[2] = 0; state->CH_Ctrl[13].addr[3] = 110; state->CH_Ctrl[13].bit[3] = 5; state->CH_Ctrl[13].val[3] = 0; state->CH_Ctrl[13].addr[4] = 110; state->CH_Ctrl[13].bit[4] = 6; state->CH_Ctrl[13].val[4] = 0; state->CH_Ctrl[13].addr[5] = 110; state->CH_Ctrl[13].bit[5] = 7; state->CH_Ctrl[13].val[5] = 1; state->CH_Ctrl[14].Ctrl_Num = CHCAL_INT_MOD_RF ; state->CH_Ctrl[14].size = 7 ; state->CH_Ctrl[14].addr[0] = 14; state->CH_Ctrl[14].bit[0] = 0; state->CH_Ctrl[14].val[0] = 0; state->CH_Ctrl[14].addr[1] = 14; state->CH_Ctrl[14].bit[1] = 1; state->CH_Ctrl[14].val[1] = 0; state->CH_Ctrl[14].addr[2] = 14; state->CH_Ctrl[14].bit[2] = 2; state->CH_Ctrl[14].val[2] = 0; state->CH_Ctrl[14].addr[3] = 14; state->CH_Ctrl[14].bit[3] = 3; state->CH_Ctrl[14].val[3] = 0; state->CH_Ctrl[14].addr[4] = 14; state->CH_Ctrl[14].bit[4] = 4; state->CH_Ctrl[14].val[4] = 0; state->CH_Ctrl[14].addr[5] = 14; state->CH_Ctrl[14].bit[5] = 5; state->CH_Ctrl[14].val[5] = 0; state->CH_Ctrl[14].addr[6] = 14; state->CH_Ctrl[14].bit[6] = 6; state->CH_Ctrl[14].val[6] = 0; state->CH_Ctrl[15].Ctrl_Num = CHCAL_FRAC_MOD_RF ; state->CH_Ctrl[15].size = 18 ; state->CH_Ctrl[15].addr[0] = 17; state->CH_Ctrl[15].bit[0] = 6; state->CH_Ctrl[15].val[0] = 0; state->CH_Ctrl[15].addr[1] = 17; state->CH_Ctrl[15].bit[1] = 7; state->CH_Ctrl[15].val[1] = 0; state->CH_Ctrl[15].addr[2] = 16; state->CH_Ctrl[15].bit[2] = 0; state->CH_Ctrl[15].val[2] = 0; state->CH_Ctrl[15].addr[3] = 16; state->CH_Ctrl[15].bit[3] = 1; state->CH_Ctrl[15].val[3] = 0; state->CH_Ctrl[15].addr[4] = 16; state->CH_Ctrl[15].bit[4] = 2; state->CH_Ctrl[15].val[4] = 0; state->CH_Ctrl[15].addr[5] = 16; state->CH_Ctrl[15].bit[5] = 3; state->CH_Ctrl[15].val[5] = 0; state->CH_Ctrl[15].addr[6] = 16; state->CH_Ctrl[15].bit[6] = 4; state->CH_Ctrl[15].val[6] = 0; state->CH_Ctrl[15].addr[7] = 16; state->CH_Ctrl[15].bit[7] = 5; state->CH_Ctrl[15].val[7] = 0; state->CH_Ctrl[15].addr[8] = 16; state->CH_Ctrl[15].bit[8] = 6; state->CH_Ctrl[15].val[8] = 0; state->CH_Ctrl[15].addr[9] = 16; state->CH_Ctrl[15].bit[9] = 7; state->CH_Ctrl[15].val[9] = 0; state->CH_Ctrl[15].addr[10] = 15; state->CH_Ctrl[15].bit[10] = 0; state->CH_Ctrl[15].val[10] = 0; state->CH_Ctrl[15].addr[11] = 15; state->CH_Ctrl[15].bit[11] = 1; state->CH_Ctrl[15].val[11] = 0; state->CH_Ctrl[15].addr[12] = 15; state->CH_Ctrl[15].bit[12] = 2; state->CH_Ctrl[15].val[12] = 0; state->CH_Ctrl[15].addr[13] = 15; state->CH_Ctrl[15].bit[13] = 3; state->CH_Ctrl[15].val[13] = 0; state->CH_Ctrl[15].addr[14] = 15; state->CH_Ctrl[15].bit[14] = 4; state->CH_Ctrl[15].val[14] = 0; state->CH_Ctrl[15].addr[15] = 15; state->CH_Ctrl[15].bit[15] = 5; state->CH_Ctrl[15].val[15] = 0; state->CH_Ctrl[15].addr[16] = 15; state->CH_Ctrl[15].bit[16] = 6; state->CH_Ctrl[15].val[16] = 1; state->CH_Ctrl[15].addr[17] = 15; state->CH_Ctrl[15].bit[17] = 7; state->CH_Ctrl[15].val[17] = 1; state->CH_Ctrl[16].Ctrl_Num = RFSYN_LPF_R ; state->CH_Ctrl[16].size = 5 ; state->CH_Ctrl[16].addr[0] = 112; state->CH_Ctrl[16].bit[0] = 0; state->CH_Ctrl[16].val[0] = 0; state->CH_Ctrl[16].addr[1] = 112; state->CH_Ctrl[16].bit[1] = 1; state->CH_Ctrl[16].val[1] = 0; state->CH_Ctrl[16].addr[2] = 112; state->CH_Ctrl[16].bit[2] = 2; state->CH_Ctrl[16].val[2] = 0; state->CH_Ctrl[16].addr[3] = 112; state->CH_Ctrl[16].bit[3] = 3; state->CH_Ctrl[16].val[3] = 0; state->CH_Ctrl[16].addr[4] = 112; state->CH_Ctrl[16].bit[4] = 4; state->CH_Ctrl[16].val[4] = 1; state->CH_Ctrl[17].Ctrl_Num = CHCAL_EN_INT_RF ; state->CH_Ctrl[17].size = 1 ; state->CH_Ctrl[17].addr[0] = 14; state->CH_Ctrl[17].bit[0] = 7; state->CH_Ctrl[17].val[0] = 0; state->CH_Ctrl[18].Ctrl_Num = TG_LO_DIVVAL ; state->CH_Ctrl[18].size = 4 ; state->CH_Ctrl[18].addr[0] = 107; state->CH_Ctrl[18].bit[0] = 3; state->CH_Ctrl[18].val[0] = 0; state->CH_Ctrl[18].addr[1] = 107; state->CH_Ctrl[18].bit[1] = 4; state->CH_Ctrl[18].val[1] = 0; state->CH_Ctrl[18].addr[2] = 107; state->CH_Ctrl[18].bit[2] = 5; state->CH_Ctrl[18].val[2] = 0; state->CH_Ctrl[18].addr[3] = 107; state->CH_Ctrl[18].bit[3] = 6; state->CH_Ctrl[18].val[3] = 0; state->CH_Ctrl[19].Ctrl_Num = TG_LO_SELVAL ; state->CH_Ctrl[19].size = 3 ; state->CH_Ctrl[19].addr[0] = 107; state->CH_Ctrl[19].bit[0] = 7; state->CH_Ctrl[19].val[0] = 1; state->CH_Ctrl[19].addr[1] = 106; state->CH_Ctrl[19].bit[1] = 0; state->CH_Ctrl[19].val[1] = 1; state->CH_Ctrl[19].addr[2] = 106; state->CH_Ctrl[19].bit[2] = 1; state->CH_Ctrl[19].val[2] = 1; state->CH_Ctrl[20].Ctrl_Num = TG_DIV_VAL ; state->CH_Ctrl[20].size = 11 ; state->CH_Ctrl[20].addr[0] = 109; state->CH_Ctrl[20].bit[0] = 2; state->CH_Ctrl[20].val[0] = 0; state->CH_Ctrl[20].addr[1] = 109; state->CH_Ctrl[20].bit[1] = 3; state->CH_Ctrl[20].val[1] = 0; state->CH_Ctrl[20].addr[2] = 109; state->CH_Ctrl[20].bit[2] = 4; state->CH_Ctrl[20].val[2] = 0; state->CH_Ctrl[20].addr[3] = 109; state->CH_Ctrl[20].bit[3] = 5; state->CH_Ctrl[20].val[3] = 0; state->CH_Ctrl[20].addr[4] = 109; state->CH_Ctrl[20].bit[4] = 6; state->CH_Ctrl[20].val[4] = 0; state->CH_Ctrl[20].addr[5] = 109; state->CH_Ctrl[20].bit[5] = 7; state->CH_Ctrl[20].val[5] = 0; state->CH_Ctrl[20].addr[6] = 108; state->CH_Ctrl[20].bit[6] = 0; state->CH_Ctrl[20].val[6] = 0; state->CH_Ctrl[20].addr[7] = 108; state->CH_Ctrl[20].bit[7] = 1; state->CH_Ctrl[20].val[7] = 0; state->CH_Ctrl[20].addr[8] = 108; state->CH_Ctrl[20].bit[8] = 2; state->CH_Ctrl[20].val[8] = 1; state->CH_Ctrl[20].addr[9] = 108; state->CH_Ctrl[20].bit[9] = 3; state->CH_Ctrl[20].val[9] = 1; state->CH_Ctrl[20].addr[10] = 108; state->CH_Ctrl[20].bit[10] = 4; state->CH_Ctrl[20].val[10] = 1; state->CH_Ctrl[21].Ctrl_Num = TG_VCO_BIAS ; state->CH_Ctrl[21].size = 6 ; state->CH_Ctrl[21].addr[0] = 106; state->CH_Ctrl[21].bit[0] = 2; state->CH_Ctrl[21].val[0] = 0; state->CH_Ctrl[21].addr[1] = 106; state->CH_Ctrl[21].bit[1] = 3; state->CH_Ctrl[21].val[1] = 0; state->CH_Ctrl[21].addr[2] = 106; state->CH_Ctrl[21].bit[2] = 4; state->CH_Ctrl[21].val[2] = 0; state->CH_Ctrl[21].addr[3] = 106; state->CH_Ctrl[21].bit[3] = 5; state->CH_Ctrl[21].val[3] = 0; state->CH_Ctrl[21].addr[4] = 106; state->CH_Ctrl[21].bit[4] = 6; state->CH_Ctrl[21].val[4] = 0; state->CH_Ctrl[21].addr[5] = 106; state->CH_Ctrl[21].bit[5] = 7; state->CH_Ctrl[21].val[5] = 1; state->CH_Ctrl[22].Ctrl_Num = SEQ_EXTPOWERUP ; state->CH_Ctrl[22].size = 1 ; state->CH_Ctrl[22].addr[0] = 138; state->CH_Ctrl[22].bit[0] = 4; state->CH_Ctrl[22].val[0] = 1; state->CH_Ctrl[23].Ctrl_Num = OVERRIDE_2 ; state->CH_Ctrl[23].size = 1 ; state->CH_Ctrl[23].addr[0] = 17; state->CH_Ctrl[23].bit[0] = 5; state->CH_Ctrl[23].val[0] = 0; state->CH_Ctrl[24].Ctrl_Num = OVERRIDE_3 ; state->CH_Ctrl[24].size = 1 ; state->CH_Ctrl[24].addr[0] = 111; state->CH_Ctrl[24].bit[0] = 3; state->CH_Ctrl[24].val[0] = 0; state->CH_Ctrl[25].Ctrl_Num = OVERRIDE_4 ; state->CH_Ctrl[25].size = 1 ; state->CH_Ctrl[25].addr[0] = 112; state->CH_Ctrl[25].bit[0] = 7; state->CH_Ctrl[25].val[0] = 0; state->CH_Ctrl[26].Ctrl_Num = SEQ_FSM_PULSE ; state->CH_Ctrl[26].size = 1 ; state->CH_Ctrl[26].addr[0] = 136; state->CH_Ctrl[26].bit[0] = 7; state->CH_Ctrl[26].val[0] = 0; state->CH_Ctrl[27].Ctrl_Num = GPIO_4B ; state->CH_Ctrl[27].size = 1 ; state->CH_Ctrl[27].addr[0] = 149; state->CH_Ctrl[27].bit[0] = 7; state->CH_Ctrl[27].val[0] = 0; state->CH_Ctrl[28].Ctrl_Num = GPIO_3B ; state->CH_Ctrl[28].size = 1 ; state->CH_Ctrl[28].addr[0] = 149; state->CH_Ctrl[28].bit[0] = 6; state->CH_Ctrl[28].val[0] = 0; state->CH_Ctrl[29].Ctrl_Num = GPIO_4 ; state->CH_Ctrl[29].size = 1 ; state->CH_Ctrl[29].addr[0] = 149; state->CH_Ctrl[29].bit[0] = 5; state->CH_Ctrl[29].val[0] = 1; state->CH_Ctrl[30].Ctrl_Num = GPIO_3 ; state->CH_Ctrl[30].size = 1 ; state->CH_Ctrl[30].addr[0] = 149; state->CH_Ctrl[30].bit[0] = 4; state->CH_Ctrl[30].val[0] = 1; state->CH_Ctrl[31].Ctrl_Num = GPIO_1B ; state->CH_Ctrl[31].size = 1 ; state->CH_Ctrl[31].addr[0] = 149; state->CH_Ctrl[31].bit[0] = 3; state->CH_Ctrl[31].val[0] = 0; state->CH_Ctrl[32].Ctrl_Num = DAC_A_ENABLE ; state->CH_Ctrl[32].size = 1 ; state->CH_Ctrl[32].addr[0] = 93; state->CH_Ctrl[32].bit[0] = 1; state->CH_Ctrl[32].val[0] = 0; state->CH_Ctrl[33].Ctrl_Num = DAC_B_ENABLE ; state->CH_Ctrl[33].size = 1 ; state->CH_Ctrl[33].addr[0] = 93; state->CH_Ctrl[33].bit[0] = 0; state->CH_Ctrl[33].val[0] = 0; state->CH_Ctrl[34].Ctrl_Num = DAC_DIN_A ; state->CH_Ctrl[34].size = 6 ; state->CH_Ctrl[34].addr[0] = 92; state->CH_Ctrl[34].bit[0] = 2; state->CH_Ctrl[34].val[0] = 0; state->CH_Ctrl[34].addr[1] = 92; state->CH_Ctrl[34].bit[1] = 3; state->CH_Ctrl[34].val[1] = 0; state->CH_Ctrl[34].addr[2] = 92; state->CH_Ctrl[34].bit[2] = 4; state->CH_Ctrl[34].val[2] = 0; state->CH_Ctrl[34].addr[3] = 92; state->CH_Ctrl[34].bit[3] = 5; state->CH_Ctrl[34].val[3] = 0; state->CH_Ctrl[34].addr[4] = 92; state->CH_Ctrl[34].bit[4] = 6; state->CH_Ctrl[34].val[4] = 0; state->CH_Ctrl[34].addr[5] = 92; state->CH_Ctrl[34].bit[5] = 7; state->CH_Ctrl[34].val[5] = 0; state->CH_Ctrl[35].Ctrl_Num = DAC_DIN_B ; state->CH_Ctrl[35].size = 6 ; state->CH_Ctrl[35].addr[0] = 93; state->CH_Ctrl[35].bit[0] = 2; state->CH_Ctrl[35].val[0] = 0; state->CH_Ctrl[35].addr[1] = 93; state->CH_Ctrl[35].bit[1] = 3; state->CH_Ctrl[35].val[1] = 0; state->CH_Ctrl[35].addr[2] = 93; state->CH_Ctrl[35].bit[2] = 4; state->CH_Ctrl[35].val[2] = 0; state->CH_Ctrl[35].addr[3] = 93; state->CH_Ctrl[35].bit[3] = 5; state->CH_Ctrl[35].val[3] = 0; state->CH_Ctrl[35].addr[4] = 93; state->CH_Ctrl[35].bit[4] = 6; state->CH_Ctrl[35].val[4] = 0; state->CH_Ctrl[35].addr[5] = 93; state->CH_Ctrl[35].bit[5] = 7; state->CH_Ctrl[35].val[5] = 0;#ifdef _MXL_PRODUCTION state->CH_Ctrl[36].Ctrl_Num = RFSYN_EN_DIV ; state->CH_Ctrl[36].size = 1 ; state->CH_Ctrl[36].addr[0] = 109; state->CH_Ctrl[36].bit[0] = 1; state->CH_Ctrl[36].val[0] = 1; state->CH_Ctrl[37].Ctrl_Num = RFSYN_DIVM ; state->CH_Ctrl[37].size = 2 ; state->CH_Ctrl[37].addr[0] = 112; state->CH_Ctrl[37].bit[0] = 5; state->CH_Ctrl[37].val[0] = 0; state->CH_Ctrl[37].addr[1] = 112; state->CH_Ctrl[37].bit[1] = 6; state->CH_Ctrl[37].val[1] = 0; state->CH_Ctrl[38].Ctrl_Num = DN_BYPASS_AGC_I2C ; state->CH_Ctrl[38].size = 1 ; state->CH_Ctrl[38].addr[0] = 65; state->CH_Ctrl[38].bit[0] = 1; state->CH_Ctrl[38].val[0] = 0;#endif return 0 ;}static void InitTunerControls(struct dvb_frontend *fe){ MXL5005_RegisterInit(fe); MXL5005_ControlInit(fe);#ifdef _MXL_INTERNAL MXL5005_MXLControlInit(fe);#endif}static u16 MXL5005_TunerConfig(struct dvb_frontend *fe, u8 Mode, /* 0: Analog Mode ; 1: Digital Mode */ u8 IF_mode, /* for Analog Mode, 0: zero IF; 1: low IF */ u32 Bandwidth, /* filter channel bandwidth (6, 7, 8) */ u32 IF_out, /* Desired IF Out Frequency */ u32 Fxtal, /* XTAL Frequency */ u8 AGC_Mode, /* AGC Mode - Dual AGC: 0, Single AGC: 1 */ u16 TOP, /* 0: Dual AGC; Value: take over point */ u16 IF_OUT_LOAD, /* IF Out Load Resistor (200 / 300 Ohms) */ u8 CLOCK_OUT, /* 0: turn off clk out; 1: turn on clock out */ u8 DIV_OUT, /* 0: Div-1; 1: Div-4 */ u8 CAPSELECT, /* 0: disable On-Chip pulling cap; 1: enable */ u8 EN_RSSI, /* 0: disable RSSI; 1: enable RSSI */ /* Modulation Type; */ /* 0 - Default; 1 - DVB-T; 2 - ATSC; 3 - QAM; 4 - Analog Cable */ u8 Mod_Type, /* Tracking Filter */ /* 0 - Default; 1 - Off; 2 - Type C; 3 - Type C-H */ u8 TF_Type ){ struct mxl5005s_state *state = fe->tuner_priv; u16 status = 0; state->Mode = Mode; state->IF_Mode = IF_mode; state->Chan_Bandwidth = Bandwidth; state->IF_OUT = IF_out; state->Fxtal = Fxtal; state->AGC_Mode = AGC_Mode; state->TOP = TOP;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -