On Sat, Jul 15, 2023 at 12:09 AM Rob Herring <robh@xxxxxxxxxx> wrote: > > On Wed, Jul 12, 2023 at 03:28:52PM +0800, Kyle Tso wrote: > > Define a new optional property "capabilities" which is a child node > > under connector to contain multiple USB Power Delivery capabilities. > > Is multiple capabilities a USB spec thing or some Linux feature? I think > DT should only define the limits of the h/w capabilities and if the OS > wants to define multiple profiles within those limits that's its > problem. > It is a feature introduced in the commit 662a60102c12 ("usb: typec: Separate USB Power Delivery from USB Type-C") > > > > Define a new property with pattern (e.g. caps0, caps1) which is a child > > node under "capabilities". Each node contains PDO data of a selectable > > Power Delivery capability. > > > > Signed-off-by: Kyle Tso <kyletso@xxxxxxxxxx> > > --- > > .../bindings/connector/usb-connector.yaml | 44 +++++++++++++++++++ > > 1 file changed, 44 insertions(+) > > > > diff --git a/Documentation/devicetree/bindings/connector/usb-connector.yaml b/Documentation/devicetree/bindings/connector/usb-connector.yaml > > index 1c4d3eb87763..b8c96d0a127a 100644 > > --- a/Documentation/devicetree/bindings/connector/usb-connector.yaml > > +++ b/Documentation/devicetree/bindings/connector/usb-connector.yaml > > @@ -228,6 +228,50 @@ properties: > > SNK_READY for non-pd link. > > type: boolean > > > > + capabilities: > > + description: A child node to contain all the selectable USB Power Delivery capabilities. > > + type: object > > + > > + patternProperties: > > + "^caps[0-9]+$": > > caps-[0-9] is more the convention. > will update in v2 > > + description: Child nodes under "capabilities" node. Each node contains a selectable USB > > + Power Delivery capability. > > + type: object > > + > > + properties: > > + source-pdos: > > You are now defining the same property twice. You can use '$defs' to > define common properties and then reference them. Or put all the PD > properties into its own schema file and reference it. > will update in v2 > > + description: An array of u32 with each entry providing supported power > > + source data object(PDO), the detailed bit definitions of PDO can be found > > + in "Universal Serial Bus Power Delivery Specification" chapter 6.4.1.2 > > + Source_Capabilities Message, the order of each entry(PDO) should follow > > + the PD spec chapter 6.4.1. Required for power source and power dual role. > > + User can specify the source PDO array via PDO_FIXED/BATT/VAR/PPS_APDO() > > + defined in dt-bindings/usb/pd.h. > > + $ref: /schemas/types.yaml#/definitions/uint32-array > > + minItems: 1 > > + maxItems: 7 > > + > > + sink-pdos: > > + description: An array of u32 with each entry providing supported power sink > > + data object(PDO), the detailed bit definitions of PDO can be found in > > + "Universal Serial Bus Power Delivery Specification" chapter 6.4.1.3 > > + Sink Capabilities Message, the order of each entry(PDO) should follow the > > + PD spec chapter 6.4.1. Required for power sink and power dual role. User > > + can specify the sink PDO array via PDO_FIXED/BATT/VAR/PPS_APDO() defined > > + in dt-bindings/usb/pd.h. > > + $ref: /schemas/types.yaml#/definitions/uint32-array > > + minItems: 1 > > + maxItems: 7 > > + > > + op-sink-microwatt: > > + description: Sink required operating power in microwatt, if source can't > > + offer the power, Capability Mismatch is set. Required for power sink and > > + power dual role. > > + > > + additionalProperties: false > > + > > + additionalProperties: false > > + > > dependencies: > > sink-vdos-v1: [ 'sink-vdos' ] > > sink-vdos: [ 'sink-vdos-v1' ] > > -- > > 2.41.0.255.g8b1d071c50-goog > >