usb: i.MX chipidea: Add overcurrent disable flag for i.MX6
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
This commit is contained in:
parent
1982630866
commit
76e4198d89
|
@ -108,6 +108,9 @@ static int imx_chipidea_probe_dt(struct imx_chipidea *ci)
|
|||
return -EINVAL;
|
||||
}
|
||||
|
||||
if (of_find_property(ci->dev->device_node, "disable-over-current"))
|
||||
ci->flags |= MXC_EHCI_DISABLE_OVERCURRENT;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -32,6 +32,8 @@
|
|||
#define MXC_EHCI_WAKEUP_ENABLED (1 << 12)
|
||||
#define MXC_EHCI_ITC_NO_THRESHOLD (1 << 13)
|
||||
|
||||
#define MXC_EHCI_DISABLE_OVERCURRENT (1 << 14)
|
||||
|
||||
enum imx_usb_mode {
|
||||
IMX_USB_MODE_HOST,
|
||||
IMX_USB_MODE_DEVICE,
|
||||
|
|
Loading…
Reference in New Issue