summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHaoran.Wang <elven.wang@nxp.com>2017-09-05 19:12:23 +0000
committerandroid-build-merger <android-build-merger@google.com>2017-09-05 19:12:23 +0000
commitfa6989e0268381a1ba83da50807304eb55a8a03a (patch)
treeaf084ccf96b2a5a67ae87f23c745177bcfec7e0a
parent868bc838d37318c6de03d504ca70f48dfb2e0287 (diff)
parent4a319775244435c37542f2c1a8768c69c7bbe040 (diff)
downloadimx-v4.1-o-mr1-iot-preview-7.tar.gz
am: 4a31977524 Change-Id: I1b65bf7932e8569e1d4e1182021b08e2e10c54c4
-rw-r--r--arch/arm/boot/dts/imx6ul-nxpu-iopb.dts2
-rw-r--r--drivers/usb/chipidea/ci_hdrc_imx.c3
-rw-r--r--drivers/usb/chipidea/ci_hdrc_imx.h1
-rw-r--r--drivers/usb/chipidea/usbmisc_imx.c7
4 files changed, 13 insertions, 0 deletions
diff --git a/arch/arm/boot/dts/imx6ul-nxpu-iopb.dts b/arch/arm/boot/dts/imx6ul-nxpu-iopb.dts
index 0fef6acedd2a..49009eeb7432 100644
--- a/arch/arm/boot/dts/imx6ul-nxpu-iopb.dts
+++ b/arch/arm/boot/dts/imx6ul-nxpu-iopb.dts
@@ -230,6 +230,7 @@
imx6ul-nxpu-iopb {
pinctrl_hog_1: hoggrp-1 {
fsl,pins = <
+ MX6UL_PAD_ENET2_TX_DATA1__USB_OTG2_PWR 0x80000000
MX6UL_PAD_CSI_DATA01__SAI1_MCLK 0x17088
>;
};
@@ -461,6 +462,7 @@
&usbotg2 {
dr_mode = "host";
disable-over-current;
+ power-polarity-active-high;
status = "okay";
};
diff --git a/drivers/usb/chipidea/ci_hdrc_imx.c b/drivers/usb/chipidea/ci_hdrc_imx.c
index d3b1e77cb4ec..07f2bd2f3b31 100644
--- a/drivers/usb/chipidea/ci_hdrc_imx.c
+++ b/drivers/usb/chipidea/ci_hdrc_imx.c
@@ -196,6 +196,9 @@ static struct imx_usbmisc_data *usbmisc_get_init_data(struct device *dev)
if (of_find_property(np, "disable-over-current", NULL))
data->disable_oc = 1;
+ if (of_find_property(np, "power-polarity-active-high", NULL))
+ data->pwr_polarity = 1;
+
if (of_find_property(np, "external-vbus-divider", NULL))
data->evdo = 1;
diff --git a/drivers/usb/chipidea/ci_hdrc_imx.h b/drivers/usb/chipidea/ci_hdrc_imx.h
index bdcf1b724abe..f4e29f14adff 100644
--- a/drivers/usb/chipidea/ci_hdrc_imx.h
+++ b/drivers/usb/chipidea/ci_hdrc_imx.h
@@ -45,6 +45,7 @@ struct imx_usbmisc_data {
struct usb_charger *charger;
unsigned int disable_oc:1; /* over current detect disabled */
+ unsigned int pwr_polarity:1; /* polarity of enable vbus from pmic */
unsigned int evdo:1; /* set external vbus divider option */
/*
* Specifies the delay between powering up the xtal 24MHz clock
diff --git a/drivers/usb/chipidea/usbmisc_imx.c b/drivers/usb/chipidea/usbmisc_imx.c
index 840a10805af4..ae8bad3e89de 100644
--- a/drivers/usb/chipidea/usbmisc_imx.c
+++ b/drivers/usb/chipidea/usbmisc_imx.c
@@ -58,6 +58,7 @@
#define MX6_BM_NON_BURST_SETTING BIT(1)
#define MX6_BM_OVER_CUR_DIS BIT(7)
+#define MX6_BM_PRW_POLARITY BIT(9)
#define MX6_BM_WAKEUP_ENABLE BIT(10)
#define MX6_BM_UTMI_ON_CLOCK BIT(13)
#define MX6_BM_ID_WAKEUP BIT(16)
@@ -399,6 +400,12 @@ static int usbmisc_imx6q_init(struct imx_usbmisc_data *data)
writel(reg | MX6_BM_NON_BURST_SETTING,
usbmisc->base + data->index * 4);
+ if (data->pwr_polarity) {
+ reg = readl(usbmisc->base + data->index * 4);
+ reg |= MX6_BM_PRW_POLARITY;
+ writel(reg, usbmisc->base + data->index * 4);
+ }
+
/* For HSIC controller */
if (data->index == 2 || data->index == 3) {
val = readl(usbmisc->base + data->index * 4);