]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
power: supply: "usb_type" property may be written to
authorHans de Goede <hdegoede@redhat.com>
Sat, 31 Aug 2024 14:20:34 +0000 (16:20 +0200)
committerSebastian Reichel <sebastian.reichel@collabora.com>
Tue, 3 Sep 2024 21:20:27 +0000 (23:20 +0200)
According to Documentation/ABI/testing/sysfs-class-power the "usb_type"
property is Read-Only.

For power-supplies which consume USB power such as battery charger chips,
this is correct.

But the UCS1002 USB Port Power Controller driver which is a driver
for a chip which is a power-source for USB-A charging ports "usb_type"
is actually writable to configure the type of USB charger emulated
by the USB-A port.

Adjust the docs and the power_supply_sysfs.c code to adjust for this
new writeable use of "usb_type":

1. Update Documentation/ABI/testing/sysfs-class-power to document that
"usb_type" may be writable

2. Change the power_supply_attr type in power_supply_sysfs.c from
POWER_SUPPLY_ATTR() into POWER_SUPPLY_ENUM_ATTR() so that the various
usb_type string values from POWER_SUPPLY_TYPE_TEXT[] such as e.g.
"SDP" and "USB_PD" can be written to the "usb_type" attribute instead
of only accepting integer values.

Cc: Enric Balletbo Serra <enric.balletbo@collabora.com>
Cc: Andrey Smirnov <andrew.smirnov@gmail.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Link: https://lore.kernel.org/r/20240831142039.28830-2-hdegoede@redhat.com
Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
Documentation/ABI/testing/sysfs-class-power
drivers/power/supply/power_supply_sysfs.c

index 7c81f0a25a48727a477de3d712155535cca92728..2230a207c187637e192bbc456c3cb925ce9c708e 100644 (file)
@@ -592,7 +592,12 @@ Description:
                the supply, for example it can show if USB-PD capable source
                is attached.
 
-               Access: Read-Only
+               Access: For power-supplies which consume USB power such
+               as battery charger chips, this indicates the type of
+               the connected USB power source and is Read-Only.
+
+               For power-supplies which act as a USB power-source such as
+               e.g. the UCS1002 USB Port Power Controller this is writable.
 
                Valid values:
                              "Unknown", "SDP", "DCP", "CDP", "ACA", "C", "PD",
index 3e63d165b2f70cf6854671b000b4ea81fadefa6d..ff7e423edd575c3c13f9b8b07fd952cd0324534c 100644 (file)
@@ -209,7 +209,7 @@ static struct power_supply_attr power_supply_attrs[] = {
        POWER_SUPPLY_ATTR(TIME_TO_FULL_NOW),
        POWER_SUPPLY_ATTR(TIME_TO_FULL_AVG),
        POWER_SUPPLY_ENUM_ATTR(TYPE),
-       POWER_SUPPLY_ATTR(USB_TYPE),
+       POWER_SUPPLY_ENUM_ATTR(USB_TYPE),
        POWER_SUPPLY_ENUM_ATTR(SCOPE),
        POWER_SUPPLY_ATTR(PRECHARGE_CURRENT),
        POWER_SUPPLY_ATTR(CHARGE_TERM_CURRENT),