ehci: mx7: Fix OTG ID detection
Subsystems (2)
PATCH 1/1 ehci: mx7: Fix OTG ID detection
From: Ye Li <[email protected]>
1. The offset for phy_status register in usbnc_regs is not correct.
2. We should clear the USBNC_PHYCFG2_ACAENB bit 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.
--- drivers/usb/host/ehci-mx6.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-)
drivers/usb/host/ehci-mx6.c +7 -3
@@ -194,8 +194,9 @@ struct usbnc_regs {u32 reserve1[10 ];u32 phy_cfg1;u32 phy_cfg2; +u32 reserve2[1 ];u32 phy_status; -u32 reserve2[4 ]; +u32 reserve3[4 ];u32 adp_cfg1;u32 adp_cfg2;u32 adp_status;
@@ -207,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
PATCH 1/1 ehci: mx7: Fix OTG ID detection
Quoted 6 lines · Peng Fan
From: Ye Li <[email protected]>
1. The offset for
phy_statusregister inusbnc_regsis not correct.
2. We should clear theUSBNC_PHYCFG2_ACAENBbit 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.
So this is one patch which does two things? This should be split into two patches then.
Quoted 14 lines
Signed-off-by Peng Fan <[email protected]>Signed-off-by Ye Li <[email protected]>Cc Marek Vasut <[email protected]>Cc Mateusz Kulikowski <[email protected]>Cc Stefan Agner <[email protected]>--- drivers/usb/host/ehci-mx6.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-)drivers/usb/host/ehci-mx6.c +0
-0
drivers/usb/host/ehci-mx6.c struct usbnc_regs { · line 199
Quoted 7 lines
drivers/usb/host/ehci-mx6.c +2
-1@@ -194,8 +194,9 @@ struct usbnc_regs {u32 reserve1[10 ];u32 phy_cfg1;u32 phy_cfg2; +u32 reserve2[1 ];u32 phy_status; -u32 reserve2[4 ]; +u32 reserve3[4 ];
This will also shift all the registers below by 8 bytes, is that correct ?
Quoted 18 lines
drivers/usb/host/ehci-mx6.c +5
-2u32 adp_cfg1;u32 adp_cfg2;u32 adp_status;@@ -207,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
PATCH 1/1 ehci: mx7: Fix OTG ID detection
Hi Marek,
Quoted 10 lines · Marek Vasut
Quoted 6 lines · Peng Fan
From: Ye Li <[email protected]>
1. The offset for
phy_statusregister inusbnc_regsis not correct.
2. We should clear theUSBNC_PHYCFG2_ACAENBbit 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.So this is one patch which does two things? This should be split into two patches then.
Ok. Will fix in V2.
Quoted 10 lines
Quoted 10 lines
Signed-off-by Peng Fan <[email protected]>Signed-off-by Ye Li <[email protected]>Cc Marek Vasut <[email protected]>Cc Mateusz Kulikowski <[email protected]>Cc Stefan Agner <[email protected]>--- drivers/usb/host/ehci-mx6.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-)
Quoted 14 lines
drivers/usb/host/ehci-mx6.c struct usbnc_regs { · line 199
Quoted 12 lines
drivers/usb/host/ehci-mx6.c +2
-1@@ -194,8 +194,9 @@ struct usbnc_regs {u32 reserve1[10 ];u32 phy_cfg1;u32 phy_cfg2; +u32 reserve2[1 ];u32 phy_status; -u32 reserve2[4 ]; +u32 reserve3[4 ];This will also shift all the registers below by 8 bytes, is that correct ?
Yeah. correct.
Thanks,
Peng.
Quoted 24 lines
Quoted 19 lines
drivers/usb/host/ehci-mx6.c +5
-2u32 adp_cfg1;u32 adp_cfg2;u32 adp_status;@@ -207,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