Loading drivers/power/supply/qcom/qpnp-smb5.c +6 −1 Original line number Diff line number Diff line Loading @@ -1616,6 +1616,7 @@ static enum power_supply_property smb5_batt_props[] = { POWER_SUPPLY_PROP_FCC_STEPPER_ENABLE, }; #define DEBUG_ACCESSORY_TEMP_DECIDEGC 250 static int smb5_batt_get_prop(struct power_supply *psy, enum power_supply_property psp, union power_supply_propval *val) Loading Loading @@ -1693,7 +1694,11 @@ static int smb5_batt_get_prop(struct power_supply *psy, rc = smblib_get_prop_batt_iterm(chg, val); break; case POWER_SUPPLY_PROP_TEMP: rc = smblib_get_prop_from_bms(chg, POWER_SUPPLY_PROP_TEMP, val); if (chg->typec_mode == POWER_SUPPLY_TYPEC_SINK_DEBUG_ACCESSORY) val->intval = DEBUG_ACCESSORY_TEMP_DECIDEGC; else rc = smblib_get_prop_from_bms(chg, POWER_SUPPLY_PROP_TEMP, val); break; case POWER_SUPPLY_PROP_TECHNOLOGY: val->intval = POWER_SUPPLY_TECHNOLOGY_LION; Loading drivers/power/supply/qcom/smb5-lib.c +10 −0 Original line number Diff line number Diff line Loading @@ -41,6 +41,7 @@ && (!chg->typec_legacy || chg->typec_legacy_use_rp_icl)) static void update_sw_icl_max(struct smb_charger *chg, int pst); static int smblib_get_prop_typec_mode(struct smb_charger *chg); int smblib_read(struct smb_charger *chg, u16 addr, u8 *val) { Loading Loading @@ -1364,6 +1365,11 @@ int smblib_set_icl_current(struct smb_charger *chg, int icl_ua) /* suspend if 25mA or less is requested */ bool suspend = (icl_ua <= USBIN_25MA); /* Do not configure ICL from SW for DAM cables */ if (smblib_get_prop_typec_mode(chg) == POWER_SUPPLY_TYPEC_SINK_DEBUG_ACCESSORY) return 0; if (suspend) return smblib_set_usb_suspend(chg, true); Loading Loading @@ -3587,6 +3593,10 @@ static int smblib_get_prop_ufp_mode(struct smb_charger *chg) return POWER_SUPPLY_TYPEC_SOURCE_HIGH; case SNK_RP_SHORT_BIT: return POWER_SUPPLY_TYPEC_NON_COMPLIANT; case SNK_DAM_500MA_BIT: case SNK_DAM_1500MA_BIT: case SNK_DAM_3000MA_BIT: return POWER_SUPPLY_TYPEC_SINK_DEBUG_ACCESSORY; default: break; } Loading drivers/power/supply/qcom/smb5-reg.h +4 −1 Original line number Diff line number Diff line Loading @@ -333,7 +333,10 @@ enum { * TYPEC Peripheral Registers * ********************************/ #define TYPE_C_SNK_STATUS_REG (TYPEC_BASE + 0x06) #define DETECTED_SRC_TYPE_MASK GENMASK(3, 0) #define DETECTED_SRC_TYPE_MASK GENMASK(6, 0) #define SNK_DAM_500MA_BIT BIT(6) #define SNK_DAM_1500MA_BIT BIT(5) #define SNK_DAM_3000MA_BIT BIT(4) #define SNK_RP_STD_BIT BIT(3) #define SNK_RP_1P5_BIT BIT(2) #define SNK_RP_3P0_BIT BIT(1) Loading Loading
drivers/power/supply/qcom/qpnp-smb5.c +6 −1 Original line number Diff line number Diff line Loading @@ -1616,6 +1616,7 @@ static enum power_supply_property smb5_batt_props[] = { POWER_SUPPLY_PROP_FCC_STEPPER_ENABLE, }; #define DEBUG_ACCESSORY_TEMP_DECIDEGC 250 static int smb5_batt_get_prop(struct power_supply *psy, enum power_supply_property psp, union power_supply_propval *val) Loading Loading @@ -1693,7 +1694,11 @@ static int smb5_batt_get_prop(struct power_supply *psy, rc = smblib_get_prop_batt_iterm(chg, val); break; case POWER_SUPPLY_PROP_TEMP: rc = smblib_get_prop_from_bms(chg, POWER_SUPPLY_PROP_TEMP, val); if (chg->typec_mode == POWER_SUPPLY_TYPEC_SINK_DEBUG_ACCESSORY) val->intval = DEBUG_ACCESSORY_TEMP_DECIDEGC; else rc = smblib_get_prop_from_bms(chg, POWER_SUPPLY_PROP_TEMP, val); break; case POWER_SUPPLY_PROP_TECHNOLOGY: val->intval = POWER_SUPPLY_TECHNOLOGY_LION; Loading
drivers/power/supply/qcom/smb5-lib.c +10 −0 Original line number Diff line number Diff line Loading @@ -41,6 +41,7 @@ && (!chg->typec_legacy || chg->typec_legacy_use_rp_icl)) static void update_sw_icl_max(struct smb_charger *chg, int pst); static int smblib_get_prop_typec_mode(struct smb_charger *chg); int smblib_read(struct smb_charger *chg, u16 addr, u8 *val) { Loading Loading @@ -1364,6 +1365,11 @@ int smblib_set_icl_current(struct smb_charger *chg, int icl_ua) /* suspend if 25mA or less is requested */ bool suspend = (icl_ua <= USBIN_25MA); /* Do not configure ICL from SW for DAM cables */ if (smblib_get_prop_typec_mode(chg) == POWER_SUPPLY_TYPEC_SINK_DEBUG_ACCESSORY) return 0; if (suspend) return smblib_set_usb_suspend(chg, true); Loading Loading @@ -3587,6 +3593,10 @@ static int smblib_get_prop_ufp_mode(struct smb_charger *chg) return POWER_SUPPLY_TYPEC_SOURCE_HIGH; case SNK_RP_SHORT_BIT: return POWER_SUPPLY_TYPEC_NON_COMPLIANT; case SNK_DAM_500MA_BIT: case SNK_DAM_1500MA_BIT: case SNK_DAM_3000MA_BIT: return POWER_SUPPLY_TYPEC_SINK_DEBUG_ACCESSORY; default: break; } Loading
drivers/power/supply/qcom/smb5-reg.h +4 −1 Original line number Diff line number Diff line Loading @@ -333,7 +333,10 @@ enum { * TYPEC Peripheral Registers * ********************************/ #define TYPE_C_SNK_STATUS_REG (TYPEC_BASE + 0x06) #define DETECTED_SRC_TYPE_MASK GENMASK(3, 0) #define DETECTED_SRC_TYPE_MASK GENMASK(6, 0) #define SNK_DAM_500MA_BIT BIT(6) #define SNK_DAM_1500MA_BIT BIT(5) #define SNK_DAM_3000MA_BIT BIT(4) #define SNK_RP_STD_BIT BIT(3) #define SNK_RP_1P5_BIT BIT(2) #define SNK_RP_3P0_BIT BIT(1) Loading