* [PATCH v3 1/2] usb: phy: show USB charger type for user
@ 2020-01-14 9:38 Peter Chen
2020-01-14 9:38 ` [PATCH v3 2/2] Doc: ABI: add usb charger uevent Peter Chen
0 siblings, 1 reply; 4+ messages in thread
From: Peter Chen @ 2020-01-14 9:38 UTC (permalink / raw)
To: balbi; +Cc: linux-usb, linux-imx, gregkh, Peter Chen
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>
---
Changes for v3:
- No changes.
drivers/usb/phy/phy.c | 13 ++++++++++++-
1 file changed, 12 insertions(+), 1 deletion(-)
diff --git a/drivers/usb/phy/phy.c b/drivers/usb/phy/phy.c
index 0277f62739a2..ad2554630889 100644
--- 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 work_struct *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(struct work_struct *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);
}
--
2.17.1
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [PATCH v3 2/2] Doc: ABI: add usb charger uevent
2020-01-14 9:38 [PATCH v3 1/2] usb: phy: show USB charger type for user Peter Chen
@ 2020-01-14 9:38 ` Peter Chen
2020-01-14 9:48 ` Greg KH
0 siblings, 1 reply; 4+ messages in thread
From: Peter Chen @ 2020-01-14 9:38 UTC (permalink / raw)
To: balbi; +Cc: linux-usb, linux-imx, gregkh, Peter Chen
When the USB charger is inserted or removed, the users could get
USB charger state and type through the uevent.
Signed-off-by: Peter Chen <peter.chen@nxp.com>
---
Changes for v3:
- Change kernel version for 5.6, and delete the kernel printk time
Documentation/ABI/testing/usb-charger-uevent | 45 ++++++++++++++++++++
1 file changed, 45 insertions(+)
create mode 100644 Documentation/ABI/testing/usb-charger-uevent
diff --git a/Documentation/ABI/testing/usb-charger-uevent b/Documentation/ABI/testing/usb-charger-uevent
new file mode 100644
index 000000000000..94ab16768e49
--- /dev/null
+++ b/Documentation/ABI/testing/usb-charger-uevent
@@ -0,0 +1,45 @@
+What: Raise a uevent when a USB charger is inserted or removed
+Date: 2020-01-14
+KernelVersion: 5.6
+Contact: linux-usb@vger.kernel.org
+Description: There are two USB charger states:
+ USB_CHARGER_ABSENT
+ USB_CHARGER_PRESENT
+ There are five USB charger types:
+ USB_CHARGER_UNKNOWN_TYPE
+ USB_CHARGER_SDP_TYPE
+ USB_CHARGER_CDP_TYPE
+ USB_CHARGER_DCP_TYPE
+ USB_CHARGER_ACA_TYPE
+
+ Here are two examples taken using udevadm monitor -p when
+ USB charger is online:
+ UDEV change /devices/soc0/usbphynop1 (platform)
+ ACTION=change
+ DEVPATH=/devices/soc0/usbphynop1
+ DRIVER=usb_phy_generic
+ MODALIAS=of:Nusbphynop1T(null)Cusb-nop-xceiv
+ OF_COMPATIBLE_0=usb-nop-xceiv
+ OF_COMPATIBLE_N=1
+ OF_FULLNAME=/usbphynop1
+ OF_NAME=usbphynop1
+ SEQNUM=2493
+ SUBSYSTEM=platform
+ USB_CHARGER_STATE=USB_CHARGER_PRESENT
+ USB_CHARGER_TYPE=USB_CHARGER_SDP_TYPE
+ USEC_INITIALIZED=227422826
+
+ USB charger is offline:
+ KERNEL change /devices/soc0/usbphynop1 (platform)
+ ACTION=change
+ DEVPATH=/devices/soc0/usbphynop1
+ DRIVER=usb_phy_generic
+ MODALIAS=of:Nusbphynop1T(null)Cusb-nop-xceiv
+ OF_COMPATIBLE_0=usb-nop-xceiv
+ OF_COMPATIBLE_N=1
+ OF_FULLNAME=/usbphynop1
+ OF_NAME=usbphynop1
+ SEQNUM=2494
+ SUBSYSTEM=platform
+ USB_CHARGER_STATE=USB_CHARGER_ABSENT
+ USB_CHARGER_TYPE=USB_CHARGER_UNKNOWN_TYPE
--
2.17.1
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH v3 2/2] Doc: ABI: add usb charger uevent
2020-01-14 9:38 ` [PATCH v3 2/2] Doc: ABI: add usb charger uevent Peter Chen
@ 2020-01-14 9:48 ` Greg KH
2020-01-15 1:58 ` Peter Chen
0 siblings, 1 reply; 4+ messages in thread
From: Greg KH @ 2020-01-14 9:48 UTC (permalink / raw)
To: Peter Chen; +Cc: balbi, linux-usb, linux-imx
On Tue, Jan 14, 2020 at 05:38:58PM +0800, Peter Chen wrote:
> When the USB charger is inserted or removed, the users could get
> USB charger state and type through the uevent.
>
> Signed-off-by: Peter Chen <peter.chen@nxp.com>
> ---
> Changes for v3:
> - Change kernel version for 5.6, and delete the kernel printk time
>
> Documentation/ABI/testing/usb-charger-uevent | 45 ++++++++++++++++++++
> 1 file changed, 45 insertions(+)
> create mode 100644 Documentation/ABI/testing/usb-charger-uevent
>
> diff --git a/Documentation/ABI/testing/usb-charger-uevent b/Documentation/ABI/testing/usb-charger-uevent
> new file mode 100644
> index 000000000000..94ab16768e49
> --- /dev/null
> +++ b/Documentation/ABI/testing/usb-charger-uevent
> @@ -0,0 +1,45 @@
> +What: Raise a uevent when a USB charger is inserted or removed
> +Date: 2020-01-14
> +KernelVersion: 5.6
> +Contact: linux-usb@vger.kernel.org
> +Description: There are two USB charger states:
> + USB_CHARGER_ABSENT
> + USB_CHARGER_PRESENT
> + There are five USB charger types:
> + USB_CHARGER_UNKNOWN_TYPE
> + USB_CHARGER_SDP_TYPE
> + USB_CHARGER_CDP_TYPE
> + USB_CHARGER_DCP_TYPE
> + USB_CHARGER_ACA_TYPE
Any explaination for what these different types really are? What is a
"CDP"? "ACA"? where would one find that information out?
thanks,
greg k-h
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH v3 2/2] Doc: ABI: add usb charger uevent
2020-01-14 9:48 ` Greg KH
@ 2020-01-15 1:58 ` Peter Chen
0 siblings, 0 replies; 4+ messages in thread
From: Peter Chen @ 2020-01-15 1:58 UTC (permalink / raw)
To: Greg KH; +Cc: balbi, linux-usb, dl-linux-imx
On 20-01-14 10:48:13, Greg KH wrote:
> On Tue, Jan 14, 2020 at 05:38:58PM +0800, Peter Chen wrote:
> > When the USB charger is inserted or removed, the users could get
> > USB charger state and type through the uevent.
> >
> > Signed-off-by: Peter Chen <peter.chen@nxp.com>
> > ---
> > Changes for v3:
> > - Change kernel version for 5.6, and delete the kernel printk time
> >
> > Documentation/ABI/testing/usb-charger-uevent | 45 ++++++++++++++++++++
> > 1 file changed, 45 insertions(+)
> > create mode 100644 Documentation/ABI/testing/usb-charger-uevent
> >
> > diff --git a/Documentation/ABI/testing/usb-charger-uevent b/Documentation/ABI/testing/usb-charger-uevent
> > new file mode 100644
> > index 000000000000..94ab16768e49
> > --- /dev/null
> > +++ b/Documentation/ABI/testing/usb-charger-uevent
> > @@ -0,0 +1,45 @@
> > +What: Raise a uevent when a USB charger is inserted or removed
> > +Date: 2020-01-14
> > +KernelVersion: 5.6
> > +Contact: linux-usb@vger.kernel.org
> > +Description: There are two USB charger states:
> > + USB_CHARGER_ABSENT
> > + USB_CHARGER_PRESENT
> > + There are five USB charger types:
> > + USB_CHARGER_UNKNOWN_TYPE
> > + USB_CHARGER_SDP_TYPE
> > + USB_CHARGER_CDP_TYPE
> > + USB_CHARGER_DCP_TYPE
> > + USB_CHARGER_ACA_TYPE
>
> Any explaination for what these different types really are? What is a
> "CDP"? "ACA"? where would one find that information out?
I will add explanation for it, thanks.
--
Thanks,
Peter Chen
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2020-01-15 1:58 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-01-14 9:38 [PATCH v3 1/2] usb: phy: show USB charger type for user Peter Chen
2020-01-14 9:38 ` [PATCH v3 2/2] Doc: ABI: add usb charger uevent Peter Chen
2020-01-14 9:48 ` Greg KH
2020-01-15 1:58 ` Peter Chen
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).