Re: [PATCH v3 3/5] dt/bindings: Add a new property to DA8xx USB PHY

From: Alexandre Bailon
Date: Fri Nov 04 2016 - 07:07:28 EST


On 11/03/2016 06:50 PM, Kishon Vijay Abraham I wrote:
> Hi,
>
> On Thursday 03 November 2016 10:56 PM, Alexandre Bailon wrote:
>> On 11/03/2016 05:34 PM, Kishon Vijay Abraham I wrote:
>>> Hi,
>>>
>>> On Thursday 03 November 2016 08:56 PM, Alexandre Bailon wrote:
>>>> The USB PHY is able to operate in OTG, host or peripheral.
>>>> Some board may be wired to work act only as host or peripheral.
>>>> In such case, the dr_mode property of controller must be set to
>>>> host or peripheral. But doing that will also configure the PHY
>>>> in host or peripheral mode whereas OTG is able to detect which
>>>> role the USB controller should take.
>>>> The PHY's host or peripheral mode are actually only useful when
>>>> hardware doesn't allow OTG to detect it's role.
>>>>
>>>> Add the usb20_force_mode property to force the PHY to operate
>>>> in host or peripheral mode.
>>>
>>> I think we do just that if we populate dr_mode with host or peripheral. Why do
>>> we need another property to control dr_mode property?
>> Because the phy doesn't work correctly when it is in host or
>> device mode.
>
> That would be the same even with usb20_force_mode property. How does
> usb20_force_mode property help?
usb20_force_mode doesn't fix the issue. It only help when it is not
set, be letting the phy in otg mode.
I'm working on on workaround for the peripheral and host mode,
but again, I think it is better if we can keep the phy in otg mode and
doesn't use them.
>
> Thanks
> Kishon
>
>>>> When usb20_force_mode is used, dr_mode should also be configured
>>>> to host or peripheral.
>>>> The controller uses dr_mode to configure itself, but the phy use
>>>> it to get the mode to use to configure the PHY mode.
>>>>
>>>> Signed-off-by: Alexandre Bailon <abailon@xxxxxxxxxxxx>
>>>> ---
>>>> Documentation/devicetree/bindings/phy/phy-da8xx-usb.txt | 5 +++++
>>>> 1 file changed, 5 insertions(+)
>>>>
>>>> diff --git a/Documentation/devicetree/bindings/phy/phy-da8xx-usb.txt b/Documentation/devicetree/bindings/phy/phy-da8xx-usb.txt
>>>> index c26478b..9fc87fb 100644
>>>> --- a/Documentation/devicetree/bindings/phy/phy-da8xx-usb.txt
>>>> +++ b/Documentation/devicetree/bindings/phy/phy-da8xx-usb.txt
>>>> @@ -4,6 +4,11 @@ Required properties:
>>>> - compatible: must be "ti,da830-usb-phy".
>>>> - #phy-cells: must be 1.
>>>>
>>>> +Optional properties:
>>>> +- usb20-force-mode: Force the phy to operate in same mode than the USB OTG controller.
>>>> + It should only be defined if the hardware is not capable correctly
>>>> + detect the role of USB by using VBUS and ID pin.
>>>
>>> From what I understand from the previous patch, if VBUS sense and the session
>>> end comparator is enabled, the controller can work in host mode or device mode.
>> I but VBUS sense and and session end comparator only seems to work when
>> the phy is in otg mode.
>> In host mode, the phy stop to work after the first disconnect.
>> In device mode, the phy never detect a disconnect.
>> In otg mode, these issues go away.
>> I'm working on workaround for both of them but I think it is
>> better to keep the phy in otg when it is possible.
>>>
>>> Thanks
>>> Kishon
>>>
>> Thanks,
>> Alexandre
>>
Thanks,
Alexandre