aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/layerscape/patches-5.4/820-usb-0003-usb-phy-show-USB-charger-type-for-user.patch
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/layerscape/patches-5.4/820-usb-0003-usb-phy-show-USB-charger-type-for-user.patch')
-rw-r--r--target/linux/layerscape/patches-5.4/820-usb-0003-usb-phy-show-USB-charger-type-for-user.patch49
1 files changed, 49 insertions, 0 deletions
diff --git a/target/linux/layerscape/patches-5.4/820-usb-0003-usb-phy-show-USB-charger-type-for-user.patch b/target/linux/layerscape/patches-5.4/820-usb-0003-usb-phy-show-USB-charger-type-for-user.patch
new file mode 100644
index 0000000000..c2e85c096b
--- /dev/null
+++ b/target/linux/layerscape/patches-5.4/820-usb-0003-usb-phy-show-USB-charger-type-for-user.patch
@@ -0,0 +1,49 @@
+From 8eaa50485af15a4e1cc0c7c04f5ce3916e712ae1 Mon Sep 17 00:00:00 2001
+From: Peter Chen <peter.chen@nxp.com>
+Date: Wed, 6 Nov 2019 17:24:29 +0800
+Subject: [PATCH] usb: phy: show USB charger type for user
+
+Current USB charger framework only shows charger state for user, but the
+user may also need charger type for further use, add support for it.
+
+Signed-off-by: Peter Chen <peter.chen@nxp.com>
+---
+ drivers/usb/phy/phy.c | 13 ++++++++++++-
+ 1 file changed, 12 insertions(+), 1 deletion(-)
+
+--- a/drivers/usb/phy/phy.c
++++ b/drivers/usb/phy/phy.c
+@@ -34,6 +34,14 @@ struct phy_devm {
+ struct notifier_block *nb;
+ };
+
++static const char *const usb_chger_type[] = {
++ [UNKNOWN_TYPE] = "USB_CHARGER_UNKNOWN_TYPE",
++ [SDP_TYPE] = "USB_CHARGER_SDP_TYPE",
++ [CDP_TYPE] = "USB_CHARGER_CDP_TYPE",
++ [DCP_TYPE] = "USB_CHARGER_DCP_TYPE",
++ [ACA_TYPE] = "USB_CHARGER_ACA_TYPE",
++};
++
+ static struct usb_phy *__usb_find_phy(struct list_head *list,
+ enum usb_phy_type type)
+ {
+@@ -98,7 +106,8 @@ static void usb_phy_notify_charger_work(
+ {
+ struct usb_phy *usb_phy = container_of(work, struct usb_phy, chg_work);
+ char uchger_state[50] = { 0 };
+- char *envp[] = { uchger_state, NULL };
++ char uchger_type[50] = { 0 };
++ char *envp[] = { uchger_state, uchger_type, NULL };
+ unsigned int min, max;
+
+ switch (usb_phy->chg_state) {
+@@ -122,6 +131,8 @@ static void usb_phy_notify_charger_work(
+ return;
+ }
+
++ snprintf(uchger_type, ARRAY_SIZE(uchger_type),
++ "USB_CHARGER_TYPE=%s", usb_chger_type[usb_phy->chg_type]);
+ kobject_uevent_env(&usb_phy->dev->kobj, KOBJ_CHANGE, envp);
+ }
+