[PATCH v5 1/5] dt-bindings: connector: add typec-power-opmode property to usb-connector

Amelie DELAUNAY amelie.delaunay at st.com
Mon Nov 9 11:10:23 EST 2020



On 11/9/20 5:02 PM, Rob Herring wrote:
> On Mon, Nov 9, 2020 at 9:54 AM Amelie DELAUNAY <amelie.delaunay at st.com> wrote:
>>
>> On 11/9/20 4:03 PM, Rob Herring wrote:
>>> On Fri, Nov 6, 2020 at 10:58 AM Amelie Delaunay <amelie.delaunay at st.com> wrote:
>>>>
>>>> Power operation mode may depends on hardware design, so, add the optional
>>>> property typec-power-opmode for usb-c connector to select the power
>>>> operation mode capability.
>>>>
>>>> Signed-off-by: Amelie Delaunay <amelie.delaunay at st.com>
>>>> ---
>>>> Hi Bahdri, Rob,
>>>>
>>>> I've added the exlusion with FRS property, but new FRS property name
>>>> should be use here so, be careful.
>>>>
>>>> ---
>>>>    .../bindings/connector/usb-connector.yaml     | 24 +++++++++++++++++++
>>>>    1 file changed, 24 insertions(+)
>>>>
>>>> diff --git a/Documentation/devicetree/bindings/connector/usb-connector.yaml b/Documentation/devicetree/bindings/connector/usb-connector.yaml
>>>> index 62781518aefc..a84464b3e1f2 100644
>>>> --- a/Documentation/devicetree/bindings/connector/usb-connector.yaml
>>>> +++ b/Documentation/devicetree/bindings/connector/usb-connector.yaml
>>>> @@ -93,6 +93,24 @@ properties:
>>>>          - device
>>>>          - dual
>>>>
>>>> +  typec-power-opmode:
>>>> +    description: Determines the power operation mode that the Type C connector
>>>> +      will support and will advertise through CC pins when it has no power
>>>> +      delivery support.
>>>> +      - "default" corresponds to default USB voltage and current defined by the
>>>> +        USB 2.0 and USB 3.2 specifications, 5V 500mA for USB 2.0 ports and
>>>> +        5V 900mA or 1500mA for USB 3.2 ports in single-lane or dual-lane
>>>> +        operation respectively.
>>>> +      - "1.5A" and "3.0A", 5V 1.5A and 5V 3.0A respectively, as defined in USB
>>>> +        Type-C Cable and Connector specification, when Power Delivery is not
>>>> +        supported.
>>>> +    allOf:
>>>> +      - $ref: /schemas/types.yaml#definitions/string
>>>> +    enum:
>>>> +      - default
>>>> +      - 1.5A
>>>> +      - 3.0A
>>>
>>> Use the enums here. Unless you want to define it as actual current as
>>> a numerical value.
>>
>> If I understand your point correctly, I think I should remove allOf here
>> and stick with what is done to describe power-role and data-role
>> property. Right ?
> 
> No, use the numerical values like FRS:
> 
> +      "1" refers to default USB power level as described by "Table
> 6-14 Fixed Supply PDO - Sink".
> +      "2" refers to 1.5A at 5V.
> +      "3" refers to 3.0A at 5V.
> +    $ref: /schemas/types.yaml#/definitions/uint32
> +    enum: [1, 2, 3]

But it changes the type-c class philosophy. There is already an API to 
convert string into enum, the same kind is used for data-role and 
power-role properties.
Moveover, FRS values doesn't fit with typec_pwr_opmode enum:
enum typec_pwr_opmode {
	TYPEC_PWR_MODE_USB,
	TYPEC_PWR_MODE_1_5A,
	TYPEC_PWR_MODE_3_0A,
	TYPEC_PWR_MODE_PD,
};

Regards
Amelie



More information about the linux-arm-kernel mailing list