[PATCH v10 2/4] power: supply: core: add wireless charger adapter type property

From: Qiwu Huang
Date: Tue Aug 25 2020 - 06:18:42 EST


From: Qiwu Huang <huangqiwu@xxxxxxxxxx>

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 <huangqiwu@xxxxxxxxxx>
---
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 a6ec1c45adee..2850adbc8c58 100644
--- a/Documentation/ABI/testing/sysfs-class-power
+++ b/Documentation/ABI/testing/sysfs-class-power
@@ -730,3 +730,31 @@ Contact: Fei Jiang <jiangfei1@xxxxxxxxxx>
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 <jiangfei1@xxxxxxxxxx>
+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 67f568c88c0b..76de6ae199d3 100644
--- a/drivers/power/supply/power_supply_sysfs.c
+++ b/drivers/power/supply/power_supply_sysfs.c
@@ -211,6 +211,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 24b31b7e88a0..4e161d8961c1 100644
--- a/include/linux/power_supply.h
+++ b/include/linux/power_supply.h
@@ -172,6 +172,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 {
@@ -215,6 +216,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