diff mbox series

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

Message ID 20201106165805.31534-2-amelie.delaunay@st.com
State Superseded
Headers show
Series STUSB1600 support on STM32MP15xx-DKx | expand

Commit Message

Amelie DELAUNAY Nov. 6, 2020, 4:58 p.m. UTC
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@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(+)

Comments

Amelie DELAUNAY Nov. 9, 2020, 3:54 p.m. UTC | #1
On 11/9/20 4:03 PM, Rob Herring wrote:
> On Fri, Nov 6, 2020 at 10:58 AM Amelie Delaunay <amelie.delaunay@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@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 ?

Regards,
Amelie
> 
> Rob
>
Amelie DELAUNAY Nov. 9, 2020, 4:10 p.m. UTC | #2
On 11/9/20 5:02 PM, Rob Herring wrote:
> On Mon, Nov 9, 2020 at 9:54 AM Amelie DELAUNAY <amelie.delaunay@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@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@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@5V.
> +      "3" refers to 3.0A@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
Rob Herring (Arm) Nov. 11, 2020, 8:25 p.m. UTC | #3
On Mon, Nov 09, 2020 at 05:10:23PM +0100, Amelie DELAUNAY wrote:
> 

> 

> On 11/9/20 5:02 PM, Rob Herring wrote:

> > On Mon, Nov 9, 2020 at 9:54 AM Amelie DELAUNAY <amelie.delaunay@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@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@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@5V.

> > +      "3" refers to 3.0A@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,

> };


Okay, then strings it is I guess.

Reviewed-by: Rob Herring <robh@kernel.org>
diff mbox series

Patch

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
+
   # The following are optional properties for "usb-c-connector" with power
   # delivery support.
   source-pdos:
@@ -192,6 +210,12 @@  allOf:
         type:
           const: micro
 
+anyOf:
+  - not:
+      required:
+        - typec-power-opmode
+        - new-source-frs-typec-current
+
 additionalProperties: true
 
 examples: