[PATCh V10 04/12] usb: ehci: ehci-mv: use PHY driver for ehci

Chao Xie xiechao.mail at gmail.com
Mon Jun 17 02:12:31 EDT 2013


On Sat, Jun 15, 2013 at 4:01 AM, Alan Stern <stern at rowland.harvard.edu> wrote:
> On Fri, 14 Jun 2013, Roger Quadros wrote:
>
>> >> hi
>> >> The following is my understanding.
>> >> I think for PHY initialization and shutdown part, it is generic for
>> >> other parts.
>> >> PHY initialization need to be called before hc_driver->reset is called.
>> >> I think it can be added at usb_add_hcd.
>> >> For PHY shutdown, it can be added at usb_remove_hcd.
>> >
>> > Yes, that should work.
>>
>> I don't think this will work with OMAP USB host controller when used in
>> Transceiver-less mode (e.g. HSIC). In this mode we need to release the HSIC
>> reset (mapped to PHY init), after the EHCI controller is up and running.
>>
>> On the other hand, in the PHY mode, the PHY needs to be initialized (brought out
>> of reset) before the EHCI controller starts.
>
> In other words, transceiver-less mode effectively works without using a
> software-controlled PHY?
>
>> This behavior might be different on other controllers. Generalization is good
>> as long as there is an override available for the controllers to handle the
>> PHY init/shutdown themselves.
>
> To avoid PHY init/shutdown, the platform driver should simply leave the
> generic PHY pointer (which has not yet been added to struct hcd) set to
> NULL.
>
So does it mean that i need add adtional usb_phy to struct hcd?
I think we can still make use of struct hcd->phy without add addtional members.
For OMAP transceiver-less mode, you can still use your own phy init/shutdown and
leave the hcd->phy to be NULL, and for the PHY mode, hcd->phy can be
set. It will
do ->init at usb_add_hcd and ->shutdown at usb_remove_hcd.

>
> Alan Stern
>



More information about the linux-arm-kernel mailing list