power: qpnp-smbcharger: Add support for float charger detection
PMI8996 charger does not detect FLOAT adapter. To support it, FLOAT detection is done by the USB driver and notified to PMIC by reporting -ETIMEDOUT through the CURRENT_MAX power-supply property. Charger then configures the charge current to 1500mA. Change-Id: I6abd4668b41988d98465f00402aa2be558054cdd Signed-off-by: Kavya Nunna <knunna@codeaurora.org>
This commit is contained in:
parent
22dc337a69
commit
716a46317a
1 changed files with 11 additions and 1 deletions
|
@ -5747,6 +5747,16 @@ static void update_typec_otg_status(struct smbchg_chip *chip, int mode,
|
|||
static int smbchg_set_sdp_current(struct smbchg_chip *chip, int current_ma)
|
||||
{
|
||||
if (chip->usb_supply_type == POWER_SUPPLY_TYPE_USB) {
|
||||
if (current_ma == -ETIMEDOUT) {
|
||||
/* float charger */
|
||||
current_ma = CURRENT_1500_MA;
|
||||
pr_smb(PR_MISC,
|
||||
"Update usb_type to FLOAT current=%dmA\n",
|
||||
current_ma);
|
||||
chip->usb_psy_d.type = POWER_SUPPLY_TYPE_USB_FLOAT;
|
||||
} else {
|
||||
current_ma = current_ma / 1000;
|
||||
}
|
||||
/* Override if type-c charger used */
|
||||
if (chip->typec_current_ma > 500 &&
|
||||
current_ma < chip->typec_current_ma) {
|
||||
|
@ -5807,7 +5817,7 @@ static int smbchg_usb_set_property(struct power_supply *psy,
|
|||
break;
|
||||
case POWER_SUPPLY_PROP_CURRENT_MAX:
|
||||
case POWER_SUPPLY_PROP_SDP_CURRENT_MAX:
|
||||
smbchg_set_sdp_current(chip, val->intval / 1000);
|
||||
smbchg_set_sdp_current(chip, val->intval);
|
||||
default:
|
||||
return -EINVAL;
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue