From: Casey Connolly <[email protected]> Hook up USBIN_CMD_IL so that writing "0" to the status register will disable charging, this is useful to let users limit charging automatically.
Signed-off-by: Casey Connolly <[email protected]> Reviewed-by: Konrad Dybcio <[email protected]> Signed-off-by: David Heidelberg <[email protected]> --- [David] - adapted from: https://lore.kernel.org/all/[email protected]/ - moved USBIN defines into the right place inside this patch --- drivers/power/supply/qcom_smbx.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/drivers/power/supply/qcom_smbx.c b/drivers/power/supply/qcom_smbx.c index b1cb925581ec6..bf2e2ccc454a6 100644 --- a/drivers/power/supply/qcom_smbx.c +++ b/drivers/power/supply/qcom_smbx.c @@ -134,6 +134,9 @@ #define OCP_CHARGER_BIT BIT(1) #define SDP_CHARGER_BIT BIT(0) +#define USBIN_CMD_IL 0x340 +#define USBIN_SUSPEND_BIT BIT(0) + #define TYPE_C_STATUS_1 0x30B #define UFP_TYPEC_MASK GENMASK(7, 5) #define UFP_TYPEC_RDSTD_BIT BIT(7) @@ -693,6 +696,9 @@ static int smb_set_property(struct power_supply *psy, struct smb_chip *chip = power_supply_get_drvdata(psy); switch (psp) { + case POWER_SUPPLY_PROP_STATUS: + return regmap_update_bits(chip->regmap, chip->base + USBIN_CMD_IL, + USBIN_SUSPEND_BIT, !val->intval); case POWER_SUPPLY_PROP_CURRENT_MAX: return smb_set_current_limit(chip, val->intval); default: @@ -705,6 +711,7 @@ static int smb_property_is_writable(struct power_supply *psy, enum power_supply_property psp) { switch (psp) { + case POWER_SUPPLY_PROP_STATUS: case POWER_SUPPLY_PROP_CURRENT_MAX: return 1; default: --- base-commit: b84a0ebe421ca56995ff78b66307667b62b3a900 change-id: 20260315-smb2-cherry-pick-4bce2dd2fdbe Best regards, -- David Heidelberg <[email protected]>

