From: Richard Zhao <richard.zhao-KZfg59tc24xl57MIdRCFDg@public.gmane.org>
To: linux-usb-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org,
devicetree-discuss-uLR06cmDAlY/bJ5BZ2RsiQ@public.gmane.org
Cc: B29397-KZfg59tc24xl57MIdRCFDg@public.gmane.org,
B20596-KZfg59tc24xl57MIdRCFDg@public.gmane.org,
marex-ynQEQJNshbs@public.gmane.org,
shawn.guo-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org,
kernel-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org,
alexander.shishkin-VuQAYsv1563Yd54FQh9/CA@public.gmane.org,
gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r@public.gmane.org,
fabio.estevam-KZfg59tc24xl57MIdRCFDg@public.gmane.org,
dong.aisheng-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org,
stern-nwvwT67g6+6dFdvTe/nMLpVzexx5G7lz@public.gmane.org,
richard.zhao-KZfg59tc24xl57MIdRCFDg@public.gmane.org,
linuxzsc-MeMPY/F8WlbQT0dZR+AlfA@public.gmane.org
Subject: [PATCH v2 02/12] usb: chipidea: permit driver bindings pass phy pointer
Date: Mon, 21 May 2012 17:23:47 +0800 [thread overview]
Message-ID: <1337592237-5090-3-git-send-email-richard.zhao@freescale.com> (raw)
In-Reply-To: <1337592237-5090-1-git-send-email-richard.zhao-KZfg59tc24xl57MIdRCFDg@public.gmane.org>
Sometimes, the driver bindings may know what phy they use.
For example, when using device tree, the usb controller may have a
phandler pointing to usb phy.
Signed-off-by: Richard Zhao <richard.zhao-KZfg59tc24xl57MIdRCFDg@public.gmane.org>
---
drivers/usb/chipidea/ci.h | 2 ++
drivers/usb/chipidea/core.c | 4 ++++
drivers/usb/chipidea/host.c | 1 +
drivers/usb/chipidea/udc.c | 11 +++++++----
include/linux/usb/chipidea.h | 3 +++
5 files changed, 17 insertions(+), 4 deletions(-)
diff --git a/drivers/usb/chipidea/ci.h b/drivers/usb/chipidea/ci.h
index 50911f8..71d7080 100644
--- a/drivers/usb/chipidea/ci.h
+++ b/drivers/usb/chipidea/ci.h
@@ -160,6 +160,8 @@ struct ci13xxx {
struct ci13xxx_udc_driver *udc_driver;
int vbus_active;
+ /* FIXME: some day, we'll not use global phy */
+ bool global_phy;
struct usb_phy *transceiver;
struct usb_hcd *hcd;
};
diff --git a/drivers/usb/chipidea/core.c b/drivers/usb/chipidea/core.c
index 15e03b3..0492786 100644
--- a/drivers/usb/chipidea/core.c
+++ b/drivers/usb/chipidea/core.c
@@ -365,6 +365,10 @@ static int __devinit ci_hdrc_probe(struct platform_device *pdev)
ci->dev = dev;
ci->udc_driver = dev->platform_data;
+ if (ci->udc_driver->phy)
+ ci->transceiver = ci->udc_driver->phy;
+ else
+ ci->global_phy = 1;
ret = hw_device_init(ci, base);
if (ret < 0) {
diff --git a/drivers/usb/chipidea/host.c b/drivers/usb/chipidea/host.c
index 9eacd21..7bc11a5 100644
--- a/drivers/usb/chipidea/host.c
+++ b/drivers/usb/chipidea/host.c
@@ -121,6 +121,7 @@ static int host_start(struct ci13xxx *ci)
ehci = hcd_to_ehci(hcd);
ehci->caps = ci->hw_bank.cap;
ehci->has_hostpc = ci->hw_bank.lpm;
+ ehci->transceiver = ci->transceiver;
ret = usb_add_hcd(hcd, 0, 0);
if (ret)
diff --git a/drivers/usb/chipidea/udc.c b/drivers/usb/chipidea/udc.c
index 51f9694..22139fae 100644
--- a/drivers/usb/chipidea/udc.c
+++ b/drivers/usb/chipidea/udc.c
@@ -1687,7 +1687,8 @@ static int udc_start(struct ci13xxx *udc)
udc->gadget.ep0 = &udc->ep0in->ep;
- udc->transceiver = usb_get_transceiver();
+ if (udc->global_phy) {
+ udc->transceiver = usb_get_transceiver();
if (udc->udc_driver->flags & CI13XXX_REQUIRE_TRANSCEIVER) {
if (udc->transceiver == NULL) {
@@ -1731,7 +1732,8 @@ static int udc_start(struct ci13xxx *udc)
remove_trans:
if (udc->transceiver) {
otg_set_peripheral(udc->transceiver->otg, &udc->gadget);
- usb_put_transceiver(udc->transceiver);
+ if (udc->global_phy)
+ usb_put_transceiver(udc->transceiver);
}
dev_err(dev, "error = %i\n", retval);
@@ -1740,7 +1742,7 @@ remove_dbg:
unreg_device:
device_unregister(&udc->gadget.dev);
put_transceiver:
- if (udc->transceiver)
+ if (udc->transceiver && udc->global_phy)
usb_put_transceiver(udc->transceiver);
free_pools:
dma_pool_destroy(udc->td_pool);
@@ -1774,7 +1776,8 @@ static void udc_stop(struct ci13xxx *udc)
if (udc->transceiver) {
otg_set_peripheral(udc->transceiver->otg, NULL);
- usb_put_transceiver(udc->transceiver);
+ if (udc->global_phy)
+ usb_put_transceiver(udc->transceiver);
}
dbg_remove_files(&udc->gadget.dev);
device_unregister(&udc->gadget.dev);
diff --git a/include/linux/usb/chipidea.h b/include/linux/usb/chipidea.h
index edb90d6..c46c9e9 100644
--- a/include/linux/usb/chipidea.h
+++ b/include/linux/usb/chipidea.h
@@ -5,12 +5,15 @@
#ifndef __LINUX_USB_CHIPIDEA_H
#define __LINUX_USB_CHIPIDEA_H
+#include <linux/usb/otg.h>
+
struct ci13xxx;
struct ci13xxx_udc_driver {
const char *name;
/* offset of the capability registers */
uintptr_t capoffset;
unsigned power_budget;
+ struct usb_phy *phy;
unsigned long flags;
#define CI13XXX_REGS_SHARED BIT(0)
#define CI13XXX_REQUIRE_TRANSCEIVER BIT(1)
--
1.7.5.4
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
next prev parent reply other threads:[~2012-05-21 9:23 UTC|newest]
Thread overview: 91+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-05-21 9:23 [PATCH v2 00/12] add imx usb driver for mx28/6x Richard Zhao
[not found] ` <1337592237-5090-1-git-send-email-richard.zhao-KZfg59tc24xl57MIdRCFDg@public.gmane.org>
2012-05-21 9:23 ` [PATCH v2 01/12] usb: otg: add notify_connect_change callback Richard Zhao
[not found] ` <1337592237-5090-2-git-send-email-richard.zhao-KZfg59tc24xl57MIdRCFDg@public.gmane.org>
2012-05-21 9:26 ` Felipe Balbi
[not found] ` <20120521092635.GL8633-S8G//mZuvNWo5Im9Ml3/Zg@public.gmane.org>
2012-05-21 9:36 ` Richard Zhao
[not found] ` <20120521093614.GL30755-iWYTGMXpHj9ITqJhDdzsOjpauB2SiJktrE5yTffgRl4@public.gmane.org>
2012-05-21 9:38 ` Felipe Balbi
[not found] ` <20120521093840.GM8633-S8G//mZuvNWo5Im9Ml3/Zg@public.gmane.org>
2012-05-21 10:19 ` Richard Zhao
2012-05-21 13:03 ` Greg KH
2012-05-21 13:05 ` Greg KH
[not found] ` <20120521130556.GB18926-U8xfFu+wG4EAvxtiuMwx3w@public.gmane.org>
2012-05-21 17:36 ` Marek Vasut
[not found] ` <201205211936.40359.marex-ynQEQJNshbs@public.gmane.org>
2012-05-21 17:47 ` Greg KH
[not found] ` <20120521174742.GA31739-U8xfFu+wG4EAvxtiuMwx3w@public.gmane.org>
2012-05-21 18:32 ` Marek Vasut
[not found] ` <201205212032.21757.marex-ynQEQJNshbs@public.gmane.org>
2012-05-21 18:40 ` Greg KH
[not found] ` <20120521184014.GA21692-U8xfFu+wG4EAvxtiuMwx3w@public.gmane.org>
2012-05-21 19:27 ` Marek Vasut
[not found] ` <201205212127.51020.marex-ynQEQJNshbs@public.gmane.org>
2012-05-22 0:27 ` Richard Zhao
2012-05-21 9:23 ` Richard Zhao [this message]
[not found] ` <1337592237-5090-3-git-send-email-richard.zhao-KZfg59tc24xl57MIdRCFDg@public.gmane.org>
2012-05-22 4:22 ` [PATCH v2 02/12] usb: chipidea: permit driver bindings pass phy pointer Marek Vasut
2012-05-22 9:59 ` Alexander Shishkin
[not found] ` <87ehqcbko0.fsf-qxRn5AmX6ZD9BXuAQUXR0fooFf0ArEBIu+b9c/7xato@public.gmane.org>
2012-05-22 14:07 ` Marek Vasut
[not found] ` <201205221607.31624.marex-ynQEQJNshbs@public.gmane.org>
2012-05-22 15:14 ` Richard Zhao
2012-05-23 1:35 ` Chen Peter-B29397
2012-05-23 8:08 ` Alexander Shishkin
2012-05-21 9:23 ` [PATCH v2 03/12] usb: ehci-hcd: notify phy when connect change Richard Zhao
[not found] ` <1337592237-5090-4-git-send-email-richard.zhao-KZfg59tc24xl57MIdRCFDg@public.gmane.org>
2012-05-22 4:23 ` Marek Vasut
[not found] ` <201205220623.49878.marex-ynQEQJNshbs@public.gmane.org>
2012-05-22 4:36 ` Richard Zhao
2012-05-21 9:23 ` [PATCH v2 04/12] usb: otg: add basic mxs phy driver support Richard Zhao
2012-05-21 9:23 ` [PATCH v2 05/12] usb: chipidea: add imx driver binding Richard Zhao
[not found] ` <1337592237-5090-6-git-send-email-richard.zhao-KZfg59tc24xl57MIdRCFDg@public.gmane.org>
2012-05-22 4:30 ` Marek Vasut
[not found] ` <201205220630.57007.marex-ynQEQJNshbs@public.gmane.org>
2012-05-22 4:51 ` Richard Zhao
[not found] ` <20120522045120.GL6206-iWYTGMXpHj9ITqJhDdzsOjpauB2SiJktrE5yTffgRl4@public.gmane.org>
2012-05-22 9:56 ` Alexander Shishkin
[not found] ` <87fwasbkt7.fsf-qxRn5AmX6ZD9BXuAQUXR0fooFf0ArEBIu+b9c/7xato@public.gmane.org>
2012-05-22 10:06 ` Felipe Balbi
[not found] ` <20120522100624.GP30559-S8G//mZuvNWo5Im9Ml3/Zg@public.gmane.org>
2012-05-22 10:31 ` Richard Zhao
[not found] ` <20120522103139.GD32035-iWYTGMXpHj9ITqJhDdzsOjpauB2SiJktrE5yTffgRl4@public.gmane.org>
2012-05-22 10:35 ` Felipe Balbi
[not found] ` <20120522103516.GR30559-S8G//mZuvNWo5Im9Ml3/Zg@public.gmane.org>
2012-05-22 10:41 ` Alexander Shishkin
[not found] ` <8762bobiqt.fsf-qxRn5AmX6ZD9BXuAQUXR0fooFf0ArEBIu+b9c/7xato@public.gmane.org>
2012-05-22 15:06 ` Richard Zhao
2012-05-23 13:02 ` Alexander Shishkin
[not found] ` <87wr439hk2.fsf-qxRn5AmX6ZD9BXuAQUXR0fooFf0ArEBIu+b9c/7xato@public.gmane.org>
2012-05-23 13:09 ` Felipe Balbi
[not found] ` <20120523130928.GC1015-S8G//mZuvNWo5Im9Ml3/Zg@public.gmane.org>
2012-05-23 13:13 ` Alexander Shishkin
2012-05-22 13:52 ` Shawn Guo
[not found] ` <20120522135257.GQ8140-rvtDTF3kK1ictlrPMvKcciBecyulp+rMXqFh9Ls21Oc@public.gmane.org>
2012-05-22 13:55 ` Felipe Balbi
2012-05-22 10:21 ` Alexander Shishkin
[not found] ` <87bolgbjnr.fsf-qxRn5AmX6ZD9BXuAQUXR0fooFf0ArEBIu+b9c/7xato@public.gmane.org>
2012-05-22 10:24 ` Alexander Shishkin
[not found] ` <878vgkbjie.fsf-qxRn5AmX6ZD9BXuAQUXR0fooFf0ArEBIu+b9c/7xato@public.gmane.org>
2012-05-22 15:30 ` Richard Zhao
2012-05-22 15:28 ` Richard Zhao
2012-05-21 9:23 ` [PATCH v2 06/12] ARM: imx6q: correct device name of usbphy and usb controller clock export Richard Zhao
[not found] ` <1337592237-5090-7-git-send-email-richard.zhao-KZfg59tc24xl57MIdRCFDg@public.gmane.org>
2012-05-22 4:31 ` Marek Vasut
[not found] ` <201205220631.28739.marex-ynQEQJNshbs@public.gmane.org>
2012-05-22 4:56 ` Richard Zhao
2012-05-21 9:23 ` [PATCH v2 07/12] ARM: imx6q: add config-on-boot gpios Richard Zhao
[not found] ` <1337592237-5090-8-git-send-email-richard.zhao-KZfg59tc24xl57MIdRCFDg@public.gmane.org>
2012-05-22 3:17 ` Shawn Guo
[not found] ` <20120522031709.GH8140-rvtDTF3kK1ictlrPMvKcciBecyulp+rMXqFh9Ls21Oc@public.gmane.org>
2012-05-22 3:25 ` Marek Vasut
[not found] ` <201205220525.39660.marex-ynQEQJNshbs@public.gmane.org>
2012-05-22 3:32 ` Shawn Guo
[not found] ` <CAAQ0ZWSiD170Yb5CQdGEZw066ULvSOr4AFcBtYFiLw3P9L-VuA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2012-05-22 4:20 ` Marek Vasut
[not found] ` <201205220620.17109.marex-ynQEQJNshbs@public.gmane.org>
2012-05-22 4:42 ` Shawn Guo
[not found] ` <20120522044223.GJ8140-rvtDTF3kK1ictlrPMvKcciBecyulp+rMXqFh9Ls21Oc@public.gmane.org>
2012-05-22 5:22 ` Marek Vasut
[not found] ` <201205220722.00653.marex-ynQEQJNshbs@public.gmane.org>
2012-05-22 5:25 ` Shawn Guo
[not found] ` <CAAQ0ZWSS3ONsF=MLQOJ2u1h3mGErfZ4W2QoSNk4+MQHTC830MQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2012-05-22 5:27 ` Marek Vasut
[not found] ` <201205220727.30910.marex-ynQEQJNshbs@public.gmane.org>
2012-05-22 6:07 ` Richard Zhao
2012-05-22 3:38 ` Richard Zhao
2012-05-21 9:23 ` [PATCH v2 08/12] ARM: imx6q: add usbphy clocks Richard Zhao
[not found] ` <1337592237-5090-9-git-send-email-richard.zhao-KZfg59tc24xl57MIdRCFDg@public.gmane.org>
2012-05-22 4:32 ` Marek Vasut
[not found] ` <201205220632.13896.marex-ynQEQJNshbs@public.gmane.org>
2012-05-22 4:45 ` Shawn Guo
[not found] ` <20120522044515.GK8140-rvtDTF3kK1ictlrPMvKcciBecyulp+rMXqFh9Ls21Oc@public.gmane.org>
2012-05-22 5:22 ` Marek Vasut
2012-05-22 4:59 ` Richard Zhao
2012-05-22 5:37 ` Shawn Guo
[not found] ` <20120522053706.GO8140-rvtDTF3kK1ictlrPMvKcciBecyulp+rMXqFh9Ls21Oc@public.gmane.org>
2012-05-22 6:08 ` Richard Zhao
2012-05-21 9:23 ` [PATCH v2 09/12] ARM: imx6q: disable usb charger detector Richard Zhao
[not found] ` <1337592237-5090-10-git-send-email-richard.zhao-KZfg59tc24xl57MIdRCFDg@public.gmane.org>
2012-05-22 3:48 ` Shawn Guo
[not found] ` <20120522034809.GI8140-rvtDTF3kK1ictlrPMvKcciBecyulp+rMXqFh9Ls21Oc@public.gmane.org>
2012-05-22 4:32 ` Richard Zhao
2012-05-21 9:23 ` [PATCH v2 10/12] ARM: dts: imx6q-sabrelite: add usb devices Richard Zhao
[not found] ` <1337592237-5090-11-git-send-email-richard.zhao-KZfg59tc24xl57MIdRCFDg@public.gmane.org>
2012-05-22 5:10 ` Shawn Guo
[not found] ` <20120522051005.GN8140-rvtDTF3kK1ictlrPMvKcciBecyulp+rMXqFh9Ls21Oc@public.gmane.org>
2012-05-22 5:59 ` Richard Zhao
[not found] ` <20120522055901.GR6206-iWYTGMXpHj9ITqJhDdzsOjpauB2SiJktrE5yTffgRl4@public.gmane.org>
2012-05-22 6:08 ` Shawn Guo
[not found] ` <20120522060828.GP8140-rvtDTF3kK1ictlrPMvKcciBecyulp+rMXqFh9Ls21Oc@public.gmane.org>
2012-05-22 6:19 ` Richard Zhao
2012-05-21 9:23 ` [PATCH v2 11/12] ARM: mxs: clk_register_clkdev mx28 usb clocks Richard Zhao
[not found] ` <1337592237-5090-12-git-send-email-richard.zhao-KZfg59tc24xl57MIdRCFDg@public.gmane.org>
2012-05-22 4:48 ` Shawn Guo
[not found] ` <20120522044846.GL8140-rvtDTF3kK1ictlrPMvKcciBecyulp+rMXqFh9Ls21Oc@public.gmane.org>
2012-05-22 5:01 ` Richard Zhao
2012-05-21 9:23 ` [PATCH v2 12/12] ARM: dts: imx28-evk: add usb devices Richard Zhao
[not found] ` <1337592237-5090-13-git-send-email-richard.zhao-KZfg59tc24xl57MIdRCFDg@public.gmane.org>
2012-05-22 4:52 ` Shawn Guo
[not found] ` <20120522045240.GM8140-rvtDTF3kK1ictlrPMvKcciBecyulp+rMXqFh9Ls21Oc@public.gmane.org>
2012-05-22 5:03 ` Richard Zhao
[not found] ` <20120522050345.GP6206-iWYTGMXpHj9ITqJhDdzsOjpauB2SiJktrE5yTffgRl4@public.gmane.org>
2012-05-22 5:24 ` Marek Vasut
2012-05-21 19:34 ` [PATCH v2 00/12] add imx usb driver for mx28/6x Fabio Estevam
[not found] ` <CAOMZO5AcP2cAAkuFPJn3Xp5NuR+JG4hDO7Ehq5H-V6PCy4DwNA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2012-05-21 19:41 ` Marek Vasut
[not found] ` <201205212141.52171.marex-ynQEQJNshbs@public.gmane.org>
2012-05-21 19:47 ` Subodh Nijsure
[not found] ` <4FBA9BE4.7020303-4jo+YWezP1RWk0Htik3J/w@public.gmane.org>
2012-05-21 20:07 ` Marek Vasut
[not found] ` <201205212207.34978.marex-ynQEQJNshbs@public.gmane.org>
2012-05-22 1:38 ` Chen Peter-B29397
[not found] ` <F281D0F91ED19E4D8E63A7504E8A649803BB2B2F-RL0Hj/+nBVDtkydW1Tv2Dq4g8xLGJsHaLnY5E4hWTkheoWH0uzbU5w@public.gmane.org>
2012-05-22 1:41 ` Richard Zhao
[not found] ` <20120522014158.GF6206-iWYTGMXpHj9ITqJhDdzsOjpauB2SiJktrE5yTffgRl4@public.gmane.org>
2012-05-22 1:44 ` Chen Peter-B29397
2012-05-22 1:51 ` Richard Zhao
[not found] ` <F281D0F91ED19E4D8E63A7504E8A649803BB2B79-RL0Hj/+nBVDtkydW1Tv2Dq4g8xLGJsHaLnY5E4hWTkheoWH0uzbU5w@public.gmane.org>
2012-05-22 2:00 ` Shawn Guo
2012-05-22 5:08 ` Richard Zhao
2012-05-22 13:13 ` Dirk Behme
[not found] ` <20120522050831.GQ6206-iWYTGMXpHj9ITqJhDdzsOjpauB2SiJktrE5yTffgRl4@public.gmane.org>
2012-05-24 3:38 ` Richard Zhao
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1337592237-5090-3-git-send-email-richard.zhao@freescale.com \
--to=richard.zhao-kzfg59tc24xl57midrcfdg@public.gmane.org \
--cc=B20596-KZfg59tc24xl57MIdRCFDg@public.gmane.org \
--cc=B29397-KZfg59tc24xl57MIdRCFDg@public.gmane.org \
--cc=alexander.shishkin-VuQAYsv1563Yd54FQh9/CA@public.gmane.org \
--cc=devicetree-discuss-uLR06cmDAlY/bJ5BZ2RsiQ@public.gmane.org \
--cc=dong.aisheng-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org \
--cc=fabio.estevam-KZfg59tc24xl57MIdRCFDg@public.gmane.org \
--cc=gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r@public.gmane.org \
--cc=kernel-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org \
--cc=linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org \
--cc=linux-usb-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=linuxzsc-MeMPY/F8WlbQT0dZR+AlfA@public.gmane.org \
--cc=marex-ynQEQJNshbs@public.gmane.org \
--cc=shawn.guo-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org \
--cc=stern-nwvwT67g6+6dFdvTe/nMLpVzexx5G7lz@public.gmane.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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).