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;
}
Beispiel #2
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;
}