Skip to contentSkip to conversation

ehci: mx7: fix usbnc_regs

PATCH New Peng Fan 2 participants 4 messages Jun 20, 2016

Subsystems (2)
lore
Share & tools
lore

Peng Fan

author
#0 lore raw

PATCH v2 1/2 ehci: mx7: fix usbnc_regs

There is a 4 bytes hole between phy_cfg2 and phy_status, fix the usbnc_regs structure to include the hole.

---

V2:
Split from V1 to a single patch.

 drivers/usb/host/ehci-mx6.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)
drivers/usb/host/ehci-mx6.c +2 -1
index bb48d0d..cc3b11c 100644
@@ -194,8 +194,9 @@ struct usbnc_regs {
 	u32 reserve1[10];
 	u32 phy_cfg1;
 	u32 phy_cfg2;
+	u32 reserve2;
 	u32 phy_status;
-	u32 reserve2[4];
+	u32 reserve3[4];
 	u32 adp_cfg1;
 	u32 adp_cfg2;
 	u32 adp_status;
Signature · 1 line
2.6.2
author
#1 lore raw

PATCH v2 2/2 ehci: mx7: fix otg id detection

The USBNC_PHYCFG2_ACAENB bit should be cleared to enable the OTG ID detection, not set it. When the bit is set, the ACA Resistance Detection is enabled, which disables the OTG ID detection, because the internal pull up is off.

---

V2:
split from V1 to a single patch.

 drivers/usb/host/ehci-mx6.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)
drivers/usb/host/ehci-mx6.c +5 -2
index cc3b11c..069f116 100644
@@ -208,8 +208,11 @@ static void usb_power_config(int index)
 			(0x10000 * index) + USBNC_OFFSET);
 	void __iomem *phy_cfg2 = (void __iomem *)(&usbnc->phy_cfg2);
 
-	/* Enable usb_otg_id detection */
-	setbits_le32(phy_cfg2, USBNC_PHYCFG2_ACAENB);
+	/*
+	 * Clear the ACAENB to enable usb_otg_id detection,
+	 * otherwise it is the ACA detection enabled.
+	 */
+	clrbits_le32(phy_cfg2, USBNC_PHYCFG2_ACAENB);
 }
 
 int usb_phy_mode(int port)
Signature · 1 line
2.6.2
Applied
#2 lore raw

PATCH v2 2/2 ehci: mx7: fix otg id detection

Quoted 8 lines · Peng Fan

The USBNC_PHYCFG2_ACAENB bit should be cleared to enable the OTG ID detection, not set it. When the bit is set, the ACA Resistance Detection is enabled, which disables the OTG ID detection, because the internal pull up is off.

---

Applied, thanks

Quoted 25 lines

V2:
split from V1 to a single patch.

 drivers/usb/host/ehci-mx6.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)
drivers/usb/host/ehci-mx6.c +5 -2
index cc3b11c..069f116 100644
@@ -208,8 +208,11 @@ static void usb_power_config(int index)
 			(0x10000 * index) + USBNC_OFFSET);
 	void __iomem *phy_cfg2 = (void __iomem *)(&usbnc->phy_cfg2);
 
-	/* Enable usb_otg_id detection */
-	setbits_le32(phy_cfg2, USBNC_PHYCFG2_ACAENB);
+	/*
+	 * Clear the ACAENB to enable usb_otg_id detection,
+	 * otherwise it is the ACA detection enabled.
+	 */
+	clrbits_le32(phy_cfg2, USBNC_PHYCFG2_ACAENB);
 }
 
 int usb_phy_mode(int port)
Signature · 2 lines
Best regards,
Marek Vasut
Applied
#3 lore raw

PATCH v2 1/2 ehci: mx7: fix usbnc_regs

In reply to Peng Fan
Quoted 6 lines · Peng Fan

There is a 4 bytes hole between phy_cfg2 and phy_status, fix the usbnc_regs structure to include the hole.

---

Applied, thanks

Quoted 22 lines

V2:
Split from V1 to a single patch.

 drivers/usb/host/ehci-mx6.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)
drivers/usb/host/ehci-mx6.c +2 -1
index bb48d0d..cc3b11c 100644
@@ -194,8 +194,9 @@ struct usbnc_regs {
 	u32 reserve1[10];
 	u32 phy_cfg1;
 	u32 phy_cfg2;
+	u32 reserve2;
 	u32 phy_status;
-	u32 reserve2[4];
+	u32 reserve3[4];
 	u32 adp_cfg1;
 	u32 adp_cfg2;
 	u32 adp_status;
Signature · 2 lines
Best regards,
Marek Vasut