Пример #1
0
static void max17040_reset(struct i2c_client *client)
{
	struct max17040_chip *chip = i2c_get_clientdata(client);
	u16 reset_cmd = 0x5400;

	if (is_max17048) {
		mutex_lock(&chip->mutex);
		i2c_smbus_write_word_data(client, MAX17040_CMD_MSB,
								reset_cmd);
		mutex_unlock(&chip->mutex);
	} else {
		max17040_write_reg(client, MAX17040_CMD_MSB, 0x54);
		max17040_write_reg(client, MAX17040_CMD_LSB, 0x00);
	}
}
static void max17040_set_rcomp(void)
{
	int ret=0,i=0;	
	ret=max17040_write_reg(MAX17040_RCOMP_MSB, 0xc0,0x00);
	if(ret<0)
	{
		for(i=0;i<MAX_READ;i++)
		{
			ret=max17040_write_reg(MAX17040_RCOMP_MSB, 0xc0,0x00);			
			if(ret<0)
				continue;
			else
				break;
		}
	}
	dbgme_rel("MAX17040 SET_RCOMP TRY : [%d]\n",i);			
}
Пример #3
0
static void max17040_restart(void)
{
	int ret=0,i=0;
	ret=max17040_write_reg(MAX17040_MODE_MSB, 0x40,0x00);
	if(ret<0)
	{
		for(i=0;i<MAX_READ;i++)
		{
			ret=max17040_write_reg(MAX17040_MODE_MSB, 0x40,0x00);	
			if(ret<0)
			continue;
			else
			break;
		}
	}
	sleep_dbg("MAX17040 QUICK START TRY : [%d]\n",i);
}
Пример #4
0
static void max17040_set_rcomp(void)
{
	int ret=0,i=0;	
	int chg_type;

	chg_type = atomic_read(&smb_charger_state);
	
	if((high_current_rcomp_mode == 1) && (chg_type == 0)){
		ret = max17040_write_reg(MAX17040_RCOMP_MSB, 0x25,0x00);
		ret=max17040_write_reg(MAX17040_RCOMP_LSB, 0x1F,0x00);
		max17040_data.set_rcomp_mode = 1;
	}
	else {
		ret=max17040_write_reg(MAX17040_RCOMP_MSB, 0xC0,0x00);
		ret=max17040_write_reg(MAX17040_RCOMP_LSB, 0x1F,0x00);
		max17040_data.set_rcomp_mode = 0;
	}
	
	if(ret<0)
	{
		for(i=0;i<MAX_READ;i++)
		{
			if((high_current_rcomp_mode == 1) && (chg_type == 0)) {
                        	ret=max17040_write_reg(MAX17040_RCOMP_MSB, 0x65,0x00);
				ret=max17040_write_reg(MAX17040_RCOMP_LSB, 0x1F,0x00);
			}
			else {
				ret=max17040_write_reg(MAX17040_RCOMP_MSB, 0xC0,0x00);	
				ret=max17040_write_reg(MAX17040_RCOMP_LSB, 0x1F,0x00);
			}
			if(ret<0)
			continue;
			else
			break;
		}
	}

	sleep_dbg("MAX17040 SET_RCOMP TRY : [%d]\n",i);			
}
Пример #5
0
static void max17040_reset(struct i2c_client *client)
{
	max17040_write_reg(client, MAX17040_CMD, 0x0054);
}