From d3a2b7ab76d88ab0ff15dca13e797d22b574cabe Mon Sep 17 00:00:00 2001 From: codeworkx Date: Wed, 23 May 2018 20:49:22 +0200 Subject: [PATCH] smb: enable otg feature on driver init and based on dash status Change-Id: Ic8d554e9df4457bc9e3ad8c2182d5b555b3513bf --- drivers/power/supply/qcom/smb-lib.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/drivers/power/supply/qcom/smb-lib.c b/drivers/power/supply/qcom/smb-lib.c index e44634e97bf8..83e1d69f0952 100644 --- a/drivers/power/supply/qcom/smb-lib.c +++ b/drivers/power/supply/qcom/smb-lib.c @@ -47,6 +47,9 @@ #define BATT_REMOVE_TEMP -400 #define BATT_TEMP_HYST 20 +const union power_supply_propval otg_on = {1,}; +const union power_supply_propval otg_off = {0,}; + struct smb_charger *g_chg; struct qpnp_pon *pm_pon; @@ -5216,11 +5219,15 @@ static void set_usb_switch(struct smb_charger *chg, bool enable) if (!fast_charger) { pr_err("no fast_charger register found\n"); + // Enable otg feature when not connected to dash charger + op_set_prop_otg_switch(chg, &otg_on); return; } if (enable) { pr_err("switch on fastchg\n"); + // Disable otg feature when connected to dash charger + op_set_prop_otg_switch(chg, &otg_off); if (chg->boot_usb_present && chg->re_trigr_dash_done) { vote(chg->usb_icl_votable, AICL_RERUN_VOTER, true, 0); @@ -5244,6 +5251,8 @@ static void set_usb_switch(struct smb_charger *chg, bool enable) pr_err("switch off fastchg\n"); usb_sw_gpio_set(0); mcu_en_gpio_set(1); + // Enable otg feature when disconnected from dash charger + op_set_prop_otg_switch(chg, &otg_on); } } @@ -7530,6 +7539,9 @@ int smblib_init(struct smb_charger *chg) return -EINVAL; } + // Enable otg feature on init + op_set_prop_otg_switch(chg, &otg_on); + return rc; }