All of lore.kernel.org
 help / color / mirror / Atom feed
From: marex@denx.de (Marek Vasut)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 5/8] MXS: Add USB PHY driver
Date: Tue, 17 Apr 2012 12:15:48 +0200	[thread overview]
Message-ID: <1334657751-27678-6-git-send-email-marex@denx.de> (raw)
In-Reply-To: <1334657751-27678-1-git-send-email-marex@denx.de>

Add driver that controls the built-in USB PHY in the i.MX233/i.MX28. This
enables the PHY upon powerup and shuts it down on shutdown.

Signed-off-by: Marek Vasut <marex@denx.de>
Cc: Chen Peter-B29397 <B29397@freescale.com>
Cc: Detlev Zundel <dzu@denx.de>
Cc: Fabio Estevam <festevam@gmail.com>
Cc: Li Frank-B20596 <B20596@freescale.com>
Cc: Lin Tony-B19295 <B19295@freescale.com>
Cc: Linux USB <linux-usb@vger.kernel.org>
Cc: Sascha Hauer <s.hauer@pengutronix.de>
Cc: Shawn Guo <shawn.guo@freescale.com>
Cc: Shawn Guo <shawn.guo@linaro.org>
Cc: Stefano Babic <sbabic@denx.de>
Cc: Subodh Nijsure <snijsure@grid-net.com>
Cc: Tony Lin <tony.lin@freescale.com>
Cc: Wolfgang Denk <wd@denx.de>
---
 drivers/usb/otg/Kconfig   |    9 ++
 drivers/usb/otg/Makefile  |    1 +
 drivers/usb/otg/mxs-phy.c |  256 +++++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 266 insertions(+)
 create mode 100644 drivers/usb/otg/mxs-phy.c

diff --git a/drivers/usb/otg/Kconfig b/drivers/usb/otg/Kconfig
index 5c87db0..8689081 100644
--- a/drivers/usb/otg/Kconfig
+++ b/drivers/usb/otg/Kconfig
@@ -116,6 +116,15 @@ config FSL_USB2_OTG
 	help
 	  Enable this to support Freescale USB OTG transceiver.
 
+config USB_MXS_PHY
+	tristate "Freescale i.MX28 USB PHY support"
+	select USB_OTG_UTILS
+	help
+	  Say Y here if you want to build Freescale i.MX28 USB PHY
+	  driver in kernel.
+
+	  To compile this driver as a module, choose M here.
+
 config USB_MV_OTG
 	tristate "Marvell USB OTG support"
 	depends on USB_EHCI_MV && USB_MV_UDC && USB_SUSPEND
diff --git a/drivers/usb/otg/Makefile b/drivers/usb/otg/Makefile
index 41aa509..a844b8d 100644
--- a/drivers/usb/otg/Makefile
+++ b/drivers/usb/otg/Makefile
@@ -20,4 +20,5 @@ obj-$(CONFIG_USB_MSM_OTG)	+= msm_otg.o
 obj-$(CONFIG_AB8500_USB)	+= ab8500-usb.o
 fsl_usb2_otg-objs		:= fsl_otg.o otg_fsm.o
 obj-$(CONFIG_FSL_USB2_OTG)	+= fsl_usb2_otg.o
+obj-$(CONFIG_USB_MXS_PHY)	+= mxs-phy.o
 obj-$(CONFIG_USB_MV_OTG)	+= mv_otg.o
diff --git a/drivers/usb/otg/mxs-phy.c b/drivers/usb/otg/mxs-phy.c
new file mode 100644
index 0000000..9963aa8
--- /dev/null
+++ b/drivers/usb/otg/mxs-phy.c
@@ -0,0 +1,256 @@
+/*
+ * drivers/usb/otg/mxs-phy.c
+ *
+ * Freescale i.MX28 USB PHY driver.
+ *
+ * Copyright (C) 2012 Marek Vasut <marex@denx.de>
+ * on behalf of DENX Software Engineering GmbH
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#include <linux/module.h>
+#include <linux/platform_device.h>
+#include <linux/dma-mapping.h>
+#include <linux/usb/otg.h>
+#include <linux/slab.h>
+#include <linux/delay.h>
+
+#include <mach/common.h>
+#include <mach/hardware.h>
+#include <mach/devices-common.h>
+#include <mach/mx28.h>
+
+#define HW_USBPHY_PWD				0x00
+
+#define HW_USBPHY_CTRL				0x30
+#define HW_USBPHY_CTRL_SET			0x34
+#define HW_USBPHY_CTRL_CLR			0x38
+#define HW_USBPHY_CTRL_TOG			0x3c
+
+#define BM_USBPHY_CTRL_SFTRST			(1 << 31)
+#define BM_USBPHY_CTRL_CLKGATE			(1 << 30)
+#define BM_USBPHY_CTRL_ENUTMILEVEL3		(1 << 15)
+#define BM_USBPHY_CTRL_ENUTMILEVEL2		(1 << 14)
+#define BM_USBPHY_CTRL_ENHOSTDISCONDETECT	(1 << 1)
+
+struct mxs_phy {
+	struct usb_phy	phy;
+	struct device	*dev;
+	struct clk	*clk;
+	struct resource	*res;
+	void __iomem	*reg;
+};
+
+static int phy_init(struct usb_phy *x)
+{
+	struct mxs_phy *phy = container_of(x, struct mxs_phy, phy);
+	uint32_t val;
+
+	/* Enable clock to the PHY. */
+	clk_enable(phy->clk);
+
+	/* Reset the PHY block. */
+	mxs_reset_block(phy->reg + HW_USBPHY_CTRL);
+
+	/* Power up the PHY. */
+	writel(0, phy->reg + HW_USBPHY_PWD);
+
+	/* Enable FS/LS compatibility and HS disconnection detector. */
+	val = BM_USBPHY_CTRL_ENUTMILEVEL2 | BM_USBPHY_CTRL_ENUTMILEVEL3 |
+		BM_USBPHY_CTRL_ENHOSTDISCONDETECT;
+	writel(val, phy->reg + HW_USBPHY_CTRL_SET);
+
+	return 0;
+}
+
+static void phy_shutdown(struct usb_phy *x)
+{
+	struct mxs_phy *phy = container_of(x, struct mxs_phy, phy);
+
+	/* Gate off the PHY. */
+	writel(BM_USBPHY_CTRL_CLKGATE, phy->reg + HW_USBPHY_CTRL_SET);
+
+	/* Disable clock to the PHY. */
+	clk_disable(phy->clk);
+}
+
+static int phy_set_vbus(struct usb_otg *otg, bool enabled)
+{
+	struct usb_phy *x = otg->phy;
+	struct mxs_phy *phy = container_of(x, struct mxs_phy, phy);
+
+	if (enabled)
+		writel(BM_USBPHY_CTRL_ENHOSTDISCONDETECT,
+			phy->reg + HW_USBPHY_CTRL_CLR);
+	else
+		writel(BM_USBPHY_CTRL_ENHOSTDISCONDETECT,
+			phy->reg + HW_USBPHY_CTRL_SET);
+
+	return 0;
+}
+
+static int __devinit mxs_phy_probe(struct platform_device *pdev)
+{
+	struct mxs_phy *phy;
+	struct resource *res;
+	int ret;
+
+	/* Allocate PHY driver's private date. */
+	phy = kzalloc(sizeof *phy, GFP_KERNEL);
+	if (!phy) {
+		ret = -ENOMEM;
+		goto err_alloc_phy;
+	}
+
+	/* Allocate OTG structure. */
+	phy->phy.otg = kzalloc(sizeof *phy->phy.otg, GFP_KERNEL);
+	if (!phy->phy.otg) {
+		ret = -ENOMEM;
+		goto err_alloc_otg;
+	}
+
+	/* Claim the PHY clock. */
+	phy->clk = clk_get(&pdev->dev, "usb_phy");
+	if (!phy->clk) {
+		dev_err(&pdev->dev, "Failed to claim clock for USB PHY\n");
+		ret = -EINVAL;
+		goto err_claim_clock;
+	}
+
+	/* Get memory area where this controller resides from resources. */
+	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
+	if (!res) {
+		dev_err(&pdev->dev, "Specify memory area for this controller!\n");
+		ret = -ENODEV;
+		goto err_get_resource;
+	}
+
+	/* Request the memory region for this driver. */
+	if (!request_mem_region(res->start, resource_size(res), pdev->name)) {
+		dev_dbg(&pdev->dev, "PHY memory area already in use!\n");
+		ret = -EBUSY;
+		goto err_get_resource;
+	}
+
+	/* Map the memory region. */
+	phy->reg = ioremap(res->start, resource_size(res));
+	if (!phy->reg) {
+		dev_err(&pdev->dev, "Memory mapping failed!\n");
+		ret = -EFAULT;
+		goto err_ioremap;
+	}
+
+	/* Setup the PHY structures. */
+	phy->dev		= &pdev->dev;
+	phy->phy.dev		= phy->dev;
+	phy->phy.label		= "mxs-phy";
+	phy->phy.init		= phy_init;
+	phy->phy.shutdown	= phy_shutdown;
+	phy->phy.state		= OTG_STATE_A_HOST;
+
+	phy->res		= res;
+
+	phy->phy.otg->phy	= &phy->phy;
+	phy->phy.otg->set_vbus	= phy_set_vbus;
+
+	platform_set_drvdata(pdev, phy);
+
+	ATOMIC_INIT_NOTIFIER_HEAD(&phy->phy.notifier);
+
+	/* Enable the PHY clock. */
+	clk_prepare_enable(phy->clk);
+
+	/* Register the transceiver with kernel. */
+	ret = usb_set_transceiver(&phy->phy);
+	if (ret) {
+		dev_err(&pdev->dev, "Can't register transceiver, (%d)\n", ret);
+		goto err_set_transceiver;
+	}
+
+	return 0;
+
+err_set_transceiver:
+	clk_disable_unprepare(phy->clk);
+	iounmap(phy->reg);
+err_ioremap:
+	release_mem_region(res->start, resource_size(res));
+err_get_resource:
+	clk_put(phy->clk);
+err_claim_clock:
+	kfree(phy->phy.otg);
+err_alloc_otg:
+	kfree(phy);
+err_alloc_phy:
+
+	return ret;
+}
+
+static int __devexit mxs_phy_remove(struct platform_device *pdev)
+{
+	struct mxs_phy *phy = platform_get_drvdata(pdev);
+
+	/* Power down the PHY. */
+	phy_shutdown(&phy->phy);
+
+	/* Stop the PHY clock. */
+	clk_disable_unprepare(phy->clk);
+
+	/* Unmap and release the PHY memory region. */
+	iounmap(phy->reg);
+	release_mem_region(phy->res->start, resource_size(phy->res));
+
+	/* Reclaim the clock. */
+	clk_put(phy->clk);
+
+	/* Free the rest. */
+	usb_set_transceiver(NULL);
+	platform_set_drvdata(pdev, NULL);
+	kfree(phy->phy.otg);
+	kfree(phy);
+
+	return 0;
+}
+
+static struct platform_driver mxs_phy_driver = {
+	.probe		= mxs_phy_probe,
+	.remove		= __devexit_p(mxs_phy_remove),
+	.driver		= {
+		.name	= "mxs-phy",
+		.owner	= THIS_MODULE,
+	},
+};
+
+static int __init mxs_phy_init(void)
+{
+	return platform_driver_register(&mxs_phy_driver);
+}
+
+static void __exit mxs_phy_exit(void)
+{
+	platform_driver_unregister(&mxs_phy_driver);
+}
+
+/*
+ * PHY must be registered via subsys_initcall to get it running before EHCI
+ * controller driver.
+ */
+subsys_initcall(mxs_phy_init);
+module_exit(mxs_phy_exit);
+
+MODULE_ALIAS("platform:mxs_phy");
+MODULE_AUTHOR("Marek Vasut <marex@denx.de>");
+MODULE_DESCRIPTION("Freescale i.MX28 USB PHY driver");
+MODULE_LICENSE("GPL");
-- 
1.7.9.5

  parent reply	other threads:[~2012-04-17 10:15 UTC|newest]

Thread overview: 158+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-04-17 10:15 [RFC PATCH 0/8] MXS: Add i.MX28 USB Host driver Marek Vasut
2012-04-17 10:15 ` [PATCH 1/8] MXS: Make clk_disable return integer Marek Vasut
2012-04-17 10:15 ` [PATCH 2/8] MXS: Add USB EHCI and USB PHY clock handling Marek Vasut
2012-04-17 18:01   ` Sascha Hauer
2012-04-17 10:15 ` [PATCH 3/8] MXS: Fixup i.MX233 USB base address name Marek Vasut
2012-04-17 10:15 ` [PATCH 4/8] MXS: Add platform registration hooks for USB EHCI Marek Vasut
2012-04-17 10:15 ` Marek Vasut [this message]
2012-04-17 17:51   ` [PATCH 5/8] MXS: Add USB PHY driver Sascha Hauer
2012-04-19 11:40   ` Arnd Bergmann
2012-04-17 10:15 ` [PATCH 6/8] MXS: Add separate MXS EHCI HCD driver Marek Vasut
2012-04-17 10:15 ` [PATCH 7/8] MXS: Enable USB on M28EVK Marek Vasut
2012-04-17 17:40   ` Sergei Shtylyov
2012-04-17 10:15 ` [PATCH 8/8] MXS: Enable USB on MX28EVK Marek Vasut
2012-04-17 10:37 ` [RFC PATCH 0/8] MXS: Add i.MX28 USB Host driver Dirk Behme
2012-04-17 11:24   ` Marek Vasut
2012-04-18  1:00     ` Chen Peter-B29397
2012-04-17 11:29 ` Sascha Hauer
2012-04-17 11:45   ` Marek Vasut
2012-04-17 12:18     ` Sascha Hauer
2012-04-17 20:29       ` Marek Vasut
2012-04-18  7:02         ` Sascha Hauer
2012-04-18  8:05           ` Chen Peter-B29397
2012-04-17 12:36   ` Heikki Krogerus
2012-04-18  4:31   ` Chen Peter-B29397
2012-04-18  7:40     ` Sascha Hauer
2012-04-20 13:10       ` 答复: " Liu JunJie-B08287
2012-04-20 16:25         ` Marek Vasut
2012-04-23  2:02           ` Liu JunJie-B08287
2012-04-18  2:07 ` [RFC PATCH 00/10 V2] " Marek Vasut
2012-04-18  2:07   ` [PATCH 01/10] MXS: Make clk_disable return integer Marek Vasut
2012-04-18  2:07   ` [PATCH 02/10] MXS: Add USB EHCI and USB PHY clock handling Marek Vasut
2012-04-18  2:07   ` [PATCH 03/10] MXS: Fixup i.MX233 USB base address name Marek Vasut
2012-04-18  2:07   ` [PATCH 04/10] MXS: Add data shared between imx-usb, PHY and EHCI driver Marek Vasut
2012-04-18  2:07   ` [PATCH 05/10] MXS: Add platform registration hooks for USB EHCI Marek Vasut
2012-04-18  2:07   ` [PATCH 06/10] MXS: Add composite imx-usb driver Marek Vasut
2012-04-18  2:07   ` [PATCH 07/10] MXS: Add USB PHY driver Marek Vasut
2012-04-18  2:07   ` [PATCH 08/10] MXS: Add separate MXS EHCI HCD driver Marek Vasut
2012-04-18  7:01     ` Chen Peter-B29397
2012-04-18  8:40       ` Sascha Hauer
2012-04-18  9:18         ` Chen Peter-B29397
2012-04-18  9:45           ` Sascha Hauer
2012-04-19  2:54             ` Chen Peter-B29397
2012-04-19  6:34               ` Sascha Hauer
2012-04-18  2:07   ` [PATCH 09/10] MXS: Enable USB on M28EVK Marek Vasut
2012-04-18 12:08     ` Sergei Shtylyov
2012-04-18 12:24       ` Marek Vasut
2012-04-18  2:07   ` [PATCH 10/10] MXS: Enable USB on MX28EVK Marek Vasut
2012-04-18  2:09   ` [RFC PATCH 00/10 V2] MXS: Add i.MX28 USB Host driver Marek Vasut
2012-04-18  7:52   ` Chen Peter-B29397
2012-04-18 17:49     ` Marek Vasut
2012-04-19  2:37       ` Chen Peter-B29397
2012-04-18 17:46   ` [RFC PATCH 00/10 V3] " Marek Vasut
2012-04-18 17:46     ` [PATCH 01/10] MXS: Make clk_disable return integer Marek Vasut
2012-04-18 17:46     ` [PATCH 02/10] MXS: Add USB EHCI and USB PHY clock handling Marek Vasut
2012-04-18 17:46     ` [PATCH 03/10] MXS: Fixup i.MX233 USB base address name Marek Vasut
2012-04-18 17:46     ` [PATCH 04/10] MXS: Add data shared between imx-usb and EHCI driver Marek Vasut
2012-04-18 17:46     ` [PATCH 05/10] MXS: Add platform registration hooks for USB EHCI Marek Vasut
2012-04-19 11:51       ` Arnd Bergmann
2012-04-19 14:24         ` Shawn Guo
2012-04-19 21:32           ` Marek Vasut
2012-04-20  0:40             ` Shawn Guo
2012-04-20  0:56               ` Marek Vasut
2012-04-20  1:34                 ` Shawn Guo
2012-04-20  1:40                   ` Marek Vasut
2012-04-18 17:46     ` [PATCH 06/10] MXS: Add imx-usb driver Marek Vasut
2012-04-18 17:46     ` [PATCH 07/10] MXS: Add USB PHY driver Marek Vasut
2012-04-18 19:36       ` Sascha Hauer
2012-04-18 20:02         ` Marek Vasut
2012-04-18 20:16           ` Sascha Hauer
2012-04-19 22:06             ` Marek Vasut
2012-04-20  2:35               ` Chen Peter-B29397
2012-04-18 17:46     ` [PATCH 08/10] MXS: Add separate MXS EHCI HCD driver Marek Vasut
2012-04-18 19:50       ` Sascha Hauer
2012-04-18 20:07         ` Marek Vasut
2012-04-18 20:43           ` Sascha Hauer
2012-04-18 17:46     ` [PATCH 09/10] MXS: Enable USB on M28EVK Marek Vasut
2012-04-18 17:46     ` [PATCH 10/10] MXS: Enable USB on MX28EVK Marek Vasut
2012-04-20  2:13     ` [RFC PATCH 00/10 V3] MXS: Add i.MX28 USB Host driver Marek Vasut
2012-04-20  9:48       ` Sascha Hauer
2012-04-20 12:26         ` Peter Chen
2012-04-20 12:44           ` Marek Vasut
2012-04-20 13:00             ` Robert Schwebel
2012-04-20 13:26             ` Sascha Hauer
2012-04-20 16:36               ` Michael Grzeschik
2012-04-21  7:42                 ` Peter Chen
2012-04-21  8:17                   ` Sascha Hauer
2012-04-21 13:53     ` Subodh Nijsure
2012-04-21 15:37       ` Marek Vasut
2012-04-22 12:59     ` [RFC PATCH 00/11 V4] " Marek Vasut
2012-04-22 12:59       ` [PATCH 01/11] MXS: Make clk_disable return integer Marek Vasut
2012-04-22 12:59       ` [PATCH 02/11] MXS: Add USB EHCI and USB PHY clock handling Marek Vasut
2012-04-22 14:42         ` Shawn Guo
2012-04-22 15:42           ` Marek Vasut
2012-04-22 16:34             ` Shawn Guo
2012-04-22 12:59       ` [PATCH 03/11] MXS: Fixup i.MX233 USB base address name Marek Vasut
2012-04-22 12:59       ` [PATCH 04/11] MXS: Add data shared between imx-otg and EHCI driver Marek Vasut
2012-04-22 14:39         ` Shawn Guo
2012-04-22 15:42           ` Marek Vasut
2012-04-22 16:38             ` Shawn Guo
2012-04-22 12:59       ` [PATCH 05/11] MXS: Modify the ci13xxx_udc to avoid adding UDC Marek Vasut
2012-04-22 12:59       ` [PATCH 06/11] MXS: Add small registration glue for ci13xxx_udc Marek Vasut
2012-04-23  1:46         ` Chen Peter-B29397
2012-04-22 12:59       ` [PATCH 07/11] MXS: Add separate MXS EHCI HCD driver Marek Vasut
2012-04-23  1:44         ` Chen Peter-B29397
2012-04-23  2:11           ` Marek Vasut
2012-04-22 12:59       ` [PATCH 08/11] MXS: Add imx-otg driver Marek Vasut
2012-04-23  6:39         ` Sascha Hauer
2012-04-23  9:38           ` Marek Vasut
2012-04-22 12:59       ` [PATCH 09/11] MXS: Add USB PHY driver Marek Vasut
2012-04-23  1:42         ` Chen Peter-B29397
2012-04-23  2:17           ` Marek Vasut
2012-04-23 12:20             ` Chen Peter-B29397
2012-04-22 12:59       ` [PATCH 10/11] MXS: Add platform registration hooks for USB EHCI Marek Vasut
2012-04-22 12:59       ` [PATCH 11/11] MXS: Enable USB on M28EVK Marek Vasut
2012-04-23  1:57         ` Chen Peter-B29397
2012-04-23  2:18           ` Marek Vasut
2012-04-23  2:01       ` [RFC PATCH 00/11 V4] MXS: Add i.MX28 USB Host driver Chen Peter-B29397
2012-04-23  2:18         ` Marek Vasut
2012-04-23 11:59           ` Chen Peter-B29397
2012-04-23 12:09             ` Marek Vasut
2012-04-23 12:25               ` Chen Peter-B29397
2012-04-23 12:40                 ` Marek Vasut
2012-04-23  2:37         ` Marek Vasut
2012-04-24  3:18       ` [RFC PATCH 00/11 V5] " Marek Vasut
2012-04-24  3:18         ` [PATCH 01/11] MXS: Make clk_disable return integer Marek Vasut
2012-04-24  3:18         ` [PATCH 02/11] MXS: Add USB EHCI and USB PHY clock handling Marek Vasut
2012-04-24  3:18         ` [PATCH 03/11] MXS: Fixup i.MX233 USB base address name Marek Vasut
2012-04-24  3:18         ` [PATCH 04/11] MXS: Add data shared between imx-otg and EHCI driver Marek Vasut
2012-04-24  3:18         ` [PATCH 05/11] MXS: Modify the ci13xxx_udc to avoid adding UDC Marek Vasut
2012-04-29  8:26           ` Chen Peter-B29397
2012-04-24  3:18         ` [PATCH 06/11] MXS: Add small registration glue for ci13xxx_udc Marek Vasut
2012-04-24  3:18         ` [PATCH 07/11] MXS: Add separate MXS EHCI HCD driver Marek Vasut
2012-04-29  8:28           ` Chen Peter-B29397
2012-04-24  3:18         ` [PATCH 08/11] MXS: Add imx-otg driver Marek Vasut
2012-04-24 14:48           ` Lothar Waßmann
2012-04-24 14:50             ` Sascha Hauer
2012-04-24 16:13               ` Lothar Waßmann
2012-04-24 16:47                 ` Sascha Hauer
2012-04-24 17:49                   ` Marek Vasut
2012-04-24 20:49                     ` Sascha Hauer
2012-04-24 20:58                       ` Marek Vasut
2012-04-25  0:17                         ` Chen Peter-B29397
2012-04-24  3:18         ` [PATCH 09/11] MXS: Add USB PHY driver Marek Vasut
2012-04-24  3:18         ` [PATCH 10/11] MXS: Add platform registration hooks for USB EHCI Marek Vasut
2012-04-24  3:18         ` [PATCH 11/11] MXS: Enable USB on M28EVK Marek Vasut
2012-04-24 20:02         ` [RFC PATCH 00/11 V5] MXS: Add i.MX28 USB Host driver Russell King - ARM Linux
2012-04-25 12:27           ` Marek Vasut
2012-04-25 12:41             ` Russell King - ARM Linux
2012-04-25 12:43               ` Marek Vasut
2012-05-15  8:23 [RFC PATCH 0/8 V8] " Marek Vasut
2012-05-15  8:23 ` [PATCH 5/8] MXS: Add USB PHY driver Marek Vasut
2012-05-16  3:33   ` Richard Zhao
2012-05-16  4:30     ` Marek Vasut
2012-05-16  5:06       ` Richard Zhao
2012-05-16  7:18         ` Richard Zhao
2012-05-16 13:36           ` Marek Vasut
2012-05-16 13:35         ` Marek Vasut
2012-05-16 10:35   ` Peter Chen
2012-05-16 13:37     ` Marek Vasut

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=1334657751-27678-6-git-send-email-marex@denx.de \
    --to=marex@denx.de \
    --cc=linux-arm-kernel@lists.infradead.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.