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 }