forked from Minki/linux
usb: mtu3: clear SOFTCONN when clear USB3_EN if work as HS mode
When the controller supports SS mode, but works as HS mode, the SOFTCONN will not be cleared automatically when clear USB3_EN by default, this cause an issue that can't disconnect from host, so clear SOFTCONN when clear USB3_EN when the class driver want to disable the D+ pullup. Signed-off-by: Chunfeng Yun <chunfeng.yun@mediatek.com> Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
This commit is contained in:
parent
49187dd14c
commit
47b6f8bf87
@ -586,6 +586,8 @@ static void mtu3_regs_init(struct mtu3 *mtu)
|
||||
mtu3_clrbits(mbase, U3D_LTSSM_CTRL, SOFT_U3_EXIT_EN);
|
||||
/* automatically build U2 link when U3 detect fail */
|
||||
mtu3_setbits(mbase, U3D_USB2_TEST_MODE, U2U3_AUTO_SWITCH);
|
||||
/* auto clear SOFT_CONN when clear USB3_EN if work as HS */
|
||||
mtu3_setbits(mbase, U3D_U3U2_SWITCH_CTRL, SOFTCON_CLR_AUTO_EN);
|
||||
}
|
||||
|
||||
mtu3_set_speed(mtu);
|
||||
|
@ -268,6 +268,8 @@
|
||||
#define U3D_LTSSM_INTR_ENABLE (SSUSB_USB3_MAC_CSR_BASE + 0x013C)
|
||||
#define U3D_LTSSM_INTR (SSUSB_USB3_MAC_CSR_BASE + 0x0140)
|
||||
|
||||
#define U3D_U3U2_SWITCH_CTRL (SSUSB_USB3_MAC_CSR_BASE + 0x0170)
|
||||
|
||||
/*---------------- SSUSB_USB3_MAC_CSR FIELD DEFINITION ----------------*/
|
||||
|
||||
/* U3D_LTSSM_CTRL */
|
||||
@ -302,6 +304,9 @@
|
||||
#define SS_DISABLE_INTR BIT(1)
|
||||
#define SS_INACTIVE_INTR BIT(0)
|
||||
|
||||
/* U3D_U3U2_SWITCH_CTRL */
|
||||
#define SOFTCON_CLR_AUTO_EN BIT(0)
|
||||
|
||||
/*---------------- SSUSB_USB3_SYS_CSR REGISTER DEFINITION ----------------*/
|
||||
|
||||
#define U3D_LINK_UX_INACT_TIMER (SSUSB_USB3_SYS_CSR_BASE + 0x020C)
|
||||
|
Loading…
Reference in New Issue
Block a user