[PATCH 08/21] usb: chipidea: Kick OTG state machine for AVVIS with vbus extcon
From: Peter Chen <hidden>
Date: 2016-06-30 01:35:27
Also in:
linux-arm-msm, lkml
On Wed, Jun 29, 2016 at 06:19:59PM -0700, Stephen Boyd wrote:
Quoting Peter Chen (2016-06-28 20:09:13)quoted
On Sun, Jun 26, 2016 at 12:28:25AM -0700, Stephen Boyd wrote:quoted
Force the OTG state machine to go forward when we're using an extcon for vbus detection. In this case, the controller may never raise an interrupt for AVVIS, so we need to simulate the event by toggling the appropriate OTG fsm bits and kicking the state machine again.Well, I think you may misunderstand the OTG FSM and dual-role. From my and Felipe's point, there are seldom users for USB FSM, there are only OTG FSM spec and related OTG certification.Probably yes.quoted
The OTG FSM needs related SoC support, the vbus will be off at several states, and the SRP should be supported by SoC. By default, the dts needs below properties for disabling it if you choose otg fsm support at kernel configuration. &usbotg1 { vbus-supply = <®_usb_otg1_vbus>; srp-disable; hnp-disable; adp-disable; status = "okay"; }; See Documentation/devicetree/bindings/usb/generic.txt.Does this mean we should be setting all those properties if we're using an extcon for vbus and id?
It is not related to how we know vbus and id. If your controller is otg-capable, and you don't want to enable OTG FSM (just want dual-role), you should set them at dts since the zImage is multi-platforms, the CONFIG_USB_OTG and CONFIG_USB_OTG_FSM may be chosen.
I have noticed that vbus is powered off after some time when no device is connected and we're in A_HOST state because the timeout for a B device connection happens.
I think it is not you want, but it is OTG compliance. -- Best Regards, Peter Chen