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); }
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); }
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); }
static void max17040_reset(struct i2c_client *client) { max17040_write_reg(client, MAX17040_CMD, 0x0054); }