Need some suggestions in design implementation for Host controller driver

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

 



 Hi,

We have 3 usb otg cores (2 High Speed cores + 1 full speed core).Right now, we are using one High Speed core in OTG mode and the other Full Speed core in Host only Mode.

1. High Speed OTG Core Which we are using are right now has been implemented for both Host and peripheral Mode. Basic ID pin detection is done in the OTG driver and correspondingly starts the Host and Peripheral. This core has an internal PHY.

2. Full Speed OTG core is used only for the Host Mode and is connected to a serial PHY.

3. Both the Host Controller driver implementations(HS core and FS core) that we are using has been implemented in a single file (ehci-msm.c). To differentiate between these two cores (HS and FS) in the Host controller driver(ehci-msm.c), we are making use of the PHY, which is different and this PHY info is sent from platform data.

4. The FS Host Mode implementation is dependent on RPC callbacks from other processor. Means, the cable connect/disconnect happens on other processor and communicates to this processor through RPC's.

5. PHY reset code and LPM code is implemented in the OTG driver(msm72k_otg.c)

The above is the background information about implementation, which we have right now.

Problem statement: Now we have to third HS core for Host only Mode, which has the internal PHY as the first core. So, should I implement the Host controller driver in the same file(ehci-msm.c), Which already has the two Host controller drivers support. Moreover the First HS core host controller driver is tightly coupled with OTG, so If I should implement the second HS Host core implementation in the same file (ehci-msm.c), it will be tough to debug the driver, if any issues are reported.

Can I implement the second HS Host mode in a seperate file like (ehci-msm2.c)? If this is accepted solution, then there will be lot of duplicate code for PHY reset and LPM both in the OTG(msm72k_otg.c) driver and this ehci-msm2.c?

Any pointers regarding where to implement the second HS Host mode in the same existing file(ehci-msm.c) or a seperate file (ehci-msm2.c) will help?



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


[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux