* [U-Boot] [PATCH][v2] drivers/usb : Define usb control register mask for w1c bits
@ 2014-05-08 11:35 Nikhil Badola
2014-05-20 15:37 ` York Sun
0 siblings, 1 reply; 2+ messages in thread
From: Nikhil Badola @ 2014-05-08 11:35 UTC (permalink / raw)
To: u-boot
Define and use CONTROL_REGISTER_W1C_MASK to make sure that
w1c bits of usb control register do not get reset while
writing any other bit
Signed-off-by: Nikhil Badola <nikhil.badola@freescale.com>
Signed-off-by: Ramneek Mehresh <ramneek.mehresh@freescale.com>
---
Changes for v2:
- Using clrsetbits_be32() instead of new API
drivers/usb/host/ehci-fsl.c | 15 ++++++++++-----
include/usb/ehci-fsl.h | 2 ++
2 files changed, 12 insertions(+), 5 deletions(-)
diff --git a/drivers/usb/host/ehci-fsl.c b/drivers/usb/host/ehci-fsl.c
index 6cb4d98..45062e6 100644
--- a/drivers/usb/host/ehci-fsl.c
+++ b/drivers/usb/host/ehci-fsl.c
@@ -104,15 +104,20 @@ int ehci_hcd_init(int index, enum usb_init_type init,
if (!strncmp(phy_type, "utmi", 4)) {
#if defined(CONFIG_SYS_FSL_USB_INTERNAL_UTMI_PHY)
- setbits_be32(&ehci->control, PHY_CLK_SEL_UTMI);
- setbits_be32(&ehci->control, UTMI_PHY_EN);
+ clrsetbits_be32(&ehci->control, CONTROL_REGISTER_W1C_MASK,
+ PHY_CLK_SEL_UTMI);
+ clrsetbits_be32(&ehci->control, CONTROL_REGISTER_W1C_MASK,
+ UTMI_PHY_EN);
udelay(1000); /* delay required for PHY Clk to appear */
#endif
out_le32(&(*hcor)->or_portsc[0], PORT_PTS_UTMI);
- setbits_be32(&ehci->control, USB_EN);
+ clrsetbits_be32(&ehci->control, CONTROL_REGISTER_W1C_MASK,
+ USB_EN);
} else {
- setbits_be32(&ehci->control, PHY_CLK_SEL_ULPI);
- clrsetbits_be32(&ehci->control, UTMI_PHY_EN, USB_EN);
+ clrsetbits_be32(&ehci->control, CONTROL_REGISTER_W1C_MASK,
+ PHY_CLK_SEL_ULPI);
+ clrsetbits_be32(&ehci->control, UTMI_PHY_EN |
+ CONTROL_REGISTER_W1C_MASK, USB_EN);
udelay(1000); /* delay required for PHY Clk to appear */
if (!usb_phy_clk_valid(ehci))
return -EINVAL;
diff --git a/include/usb/ehci-fsl.h b/include/usb/ehci-fsl.h
index c9ee1d5..dd77ad6 100644
--- a/include/usb/ehci-fsl.h
+++ b/include/usb/ehci-fsl.h
@@ -11,6 +11,8 @@
#include <asm/processor.h>
+#define CONTROL_REGISTER_W1C_MASK 0x00020000 /* W1C: PHY_CLK_VALID */
+
/* Global offsets */
#define FSL_SKIP_PCI 0x100
--
1.7.11.7
^ permalink raw reply related [flat|nested] 2+ messages in thread
* [U-Boot] [PATCH][v2] drivers/usb : Define usb control register mask for w1c bits
2014-05-08 11:35 [U-Boot] [PATCH][v2] drivers/usb : Define usb control register mask for w1c bits Nikhil Badola
@ 2014-05-20 15:37 ` York Sun
0 siblings, 0 replies; 2+ messages in thread
From: York Sun @ 2014-05-20 15:37 UTC (permalink / raw)
To: u-boot
On 05/08/2014 04:35 AM, Nikhil Badola wrote:
> Define and use CONTROL_REGISTER_W1C_MASK to make sure that
> w1c bits of usb control register do not get reset while
> writing any other bit
>
> Signed-off-by: Nikhil Badola <nikhil.badola@freescale.com>
> Signed-off-by: Ramneek Mehresh <ramneek.mehresh@freescale.com>
> ---
> Changes for v2:
> - Using clrsetbits_be32() instead of new API
>
Applied to u-boot-mpc85xx/master.
York
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2014-05-20 15:37 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-05-08 11:35 [U-Boot] [PATCH][v2] drivers/usb : Define usb control register mask for w1c bits Nikhil Badola
2014-05-20 15:37 ` York Sun
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox