diff mbox series

[RESEND,v2,1/6] dt-bindings: connector: add power-opmode optional property to usb-connector

Message ID 20200902075707.9052-2-amelie.delaunay@st.com (mailing list archive)
State New, archived
Headers show
Series Add STUSB160x Type-C port controller support | expand

Commit Message

Amelie Delaunay Sept. 2, 2020, 7:57 a.m. UTC
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@st.com>
---
Changes in v2:
- Add description for possible operation current values
---
 .../bindings/connector/usb-connector.yaml     | 20 +++++++++++++++++++
 1 file changed, 20 insertions(+)

Comments

Jun Li Sept. 23, 2020, 9:08 a.m. UTC | #1
Amelie Delaunay <amelie.delaunay@st.com> 于2020年9月2日周三 下午4:01写道:
>
> 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@st.com>
> ---
> Changes in v2:
> - Add description for possible operation current values
> ---
>  .../bindings/connector/usb-connector.yaml     | 20 +++++++++++++++++++
>  1 file changed, 20 insertions(+)
>
> diff --git a/Documentation/devicetree/bindings/connector/usb-connector.yaml b/Documentation/devicetree/bindings/connector/usb-connector.yaml
> index 9bd52e63c935..2fd85b9a7e1a 100644
> --- a/Documentation/devicetree/bindings/connector/usb-connector.yaml
> +++ b/Documentation/devicetree/bindings/connector/usb-connector.yaml
> @@ -88,6 +88,26 @@ properties:
>        - device
>        - dual
>
> +  power-opmode:
> +    description: Determines the power operation mode that the Type C connector
> +      will support and will advertise through CC pins.
> +      - "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.
> +      - "usb_power_delivery" when Power Delivery is supported, as defined in
> +        USB Power Delivery specification.

Why need "usb_power_delivery"? isn't this information can be implied by
existing properties like if "source-pdos" is present?

Li Jun
> +    allOf:
> +      - $ref: /schemas/types.yaml#definitions/string
> +    enum:
> +      - default
> +      - 1.5A
> +      - 3.0A
> +      - usb_power_delivery
> +
>    # The following are optional properties for "usb-c-connector" with power
>    # delivery support.
>    source-pdos:
> --
> 2.17.1
>
Amelie Delaunay Sept. 23, 2020, 9:31 a.m. UTC | #2
On 9/23/20 11:08 AM, Jun Li wrote:
> Amelie Delaunay <amelie.delaunay@st.com> 于2020年9月2日周三 下午4:01写道:
>>
>> 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@st.com>
>> ---
>> Changes in v2:
>> - Add description for possible operation current values
>> ---
>>   .../bindings/connector/usb-connector.yaml     | 20 +++++++++++++++++++
>>   1 file changed, 20 insertions(+)
>>
>> diff --git a/Documentation/devicetree/bindings/connector/usb-connector.yaml b/Documentation/devicetree/bindings/connector/usb-connector.yaml
>> index 9bd52e63c935..2fd85b9a7e1a 100644
>> --- a/Documentation/devicetree/bindings/connector/usb-connector.yaml
>> +++ b/Documentation/devicetree/bindings/connector/usb-connector.yaml
>> @@ -88,6 +88,26 @@ properties:
>>         - device
>>         - dual
>>
>> +  power-opmode:
>> +    description: Determines the power operation mode that the Type C connector
>> +      will support and will advertise through CC pins.
>> +      - "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.
>> +      - "usb_power_delivery" when Power Delivery is supported, as defined in
>> +        USB Power Delivery specification.
> 
> Why need "usb_power_delivery"? isn't this information can be implied by
> existing properties like if "source-pdos" is present?
> 

power-opmode is an optional property.
usb_power_delivery, as 3.0A, 1.5A or default here, only reflect the 
possible power operation mode you can set and that are understood by 
typec class:
static const char * const typec_pwr_opmodes[] = {
	[TYPEC_PWR_MODE_USB]	= "default",
	[TYPEC_PWR_MODE_1_5A]	= "1.5A",
	[TYPEC_PWR_MODE_3_0A]	= "3.0A",
	[TYPEC_PWR_MODE_PD]	= "usb_power_delivery",
};

But I guess that a Type-C controller with usb power delivery support 
won't use power-opmode property but rather source/sink-pdos.

power-opmode shows what will be advertised through CC pins. I can remove 
usb_power_delivery from the possible values, but what about the user who 
will add power-opmode property to configure his Type-C controller with 
USB power delivery support (sink and/or source by the way) ?
Should I restrict the use of power-opmode to non-USB power delivery 
Type-C controllers ?
Please advise.

Regards,
Amelie


> Li Jun
>> +    allOf:
>> +      - $ref: /schemas/types.yaml#definitions/string
>> +    enum:
>> +      - default
>> +      - 1.5A
>> +      - 3.0A
>> +      - usb_power_delivery
>> +
>>     # The following are optional properties for "usb-c-connector" with power
>>     # delivery support.
>>     source-pdos:
>> --
>> 2.17.1
>>
Jun Li Sept. 23, 2020, 10:33 a.m. UTC | #3
Amelie DELAUNAY <amelie.delaunay@st.com> 于2020年9月23日周三 下午5:31写道:
>
>
>
> On 9/23/20 11:08 AM, Jun Li wrote:
> > Amelie Delaunay <amelie.delaunay@st.com> 于2020年9月2日周三 下午4:01写道:
> >>
> >> 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@st.com>
> >> ---
> >> Changes in v2:
> >> - Add description for possible operation current values
> >> ---
> >>   .../bindings/connector/usb-connector.yaml     | 20 +++++++++++++++++++
> >>   1 file changed, 20 insertions(+)
> >>
> >> diff --git a/Documentation/devicetree/bindings/connector/usb-connector.yaml b/Documentation/devicetree/bindings/connector/usb-connector.yaml
> >> index 9bd52e63c935..2fd85b9a7e1a 100644
> >> --- a/Documentation/devicetree/bindings/connector/usb-connector.yaml
> >> +++ b/Documentation/devicetree/bindings/connector/usb-connector.yaml
> >> @@ -88,6 +88,26 @@ properties:
> >>         - device
> >>         - dual
> >>
> >> +  power-opmode:
> >> +    description: Determines the power operation mode that the Type C connector
> >> +      will support and will advertise through CC pins.
> >> +      - "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.
> >> +      - "usb_power_delivery" when Power Delivery is supported, as defined in
> >> +        USB Power Delivery specification.
> >
> > Why need "usb_power_delivery"? isn't this information can be implied by
> > existing properties like if "source-pdos" is present?
> >
>
> power-opmode is an optional property.
> usb_power_delivery, as 3.0A, 1.5A or default here, only reflect the
> possible power operation mode you can set and that are understood by
> typec class:
> static const char * const typec_pwr_opmodes[] = {
>         [TYPEC_PWR_MODE_USB]    = "default",
>         [TYPEC_PWR_MODE_1_5A]   = "1.5A",
>         [TYPEC_PWR_MODE_3_0A]   = "3.0A",
>         [TYPEC_PWR_MODE_PD]     = "usb_power_delivery",
> };
>
> But I guess that a Type-C controller with usb power delivery support
> won't use power-opmode property but rather source/sink-pdos.
>
> power-opmode shows what will be advertised through CC pins. I can remove
> usb_power_delivery from the possible values, but what about the user who
> will add power-opmode property to configure his Type-C controller with
> USB power delivery support (sink and/or source by the way) ?

With power delivery support, this information should be abstracted from
source-pdos.

> Should I restrict the use of power-opmode to non-USB power delivery
> Type-C controllers ?

I think Yes. only need it for non-PD(power source/DRP).

Li Jun
> Please advise.
>
> Regards,
> Amelie
>
>
> > Li Jun
> >> +    allOf:
> >> +      - $ref: /schemas/types.yaml#definitions/string
> >> +    enum:
> >> +      - default
> >> +      - 1.5A
> >> +      - 3.0A
> >> +      - usb_power_delivery
> >> +
> >>     # The following are optional properties for "usb-c-connector" with power
> >>     # delivery support.
> >>     source-pdos:
> >> --
> >> 2.17.1
> >>
diff mbox series

Patch

diff --git a/Documentation/devicetree/bindings/connector/usb-connector.yaml b/Documentation/devicetree/bindings/connector/usb-connector.yaml
index 9bd52e63c935..2fd85b9a7e1a 100644
--- a/Documentation/devicetree/bindings/connector/usb-connector.yaml
+++ b/Documentation/devicetree/bindings/connector/usb-connector.yaml
@@ -88,6 +88,26 @@  properties:
       - device
       - dual
 
+  power-opmode:
+    description: Determines the power operation mode that the Type C connector
+      will support and will advertise through CC pins.
+      - "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.
+      - "usb_power_delivery" when Power Delivery is supported, as defined in
+        USB Power Delivery specification.
+    allOf:
+      - $ref: /schemas/types.yaml#definitions/string
+    enum:
+      - default
+      - 1.5A
+      - 3.0A
+      - usb_power_delivery
+
   # The following are optional properties for "usb-c-connector" with power
   # delivery support.
   source-pdos: