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

From: Amelie DELAUNAY
Date: Mon Nov 09 2020 - 11:11:44 EST




On 11/9/20 5:02 PM, Rob Herring wrote:
On Mon, Nov 9, 2020 at 9:54 AM Amelie DELAUNAY <amelie.delaunay@xxxxxx> wrote:

On 11/9/20 4:03 PM, Rob Herring wrote:
On Fri, Nov 6, 2020 at 10:58 AM Amelie Delaunay <amelie.delaunay@xxxxxx> 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@xxxxxx>
---
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