From: Qiwu Huang <huangq...@xiaomi.com>

Reports what type of wireless adapter connection is
currently active for the supply.
for example it can show if ADAPTER_PD capable source is attached.

Signed-off-by: Qiwu Huang <huangq...@xiaomi.com>
---
 Documentation/ABI/testing/sysfs-class-power | 28 +++++++++++++++++++++
 drivers/power/supply/power_supply_sysfs.c   |  1 +
 include/linux/power_supply.h                | 19 ++++++++++++++
 3 files changed, 48 insertions(+)

diff --git a/Documentation/ABI/testing/sysfs-class-power 
b/Documentation/ABI/testing/sysfs-class-power
index dd3773dcf16a..03ab449fae8a 100644
--- a/Documentation/ABI/testing/sysfs-class-power
+++ b/Documentation/ABI/testing/sysfs-class-power
@@ -729,3 +729,31 @@ Contact:   Fei Jiang <jiangf...@xiaomi.com>
                        3: QUICK_CHARGE_TURBE,
                        4: QUICK_CHARGE_SUPER.
 
+===== Wireless Charger Properties =====
+What:          /sys/class/power_supply/<supply_name>/tx_adapter
+Date:          Jul 2020
+Contact:       Fei Jiang <jiangf...@xiaomi.com>
+Description:
+               Reports the type of wireless adapter connection is currently 
active for
+               the supply, for example it can show if ADAPTER_PD capable source
+               is attached. Expect common wireless adapter type, also increase 
by
+               some vendor private adapter type(ex. ADAPTER_PD_40W).
+
+               Access: Read-Only
+               Valid values:
+                       0: ADAPTER_NONE,
+                       1: ADAPTER_SDP,
+                       2: ADAPTER_DCP,
+                       3: ADAPTER_CDP,
+                       4: ADAPTER_OCP,
+                       5: ADAPTER_QC2,
+                       6: ADAPTER_QC3,
+                       7: ADAPTER_PD,
+                       8: ADAPTER_AUTH_FAILED,
+                       9: ADAPTER_PRIVATE_QC3,
+                       10: ADAPTER_PRIVATE_PD,
+                       11: ADAPTER_CAR_POWER,
+                       12: ADAPTER_PRIVATE_PD_40W,
+                       13: ADAPTER_VOICE_BOX,
+                       14: ADAPTER_PRIVATE_PD_50W.
+
diff --git a/drivers/power/supply/power_supply_sysfs.c 
b/drivers/power/supply/power_supply_sysfs.c
index 9554d7907373..f2458e21d02b 100644
--- a/drivers/power/supply/power_supply_sysfs.c
+++ b/drivers/power/supply/power_supply_sysfs.c
@@ -207,6 +207,7 @@ static struct power_supply_attr power_supply_attrs[] = {
        POWER_SUPPLY_ATTR(MANUFACTURER),
        POWER_SUPPLY_ATTR(SERIAL_NUMBER),
        POWER_SUPPLY_ATTR(QUICK_CHARGE_TYPE),
+       POWER_SUPPLY_ATTR(TX_ADAPTER),
 };
 
 static struct attribute *
diff --git a/include/linux/power_supply.h b/include/linux/power_supply.h
index bd99658c05be..00254e096a4a 100644
--- a/include/linux/power_supply.h
+++ b/include/linux/power_supply.h
@@ -168,6 +168,7 @@ enum power_supply_property {
        POWER_SUPPLY_PROP_MANUFACTURER,
        POWER_SUPPLY_PROP_SERIAL_NUMBER,
        POWER_SUPPLY_PROP_QUICK_CHARGE_TYPE,
+       POWER_SUPPLY_PROP_TX_ADAPTER,
 };
 
 enum power_supply_type {
@@ -211,6 +212,24 @@ enum power_supply_quick_charge_type {
        QUICK_CHARGE_MAX,
 };
 
+enum power_supply_tx_adapter_type {
+       ADAPTER_NONE = 0,                       /* Nothing Attached */
+       ADAPTER_SDP,                            /* Standard Downstream Port */
+       ADAPTER_CDP,                            /* Charging Downstream Port */
+       ADAPTER_DCP,                            /* Dedicated Charging Port */
+       ADAPTER_OCP,                            /* Other Charging Port */
+       ADAPTER_QC2,                            /* Qualcomm Charge 2.0 */
+       ADAPTER_QC3,                            /* Qualcomm Charge 3.0 */
+       ADAPTER_PD,                             /* Power Delivery Port */
+       ADAPTER_AUTH_FAILED,                    /* Authenticated Failed Adapter 
*/
+       ADAPTER_PRIVATE_QC3,                    /* Qualcomm Charge 3.0 with 
Private Protocol */
+       ADAPTER_PRIVATE_PD,                     /* PD Adapter with Private 
Protocol */
+       ADAPTER_CAR_POWER,                      /* Wireless Car Charger */
+       ADAPTER_PRIVATE_PD_40W,                 /* 40W PD Adapter with Private 
Protocol */
+       ADAPTER_VOICE_BOX,                      /* Voice Box which Support 
Wireless Charger */
+       ADAPTER_PRIVATE_PD_50W,                 /* 50W PD Adapter with Private 
Protocol */
+};
+
 enum power_supply_notifier_events {
        PSY_EVENT_PROP_CHANGED,
 };
-- 
2.28.0

Reply via email to