All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 1/9] usb:fsl:otg: Add controller version based ULPI and UTMI phy
@ 2015-03-26 15:17 Ramneek Mehresh
  2015-03-26 15:17 ` [PATCH 2/9][v2]usb:fsl:otg: Add support to add/remove usb host driver Ramneek Mehresh
                   ` (8 more replies)
  0 siblings, 9 replies; 15+ messages in thread
From: Ramneek Mehresh @ 2015-03-26 15:17 UTC (permalink / raw)
  To: linux-kernel; +Cc: balbi, stern, gregkh, Ramneek Mehresh, Shengzhou Liu

Add controller version based ULPI and UTMI phy initialization for
otg driver

Signed-off-by: Shengzhou Liu <Shengzhou.Liu@freescale.com>
Signed-off-by: Ramneek Mehresh <ramneek.mehresh@freescale.com>
Reviewed-by: Fleming Andrew-AFLEMING <AFLEMING@freescale.com>
Tested-by: Fleming Andrew-AFLEMING <AFLEMING@freescale.com>
---
 drivers/usb/phy/phy-fsl-usb.c | 20 ++++++++++++++++++++
 drivers/usb/phy/phy-fsl-usb.h |  7 +++++++
 2 files changed, 27 insertions(+)

diff --git a/drivers/usb/phy/phy-fsl-usb.c b/drivers/usb/phy/phy-fsl-usb.c
index 94eb292..f90093a 100644
--- a/drivers/usb/phy/phy-fsl-usb.c
+++ b/drivers/usb/phy/phy-fsl-usb.c
@@ -923,12 +923,32 @@ int usb_otg_start(struct platform_device *pdev)
 	temp &= ~(PORTSC_PHY_TYPE_SEL | PORTSC_PTW);
 	switch (pdata->phy_mode) {
 	case FSL_USB2_PHY_ULPI:
+		if (pdata->controller_ver) {
+			/* controller version 1.6 or above */
+			setbits32(&p_otg->dr_mem_map->control,
+				USB_CTRL_ULPI_PHY_CLK_SEL);
+			/*
+			 * Due to controller issue of PHY_CLK_VALID in ULPI
+			 * mode, we set USB_CTRL_USB_EN before checking
+			 * PHY_CLK_VALID, otherwise PHY_CLK_VALID doesn't work.
+			 */
+			clrsetbits_be32(&p_otg->dr_mem_map->control,
+				 USB_CTRL_UTMI_PHY_EN, USB_CTRL_IOENB);
+		}
 		temp |= PORTSC_PTS_ULPI;
 		break;
 	case FSL_USB2_PHY_UTMI_WIDE:
 		temp |= PORTSC_PTW_16BIT;
 		/* fall through */
 	case FSL_USB2_PHY_UTMI:
+		if (pdata->controller_ver) {
+			/* controller version 1.6 or above */
+			setbits32(&p_otg->dr_mem_map->control,
+				 USB_CTRL_UTMI_PHY_EN);
+			/* Delay for UTMI PHY CLK to become stable - 10ms */
+			mdelay(FSL_UTMI_PHY_DLY);
+		}
+		setbits32(&p_otg->dr_mem_map->control, USB_CTRL_UTMI_PHY_EN);
 		temp |= PORTSC_PTS_UTMI;
 		/* fall through */
 	default:
diff --git a/drivers/usb/phy/phy-fsl-usb.h b/drivers/usb/phy/phy-fsl-usb.h
index 2314995..4a78fb3 100644
--- a/drivers/usb/phy/phy-fsl-usb.h
+++ b/drivers/usb/phy/phy-fsl-usb.h
@@ -199,6 +199,13 @@
 /* control Register Bit Masks */
 #define  USB_CTRL_IOENB			(0x1<<2)
 #define  USB_CTRL_ULPI_INT0EN		(0x1<<0)
+#define  USB_CTRL_WU_INT_EN		(0x1<<1)
+#define  USB_CTRL_LINE_STATE_FILTER__EN	(0x1<<3)
+#define  USB_CTRL_KEEP_OTG_ON		(0x1<<4)
+#define  USB_CTRL_OTG_PORT		(0x1<<5)
+#define  USB_CTRL_PLL_RESET		(0x1<<8)
+#define  USB_CTRL_UTMI_PHY_EN		(0x1<<9)
+#define  USB_CTRL_ULPI_PHY_CLK_SEL	(0x1<<10)
 
 /* BCSR5 */
 #define BCSR5_INT_USB			(0x02)
-- 
1.8.3.1


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

* [PATCH 2/9][v2]usb:fsl:otg: Add support to add/remove usb host driver
  2015-03-26 15:17 [PATCH 1/9] usb:fsl:otg: Add controller version based ULPI and UTMI phy Ramneek Mehresh
@ 2015-03-26 15:17 ` Ramneek Mehresh
  2015-03-26 15:17 ` [PATCH 3/9] usb:fsl:otg: Signal host drv when host is otg Ramneek Mehresh
                   ` (7 subsequent siblings)
  8 siblings, 0 replies; 15+ messages in thread
From: Ramneek Mehresh @ 2015-03-26 15:17 UTC (permalink / raw)
  To: linux-kernel; +Cc: balbi, stern, gregkh, Ramneek Mehresh

Add workqueue to add/remove host driver (outside interrupt context)
upon each id change

Signed-off-by: Ramneek Mehresh <ramneek.mehresh@freescale.com>
---
 drivers/usb/host/ehci-fsl.c | 107 ++++++++++++++++++++++++++++++++++++--------
 drivers/usb/host/ehci.h     |   1 -
 2 files changed, 88 insertions(+), 20 deletions(-)

diff --git a/drivers/usb/host/ehci-fsl.c b/drivers/usb/host/ehci-fsl.c
index ab4eee3..9c91fbe 100644
--- a/drivers/usb/host/ehci-fsl.c
+++ b/drivers/usb/host/ehci-fsl.c
@@ -33,6 +33,58 @@
 
 #include "ehci-fsl.h"
 
+struct ehci_fsl {
+	struct ehci_hcd ehci;
+
+#ifdef CONFIG_PM
+	/* Saved USB PHY settings, need to restore after deep sleep. */
+	u32 usb_ctrl;
+#if defined(CONFIG_FSL_USB2_OTG) || defined(CONFIG_FSL_USB2_OTG_MODULE)
+	struct work_struct change_hcd_work;
+#endif
+#endif
+
+	/* store current hcd state for otg;
+	 * have_hcd is true when host drv al already part of otg framework,
+	 * otherwise false;
+	 * hcd_add is true when otg framework wants to add host
+	 * drv as part of otg;flase when it wants to remove it
+	 */
+	unsigned have_hcd:1;
+	unsigned hcd_add:1;
+};
+
+#if defined(CONFIG_FSL_USB2_OTG) || defined(CONFIG_FSL_USB2_OTG_MODULE)
+static struct ehci_fsl *hcd_to_ehci_fsl(struct usb_hcd *hcd)
+{
+	struct ehci_hcd *ehci = hcd_to_ehci(hcd);
+
+	return container_of(ehci, struct ehci_fsl, ehci);
+}
+
+static void do_change_hcd(struct work_struct *work)
+{
+	struct ehci_fsl *ehci_fsl = container_of(work, struct ehci_fsl,
+					change_hcd_work);
+	struct ehci_hcd *ehci = &ehci_fsl->ehci;
+	struct usb_hcd *hcd = ehci_to_hcd(ehci);
+
+	void __iomem *non_ehci = hcd->regs;
+	int retval;
+
+	if (ehci_fsl->hcd_add && !ehci_fsl->have_hcd) {
+		writel(USBMODE_CM_HOST, non_ehci + FSL_SOC_USB_USBMODE);
+		/* host, gadget and otg share same int line */
+		retval = usb_add_hcd(hcd, hcd->irq, IRQF_SHARED);
+		if (retval == 0)
+			ehci_fsl->have_hcd = 1;
+	} else if (!ehci_fsl->hcd_add && ehci_fsl->have_hcd) {
+		usb_remove_hcd(hcd);
+		ehci_fsl->have_hcd = 0;
+	}
+}
+#endif
+
 /* configure so an HC device and id are always provided */
 /* always called with process context; sleeping is OK */
 
@@ -126,11 +178,15 @@ static int usb_hcd_fsl_probe(const struct hc_driver *driver,
 		goto err2;
 	device_wakeup_enable(hcd->self.controller);
 
-#ifdef CONFIG_USB_OTG
+#if defined(CONFIG_FSL_USB2_OTG) || defined(CONFIG_FSL_USB2_OTG_MODULE)
 	if (pdata->operating_mode == FSL_USB2_DR_OTG) {
 		struct ehci_hcd *ehci = hcd_to_ehci(hcd);
+		struct ehci_fsl *ehci_fsl = hcd_to_ehci_fsl(hcd);
 
 		hcd->usb_phy = usb_get_phy(USB_PHY_TYPE_USB2);
+
+		INIT_WORK(&ehci_fsl->change_hcd_work, do_change_hcd);
+
 		dev_dbg(&pdev->dev, "hcd=0x%p  ehci=0x%p, phy=0x%p\n",
 			hcd, ehci, hcd->usb_phy);
 
@@ -376,15 +432,6 @@ static int ehci_fsl_setup(struct usb_hcd *hcd)
 	return retval;
 }
 
-struct ehci_fsl {
-	struct ehci_hcd	ehci;
-
-#ifdef CONFIG_PM
-	/* Saved USB PHY settings, need to restore after deep sleep. */
-	u32 usb_ctrl;
-#endif
-};
-
 #ifdef CONFIG_PM
 
 #ifdef CONFIG_PPC_MPC512x
@@ -532,24 +579,32 @@ static inline int ehci_fsl_mpc512x_drv_resume(struct device *dev)
 }
 #endif /* CONFIG_PPC_MPC512x */
 
-static struct ehci_fsl *hcd_to_ehci_fsl(struct usb_hcd *hcd)
-{
-	struct ehci_hcd *ehci = hcd_to_ehci(hcd);
-
-	return container_of(ehci, struct ehci_fsl, ehci);
-}
-
 static int ehci_fsl_drv_suspend(struct device *dev)
 {
 	struct usb_hcd *hcd = dev_get_drvdata(dev);
-	struct ehci_fsl *ehci_fsl = hcd_to_ehci_fsl(hcd);
 	void __iomem *non_ehci = hcd->regs;
+#if defined(CONFIG_FSL_USB2_OTG) || defined(CONFIG_FSL_USB2_OTG_MODULE)
+	struct ehci_fsl *ehci_fsl = hcd_to_ehci_fsl(hcd);
+	struct usb_bus host = hcd->self;
+#endif
 
 	if (of_device_is_compatible(dev->parent->of_node,
 				    "fsl,mpc5121-usb2-dr")) {
 		return ehci_fsl_mpc512x_drv_suspend(dev);
 	}
 
+#if defined(CONFIG_FSL_USB2_OTG) || defined(CONFIG_FSL_USB2_OTG_MODULE)
+	if (host.is_otg) {
+		/*struct ehci_hcd *ehci = hcd_to_ehci(hcd);*/
+
+		/* remove hcd */
+		ehci_fsl->hcd_add = 0;
+		schedule_work(&ehci_fsl->change_hcd_work);
+		host.is_otg = 0;
+		return 0;
+	}
+#endif
+
 	ehci_prepare_ports_for_controller_suspend(hcd_to_ehci(hcd),
 			device_may_wakeup(dev));
 	if (!fsl_deep_sleep())
@@ -562,15 +617,29 @@ static int ehci_fsl_drv_suspend(struct device *dev)
 static int ehci_fsl_drv_resume(struct device *dev)
 {
 	struct usb_hcd *hcd = dev_get_drvdata(dev);
-	struct ehci_fsl *ehci_fsl = hcd_to_ehci_fsl(hcd);
 	struct ehci_hcd *ehci = hcd_to_ehci(hcd);
 	void __iomem *non_ehci = hcd->regs;
+#if defined(CONFIG_FSL_USB2_OTG) || defined(CONFIG_FSL_USB2_OTG_MODULE)
+	struct ehci_fsl *ehci_fsl = hcd_to_ehci_fsl(hcd);
+	struct usb_bus host = hcd->self;
+#endif
 
 	if (of_device_is_compatible(dev->parent->of_node,
 				    "fsl,mpc5121-usb2-dr")) {
 		return ehci_fsl_mpc512x_drv_resume(dev);
 	}
 
+#if defined(CONFIG_FSL_USB2_OTG) || defined(CONFIG_FSL_USB2_OTG_MODULE)
+	if (host.is_otg) {
+		/* add hcd */
+		ehci_fsl->hcd_add = 1;
+		schedule_work(&ehci_fsl->change_hcd_work);
+		usb_hcd_resume_root_hub(hcd);
+		host.is_otg = 0;
+		return 0;
+	}
+#endif
+
 	ehci_prepare_ports_for_controller_resume(ehci);
 	if (!fsl_deep_sleep())
 		return 0;
diff --git a/drivers/usb/host/ehci.h b/drivers/usb/host/ehci.h
index 52ef084..2fda681 100644
--- a/drivers/usb/host/ehci.h
+++ b/drivers/usb/host/ehci.h
@@ -177,7 +177,6 @@ struct ehci_hcd {			/* one per controller */
 	unsigned		periodic_count;	/* periodic activity count */
 	unsigned		uframe_periodic_max; /* max periodic time per uframe */
 
-
 	/* list of itds & sitds completed while now_frame was still active */
 	struct list_head	cached_itd_list;
 	struct ehci_itd		*last_itd_to_free;
-- 
1.8.3.1


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

* [PATCH 3/9] usb:fsl:otg: Signal host drv when host is otg
  2015-03-26 15:17 [PATCH 1/9] usb:fsl:otg: Add controller version based ULPI and UTMI phy Ramneek Mehresh
  2015-03-26 15:17 ` [PATCH 2/9][v2]usb:fsl:otg: Add support to add/remove usb host driver Ramneek Mehresh
@ 2015-03-26 15:17 ` Ramneek Mehresh
  2015-03-26 15:17 ` [PATCH 4/9] usb:fsl:otg: Modify otg_event to start host drv Ramneek Mehresh
                   ` (6 subsequent siblings)
  8 siblings, 0 replies; 15+ messages in thread
From: Ramneek Mehresh @ 2015-03-26 15:17 UTC (permalink / raw)
  To: linux-kernel; +Cc: balbi, stern, gregkh, Ramneek Mehresh

Set is_otg boolean flag to signal host driver when
host is running in context of otg host suspend/resume

Signed-off-by: Ramneek Mehresh <ramneek.mehresh@freescale.com>
---
 drivers/usb/phy/phy-fsl-usb.c | 7 ++++++-
 include/linux/usb.h           | 1 +
 2 files changed, 7 insertions(+), 1 deletion(-)

diff --git a/drivers/usb/phy/phy-fsl-usb.c b/drivers/usb/phy/phy-fsl-usb.c
index f90093a..26168da 100644
--- a/drivers/usb/phy/phy-fsl-usb.c
+++ b/drivers/usb/phy/phy-fsl-usb.c
@@ -463,6 +463,7 @@ void otg_reset_controller(void)
 int fsl_otg_start_host(struct otg_fsm *fsm, int on)
 {
 	struct usb_otg *otg = fsm->otg;
+	struct usb_bus *host = otg->host;
 	struct device *dev;
 	struct fsl_otg *otg_dev =
 		container_of(otg->usb_phy, struct fsl_otg, phy);
@@ -485,6 +486,7 @@ int fsl_otg_start_host(struct otg_fsm *fsm, int on)
 		else {
 			otg_reset_controller();
 			VDBG("host on......\n");
+			host->is_otg = 1;
 			if (dev->driver->pm && dev->driver->pm->resume) {
 				retval = dev->driver->pm->resume(dev);
 				if (fsm->id) {
@@ -510,8 +512,11 @@ int fsl_otg_start_host(struct otg_fsm *fsm, int on)
 		else {
 			VDBG("host off......\n");
 			if (dev && dev->driver) {
-				if (dev->driver->pm && dev->driver->pm->suspend)
+				if (dev->driver->pm &&
+						dev->driver->pm->suspend) {
+					host->is_otg = 1;
 					retval = dev->driver->pm->suspend(dev);
+				}
 				if (fsm->id)
 					/* default-b */
 					fsl_otg_drv_vbus(fsm, 0);
diff --git a/include/linux/usb.h b/include/linux/usb.h
index 7ee1b5c..c3a6702 100644
--- a/include/linux/usb.h
+++ b/include/linux/usb.h
@@ -329,6 +329,7 @@ struct usb_bus {
 					 * for control transfers?
 					 */
 	u8 otg_port;			/* 0, or number of OTG/HNP port */
+	unsigned is_otg:1;		/* true when host is also otg */
 	unsigned is_b_host:1;		/* true during some HNP roleswitches */
 	unsigned b_hnp_enable:1;	/* OTG: did A-Host enable HNP? */
 	unsigned no_stop_on_short:1;    /*
-- 
1.8.3.1


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

* [PATCH 4/9] usb:fsl:otg: Modify otg_event to start host drv
  2015-03-26 15:17 [PATCH 1/9] usb:fsl:otg: Add controller version based ULPI and UTMI phy Ramneek Mehresh
  2015-03-26 15:17 ` [PATCH 2/9][v2]usb:fsl:otg: Add support to add/remove usb host driver Ramneek Mehresh
  2015-03-26 15:17 ` [PATCH 3/9] usb:fsl:otg: Signal host drv when host is otg Ramneek Mehresh
@ 2015-03-26 15:17 ` Ramneek Mehresh
  2015-03-26 15:17 ` [PATCH 5/9] usb:fsl:otg: Combine host/gadget start/resume for ID change Ramneek Mehresh
                   ` (5 subsequent siblings)
  8 siblings, 0 replies; 15+ messages in thread
From: Ramneek Mehresh @ 2015-03-26 15:17 UTC (permalink / raw)
  To: linux-kernel; +Cc: balbi, stern, gregkh, Ramneek Mehresh

Add mechanism to start host driver from inside fsl_otg_even
upon each id change interrupt

Signed-off-by: Ramneek Mehresh <ramneek.mehresh@freescale.com>
Reviewed-by: Fleming Andrew-AFLEMING <AFLEMING@freescale.com>
Tested-by: Fleming Andrew-AFLEMING <AFLEMING@freescale.com>
---
 drivers/usb/phy/phy-fsl-usb.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/drivers/usb/phy/phy-fsl-usb.c b/drivers/usb/phy/phy-fsl-usb.c
index 26168da..2eb54ef 100644
--- a/drivers/usb/phy/phy-fsl-usb.c
+++ b/drivers/usb/phy/phy-fsl-usb.c
@@ -677,6 +677,10 @@ static void fsl_otg_event(struct work_struct *work)
 		fsl_otg_start_host(fsm, 0);
 		otg_drv_vbus(fsm, 0);
 		fsl_otg_start_gadget(fsm, 1);
+	} else {
+		fsl_otg_start_gadget(fsm, 0);
+		otg_drv_vbus(fsm, 1);
+		fsl_otg_start_host(fsm, 1);
 	}
 }
 
-- 
1.8.3.1


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

* [PATCH 5/9] usb:fsl:otg: Combine host/gadget start/resume for ID change
  2015-03-26 15:17 [PATCH 1/9] usb:fsl:otg: Add controller version based ULPI and UTMI phy Ramneek Mehresh
                   ` (2 preceding siblings ...)
  2015-03-26 15:17 ` [PATCH 4/9] usb:fsl:otg: Modify otg_event to start host drv Ramneek Mehresh
@ 2015-03-26 15:17 ` Ramneek Mehresh
  2015-03-26 15:17 ` [PATCH 6/9] usb:fsl:otg: Remove host drv upon otg bring-up Ramneek Mehresh
                   ` (4 subsequent siblings)
  8 siblings, 0 replies; 15+ messages in thread
From: Ramneek Mehresh @ 2015-03-26 15:17 UTC (permalink / raw)
  To: linux-kernel; +Cc: balbi, stern, gregkh, Ramneek Mehresh

Make call to fsl_otg_event for each id change even

Signed-off-by: Ramneek Mehresh <ramneek.mehresh@freescale.com>
Reviewed-by: Fleming Andrew-AFLEMING <AFLEMING@freescale.com>
Tested-by: Fleming Andrew-AFLEMING <AFLEMING@freescale.com>
---
 drivers/usb/phy/phy-fsl-usb.c | 15 +++------------
 1 file changed, 3 insertions(+), 12 deletions(-)

diff --git a/drivers/usb/phy/phy-fsl-usb.c b/drivers/usb/phy/phy-fsl-usb.c
index 2eb54ef..ce40d5c 100644
--- a/drivers/usb/phy/phy-fsl-usb.c
+++ b/drivers/usb/phy/phy-fsl-usb.c
@@ -733,6 +733,7 @@ irqreturn_t fsl_otg_isr(int irq, void *dev_id)
 {
 	struct otg_fsm *fsm = &((struct fsl_otg *)dev_id)->fsm;
 	struct usb_otg *otg = ((struct fsl_otg *)dev_id)->phy.otg;
+	struct fsl_otg *otg_dev = dev_id;
 	u32 otg_int_src, otg_sc;
 
 	otg_sc = fsl_readl(&usb_dr_regs->otgsc);
@@ -762,18 +763,8 @@ irqreturn_t fsl_otg_isr(int irq, void *dev_id)
 				otg->gadget->is_a_peripheral = !fsm->id;
 			VDBG("ID int (ID is %d)\n", fsm->id);
 
-			if (fsm->id) {	/* switch to gadget */
-				schedule_delayed_work(
-					&((struct fsl_otg *)dev_id)->otg_event,
-					100);
-			} else {	/* switch to host */
-				cancel_delayed_work(&
-						    ((struct fsl_otg *)dev_id)->
-						    otg_event);
-				fsl_otg_start_gadget(fsm, 0);
-				otg_drv_vbus(fsm, 1);
-				fsl_otg_start_host(fsm, 1);
-			}
+			schedule_delayed_work(&otg_dev->otg_event, 100);
+
 			return IRQ_HANDLED;
 		}
 	}
-- 
1.8.3.1


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

* [PATCH 6/9] usb:fsl:otg: Remove host drv upon otg bring-up
  2015-03-26 15:17 [PATCH 1/9] usb:fsl:otg: Add controller version based ULPI and UTMI phy Ramneek Mehresh
                   ` (3 preceding siblings ...)
  2015-03-26 15:17 ` [PATCH 5/9] usb:fsl:otg: Combine host/gadget start/resume for ID change Ramneek Mehresh
@ 2015-03-26 15:17 ` Ramneek Mehresh
  2015-03-26 15:17 ` [PATCH 7/9] usb:fsl:otg: Add host-gadget drv sync delay Ramneek Mehresh
                   ` (3 subsequent siblings)
  8 siblings, 0 replies; 15+ messages in thread
From: Ramneek Mehresh @ 2015-03-26 15:17 UTC (permalink / raw)
  To: linux-kernel; +Cc: balbi, stern, gregkh, Ramneek Mehresh

Change have_hcd variable to remove/suspend host driver on
completion of otg initialization for otg auto detect

Signed-off-by: Ramneek Mehresh <ramneek.mehresh@freescale.com>
Reviewed-by: Li Yang-R58472 <LeoLi@freescale.com>
Reviewed-by: Fleming Andrew-AFLEMING <AFLEMING@freescale.com>
Tested-by: Fleming Andrew-AFLEMING <AFLEMING@freescale.com>
---
 drivers/usb/host/ehci-fsl.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/drivers/usb/host/ehci-fsl.c b/drivers/usb/host/ehci-fsl.c
index 9c91fbe..76dfc84 100644
--- a/drivers/usb/host/ehci-fsl.c
+++ b/drivers/usb/host/ehci-fsl.c
@@ -202,6 +202,11 @@ static int usb_hcd_fsl_probe(const struct hc_driver *driver,
 			retval = -ENODEV;
 			goto err2;
 		}
+
+		ehci_fsl->have_hcd = 1;
+	} else {
+		dev_err(&pdev->dev, "wrong operating mode\n");
+		return -ENODEV;
 	}
 #endif
 	return retval;
-- 
1.8.3.1


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

* [PATCH 7/9] usb:fsl:otg: Add host-gadget drv sync delay
  2015-03-26 15:17 [PATCH 1/9] usb:fsl:otg: Add controller version based ULPI and UTMI phy Ramneek Mehresh
                   ` (4 preceding siblings ...)
  2015-03-26 15:17 ` [PATCH 6/9] usb:fsl:otg: Remove host drv upon otg bring-up Ramneek Mehresh
@ 2015-03-26 15:17 ` Ramneek Mehresh
  2015-03-26 15:17 ` [PATCH 8/9] usb:fsl:otg: Resolve OTG crash issue with another host Ramneek Mehresh
                   ` (2 subsequent siblings)
  8 siblings, 0 replies; 15+ messages in thread
From: Ramneek Mehresh @ 2015-03-26 15:17 UTC (permalink / raw)
  To: linux-kernel; +Cc: balbi, stern, gregkh, Ramneek Mehresh

Resolve synchronization issue between host and gadget drivers
upon role-reversal

Signed-off-by: Ramneek Mehresh <ramneek.mehresh@freescale.com>
Reviewed-by: Li Yang-R58472 <LeoLi@freescale.com>
Reviewed-by: Fleming Andrew-AFLEMING <AFLEMING@freescale.com>
Tested-by: Fleming Andrew-AFLEMING <AFLEMING@freescale.com>
---
 drivers/usb/phy/phy-fsl-usb.c | 11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)

diff --git a/drivers/usb/phy/phy-fsl-usb.c b/drivers/usb/phy/phy-fsl-usb.c
index ce40d5c..a3a578d 100644
--- a/drivers/usb/phy/phy-fsl-usb.c
+++ b/drivers/usb/phy/phy-fsl-usb.c
@@ -544,8 +544,17 @@ int fsl_otg_start_gadget(struct otg_fsm *fsm, int on)
 	dev = otg->gadget->dev.parent;
 
 	if (on) {
-		if (dev->driver->resume)
+		/* Delay gadget resume to synchronize between host and gadget
+		 * drivers. Upon role-reversal host drv is shutdown by kernel
+		 * worker thread. By the time host drv shuts down, controller
+		 * gets programmed for gadget role. Shutting host drv after
+		 * this results in controller getting reset, and it stops
+		 * responding to otg events
+		 */
+		if (dev->driver->resume) {
+			msleep(1000);
 			dev->driver->resume(dev);
+		}
 	} else {
 		if (dev->driver->suspend)
 			dev->driver->suspend(dev, otg_suspend_state);
-- 
1.8.3.1


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

* [PATCH 8/9] usb:fsl:otg: Resolve OTG crash issue with another host
  2015-03-26 15:17 [PATCH 1/9] usb:fsl:otg: Add controller version based ULPI and UTMI phy Ramneek Mehresh
                   ` (5 preceding siblings ...)
  2015-03-26 15:17 ` [PATCH 7/9] usb:fsl:otg: Add host-gadget drv sync delay Ramneek Mehresh
@ 2015-03-26 15:17 ` Ramneek Mehresh
  2015-03-26 15:17 ` [PATCH 9/9] usb:fsl:otg: Make fsl otg driver as tristate Ramneek Mehresh
  2015-03-26 17:10 ` [PATCH 1/9] usb:fsl:otg: Add controller version based ULPI and UTMI phy Felipe Balbi
  8 siblings, 0 replies; 15+ messages in thread
From: Ramneek Mehresh @ 2015-03-26 15:17 UTC (permalink / raw)
  To: linux-kernel; +Cc: balbi, stern, gregkh, Ramneek Mehresh

Resolves kernel crash issue when a USB flash drive is inserted
into USB1 port with USB2 port configured as otg. Removing
"else" block so that the controller coming up in "non-otg" mode
doesn't return -ENODEV. Returning "ENODEV" results in platform
framework unbinding platform-drv from controller resulting in
kernel crash later in hub driver

Signed-off-by: Ramneek Mehresh <ramneek.mehresh@freescale.com>
---
 drivers/usb/host/ehci-fsl.c | 3 ---
 1 file changed, 3 deletions(-)

diff --git a/drivers/usb/host/ehci-fsl.c b/drivers/usb/host/ehci-fsl.c
index 76dfc84..fe40d89 100644
--- a/drivers/usb/host/ehci-fsl.c
+++ b/drivers/usb/host/ehci-fsl.c
@@ -204,9 +204,6 @@ static int usb_hcd_fsl_probe(const struct hc_driver *driver,
 		}
 
 		ehci_fsl->have_hcd = 1;
-	} else {
-		dev_err(&pdev->dev, "wrong operating mode\n");
-		return -ENODEV;
 	}
 #endif
 	return retval;
-- 
1.8.3.1


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

* [PATCH 9/9] usb:fsl:otg: Make fsl otg driver as tristate
  2015-03-26 15:17 [PATCH 1/9] usb:fsl:otg: Add controller version based ULPI and UTMI phy Ramneek Mehresh
                   ` (6 preceding siblings ...)
  2015-03-26 15:17 ` [PATCH 8/9] usb:fsl:otg: Resolve OTG crash issue with another host Ramneek Mehresh
@ 2015-03-26 15:17 ` Ramneek Mehresh
  2015-03-26 17:10 ` [PATCH 1/9] usb:fsl:otg: Add controller version based ULPI and UTMI phy Felipe Balbi
  8 siblings, 0 replies; 15+ messages in thread
From: Ramneek Mehresh @ 2015-03-26 15:17 UTC (permalink / raw)
  To: linux-kernel; +Cc: balbi, stern, gregkh, Ramneek Mehresh

Provide option to load fsl otg driver as loadable
module

Signed-off-by: Ramneek Mehresh <ramneek.mehresh@freescale.com>
---
 drivers/usb/phy/Kconfig | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/usb/phy/Kconfig b/drivers/usb/phy/Kconfig
index 2175678..4927905 100644
--- a/drivers/usb/phy/Kconfig
+++ b/drivers/usb/phy/Kconfig
@@ -19,7 +19,7 @@ config AB8500_USB
 	  in host mode, low speed.
 
 config FSL_USB2_OTG
-	bool "Freescale USB OTG Transceiver Driver"
+	tristate "Freescale USB OTG Transceiver Driver"
 	depends on USB_EHCI_FSL && USB_FSL_USB2 && USB_OTG_FSM && PM
 	select USB_OTG
 	select USB_PHY
-- 
1.8.3.1


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

* Re: [PATCH 1/9] usb:fsl:otg: Add controller version based ULPI and UTMI phy
  2015-03-26 15:17 [PATCH 1/9] usb:fsl:otg: Add controller version based ULPI and UTMI phy Ramneek Mehresh
                   ` (7 preceding siblings ...)
  2015-03-26 15:17 ` [PATCH 9/9] usb:fsl:otg: Make fsl otg driver as tristate Ramneek Mehresh
@ 2015-03-26 17:10 ` Felipe Balbi
  8 siblings, 0 replies; 15+ messages in thread
From: Felipe Balbi @ 2015-03-26 17:10 UTC (permalink / raw)
  To: Ramneek Mehresh; +Cc: linux-kernel, balbi, stern, gregkh, Shengzhou Liu

[-- Attachment #1: Type: text/plain, Size: 467 bytes --]

On Thu, Mar 26, 2015 at 08:47:36PM +0530, Ramneek Mehresh wrote:
> Add controller version based ULPI and UTMI phy initialization for
> otg driver
> 
> Signed-off-by: Shengzhou Liu <Shengzhou.Liu@freescale.com>
> Signed-off-by: Ramneek Mehresh <ramneek.mehresh@freescale.com>
> Reviewed-by: Fleming Andrew-AFLEMING <AFLEMING@freescale.com>
> Tested-by: Fleming Andrew-AFLEMING <AFLEMING@freescale.com>

this series needs to go to linux-usb too

-- 
balbi

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 819 bytes --]

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

* [PATCH 1/9] usb:fsl:otg: Add controller version based ULPI and UTMI phy
@ 2015-05-05 17:58 Ramneek Mehresh
  0 siblings, 0 replies; 15+ messages in thread
From: Ramneek Mehresh @ 2015-05-05 17:58 UTC (permalink / raw)
  To: linux-kernel
  Cc: balbi, linux-usb, stern, gregkh, Ramneek Mehresh, Shengzhou Liu

Add controller version based ULPI and UTMI phy initialization for
otg driver

Signed-off-by: Shengzhou Liu <Shengzhou.Liu@freescale.com>
Signed-off-by: Ramneek Mehresh <ramneek.mehresh@freescale.com>
Reviewed-by: Fleming Andrew-AFLEMING <AFLEMING@freescale.com>
Tested-by: Fleming Andrew-AFLEMING <AFLEMING@freescale.com>
---
 drivers/usb/phy/phy-fsl-usb.c | 20 ++++++++++++++++++++
 drivers/usb/phy/phy-fsl-usb.h |  7 +++++++
 2 files changed, 27 insertions(+)

diff --git a/drivers/usb/phy/phy-fsl-usb.c b/drivers/usb/phy/phy-fsl-usb.c
index 94eb292..f90093a 100644
--- a/drivers/usb/phy/phy-fsl-usb.c
+++ b/drivers/usb/phy/phy-fsl-usb.c
@@ -923,12 +923,32 @@ int usb_otg_start(struct platform_device *pdev)
 	temp &= ~(PORTSC_PHY_TYPE_SEL | PORTSC_PTW);
 	switch (pdata->phy_mode) {
 	case FSL_USB2_PHY_ULPI:
+		if (pdata->controller_ver) {
+			/* controller version 1.6 or above */
+			setbits32(&p_otg->dr_mem_map->control,
+				USB_CTRL_ULPI_PHY_CLK_SEL);
+			/*
+			 * Due to controller issue of PHY_CLK_VALID in ULPI
+			 * mode, we set USB_CTRL_USB_EN before checking
+			 * PHY_CLK_VALID, otherwise PHY_CLK_VALID doesn't work.
+			 */
+			clrsetbits_be32(&p_otg->dr_mem_map->control,
+				 USB_CTRL_UTMI_PHY_EN, USB_CTRL_IOENB);
+		}
 		temp |= PORTSC_PTS_ULPI;
 		break;
 	case FSL_USB2_PHY_UTMI_WIDE:
 		temp |= PORTSC_PTW_16BIT;
 		/* fall through */
 	case FSL_USB2_PHY_UTMI:
+		if (pdata->controller_ver) {
+			/* controller version 1.6 or above */
+			setbits32(&p_otg->dr_mem_map->control,
+				 USB_CTRL_UTMI_PHY_EN);
+			/* Delay for UTMI PHY CLK to become stable - 10ms */
+			mdelay(FSL_UTMI_PHY_DLY);
+		}
+		setbits32(&p_otg->dr_mem_map->control, USB_CTRL_UTMI_PHY_EN);
 		temp |= PORTSC_PTS_UTMI;
 		/* fall through */
 	default:
diff --git a/drivers/usb/phy/phy-fsl-usb.h b/drivers/usb/phy/phy-fsl-usb.h
index 2314995..4a78fb3 100644
--- a/drivers/usb/phy/phy-fsl-usb.h
+++ b/drivers/usb/phy/phy-fsl-usb.h
@@ -199,6 +199,13 @@
 /* control Register Bit Masks */
 #define  USB_CTRL_IOENB			(0x1<<2)
 #define  USB_CTRL_ULPI_INT0EN		(0x1<<0)
+#define  USB_CTRL_WU_INT_EN		(0x1<<1)
+#define  USB_CTRL_LINE_STATE_FILTER__EN	(0x1<<3)
+#define  USB_CTRL_KEEP_OTG_ON		(0x1<<4)
+#define  USB_CTRL_OTG_PORT		(0x1<<5)
+#define  USB_CTRL_PLL_RESET		(0x1<<8)
+#define  USB_CTRL_UTMI_PHY_EN		(0x1<<9)
+#define  USB_CTRL_ULPI_PHY_CLK_SEL	(0x1<<10)
 
 /* BCSR5 */
 #define BCSR5_INT_USB			(0x02)
-- 
1.8.3.1


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

* RE: [PATCH 1/9] usb:fsl:otg: Add controller version based ULPI and UTMI phy
  2015-05-05 15:11 ` Felipe Balbi
@ 2015-05-05 17:48   ` Ramneek Mehresh
  0 siblings, 0 replies; 15+ messages in thread
From: Ramneek Mehresh @ 2015-05-05 17:48 UTC (permalink / raw)
  To: balbi; +Cc: linux-kernel, stern, gregkh, Shengzhou.Liu



> -----Original Message-----
> From: Felipe Balbi [mailto:balbi@ti.com]
> Sent: Tuesday, May 05, 2015 8:42 PM
> To: Mehresh Ramneek-B31383
> Cc: linux-kernel@vger.kernel.org; balbi@ti.com;
> stern@rowland.harvard.edu; gregkh@linuxfoundation.org; Liu Shengzhou-
> B36685
> Subject: Re: [PATCH 1/9] usb:fsl:otg: Add controller version based ULPI and
> UTMI phy
> 
> On Tue, May 05, 2015 at 06:13:14PM +0530, Ramneek Mehresh wrote:
> > Add controller version based ULPI and UTMI phy initialization for otg
> > driver
> >
> > Signed-off-by: Shengzhou Liu <Shengzhou.Liu@freescale.com>
> > Signed-off-by: Ramneek Mehresh <ramneek.mehresh@freescale.com>
> > Reviewed-by: Fleming Andrew-AFLEMING <AFLEMING@freescale.com>
> > Tested-by: Fleming Andrew-AFLEMING <AFLEMING@freescale.com>
> 
> you really need to send this series to linux-usb
>
My apologies...I forgot...resent
 
> --
> balbi

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

* Re: [PATCH 1/9] usb:fsl:otg: Add controller version based ULPI and UTMI phy
  2015-05-05 12:43 Ramneek Mehresh
@ 2015-05-05 15:11 ` Felipe Balbi
  2015-05-05 17:48   ` Ramneek Mehresh
  0 siblings, 1 reply; 15+ messages in thread
From: Felipe Balbi @ 2015-05-05 15:11 UTC (permalink / raw)
  To: Ramneek Mehresh; +Cc: linux-kernel, balbi, stern, gregkh, Shengzhou Liu

[-- Attachment #1: Type: text/plain, Size: 475 bytes --]

On Tue, May 05, 2015 at 06:13:14PM +0530, Ramneek Mehresh wrote:
> Add controller version based ULPI and UTMI phy initialization for
> otg driver
> 
> Signed-off-by: Shengzhou Liu <Shengzhou.Liu@freescale.com>
> Signed-off-by: Ramneek Mehresh <ramneek.mehresh@freescale.com>
> Reviewed-by: Fleming Andrew-AFLEMING <AFLEMING@freescale.com>
> Tested-by: Fleming Andrew-AFLEMING <AFLEMING@freescale.com>

you really need to send this series to linux-usb

-- 
balbi

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 819 bytes --]

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

* [PATCH 1/9] usb:fsl:otg: Add controller version based ULPI and UTMI phy
@ 2015-05-05 12:43 Ramneek Mehresh
  2015-05-05 15:11 ` Felipe Balbi
  0 siblings, 1 reply; 15+ messages in thread
From: Ramneek Mehresh @ 2015-05-05 12:43 UTC (permalink / raw)
  To: linux-kernel; +Cc: balbi, stern, gregkh, Ramneek Mehresh, Shengzhou Liu

Add controller version based ULPI and UTMI phy initialization for
otg driver

Signed-off-by: Shengzhou Liu <Shengzhou.Liu@freescale.com>
Signed-off-by: Ramneek Mehresh <ramneek.mehresh@freescale.com>
Reviewed-by: Fleming Andrew-AFLEMING <AFLEMING@freescale.com>
Tested-by: Fleming Andrew-AFLEMING <AFLEMING@freescale.com>
---
 drivers/usb/phy/phy-fsl-usb.c | 20 ++++++++++++++++++++
 drivers/usb/phy/phy-fsl-usb.h |  7 +++++++
 2 files changed, 27 insertions(+)

diff --git a/drivers/usb/phy/phy-fsl-usb.c b/drivers/usb/phy/phy-fsl-usb.c
index 94eb292..f90093a 100644
--- a/drivers/usb/phy/phy-fsl-usb.c
+++ b/drivers/usb/phy/phy-fsl-usb.c
@@ -923,12 +923,32 @@ int usb_otg_start(struct platform_device *pdev)
 	temp &= ~(PORTSC_PHY_TYPE_SEL | PORTSC_PTW);
 	switch (pdata->phy_mode) {
 	case FSL_USB2_PHY_ULPI:
+		if (pdata->controller_ver) {
+			/* controller version 1.6 or above */
+			setbits32(&p_otg->dr_mem_map->control,
+				USB_CTRL_ULPI_PHY_CLK_SEL);
+			/*
+			 * Due to controller issue of PHY_CLK_VALID in ULPI
+			 * mode, we set USB_CTRL_USB_EN before checking
+			 * PHY_CLK_VALID, otherwise PHY_CLK_VALID doesn't work.
+			 */
+			clrsetbits_be32(&p_otg->dr_mem_map->control,
+				 USB_CTRL_UTMI_PHY_EN, USB_CTRL_IOENB);
+		}
 		temp |= PORTSC_PTS_ULPI;
 		break;
 	case FSL_USB2_PHY_UTMI_WIDE:
 		temp |= PORTSC_PTW_16BIT;
 		/* fall through */
 	case FSL_USB2_PHY_UTMI:
+		if (pdata->controller_ver) {
+			/* controller version 1.6 or above */
+			setbits32(&p_otg->dr_mem_map->control,
+				 USB_CTRL_UTMI_PHY_EN);
+			/* Delay for UTMI PHY CLK to become stable - 10ms */
+			mdelay(FSL_UTMI_PHY_DLY);
+		}
+		setbits32(&p_otg->dr_mem_map->control, USB_CTRL_UTMI_PHY_EN);
 		temp |= PORTSC_PTS_UTMI;
 		/* fall through */
 	default:
diff --git a/drivers/usb/phy/phy-fsl-usb.h b/drivers/usb/phy/phy-fsl-usb.h
index 2314995..4a78fb3 100644
--- a/drivers/usb/phy/phy-fsl-usb.h
+++ b/drivers/usb/phy/phy-fsl-usb.h
@@ -199,6 +199,13 @@
 /* control Register Bit Masks */
 #define  USB_CTRL_IOENB			(0x1<<2)
 #define  USB_CTRL_ULPI_INT0EN		(0x1<<0)
+#define  USB_CTRL_WU_INT_EN		(0x1<<1)
+#define  USB_CTRL_LINE_STATE_FILTER__EN	(0x1<<3)
+#define  USB_CTRL_KEEP_OTG_ON		(0x1<<4)
+#define  USB_CTRL_OTG_PORT		(0x1<<5)
+#define  USB_CTRL_PLL_RESET		(0x1<<8)
+#define  USB_CTRL_UTMI_PHY_EN		(0x1<<9)
+#define  USB_CTRL_ULPI_PHY_CLK_SEL	(0x1<<10)
 
 /* BCSR5 */
 #define BCSR5_INT_USB			(0x02)
-- 
1.8.3.1


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

* [PATCH 1/9] usb:fsl:otg: Add controller version based ULPI and UTMI phy
@ 2015-04-07 11:58 Ramneek Mehresh
  0 siblings, 0 replies; 15+ messages in thread
From: Ramneek Mehresh @ 2015-04-07 11:58 UTC (permalink / raw)
  To: linux-kernel, linux-usb
  Cc: balbi, stern, gregkh, Ramneek Mehresh, Shengzhou Liu

Add controller version based ULPI and UTMI phy initialization for
otg driver

Signed-off-by: Shengzhou Liu <Shengzhou.Liu@freescale.com>
Signed-off-by: Ramneek Mehresh <ramneek.mehresh@freescale.com>
Reviewed-by: Fleming Andrew-AFLEMING <AFLEMING@freescale.com>
Tested-by: Fleming Andrew-AFLEMING <AFLEMING@freescale.com>
---
 drivers/usb/phy/phy-fsl-usb.c | 20 ++++++++++++++++++++
 drivers/usb/phy/phy-fsl-usb.h |  7 +++++++
 2 files changed, 27 insertions(+)

diff --git a/drivers/usb/phy/phy-fsl-usb.c b/drivers/usb/phy/phy-fsl-usb.c
index 94eb292..f90093a 100644
--- a/drivers/usb/phy/phy-fsl-usb.c
+++ b/drivers/usb/phy/phy-fsl-usb.c
@@ -923,12 +923,32 @@ int usb_otg_start(struct platform_device *pdev)
 	temp &= ~(PORTSC_PHY_TYPE_SEL | PORTSC_PTW);
 	switch (pdata->phy_mode) {
 	case FSL_USB2_PHY_ULPI:
+		if (pdata->controller_ver) {
+			/* controller version 1.6 or above */
+			setbits32(&p_otg->dr_mem_map->control,
+				USB_CTRL_ULPI_PHY_CLK_SEL);
+			/*
+			 * Due to controller issue of PHY_CLK_VALID in ULPI
+			 * mode, we set USB_CTRL_USB_EN before checking
+			 * PHY_CLK_VALID, otherwise PHY_CLK_VALID doesn't work.
+			 */
+			clrsetbits_be32(&p_otg->dr_mem_map->control,
+				 USB_CTRL_UTMI_PHY_EN, USB_CTRL_IOENB);
+		}
 		temp |= PORTSC_PTS_ULPI;
 		break;
 	case FSL_USB2_PHY_UTMI_WIDE:
 		temp |= PORTSC_PTW_16BIT;
 		/* fall through */
 	case FSL_USB2_PHY_UTMI:
+		if (pdata->controller_ver) {
+			/* controller version 1.6 or above */
+			setbits32(&p_otg->dr_mem_map->control,
+				 USB_CTRL_UTMI_PHY_EN);
+			/* Delay for UTMI PHY CLK to become stable - 10ms */
+			mdelay(FSL_UTMI_PHY_DLY);
+		}
+		setbits32(&p_otg->dr_mem_map->control, USB_CTRL_UTMI_PHY_EN);
 		temp |= PORTSC_PTS_UTMI;
 		/* fall through */
 	default:
diff --git a/drivers/usb/phy/phy-fsl-usb.h b/drivers/usb/phy/phy-fsl-usb.h
index 2314995..4a78fb3 100644
--- a/drivers/usb/phy/phy-fsl-usb.h
+++ b/drivers/usb/phy/phy-fsl-usb.h
@@ -199,6 +199,13 @@
 /* control Register Bit Masks */
 #define  USB_CTRL_IOENB			(0x1<<2)
 #define  USB_CTRL_ULPI_INT0EN		(0x1<<0)
+#define  USB_CTRL_WU_INT_EN		(0x1<<1)
+#define  USB_CTRL_LINE_STATE_FILTER__EN	(0x1<<3)
+#define  USB_CTRL_KEEP_OTG_ON		(0x1<<4)
+#define  USB_CTRL_OTG_PORT		(0x1<<5)
+#define  USB_CTRL_PLL_RESET		(0x1<<8)
+#define  USB_CTRL_UTMI_PHY_EN		(0x1<<9)
+#define  USB_CTRL_ULPI_PHY_CLK_SEL	(0x1<<10)
 
 /* BCSR5 */
 #define BCSR5_INT_USB			(0x02)
-- 
1.8.3.1


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

end of thread, other threads:[~2015-05-05 17:48 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-03-26 15:17 [PATCH 1/9] usb:fsl:otg: Add controller version based ULPI and UTMI phy Ramneek Mehresh
2015-03-26 15:17 ` [PATCH 2/9][v2]usb:fsl:otg: Add support to add/remove usb host driver Ramneek Mehresh
2015-03-26 15:17 ` [PATCH 3/9] usb:fsl:otg: Signal host drv when host is otg Ramneek Mehresh
2015-03-26 15:17 ` [PATCH 4/9] usb:fsl:otg: Modify otg_event to start host drv Ramneek Mehresh
2015-03-26 15:17 ` [PATCH 5/9] usb:fsl:otg: Combine host/gadget start/resume for ID change Ramneek Mehresh
2015-03-26 15:17 ` [PATCH 6/9] usb:fsl:otg: Remove host drv upon otg bring-up Ramneek Mehresh
2015-03-26 15:17 ` [PATCH 7/9] usb:fsl:otg: Add host-gadget drv sync delay Ramneek Mehresh
2015-03-26 15:17 ` [PATCH 8/9] usb:fsl:otg: Resolve OTG crash issue with another host Ramneek Mehresh
2015-03-26 15:17 ` [PATCH 9/9] usb:fsl:otg: Make fsl otg driver as tristate Ramneek Mehresh
2015-03-26 17:10 ` [PATCH 1/9] usb:fsl:otg: Add controller version based ULPI and UTMI phy Felipe Balbi
2015-04-07 11:58 Ramneek Mehresh
2015-05-05 12:43 Ramneek Mehresh
2015-05-05 15:11 ` Felipe Balbi
2015-05-05 17:48   ` Ramneek Mehresh
2015-05-05 17:58 Ramneek Mehresh

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.