Re: [PATCH v10 5/6] usb:cdns3 Add Cadence USB3 DRD Driver
From: Roger Quadros <hidden>
Date: 2019-08-13 07:48:18
Also in:
lkml
On 13/08/2019 10:30, Chunfeng Yun wrote:
On Mon, 2019-08-12 at 16:04 +0300, Roger Quadros wrote:quoted
On 12/08/2019 15:46, Felipe Balbi wrote:quoted
Hi, Roger Quadros [off-list ref] writes:quoted
quoted
The sysfs file we expose from the class for the role switches is primarily meant for supporting proprietary protocols that require us to basically override the connector USB data role. The default role should always be selected in the drivers.OK. Let's take this example - Port is dual-role port micro AB. - microAB to type-A adapter is connected which pulls ID low. port transitions to "host" role by the controller driver. - proprietary protocol want to switch role to device role so writes "device" to mode switch sysfs. port transitions to "device" role. Now, how does controller driver know to fall back to HW based role switching?Use a 'disconnect' or 'suspend' event to go reset it? But that should, probably, be done at kernel space, no?Yes that could be one option. So after a disconnect, sysfs role should reflect actual hardware role. correct?Maybe it's difficult to support both HW based role switch and SW based role switch by sysfs at the same if the HW's FSM rely on, such as, the state of Vbus pin or ID pin. Likes the upper example, when user writes "device" to mode switch sysfs, the driver should skip the HW state of ID pin, due to it's state is Low, or force it as High.
We do need a clear way of indicating that SW wants to override so HW state is ignored.
Another option way is that introduces a property in DTS to indicate the way the driver want to use (HW based or SW based, usb_role_switch doesn't provide this information for the controller driver), but is not flexible enough.
That is not good enough for us. We need both HW and SW based role switching. Can we introduce a new state (e.g. "auto") in usb_role_switch. This would explicitly indicate the driver to do HW based switching. This way we don't need to depend on connect/disconnect events and can do role switch tests even without cable/device connected. -- cheers, -roger Texas Instruments Finland Oy, Porkkalankatu 22, 00180 Helsinki. Y-tunnus/Business ID: 0615521-4. Kotipaikka/Domicile: Helsinki