static int s4FM50AF_ReadReg(unsigned short * a_pu2Result) { int i4RetValue = 0; char pSetBuff[2]; char pGetBuff[2]; pSetBuff[0] = 3; i4RetValue = i2c_master_send(g_pstFM50AF_I2Cclient, pSetBuff, 1); if (i4RetValue < 0) { FM50AFDB("[DRV201] I2C send vcm current reg failed!! \n"); return -1; } i4RetValue = i2c_master_recv(g_pstFM50AF_I2Cclient, &pGetBuff[0] , 1); if (i4RetValue < 0) { FM50AFDB("[FM50AF] I2C read failed!! \n"); return -1; } pSetBuff[0] = 4; i4RetValue = i2c_master_send(g_pstFM50AF_I2Cclient, pSetBuff, 1); if (i4RetValue < 0) { FM50AFDB("[DRV201] I2C send vcm current reg failed!! \n"); return -1; } i4RetValue = i2c_master_recv(g_pstFM50AF_I2Cclient, &pGetBuff[1] , 1); if (i4RetValue < 0) { FM50AFDB("[FM50AF] I2C read failed!! \n"); return -1; } *a_pu2Result = ((((u16)pGetBuff[0]) << 8) + (pGetBuff[1]))&0x3ff; return 0; }
static int s4FM50AF_ReadReg(unsigned short * a_pu2Result) { int i4RetValue = 0; char pBuff[2]; g_pstFM50AF_I2Cclient->addr = 0x0E; char VCMMSB[1] = {(char)(0x03)}; char VCMLSB[1] = {(char)(0x04)}; FM50AFDB("[FM50AF] s4FM50AF_ReadReg \n"); i4RetValue = i2c_master_send(g_pstFM50AF_I2Cclient, VCMMSB, 1); if (i4RetValue < 0) { FM50AFDB("[FM50AF] I2C send failed!! \n"); return -1; } i4RetValue = i2c_master_recv(g_pstFM50AF_I2Cclient, &pBuff[1] , 1); FM50AFDB("[FM50AF] s4FM50AF_ReadReg VCMMSB: %d \n",pBuff[1]); i4RetValue = i2c_master_send(g_pstFM50AF_I2Cclient, VCMLSB, 1); if (i4RetValue < 0) { FM50AFDB("[FM50AF] I2C send failed!! \n"); return -1; } i4RetValue = i2c_master_recv(g_pstFM50AF_I2Cclient, &pBuff[0] , 1); FM50AFDB("[FM50AF] s4FM50AF_ReadReg VCMMSB: %d \n",pBuff[1]); if (i4RetValue < 0) { FM50AFDB("[FM50AF] I2C read failed!! \n"); return -1; } *a_pu2Result = ((u16)pBuff[0]+ (u16)(pBuff[1]<< 8)); return 0; }