]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
power: supply: add inhibit-charge-awake to charge_behaviour
authorAntheas Kapenekakis <lkml@antheas.dev>
Fri, 25 Apr 2025 11:18:18 +0000 (13:18 +0200)
committerIlpo Järvinen <ilpo.jarvinen@linux.intel.com>
Wed, 30 Apr 2025 11:05:42 +0000 (14:05 +0300)
OneXPlayer devices have a charge inhibit feature that allows the user
to select between it being active always or only when the device is on.

Therefore, add attribute inhibit-charge-awake to charge_behaviour to
allow the user to select that charge should be paused only when the
device is awake.

Reviewed-by: Hans de Goede <hdegoede@redhat.com>
Reviewed-by: Thomas Weißschuh <linux@weissschuh.net>
Reviewed-by: Derek J. Clark <derekjohn.clark@gmail.com>
Signed-off-by: Antheas Kapenekakis <lkml@antheas.dev>
Link: https://lore.kernel.org/r/20250425111821.88746-14-lkml@antheas.dev
Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
Documentation/ABI/testing/sysfs-class-power
drivers/power/supply/power_supply_sysfs.c
drivers/power/supply/test_power.c
include/linux/power_supply.h

index 2a5c1a09a28f91beec6b18ca7b4492093026bc81..78afb2422fc5aab0e467d098e090aab2a1045c18 100644 (file)
@@ -508,11 +508,12 @@ Description:
                Access: Read, Write
 
                Valid values:
-                       ================ ====================================
-                       auto:            Charge normally, respect thresholds
-                       inhibit-charge:  Do not charge while AC is attached
-                       force-discharge: Force discharge while AC is attached
-                       ================ ====================================
+                       ===================== ========================================
+                       auto:                 Charge normally, respect thresholds
+                       inhibit-charge:       Do not charge while AC is attached
+                       inhibit-charge-awake: inhibit-charge only when device is awake
+                       force-discharge:      Force discharge while AC is attached
+                       ===================== ========================================
 
 What:          /sys/class/power_supply/<supply_name>/technology
 Date:          May 2007
index edb058c19c9c44ad9ad97a626fc8f59e3d3735a6..f769d5941d0d335afda46ccf89947597c6e9a789 100644 (file)
@@ -138,9 +138,10 @@ static const char * const POWER_SUPPLY_SCOPE_TEXT[] = {
 };
 
 static const char * const POWER_SUPPLY_CHARGE_BEHAVIOUR_TEXT[] = {
-       [POWER_SUPPLY_CHARGE_BEHAVIOUR_AUTO]            = "auto",
-       [POWER_SUPPLY_CHARGE_BEHAVIOUR_INHIBIT_CHARGE]  = "inhibit-charge",
-       [POWER_SUPPLY_CHARGE_BEHAVIOUR_FORCE_DISCHARGE] = "force-discharge",
+       [POWER_SUPPLY_CHARGE_BEHAVIOUR_AUTO]                    = "auto",
+       [POWER_SUPPLY_CHARGE_BEHAVIOUR_INHIBIT_CHARGE]          = "inhibit-charge",
+       [POWER_SUPPLY_CHARGE_BEHAVIOUR_INHIBIT_CHARGE_AWAKE]    = "inhibit-charge-awake",
+       [POWER_SUPPLY_CHARGE_BEHAVIOUR_FORCE_DISCHARGE]         = "force-discharge",
 };
 
 static struct power_supply_attr power_supply_attrs[] __ro_after_init = {
index 2a975a110f4859a77f7689369675f2008816d704..958e0c0cf28769d20d8ffef4440ba0b2e80576b1 100644 (file)
@@ -214,6 +214,7 @@ static const struct power_supply_desc test_power_desc[] = {
                .property_is_writeable = test_power_battery_property_is_writeable,
                .charge_behaviours = BIT(POWER_SUPPLY_CHARGE_BEHAVIOUR_AUTO)
                                   | BIT(POWER_SUPPLY_CHARGE_BEHAVIOUR_INHIBIT_CHARGE)
+                                  | BIT(POWER_SUPPLY_CHARGE_BEHAVIOUR_INHIBIT_CHARGE_AWAKE)
                                   | BIT(POWER_SUPPLY_CHARGE_BEHAVIOUR_FORCE_DISCHARGE),
        },
        [TEST_USB] = {
index 888824592953d3891dfc723dc8db6e75f9a50505..cbec930430a79df034909d3e6d8b0bfbc2a0730c 100644 (file)
@@ -212,6 +212,7 @@ enum power_supply_usb_type {
 enum power_supply_charge_behaviour {
        POWER_SUPPLY_CHARGE_BEHAVIOUR_AUTO = 0,
        POWER_SUPPLY_CHARGE_BEHAVIOUR_INHIBIT_CHARGE,
+       POWER_SUPPLY_CHARGE_BEHAVIOUR_INHIBIT_CHARGE_AWAKE,
        POWER_SUPPLY_CHARGE_BEHAVIOUR_FORCE_DISCHARGE,
 };