bool selective_read_byte(u32 addr, BYTE* data,u16 i2c_id)
{
//	CAM_CALDB("selective_read_byte\n");

    u8 page = addr/PAGE_SIZE_; /* size of page was 256 */
	u8 offset = addr%PAGE_SIZE_;
	kdSetI2CSpeed(EEPROM_I2C_SPEED);

	if(iReadRegI2C(&offset, 1, (u8*)data, 1, i2c_id+(page<<1))<0) {
		CAM_CALERR("fail selective_read_byte addr =0x%x data = 0x%x,page %d, offset 0x%x", addr, *data,page,offset);
		return false;
	}
	//CAM_CALDB("selective_read_byte addr =0x%x data = 0x%x,page %d, offset 0x%x", addr, *data,page,offset);
    return true;
}
static int read_cmos_sensor(kal_uint16 slave_id,kal_uint32 addr,u8* data)
{
	char pu_send_cmd[2] = {(char)(addr & 0xFF) };
	kdSetI2CSpeed(I2C_SPEED);
    return iReadRegI2C(pu_send_cmd, 1, data, 1, slave_id);//0 for good
}