From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
To: Bin Liu <binmlist@gmail.com>
Cc: linux-usb@vger.kernel.org, linux-kernel@vger.kernel.org,
balbi@ti.com, george.cherian@ti.com
Subject: [PATCH] usb: musb: am335x: Do not remove the session bin HOST-only mode
Date: Fri, 9 Aug 2013 18:03:39 +0200 [thread overview]
Message-ID: <20130809160339.GA14829@linutronix.de> (raw)
In-Reply-To: <CADYTM3bcCoWKE9eR5Sd9MbaEUr4G=k=r6JKR+8KC=W_YrbMs3g@mail.gmail.com>
This is what I observe:
On the first connect, the musb starts with DEVCTL.Session set. On
disconnect, musb_core calls try_idle. That functions removes the Session
bit signalize that the session is over (something that only in OTG is
required). A new device, that is plugged, is no longer recognized.
I've setup a timer and checked the DEVCTL register and I haven't seen a
change in VBus and I saw the B-Device bit set. After setting the IDDIG
into A mode and forcing the device to behave like I didn't see a change.
Neither VBUS goes to 0b11 nor does a session start request come.
The TI-v3.2 kernel they skip to call musb_platform_try_idle() in the
OTG_STATE_A_WAIT_BCON state while not in OTG mode.
Since the second port hast a standard A plug the patch changes the port
to run in host mode only, force the id-pin to host only and skip the
timer which would remove DEVCTL.Session.
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
---
arch/arm/boot/dts/am335x-evm.dts | 3 +++
drivers/usb/musb/musb_dsps.c | 13 +++++++++++++
2 files changed, 16 insertions(+)
diff --git a/arch/arm/boot/dts/am335x-evm.dts b/arch/arm/boot/dts/am335x-evm.dts
index c26c16c..38a821a 100644
--- a/arch/arm/boot/dts/am335x-evm.dts
+++ b/arch/arm/boot/dts/am335x-evm.dts
@@ -192,6 +192,9 @@
usb@47401800 {
status = "okay";
+ musb1: usb@47401c00 {
+ port-mode = <1>;
+ };
};
dma@07402000 {
diff --git a/drivers/usb/musb/musb_dsps.c b/drivers/usb/musb/musb_dsps.c
index 4ffbaac..b0752fa 100644
--- a/drivers/usb/musb/musb_dsps.c
+++ b/drivers/usb/musb/musb_dsps.c
@@ -65,6 +65,9 @@ static inline void dsps_writeb(void __iomem *addr, unsigned offset, u8 data)
static inline void dsps_writel(void __iomem *addr, unsigned offset, u32 data)
{ __raw_writel(data, addr + offset); }
+#define USBMODE_IDDIG_A (0 << 8)
+#define USBMODE_ID_MUX_REG (1 << 7)
+#define USBMODE_ID_MUX_PHY (0 << 7)
/**
* DSPS musb wrapper register offset.
* FIXME: This should be expanded to have all the wrapper registers from TI DSPS
@@ -230,6 +233,8 @@ static void dsps_musb_try_idle(struct musb *musb, unsigned long timeout)
glue->last_timer = jiffies;
return;
}
+ if (musb->port_mode == MUSB_PORT_MODE_HOST)
+ return;
if (time_after(glue->last_timer, timeout) &&
timer_pending(&glue->timer)) {
@@ -388,6 +393,14 @@ static int dsps_musb_init(struct musb *musb)
val &= ~(1 << wrp->otg_disable);
dsps_writel(musb->ctrl_base, wrp->phy_utmi, val);
+ if (musb->port_mode == MUSB_PORT_MODE_HOST) {
+ val = USBMODE_IDDIG_A;
+ val |= USBMODE_ID_MUX_REG;
+ } else {
+ val = USBMODE_ID_MUX_PHY;
+ }
+ dsps_writel(musb->ctrl_base, wrp->mode, val);
+
return 0;
}
--
1.8.3.2
next prev parent reply other threads:[~2013-08-09 16:03 UTC|newest]
Thread overview: 71+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-07-22 18:09 am33x: multiple instances and dma support, v2 Sebastian Andrzej Siewior
2013-07-22 18:09 ` [PATCH 01/16] usb: musb: dsps: init / shutdown the phy Sebastian Andrzej Siewior
2013-07-25 14:32 ` Felipe Balbi
2013-07-22 18:09 ` [PATCH 02/16] usb: phy: phy-nop: add support for am335x PHY Sebastian Andrzej Siewior
2013-07-25 14:33 ` Felipe Balbi
2013-07-25 14:45 ` Sebastian Andrzej Siewior
2013-07-25 14:54 ` Felipe Balbi
2013-07-22 18:09 ` [PATCH 03/16] usb: musb: dsps: remove the hardcoded phy pieces Sebastian Andrzej Siewior
2013-07-22 18:09 ` [PATCH 04/16] usb: musb: remove ti81xx pieces from musb Sebastian Andrzej Siewior
2013-07-22 18:09 ` [PATCH 05/16] usb: musb: dsps: use proper child nodes Sebastian Andrzej Siewior
2013-07-23 6:46 ` George Cherian
2013-07-23 9:15 ` Sebastian Andrzej Siewior
2013-07-22 18:09 ` [PATCH 06/16] usb: musb: dsps: rename ti81xx_driver_data to am33xx_driver_data Sebastian Andrzej Siewior
2013-07-23 6:04 ` George Cherian
2013-07-23 9:09 ` Sebastian Andrzej Siewior
2013-07-23 9:14 ` George Cherian
[not found] ` <CADYTM3avh7GFTDQW01FnojKZkmL0_hi+=K-VVwCw5peJL2hwTA@mail.gmail.com>
2013-07-23 19:09 ` Bin Liu
2013-07-25 14:41 ` Sebastian Andrzej Siewior
2013-07-25 15:12 ` Bin Liu
2013-07-25 15:16 ` Sebastian Andrzej Siewior
2013-07-25 15:28 ` Bin Liu
2013-07-25 16:11 ` Felipe Balbi
2013-07-26 9:11 ` [PATCH 06/16 => 1/2] " Sebastian Andrzej Siewior
2013-07-26 9:11 ` [PATCH 06/16 => 2/2] usb: musb: dsps: remove EOI access Sebastian Andrzej Siewior
2013-07-25 15:37 ` [PATCH 06/16] usb: musb: dsps: rename ti81xx_driver_data to am33xx_driver_data Felipe Balbi
2013-07-22 18:09 ` [PATCH 07/16] usb: musb: replace ifndef with ifdef for CONFIG_MUSB_PIO_ONLY Sebastian Andrzej Siewior
2013-07-22 18:09 ` [PATCH 08/16] usb: musb: dma: merge ->start/stop into create/destroy Sebastian Andrzej Siewior
2013-07-22 18:10 ` [PATCH 09/16] usb: musb: provide empty dma_controller_create() in PIO mode Sebastian Andrzej Siewior
2013-07-22 18:10 ` [PATCH 10/16] usb: musb: remove a few is_dma_capable() in init/exit code Sebastian Andrzej Siewior
2013-07-22 18:10 ` [PATCH 11/16] usb: musb: core: call dma_controller_destroy() in the err path Sebastian Andrzej Siewior
2013-07-22 18:10 ` [PATCH 12/16] usb: musb: unmap reqs in musb_gadget_queue()'s error case Sebastian Andrzej Siewior
2013-07-22 18:10 ` [PATCH 13/16] usb: musb: do not change dev's dma_mask Sebastian Andrzej Siewior
2013-07-22 18:10 ` [PATCH 14/16] usb: musb: dsps: add MUSB_DEVCTL_SESSION back after removal Sebastian Andrzej Siewior
[not found] ` <CADYTM3a5xzs+-VCTeKLGiRjo7JOqOJ5H4EWDACpTMovY5_ooRA@mail.gmail.com>
2013-07-23 17:31 ` Sebastian Andrzej Siewior
2013-07-23 18:55 ` Bin Liu
2013-07-26 15:44 ` Sebastian Andrzej Siewior
2013-07-26 16:31 ` Sebastian Andrzej Siewior
2013-07-26 17:53 ` Bin Liu
2013-07-26 18:17 ` Bin Liu
2013-07-26 18:22 ` Sebastian Andrzej Siewior
2013-07-26 18:29 ` Bin Liu
2013-07-26 19:55 ` Sebastian Andrzej Siewior
2013-07-26 20:15 ` Bin Liu
2013-07-26 20:35 ` Sebastian Andrzej Siewior
2013-07-27 3:07 ` Bin Liu
2013-07-29 16:53 ` Sebastian Andrzej Siewior
2013-07-29 17:26 ` Bin Liu
2013-07-29 17:51 ` Sebastian Andrzej Siewior
2013-07-29 18:41 ` Bin Liu
2013-08-09 16:03 ` Sebastian Andrzej Siewior [this message]
2013-08-09 20:30 ` [PATCH] usb: musb: am335x: Do not remove the session bin HOST-only mode Sergei Shtylyov
2013-08-13 7:14 ` Sebastian Andrzej Siewior
2013-08-13 13:03 ` Bin Liu
2013-08-13 13:17 ` Sebastian Andrzej Siewior
2013-08-13 13:33 ` Bin Liu
2013-08-13 13:44 ` Sebastian Andrzej Siewior
2013-08-13 14:01 ` Bin Liu
2013-08-13 14:23 ` Sebastian Andrzej Siewior
2013-08-13 14:32 ` Bin Liu
2013-08-14 18:17 ` Sebastian Andrzej Siewior
2013-08-14 18:43 ` Bin Liu
2013-07-22 18:10 ` [PATCH 15/16] dmaengine: add transfered member to dma_async_tx_descriptor Sebastian Andrzej Siewior
2013-07-22 18:52 ` Sergei Shtylyov
2013-07-23 17:12 ` Sebastian Andrzej Siewior
2013-07-25 14:57 ` Lars-Peter Clausen
2013-07-25 15:12 ` Sebastian Andrzej Siewior
2013-07-25 15:32 ` Lars-Peter Clausen
2013-07-26 9:30 ` Sebastian Andrzej Siewior
2013-07-29 11:39 ` Vinod Koul
2013-07-29 12:33 ` Sebastian Andrzej Siewior
2013-07-22 18:10 ` [PATCH 16/16] usb/musb dma: add cppi41 dma driver Sebastian Andrzej Siewior
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=20130809160339.GA14829@linutronix.de \
--to=bigeasy@linutronix.de \
--cc=balbi@ti.com \
--cc=binmlist@gmail.com \
--cc=george.cherian@ti.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-usb@vger.kernel.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.