diff options
author | Sascha Hauer <s.hauer@pengutronix.de> | 2020-12-11 13:31:13 +0100 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2020-12-11 13:31:13 +0100 |
commit | 5530a4248036e3d873aee816e4ce596aa2aff600 (patch) | |
tree | 6df29a44a3c84a81dc6d5f30d57c586c8140810e /drivers/usb | |
parent | 5264daae51117bce522333b3b9a797bbac29edc9 (diff) | |
parent | eca2a6194514a6decd798c9a235fbb2f3f5258ab (diff) | |
download | barebox-5530a4248036e3d873aee816e4ce596aa2aff600.tar.gz barebox-5530a4248036e3d873aee816e4ce596aa2aff600.tar.xz |
Merge branch 'for-next/imx'
Diffstat (limited to 'drivers/usb')
-rw-r--r-- | drivers/usb/imx/chipidea-imx.c | 3 | ||||
-rw-r--r-- | drivers/usb/imx/imx-usb-misc.c | 5 |
2 files changed, 8 insertions, 0 deletions
diff --git a/drivers/usb/imx/chipidea-imx.c b/drivers/usb/imx/chipidea-imx.c index b1a77a1637..b144f41437 100644 --- a/drivers/usb/imx/chipidea-imx.c +++ b/drivers/usb/imx/chipidea-imx.c @@ -168,6 +168,9 @@ static int imx_chipidea_probe_dt(struct imx_chipidea *ci) "over-current-active-high", NULL)) ci->flags |= MXC_EHCI_OC_PIN_ACTIVE_LOW; + if (of_find_property(ci->dev->device_node, "power-active-high", NULL)) + ci->flags |= MXC_EHCI_PWR_PIN_ACTIVE_HIGH; + if (of_usb_get_maximum_speed(ci->dev->device_node, NULL) == USB_SPEED_FULL) ci->flags |= MXC_EHCI_PFSC; diff --git a/drivers/usb/imx/imx-usb-misc.c b/drivers/usb/imx/imx-usb-misc.c index 3a5ec236e5..b663d073aa 100644 --- a/drivers/usb/imx/imx-usb-misc.c +++ b/drivers/usb/imx/imx-usb-misc.c @@ -354,6 +354,7 @@ static __maybe_unused struct imx_usb_misc_data mx5_data = { #define MX6_USB_CTRL(n) ((n) * 4) #define MX6_USB_CTRL_OVER_CUR_DIS (1 << 7) #define MX6_USB_CTRL_OVER_CUR_ACT_HIGH (1 << 8) +#define MX6_USB_CTRL_PWR_POLARITY (1 << 9) static void mx6_hsic_pullup(unsigned long reg, int on) { @@ -380,6 +381,8 @@ static __maybe_unused int mx6_initialize_usb_hw(void __iomem *base, int port, val = readl(base + MX6_USB_CTRL(port)); if (flags & MXC_EHCI_DISABLE_OVERCURRENT) val |= MX6_USB_CTRL_OVER_CUR_DIS; + if (flags & MXC_EHCI_PWR_PIN_ACTIVE_HIGH) + val |= MX6_USB_CTRL_PWR_POLARITY; writel(val, base + MX6_USB_CTRL(port)); break; case 2: /* HSIC port */ @@ -454,6 +457,8 @@ static int usbmisc_imx7d_init(void __iomem *base, int port, else reg |= MX6_USB_CTRL_OVER_CUR_ACT_HIGH; } + if (flags & MXC_EHCI_PWR_PIN_ACTIVE_HIGH) + reg |= MX6_USB_CTRL_PWR_POLARITY; writel(reg, base); reg = readl(base + MX7D_USBNC_USB_CTRL2); |