diff options
author | Tim Bird <tbird20d@gmail.com> | 2014-04-28 09:34:19 -0400 |
---|---|---|
committer | Felipe Balbi <balbi@ti.com> | 2014-04-30 12:29:40 -0400 |
commit | 9f27984b9e098ce0a35b210ec0315c76108494e4 (patch) | |
tree | bee39ae23a360c05059d13e8edaee6526d28ac38 /drivers/usb/phy | |
parent | d69c6f5df376ea40df5886468b155f515fddfbb2 (diff) |
usb: phy: msm: Fix PTS definitions for MSM USB controller
Fix the value used for Parallel Transceiver Select (PTS) for the MSM USB
controller. This is a standard chipidea PORTSC definition, where
a PHY_TYPE of 10b (<<30) is ULPI and 11b (<<30) is SERIAL.
Fix the definitions and use them correctly in the driver code.
Signed-off-by: Tim Bird <tim.bird@sonymobile.com>
Signed-off-by: Ivan T. Ivanov <iivanov@mm-sol.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
Diffstat (limited to 'drivers/usb/phy')
-rw-r--r-- | drivers/usb/phy/phy-msm-usb.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/drivers/usb/phy/phy-msm-usb.c b/drivers/usb/phy/phy-msm-usb.c index bb339963f8bb..db8d96377620 100644 --- a/drivers/usb/phy/phy-msm-usb.c +++ b/drivers/usb/phy/phy-msm-usb.c | |||
@@ -287,8 +287,9 @@ static int msm_link_reset(struct msm_otg *motg) | |||
287 | if (motg->phy_number) | 287 | if (motg->phy_number) |
288 | writel(readl(USB_PHY_CTRL2) | BIT(16), USB_PHY_CTRL2); | 288 | writel(readl(USB_PHY_CTRL2) | BIT(16), USB_PHY_CTRL2); |
289 | 289 | ||
290 | /* put transceiver in serial mode as part of reset */ | ||
290 | val = readl(USB_PORTSC) & ~PORTSC_PTS_MASK; | 291 | val = readl(USB_PORTSC) & ~PORTSC_PTS_MASK; |
291 | writel(val | PORTSC_PTS_ULPI, USB_PORTSC); | 292 | writel(val | PORTSC_PTS_SERIAL, USB_PORTSC); |
292 | 293 | ||
293 | return 0; | 294 | return 0; |
294 | } | 295 | } |
@@ -308,8 +309,9 @@ static int msm_otg_reset(struct usb_phy *phy) | |||
308 | if (cnt >= LINK_RESET_TIMEOUT_USEC) | 309 | if (cnt >= LINK_RESET_TIMEOUT_USEC) |
309 | return -ETIMEDOUT; | 310 | return -ETIMEDOUT; |
310 | 311 | ||
311 | /* select ULPI phy */ | 312 | /* select ULPI phy and clear other status/control bits in PORTSC */ |
312 | writel(0x80000000, USB_PORTSC); | 313 | writel(PORTSC_PTS_ULPI, USB_PORTSC); |
314 | |||
313 | writel(0x0, USB_AHBBURST); | 315 | writel(0x0, USB_AHBBURST); |
314 | writel(0x08, USB_AHBMODE); | 316 | writel(0x08, USB_AHBMODE); |
315 | 317 | ||