On Mon Jan 15, 2024 at 10:29 AM CET, Krzysztof Kozlowski wrote: > Several bindings implement parts of Type-C USB orientation and mode > switching, and retiming. Keep definition of such properties in one > place, new usb-switch schema, to avoid duplicate defines. > > Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@xxxxxxxxxx> > --- > .../devicetree/bindings/usb/fcs,fsa4480.yaml | 12 ++-- > .../devicetree/bindings/usb/gpio-sbu-mux.yaml | 12 ++-- > .../devicetree/bindings/usb/nxp,ptn36502.yaml | 12 ++-- > .../bindings/usb/onnn,nb7vpq904m.yaml | 13 ++-- > .../bindings/usb/qcom,wcd939x-usbss.yaml | 12 ++-- > .../devicetree/bindings/usb/usb-switch.yaml | 68 +++++++++++++++++++ > 6 files changed, 93 insertions(+), 36 deletions(-) > create mode 100644 Documentation/devicetree/bindings/usb/usb-switch.yaml > > diff --git a/Documentation/devicetree/bindings/usb/fcs,fsa4480.yaml b/Documentation/devicetree/bindings/usb/fcs,fsa4480.yaml > index f9410eb76a62..8b25b9a01ced 100644 > --- a/Documentation/devicetree/bindings/usb/fcs,fsa4480.yaml > +++ b/Documentation/devicetree/bindings/usb/fcs,fsa4480.yaml > @@ -27,13 +27,8 @@ properties: > vcc-supply: > description: power supply (2.7V-5.5V) > > - mode-switch: > - description: Flag the port as possible handle of altmode switching > - type: boolean > - > - orientation-switch: > - description: Flag the port as possible handler of orientation switching > - type: boolean > + mode-switch: true > + orientation-switch: true > > port: > $ref: /schemas/graph.yaml#/$defs/port-base > @@ -79,6 +74,9 @@ required: > - reg > - port > > +allOf: > + - $ref: usb-switch.yaml# > + > additionalProperties: false > > examples: > diff --git a/Documentation/devicetree/bindings/usb/gpio-sbu-mux.yaml b/Documentation/devicetree/bindings/usb/gpio-sbu-mux.yaml > index d3b2b666ec2a..88e1607cf053 100644 > --- a/Documentation/devicetree/bindings/usb/gpio-sbu-mux.yaml > +++ b/Documentation/devicetree/bindings/usb/gpio-sbu-mux.yaml > @@ -33,13 +33,8 @@ properties: > vcc-supply: > description: power supply > > - mode-switch: > - description: Flag the port as possible handle of altmode switching > - type: boolean > - > - orientation-switch: > - description: Flag the port as possible handler of orientation switching > - type: boolean > + mode-switch: true > + orientation-switch: true > > port: > $ref: /schemas/graph.yaml#/properties/port > @@ -54,6 +49,9 @@ required: > - orientation-switch > - port > > +allOf: > + - $ref: usb-switch.yaml# > + > additionalProperties: false > > examples: > diff --git a/Documentation/devicetree/bindings/usb/nxp,ptn36502.yaml b/Documentation/devicetree/bindings/usb/nxp,ptn36502.yaml > index eee548ac1abe..d805dde80796 100644 > --- a/Documentation/devicetree/bindings/usb/nxp,ptn36502.yaml > +++ b/Documentation/devicetree/bindings/usb/nxp,ptn36502.yaml > @@ -20,13 +20,8 @@ properties: > vdd18-supply: > description: Power supply for VDD18 pin > > - retimer-switch: > - description: Flag the port as possible handle of SuperSpeed signals retiming > - type: boolean > - > - orientation-switch: > - description: Flag the port as possible handler of orientation switching > - type: boolean > + orientation-switch: true > + retimer-switch: true > > ports: > $ref: /schemas/graph.yaml#/properties/ports > @@ -49,6 +44,9 @@ required: > - compatible > - reg > > +allOf: > + - $ref: usb-switch.yaml# > + > additionalProperties: false > > examples: > diff --git a/Documentation/devicetree/bindings/usb/onnn,nb7vpq904m.yaml b/Documentation/devicetree/bindings/usb/onnn,nb7vpq904m.yaml > index c0201da002f6..589914d22bf2 100644 > --- a/Documentation/devicetree/bindings/usb/onnn,nb7vpq904m.yaml > +++ b/Documentation/devicetree/bindings/usb/onnn,nb7vpq904m.yaml > @@ -21,14 +21,8 @@ properties: > description: power supply (1.8V) > > enable-gpios: true > - > - retimer-switch: > - description: Flag the port as possible handle of SuperSpeed signals retiming > - type: boolean > - > - orientation-switch: > - description: Flag the port as possible handler of orientation switching > - type: boolean > + orientation-switch: true > + retimer-switch: true > > ports: > $ref: /schemas/graph.yaml#/properties/ports > @@ -95,6 +89,9 @@ required: > - compatible > - reg > > +allOf: > + - $ref: usb-switch.yaml# > + > additionalProperties: false > > examples: > diff --git a/Documentation/devicetree/bindings/usb/qcom,wcd939x-usbss.yaml b/Documentation/devicetree/bindings/usb/qcom,wcd939x-usbss.yaml > index 7ddfd3313a18..96346723f3e9 100644 > --- a/Documentation/devicetree/bindings/usb/qcom,wcd939x-usbss.yaml > +++ b/Documentation/devicetree/bindings/usb/qcom,wcd939x-usbss.yaml > @@ -35,13 +35,8 @@ properties: > vdd-supply: > description: USBSS VDD power supply > > - mode-switch: > - description: Flag the port as possible handle of altmode switching > - type: boolean > - > - orientation-switch: > - description: Flag the port as possible handler of orientation switching > - type: boolean > + mode-switch: true > + orientation-switch: true > > ports: > $ref: /schemas/graph.yaml#/properties/ports > @@ -63,6 +58,9 @@ required: > - reg > - ports > > +allOf: > + - $ref: usb-switch.yaml# > + > additionalProperties: false > > examples: > diff --git a/Documentation/devicetree/bindings/usb/usb-switch.yaml b/Documentation/devicetree/bindings/usb/usb-switch.yaml > new file mode 100644 > index 000000000000..0d0b60234d1f > --- /dev/null > +++ b/Documentation/devicetree/bindings/usb/usb-switch.yaml > @@ -0,0 +1,68 @@ > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) > +%YAML 1.2 > +--- > +$id: http://devicetree.org/schemas/usb/usb-switch.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: USB Orientation and Mode Switches Common Properties > + > +maintainers: > + - Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx> > + > +description: > + Common properties for devices handling USB mode and orientation switching. > + > +properties: > + mode-switch: > + description: Possible handle of altmode switching handle -> handler > + type: boolean > + > + orientation-switch: > + description: Possible handler of orientation switching > + type: boolean > + > + retimer-switch: > + description: Possible handle of SuperSpeed signals retiming handle -> handler > + type: boolean > + > + port: > + $ref: /schemas/graph.yaml#/properties/port > + description: > + A port node to link the device to a TypeC controller for the purpose of > + handling altmode muxing and orientation switching. > + > + ports: > + $ref: /schemas/graph.yaml#/properties/ports > + properties: > + port@0: > + $ref: /schemas/graph.yaml#/properties/port > + description: > + Super Speed (SS) Output endpoint to the Type-C connector > + > + port@1: > + $ref: /schemas/graph.yaml#/$defs/port-base > + description: > + Super Speed (SS) Input endpoint from the Super-Speed PHY > + unevaluatedProperties: false > + > + properties: > + endpoint: > + $ref: /schemas/graph.yaml#/$defs/endpoint-base > + # additionalProperties: true Don't think this should still be here? The rest looks sane to the extent I know dt bindings. Regards Luca > + unevaluatedProperties: false > + properties: > + data-lanes: > + $ref: /schemas/types.yaml#/definitions/uint32-array > + minItems: 1 > + maxItems: 8 > + uniqueItems: true > + items: > + maximum: 8 > + > +oneOf: > + - required: > + - port > + - required: > + - ports > + > +additionalProperties: true