RE: To otg-fsm or not to otg-fsm? That is the question.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



 
> Hey Linux USBer's,
> 
> I'm looking to add host support to the qualcomm OTG USB driver.  The
> driver in mainline currently has gadget support only.  I'm starting with
> an out-of-tree driver that has full gadget and host support.  It has it's
> own OTG state machine implement in the driver, that I was about to
> forward-port to top-of-tree.
> 
> However, I found the files /usb/common/usb-otg-fsm.c and I'm wondering
> what the status of that is.  There appears to be only one driver
> currently using it.  Should I modify the qualcomm driver
> (drivers/usb/phy/phy-msm-usb.c to use that state machine, or just try to
> mainline the state machine from the out-of-tree driver?  I'm suspecting
> the former will be more work, but I want to do the right thing.
> 

Hi Tim,

The OTG FSM at /usb/common/usb-otg-fsm.c is a software OTG FSM implementation
which follows On-The-Go and Embedded Host Supplement to the USB Revision 2.0 Specification
(Revision 2.0 version 1.1a) Chapter 7 State Diagrams.

If the platform doesn't support hardware otg fsm, it should follow above fsm implementation since
it follows the newest OTG & EH spec. Besides, as far as I know, the qualcomm uses
chipidea core for its usb2, then it should be easy for qualcomm using this common
otg fsm implementation.

Peter

> Really I'm just checking that using the generic state machine is the
> preferred method of supporting USB OTG drivers going forward.
> 
> Thanks!
> 
>  -- Tim Bird
> Senior Software Engineer, Sony Mobile
> Architecture Group Chair, CE Workgroup, Linux Foundation
��.n��������+%������w��{.n�����{���)��jg��������ݢj����G�������j:+v���w�m������w�������h�����٥





[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [Linux for Sparc]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux