qcom-charger: smb-lib: add get charge param and usb suspend
The parallel charger does not use voting, therefore register getter and setter functions need to be created or exposed. CRs-Fixed: 1023141 Change-Id: I96a4877196be78c0eeecc3fc08419e8990572aaa Signed-off-by: Nicholas Troast <ntroast@codeaurora.org>
This commit is contained in:
parent
7e87ce15be
commit
2480c73944
2 changed files with 47 additions and 4 deletions
|
@ -86,6 +86,41 @@ unlock:
|
|||
* REGISTER GETTERS *
|
||||
********************/
|
||||
|
||||
int smblib_get_charge_param(struct smb_charger *chg,
|
||||
struct smb_chg_param *param, int *val_u)
|
||||
{
|
||||
int rc = 0;
|
||||
u8 val_raw;
|
||||
|
||||
rc = smblib_read(chg, param->reg, &val_raw);
|
||||
if (rc < 0) {
|
||||
dev_err(chg->dev, "%s: Couldn't read from 0x%04x rc=%d\n",
|
||||
param->name, param->reg, rc);
|
||||
return rc;
|
||||
}
|
||||
|
||||
*val_u = val_raw * param->step_u + param->min_u;
|
||||
smblib_dbg(chg, PR_REGISTER, "%s = %d (0x%02x)\n",
|
||||
param->name, *val_u, val_raw);
|
||||
|
||||
return rc;
|
||||
}
|
||||
|
||||
int smblib_get_usb_suspend(struct smb_charger *chg, int *suspend)
|
||||
{
|
||||
int rc = 0;
|
||||
u8 temp;
|
||||
|
||||
rc = smblib_read(chg, USBIN_CMD_IL_REG, &temp);
|
||||
if (rc < 0) {
|
||||
dev_err(chg->dev, "Couldn't read USBIN_CMD_IL rc=%d\n", rc);
|
||||
return rc;
|
||||
}
|
||||
*suspend = temp & USBIN_SUSPEND_BIT;
|
||||
|
||||
return rc;
|
||||
}
|
||||
|
||||
struct apsd_result {
|
||||
const char * const name;
|
||||
const u8 bit;
|
||||
|
@ -156,8 +191,8 @@ int smblib_enable_charging(struct smb_charger *chg, bool enable)
|
|||
return rc;
|
||||
}
|
||||
|
||||
static int smblib_set_charge_param(struct smb_charger *chg,
|
||||
struct smb_chg_param *param, int val_u)
|
||||
int smblib_set_charge_param(struct smb_charger *chg,
|
||||
struct smb_chg_param *param, int val_u)
|
||||
{
|
||||
int rc = 0;
|
||||
u8 val_raw;
|
||||
|
@ -182,7 +217,7 @@ static int smblib_set_charge_param(struct smb_charger *chg,
|
|||
return rc;
|
||||
}
|
||||
|
||||
static int smblib_set_usb_suspend(struct smb_charger *chg, bool suspend)
|
||||
int smblib_set_usb_suspend(struct smb_charger *chg, bool suspend)
|
||||
{
|
||||
int rc = 0;
|
||||
|
||||
|
@ -195,7 +230,7 @@ static int smblib_set_usb_suspend(struct smb_charger *chg, bool suspend)
|
|||
return rc;
|
||||
}
|
||||
|
||||
static int smblib_set_dc_suspend(struct smb_charger *chg, bool suspend)
|
||||
int smblib_set_dc_suspend(struct smb_charger *chg, bool suspend)
|
||||
{
|
||||
int rc = 0;
|
||||
|
||||
|
|
|
@ -96,7 +96,15 @@ int smblib_read(struct smb_charger *chg, u16 addr, u8 *val);
|
|||
int smblib_masked_write(struct smb_charger *chg, u16 addr, u8 mask, u8 val);
|
||||
int smblib_write(struct smb_charger *chg, u16 addr, u8 val);
|
||||
|
||||
int smblib_get_charge_param(struct smb_charger *chg,
|
||||
struct smb_chg_param *param, int *val_u);
|
||||
int smblib_get_usb_suspend(struct smb_charger *chg, int *suspend);
|
||||
|
||||
int smblib_enable_charging(struct smb_charger *chg, bool enable);
|
||||
int smblib_set_charge_param(struct smb_charger *chg,
|
||||
struct smb_chg_param *param, int val_u);
|
||||
int smblib_set_usb_suspend(struct smb_charger *chg, bool suspend);
|
||||
int smblib_set_dc_suspend(struct smb_charger *chg, bool suspend);
|
||||
|
||||
int smblib_vbus_regulator_enable(struct regulator_dev *rdev);
|
||||
int smblib_vbus_regulator_disable(struct regulator_dev *rdev);
|
||||
|
|
Loading…
Add table
Reference in a new issue