[1/2] usb: dwc3: gadget: Fix full speed mode

Message ID 1480416997-19757-2-git-send-email-rogerq@ti.com
State New
Headers show

Commit Message

Roger Quadros Nov. 29, 2016, 10:56 a.m.
DCFG.DEVSPD == 0x3 is not valid and we need to set
DCFG.DEVSPD to 0x1 for full speed mode.

Signed-off-by: Roger Quadros <rogerq@ti.com>

---
 drivers/usb/dwc3/gadget.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

-- 
2.7.4

--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Comments

Felipe Balbi Nov. 29, 2016, 11:51 a.m. | #1
Hi,

Roger Quadros <rogerq@ti.com> writes:
> DCFG.DEVSPD == 0x3 is not valid and we need to set

> DCFG.DEVSPD to 0x1 for full speed mode.


seems like it has been made invalid somewhere between 1.73a and
2.60a. Can you figure it out from Documentation why and when it was made
invalid? We might need revision checks here.

-- 
balbi
John Youn Dec. 17, 2016, 1:02 a.m. | #2
On 12/7/2016 7:06 PM, John Youn wrote:
> On 12/7/2016 4:44 AM, Felipe Balbi wrote:

>>

>> Hi,

>>

>> Roger Quadros <rogerq@ti.com> writes:

>>>>> Roger Quadros <rogerq@ti.com> writes:

>>>>>> DCFG.DEVSPD == 0x3 is not valid and we need to set

>>>>>> DCFG.DEVSPD to 0x1 for full speed mode.

>>>>>

>>>>> seems like it has been made invalid somewhere between 1.73a and

>>>>> 2.60a. Can you figure it out from Documentation why and when it was made

>>>>> invalid? We might need revision checks here.

>>>>>

>>>>

>>>> I'll try to dig out more.

>>>

>>> I couldn't figure out more information on this. The changelogs in the TRMs

>>> don't capture this change and I don't have access to all TRM versions

>>> so I can't say which version it got changed and why.

>>>

>>> Can we please involve someone from Synopsis to provide this information?

>>> Thanks.

>>

>> John, could you help us with this query? We'd like to understand why one

>> of the FULLSPEED modes got removed. Do we need a revision check or can

>> we assume that the other mode was never supposed to be used?

>>

> 

> Full speed is 0x1. 0x3 may still work due to how the bits are

> checked. But it definitely should be 0x1.

> 

> I'm not sure if it was 0x3 before. I still need to confirm whether

> that was the case or not and if so why.

> 


Hi Felipe,

According to the old databook, 0x3 was for FS in 48MHz mode for 1.1
transceiver, which was never supported. UTMI FS was still specified as
0x1 in those old databooks.

Regards,
John


--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Patch hide | download patch | download mbox

diff --git a/drivers/usb/dwc3/gadget.c b/drivers/usb/dwc3/gadget.c
index 1dfa56a5f..797e013 100644
--- a/drivers/usb/dwc3/gadget.c
+++ b/drivers/usb/dwc3/gadget.c
@@ -1597,7 +1597,7 @@  static int __dwc3_gadget_start(struct dwc3 *dwc)
 			reg |= DWC3_DCFG_LOWSPEED;
 			break;
 		case USB_SPEED_FULL:
-			reg |= DWC3_DCFG_FULLSPEED1;
+			reg |= DWC3_DCFG_FULLSPEED2;
 			break;
 		case USB_SPEED_HIGH:
 			reg |= DWC3_DCFG_HIGHSPEED;