diff options
author | Sascha Hauer <s.hauer@pengutronix.de> | 2013-05-28 12:14:59 +0200 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2013-05-31 15:55:58 +0200 |
commit | 76e4198d895aa12395a58aceb96811ccf191bc8c (patch) | |
tree | 6070b365a69646bd8548b080b324b2c0eefcaf96 /drivers/usb/imx/imx-usb-misc.c | |
parent | 198263086608056334ee5500564c0939e4fdb146 (diff) | |
download | barebox-76e4198d895aa12395a58aceb96811ccf191bc8c.tar.gz barebox-76e4198d895aa12395a58aceb96811ccf191bc8c.tar.xz |
usb: i.MX chipidea: Add overcurrent disable flag for i.MX6
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'drivers/usb/imx/imx-usb-misc.c')
-rw-r--r-- | drivers/usb/imx/imx-usb-misc.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/drivers/usb/imx/imx-usb-misc.c b/drivers/usb/imx/imx-usb-misc.c index 647f6b3c55..51d549c2c5 100644 --- a/drivers/usb/imx/imx-usb-misc.c +++ b/drivers/usb/imx/imx-usb-misc.c @@ -347,6 +347,9 @@ static __maybe_unused struct imx_usb_misc_data mx5_data = { .init = mx5_initialize_usb_hw, }; +#define MX6_USB_CTRL(n) ((n) * 4) +#define MX6_USB_CTRL_OVER_CUR_DIS (1 << 7) + static void mx6_hsic_pullup(unsigned long reg, int on) { u32 val; @@ -364,10 +367,15 @@ static void mx6_hsic_pullup(unsigned long reg, int on) static __maybe_unused int mx6_initialize_usb_hw(void __iomem *base, int port, unsigned int flags) { + u32 val; + switch (port) { case 0: - break; case 1: + val = readl(base + MX6_USB_CTRL(port)); + if (flags & MXC_EHCI_DISABLE_OVERCURRENT) + val |= MX6_USB_CTRL_OVER_CUR_DIS; + writel(val, base + MX6_USB_CTRL(port)); break; case 2: /* HSIC port */ mx6_hsic_pullup(0x388, 0); |