lkml.org 
[lkml]   [2018]   [Sep]   [9]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
SubjectRe: [PATCH] usb: typec: don't disable sink or source on initialization
Date
From
On 2018-09-09 08:20, Guenter Roeck wrote:
> On 09/09/2018 07:08 AM, Angus Ainslie wrote:
>> Hi Guenter
>>
>> On 2018-09-07 06:55, Guenter Roeck wrote:
>>> On 09/07/2018 03:34 AM, Heikki Krogerus wrote:
>>>> +Guenter
>>>>
>>>> On Thu, Sep 06, 2018 at 01:26:44PM -0600, Angus Ainslie (Purism)
>>>> wrote:
>>>>> If the board is being powered by USB disabling the source and sink
>>>>> can remove power from the board. Default to source and sink
>>>>> enabled.
>>>>>
>>>
>>> Seems to me that might violate the specification, and cause trouble
>>> for systems
>>> where vbus has to be off initially. It may be better to provide this
>>> kind of
>>> information as configuration parameter instead of imposing it on
>>> everyone.
>>>
>>
>> It felt like it would not be the correct thing to do either. I've
>> tried re-arranging the code in tcpci.c to enable the sink before
>> disabling the source but the only way I found to not disable the power
>> was by setting both of those to true.
>>
>> What about adding some device tree entries for the initial vbus state
>> and default to false if they are not present ?
>>
>> init-vbus-source and init-vbus-charge ?
>>
>
> Yes, I think we should do something along that line. Another question
> is
> if we could or should optionally pull the current state from the low
> level
> driver, but that may be secondary.
>

I thought of trying to do that but from reading the "PTN5110N PD PHY
application programming guide" there didn't seem to be a direct way to
read those parameters.

> Thanks,
> Guenter
>
>> Angus
>>
>>> Guenter
>>>
>>>>> Signed-off-by: Angus Ainslie (Purism) <angus@akkea.ca>
>>>>> ---
>>>>>   drivers/usb/typec/tcpm.c | 8 +++++---
>>>>>   1 file changed, 5 insertions(+), 3 deletions(-)
>>>>>
>>>>> diff --git a/drivers/usb/typec/tcpm.c b/drivers/usb/typec/tcpm.c
>>>>> index ca7bedb46f7f..a1b819cf31da 100644
>>>>> --- a/drivers/usb/typec/tcpm.c
>>>>> +++ b/drivers/usb/typec/tcpm.c
>>>>> @@ -2462,9 +2462,11 @@ static int tcpm_init_vbus(struct tcpm_port
>>>>> *port)
>>>>>   {
>>>>>       int ret;
>>>>>   -    ret = port->tcpc->set_vbus(port->tcpc, false, false);
>>>>> -    port->vbus_source = false;
>>>>> -    port->vbus_charge = false;
>>>>> +    /* default to source and sink enabled in case USB is our only
>>>>> power
>>>>> +     * source */
>>>
>>> I am personally in favor of standard multi-line comments.
>>>
>>>>> +    ret = port->tcpc->set_vbus(port->tcpc, true, true);
>>>>> +    port->vbus_source = true;
>>>>> +    port->vbus_charge = true;
>>>>>       return ret;
>>>>>   }
>>>>
>>
>>

\
 
 \ /
  Last update: 2018-09-09 16:37    [W:0.082 / U:0.060 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site