2020-11-06 17:00:44

by Amelie Delaunay

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

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 <[email protected]>
---
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
+
# 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:
--
2.17.1


2020-11-09 15:06:34

by Rob Herring

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

On Fri, Nov 6, 2020 at 10:58 AM Amelie Delaunay <[email protected]> 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 <[email protected]>
> ---
> 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.

Rob

2020-11-09 15:59:05

by Amelie Delaunay

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

On 11/9/20 4:03 PM, Rob Herring wrote:
> On Fri, Nov 6, 2020 at 10:58 AM Amelie Delaunay <[email protected]> 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 <[email protected]>
>> ---
>> 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
>

2020-11-09 16:04:57

by Rob Herring

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

On Mon, Nov 9, 2020 at 9:54 AM Amelie DELAUNAY <[email protected]> wrote:
>
> On 11/9/20 4:03 PM, Rob Herring wrote:
> > On Fri, Nov 6, 2020 at 10:58 AM Amelie Delaunay <[email protected]> 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 <[email protected]>
> >> ---
> >> 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]

Rob

2020-11-09 16:13:31

by Amelie Delaunay

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



On 11/9/20 5:02 PM, Rob Herring wrote:
> On Mon, Nov 9, 2020 at 9:54 AM Amelie DELAUNAY <[email protected]> wrote:
>>
>> On 11/9/20 4:03 PM, Rob Herring wrote:
>>> On Fri, Nov 6, 2020 at 10:58 AM Amelie Delaunay <[email protected]> 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 <[email protected]>
>>>> ---
>>>> 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

2020-11-11 20:27:34

by Rob Herring

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

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 <[email protected]> wrote:
> > >
> > > On 11/9/20 4:03 PM, Rob Herring wrote:
> > > > On Fri, Nov 6, 2020 at 10:58 AM Amelie Delaunay <[email protected]> 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 <[email protected]>
> > > > > ---
> > > > > 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 <[email protected]>