linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v4 0/5] Introduce usb charger framework to deal with the usb gadget power negotation
@ 2015-08-19  9:13 Baolin Wang
  2015-08-19  9:13 ` [PATCH v4 1/5] gadget: Introduce the notifier functions Baolin Wang
                   ` (4 more replies)
  0 siblings, 5 replies; 15+ messages in thread
From: Baolin Wang @ 2015-08-19  9:13 UTC (permalink / raw)
  To: balbi
  Cc: broonie, linus.walleij, linux-kernel, baolin.wang, gregkh,
	peter.chen, sojka, stern, r.baldyga, yoshihiro.shimoda.uh,
	linux-usb, device-mainlining, sre, dbaryshkov, dwmw2, sameo,
	lee.jones, patches, linux-pm

Currently the Linux kernel does not provide any standard integration of this
feature that integrates the USB subsystem with the system power regulation
provided by PMICs meaning that either vendors must add this in their kernels
or USB gadget devices based on Linux (such as mobile phones) may not behave
as they should.

Providing a standard framework for doing this in the kernel.

Now introduce one user with wm831x_power to support and test the usb charger,
which is pending testing. Moreover there may be other potential users will use
it in future.

Changes since v3:
 - Re-order the patch and split the patch to avoid breaking build.
 - Other modifications.

Baolin Wang (5):
  gadget: Introduce the notifier functions
  gadget: Introduce the usb charger framework
  gadget: Support for the usb charger framework
  gadget: Integrate with the usb gadget supporting for usb charger
  power: wm831x_power: Support USB charger current limit management

 drivers/power/wm831x_power.c      |   69 +++++
 drivers/usb/gadget/Kconfig        |    7 +
 drivers/usb/gadget/Makefile       |    1 +
 drivers/usb/gadget/charger.c      |  538 +++++++++++++++++++++++++++++++++++++
 drivers/usb/gadget/udc/udc-core.c |   40 +++
 include/linux/mfd/wm831x/pdata.h  |    3 +
 include/linux/usb/gadget.h        |   20 ++
 include/linux/usb/usb_charger.h   |  138 ++++++++++
 8 files changed, 816 insertions(+)
 create mode 100644 drivers/usb/gadget/charger.c
 create mode 100644 include/linux/usb/usb_charger.h

-- 
1.7.9.5


^ permalink raw reply	[flat|nested] 15+ messages in thread
* [PATCH v4 3/5] gadget: Support for the usb charger framework
       [not found] ` <cover.1440135007.git.baolin.wang@linaro.org>
@ 2015-08-21  5:34 Baolin Wang
       [not found] ` <cover.1440135007.git.baolin.wang@linaro.org>
  0 siblings, 1 reply; 15+ messages in thread
From: Baolin Wang @ 2015-08-21  5:34 UTC (permalink / raw)
  To: balbi
  Cc: broonie, linus.walleij, linux-kernel, baolin.wang, gregkh,
	peter.chen, sojka, stern, r.baldyga, yoshihiro.shimoda.uh,
	linux-usb, device-mainlining, sre, dbaryshkov, dwmw2, sameo,
	lee.jones, patches, linux-pm

For supporting the usb charger, it adds the usb_charger_init() and
usb_charger_exit() functions for usb charger initialization and exit.

Introduce a callback 'get_charger_type' which will implemented by
user for usb gadget operations to get the usb charger type.

Signed-off-by: Baolin Wang <baolin.wang@linaro.org>
---
 drivers/usb/gadget/udc/udc-core.c |    8 ++++++++
 include/linux/usb/gadget.h        |    2 ++
 2 files changed, 10 insertions(+)

diff --git a/drivers/usb/gadget/udc/udc-core.c b/drivers/usb/gadget/udc/udc-core.c
index 4238fc3..370376e 100644
--- a/drivers/usb/gadget/udc/udc-core.c
+++ b/drivers/usb/gadget/udc/udc-core.c
@@ -28,6 +28,7 @@
 #include <linux/usb/ch9.h>
 #include <linux/usb/gadget.h>
 #include <linux/usb.h>
+#include <linux/usb/usb_charger.h>
 
 /**
  * struct usb_udc - describes one usb device controller
@@ -437,8 +438,14 @@ int usb_add_gadget_udc_release(struct device *parent, struct usb_gadget *gadget,
 
 	mutex_unlock(&udc_lock);
 
+	ret = usb_charger_init(gadget);
+	if (ret)
+		goto err5;
+
 	return 0;
 
+err5:
+	device_del(&udc->dev);
 err4:
 	list_del(&udc->list);
 	mutex_unlock(&udc_lock);
@@ -513,6 +520,7 @@ void usb_del_gadget_udc(struct usb_gadget *gadget)
 	kobject_uevent(&udc->dev.kobj, KOBJ_REMOVE);
 	flush_work(&gadget->work);
 	device_unregister(&udc->dev);
+	usb_charger_exit(gadget);
 	device_unregister(&gadget->dev);
 }
 EXPORT_SYMBOL_GPL(usb_del_gadget_udc);
diff --git a/include/linux/usb/gadget.h b/include/linux/usb/gadget.h
index 755e8bc..451ad32 100644
--- a/include/linux/usb/gadget.h
+++ b/include/linux/usb/gadget.h
@@ -537,6 +537,7 @@ struct usb_gadget_ops {
 	struct usb_ep *(*match_ep)(struct usb_gadget *,
 			struct usb_endpoint_descriptor *,
 			struct usb_ss_ep_comp_descriptor *);
+	enum usb_charger_type (*get_charger_type)(struct usb_gadget *);
 };
 
 /**
@@ -611,6 +612,7 @@ struct usb_gadget {
 	struct usb_otg_caps		*otg_caps;
 	struct raw_notifier_head	nh;
 	struct mutex			lock;
+	struct usb_charger		*charger;
 
 	unsigned			sg_supported:1;
 	unsigned			is_otg:1;
-- 
1.7.9.5


^ permalink raw reply related	[flat|nested] 15+ messages in thread
* [PATCH v4 0/5] Introduce usb charger framework to deal with the usb gadget power negotation
@ 2015-09-24 17:39 Baolin Wang
  2015-09-24 17:39 ` [PATCH v4 5/5] power: wm831x_power: Support USB charger current limit management Baolin Wang
  0 siblings, 1 reply; 15+ messages in thread
From: Baolin Wang @ 2015-09-24 17:39 UTC (permalink / raw)
  To: balbi, sre, dbaryshkov, dwmw2
  Cc: gregkh, peter.chen, stern, r.baldyga, sojka,
	yoshihiro.shimoda.uh, linux-usb, linux-kernel, sameo, lee.jones,
	ckeepax, broonie, patches, linux-pm, device-mainlining,
	baolin.wang

Currently the Linux kernel does not provide any standard integration of this
feature that integrates the USB subsystem with the system power regulation
provided by PMICs meaning that either vendors must add this in their kernels
or USB gadget devices based on Linux (such as mobile phones) may not behave
as they should.

Providing a standard framework for doing this in the kernel.

Now introduce one user with wm831x_power to support and test the usb charger,
which is pending testing. Moreover there may be other potential users will use
it in future.

Changes since v3:
 - Re-order the patch and split the patch to avoid breaking build.
 - Other modifications.

Baolin Wang (5):
  gadget: Introduce the notifier functions
  gadget: Introduce the usb charger framework
  gadget: Support for the usb charger framework
  gadget: Integrate with the usb gadget supporting for usb charger
  power: wm831x_power: Support USB charger current limit management

 drivers/power/wm831x_power.c      |  69 +++++
 drivers/usb/gadget/Kconfig        |   7 +
 drivers/usb/gadget/Makefile       |   1 +
 drivers/usb/gadget/charger.c      | 538 ++++++++++++++++++++++++++++++++++++++
 drivers/usb/gadget/udc/udc-core.c |  40 +++
 include/linux/mfd/wm831x/pdata.h  |   3 +
 include/linux/usb/gadget.h        |  20 ++
 include/linux/usb/usb_charger.h   | 138 ++++++++++
 8 files changed, 816 insertions(+)
 create mode 100644 drivers/usb/gadget/charger.c
 create mode 100644 include/linux/usb/usb_charger.h

-- 
1.9.1


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

end of thread, other threads:[~2015-09-24 17:40 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-08-19  9:13 [PATCH v4 0/5] Introduce usb charger framework to deal with the usb gadget power negotation Baolin Wang
2015-08-19  9:13 ` [PATCH v4 1/5] gadget: Introduce the notifier functions Baolin Wang
2015-08-19  9:13 ` [PATCH v4 2/5] gadget: Introduce the usb charger framework Baolin Wang
2015-08-19  9:13 ` [PATCH v4 3/5] gadget: Support for " Baolin Wang
2015-08-19 12:56   ` Sergei Shtylyov
2015-08-20  1:42     ` Baolin Wang
2015-08-19  9:13 ` [PATCH v4 4/5] gadget: Integrate with the usb gadget supporting for usb charger Baolin Wang
2015-08-19  9:13 ` [PATCH v4 5/5] power: wm831x_power: Support USB charger current limit management Baolin Wang
2015-08-19  9:56   ` Lee Jones
2015-08-19 10:27     ` Baolin Wang
2015-08-19 16:24   ` Mark Brown
2015-08-20  1:32     ` Baolin Wang
2015-08-21  5:34 [PATCH v4 3/5] gadget: Support for the usb charger framework Baolin Wang
     [not found] ` <cover.1440135007.git.baolin.wang@linaro.org>
2015-08-21  5:34   ` [PATCH v4 5/5] power: wm831x_power: Support USB charger current limit management Baolin Wang
2015-09-22 13:29     ` Sebastian Reichel
2015-09-24 17:39 [PATCH v4 0/5] Introduce usb charger framework to deal with the usb gadget power negotation Baolin Wang
2015-09-24 17:39 ` [PATCH v4 5/5] power: wm831x_power: Support USB charger current limit management Baolin Wang

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).