Linux-USB Archive on lore.kernel.org
 help / color / Atom feed
* [PATCH RESEND v2 1/2] usb: phy: show USB charger type for user
@ 2019-12-03  3:03 Peter Chen
  2019-12-03  3:03 ` [PATCH RESEND v2 2/2] Doc: ABI: add usb charger uevent Peter Chen
  0 siblings, 1 reply; 4+ messages in thread
From: Peter Chen @ 2019-12-03  3:03 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 v2:
- Some string unalignment for usb_chger_type
- Add ABI documentation for USB charger uevent

 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	[flat|nested] 4+ messages in thread

* [PATCH RESEND v2 2/2] Doc: ABI: add usb charger uevent
  2019-12-03  3:03 [PATCH RESEND v2 1/2] usb: phy: show USB charger type for user Peter Chen
@ 2019-12-03  3:03 ` Peter Chen
  2019-12-03  6:47   ` Greg KH
  0 siblings, 1 reply; 4+ messages in thread
From: Peter Chen @ 2019-12-03  3:03 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>
---
 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..93ffd3a54a7f
--- /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:		2019-11-11
+KernelVersion:	5.5
+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  [227.425096] 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[229.533933] 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	[flat|nested] 4+ messages in thread

* Re: [PATCH RESEND v2 2/2] Doc: ABI: add usb charger uevent
  2019-12-03  3:03 ` [PATCH RESEND v2 2/2] Doc: ABI: add usb charger uevent Peter Chen
@ 2019-12-03  6:47   ` Greg KH
  2019-12-03  7:00     ` Peter Chen
  0 siblings, 1 reply; 4+ messages in thread
From: Greg KH @ 2019-12-03  6:47 UTC (permalink / raw)
  To: Peter Chen; +Cc: balbi, linux-usb, linux-imx

On Tue, Dec 03, 2019 at 11:03:55AM +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>
> ---
>  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..93ffd3a54a7f
> --- /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:		2019-11-11
> +KernelVersion:	5.5

No new features for 5.5, this would be 5.6, right?

thanks,

greg k-h

^ permalink raw reply	[flat|nested] 4+ messages in thread

* RE: [PATCH RESEND v2 2/2] Doc: ABI: add usb charger uevent
  2019-12-03  6:47   ` Greg KH
@ 2019-12-03  7:00     ` Peter Chen
  0 siblings, 0 replies; 4+ messages in thread
From: Peter Chen @ 2019-12-03  7:00 UTC (permalink / raw)
  To: Greg KH; +Cc: balbi, linux-usb, dl-linux-imx

 
> > diff --git a/Documentation/ABI/testing/usb-charger-uevent
> > b/Documentation/ABI/testing/usb-charger-uevent
> > new file mode 100644
> > index 000000000000..93ffd3a54a7f
> > --- /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:		2019-11-11
> > +KernelVersion:	5.5
> 
> No new features for 5.5, this would be 5.6, right?
> 

Yes, thanks.

Peter

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, back to index

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-12-03  3:03 [PATCH RESEND v2 1/2] usb: phy: show USB charger type for user Peter Chen
2019-12-03  3:03 ` [PATCH RESEND v2 2/2] Doc: ABI: add usb charger uevent Peter Chen
2019-12-03  6:47   ` Greg KH
2019-12-03  7:00     ` Peter Chen

Linux-USB Archive on lore.kernel.org

Archives are clonable:
	git clone --mirror https://lore.kernel.org/linux-usb/0 linux-usb/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 linux-usb linux-usb/ https://lore.kernel.org/linux-usb \
		linux-usb@vger.kernel.org
	public-inbox-index linux-usb

Example config snippet for mirrors

Newsgroup available over NNTP:
	nntp://nntp.lore.kernel.org/org.kernel.vger.linux-usb


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git