[RESEND PATCH v3 1/4] dt-bindings: connector: add power-opmode optional property to usb-connector

Amelie DELAUNAY amelie.delaunay at st.com
Fri Oct 30 11:27:14 EDT 2020



On 10/30/20 3:29 PM, Rob Herring wrote:
> On Thu, Oct 29, 2020 at 11:49 AM Amelie DELAUNAY <amelie.delaunay at st.com> wrote:
>>
>>
>>
>> On 10/29/20 4:40 PM, Rob Herring wrote:
>>> On Thu, Oct 29, 2020 at 10:58:03AM +0100, Amelie Delaunay wrote:
>>>> Power operation mode may depends on hardware design, so, add the optional
>>>> property power-opmode for usb-c connector to select the power operation
>>>> mode capability.
>>>>
>>>> Signed-off-by: Amelie Delaunay <amelie.delaunay at st.com>
>>>> ---
>>>>    .../bindings/connector/usb-connector.yaml      | 18 ++++++++++++++++++
>>>>    1 file changed, 18 insertions(+)
>>>>
>>>> diff --git a/Documentation/devicetree/bindings/connector/usb-connector.yaml b/Documentation/devicetree/bindings/connector/usb-connector.yaml
>>>> index 728f82db073d..200d19c60fd5 100644
>>>> --- a/Documentation/devicetree/bindings/connector/usb-connector.yaml
>>>> +++ b/Documentation/devicetree/bindings/connector/usb-connector.yaml
>>>> @@ -93,6 +93,24 @@ properties:
>>>>          - device
>>>>          - dual
>>>>
>>>> +  power-opmode:
>>>
>>> I've acked this version:
>>>
>>> https://lore.kernel.org/r/20201020093627.256885-2-badhri@google.com
>>>
>>
>> frs is used for Fast Role Swap defined in USB PD spec.
>> I understand it allows to get the same information but I'm wondering why
>> the property name is limited to -frs- in this case. What about a
>> non-power delivery USB-C connector ?
> 
> I've got no idea. The folks that know USB-C and PD details need to get
> together and work all this out. To me, it looks like the same thing...
> 

It looks but...

The purpose of power-opmode property is to configure the USB-C 
controllers, especially the non-PD USB-C controllers to determine the 
power operation mode that the Type C connector will support and will 
advertise through CC pins when it has no power delivery support, 
whatever the power role: Sink, Source or Dual
The management of the property is the same that data-role and power-role 
properties, and done by USB Type-C Connector Class.

new-source-frs-typec-current specifies initial current capability of the 
new source when vSafe5V is applied during PD3.0 Fast Role Swap. So here, 
this property is not applied at usb-c controller configuration level, 
but during PD Fast Role Swap, so when the Sink become the Source.
Moreover, the related driver code says FRS can only be supported by DRP 
ports. So new-source-frs-typec-current property, in addition to being 
specific to PD, is also dedicated to DRP usb-c controller.
The property is managed by Type-C Port Controller Manager for PD.

> And it's not just this, but the stream of USB-C additions that trickle in.
> 
>> Moreover, power-opmode property support is already merged in typec class:
>> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/drivers/usb/typec/class.c?h=v5.10-rc1&id=12f3467b0d28369d3add7a0deb65fdac9b503c90
>> and stusb160x driver uses it :(
>>
>> So, do I need to modify stusb160x driver (and bindings) to take into
>> account this USB PD specific property?
> 
> If not documented, then it's not an ABI, so yes.

I have tried to document it since months ago
v1: https://lkml.org/lkml/2020/6/15/927
v2: https://lkml.org/lkml/2020/7/23/445 integrating your remarks
v2 RESENT: https://lkml.org/lkml/2020/9/2/174
v3: https://lkml.org/lkml/2020/9/24/306 integrated Li Jun remarks

Regards,
Amelie



More information about the linux-arm-kernel mailing list