drivers/usb : Define usb control register mask for w1c bits
Subsystems (2)
PATCH v2 1/1 drivers/usb : Define usb control register mask for w1c bits
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 <[email protected]>
Signed-off-by Ramneek Mehresh <[email protected]>
---
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(-)
drivers/usb/host/ehci-fsl.c +10 -5
@@ -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 ;
include/usb/ehci-fsl.h +2 -0
@@ -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
Signature · 1 line
1.7.11.7
PATCH v2 1/1 drivers/usb : Define usb control register mask for w1c bits
Quoted 10 lines · Nikhil Badola
Define and use
CONTROL_REGISTER_W1C_MASKto make sure that w1c bits of usb control register do not get reset while writing any other bitSigned-off-by Nikhil Badola <[email protected]>Signed-off-by Ramneek Mehresh <[email protected]>---
Changes for v2:
- Usingclrsetbits_be32()instead of new API
Applied to u-boot-mpc85xx/master.
York