/* Function: Set RF frequency (Unit: KHz) Input: fvalue -- RF frequency (Unit: KHz) Output: SUCCESS or FAILURE */ GX_STATE GX_Set_RFFrequency(unsigned long fvalue) { int UCtmp = FAILURE; unsigned char data[5]; unsigned long freq; freq=(fvalue+GX_IF_FREQUENCY)*10/625; /*freq=(fvalue+GX_IF_FREQUENCY)*/ data[0] = 0xc0; /*Tunner Address*/ data[1] =(unsigned char)((freq>>8)&0xff); data[2] =(unsigned char)(freq&0xff); data[3] = 0x86; /*62.5KHz*/ data[4] = 0x08; if (SUCCESS == GX_Set_Tunner_Repeater_Enable(1)) /*open the chip repeater */ { if (SUCCESS == GX_I2cReadWrite( WRITE, data[0],data[1],&data[2], 3 )) { GX_Delay_N_ms(50); UCtmp = GX_Set_Tunner_Repeater_Enable(0); /*close the chip repeater*/ } } if (SUCCESS == UCtmp) { GX_Delay_N_ms(50); UCtmp = GX_HotReset_CHIP(); } return UCtmp; }
GX_STATE GX_Set_RFFrequency(struct gx1001_state *state, unsigned long fvalue) { signed char UCtmp = FAILURE; unsigned char data[6]; unsigned long freq; freq=(fvalue+GX_IF_FREQUENCY)*10/625; /*freq=(fvalue+GX_IF_FREQUENCY)*/ data[0] = state->config.tuner_addr; /*Tunner Address*/ data[1] =(unsigned char)((freq>>8)&0xff); data[2] =(unsigned char)(freq&0xff); data[3] = 0X8b;//0xb3; /*62.5KHz*/ modified by jeffchang if (fvalue < 153000) data[4] = 0x01; else if (fvalue < 430000) data[4] = 0x06; else data[4] = 0x0c; data[5] = 0xc3; if (SUCCESS == GX_Set_Tunner_Repeater_Enable(state, 1)) /*open the chip repeater */ { GX_Delay_N_10ms(1); if (SUCCESS == Tuner_Writeregister(state, &data[1], 5)) { GX_Delay_N_10ms(1); UCtmp = GX_Set_Tunner_Repeater_Enable(state, 0); /*close the chip repeater*/ UCtmp = SUCCESS; } } if (SUCCESS == UCtmp) { GX_Delay_N_10ms(5); UCtmp = GX_HotReset_CHIP(state); } return UCtmp; }
GX_STATE GX_Set_RFFrequency(unsigned long fvalue) { signed char UCtmp = FAILURE; unsigned char data[6]; unsigned long freq; freq=(fvalue+GX_IF_FREQUENCY)*10/625; /*freq=(fvalue+GX_IF_FREQUENCY)/Fref*/ data[0] = I2C_TUNER_ADDRESS; /*Tunner Address*/ data[1] =(unsigned char)((freq>>8)&0xff); data[2] =(unsigned char)(freq&0xff); data[3] = 0x8b; /*Fref=62.5KHz*/ if (fvalue < 153000) data[4] = 0x60; else if (fvalue < 430000) data[4] = 0xa2; else data[4] = 0xaa; data[5] = 0xc6; if (SUCCESS == GX_Set_Tunner_Repeater_Enable(1)) /*open the chip repeater */ { GX_Delay_N_10ms(1); if (SUCCESS == Tuner_Writeregister(&data[1], 5 )) { GX_Delay_N_10ms(1); UCtmp = GX_Set_Tunner_Repeater_Enable(0); /*close the chip repeater*/ UCtmp = SUCCESS; } } if (SUCCESS == UCtmp) { GX_Delay_N_10ms(5); UCtmp = GX_HotReset_CHIP(); } return UCtmp; }