Hi Krzysztof,
On Jun 08 11:18, Krzysztof Kozlowski wrote:
On 07/06/2022 21:00, Prashant Malani wrote:
Introduce a binding which represents a component that can control the routing of USB Type-C data lines as well as address data line orientation (based on CC lines' orientation).
Signed-off-by: Prashant Malani pmalani@chromium.org
.../devicetree/bindings/usb/typec-switch.yaml | 76 +++++++++++++++++++ 1 file changed, 76 insertions(+) create mode 100644 Documentation/devicetree/bindings/usb/typec-switch.yaml
diff --git a/Documentation/devicetree/bindings/usb/typec-switch.yaml b/Documentation/devicetree/bindings/usb/typec-switch.yaml new file mode 100644 index 000000000000..60a600a63fef --- /dev/null +++ b/Documentation/devicetree/bindings/usb/typec-switch.yaml @@ -0,0 +1,76 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/usb/typec-switch.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml#
+title: USB Type-C Switch
+maintainers:
- Prashant Malani pmalani@chromium.org
+description:
- A USB Type-C switch represents a component which routes USB Type-C data
- lines to various protocol host controllers (e.g USB, VESA DisplayPort,
- Thunderbolt etc.) depending on which mode the Type-C port, port partner
- and cable are operating in. It can also modify lane routing based on
- the orientation of a connected Type-C peripheral.
+properties:
- compatible:
- items:
Single item, so no need for items.
I tried this initially, but dt_binding_check throws the following error: $ make dt_binding_check DT_SCHEMA_FILES=Documentation/devicetree/bindings/usb/typec-switch.yaml
LINT Documentation/devicetree/bindings CHKDT Documentation/devicetree/bindings/processed-schema.json /foo/linux/Documentation/devicetree/bindings/usb/typec-switch.yaml: properties:compatible: [{'enum': ['typec-switch']}] is not of type 'object', 'boolean' from schema $id: http://json-schema.org/draft-07/schema# SCHEMA Documentation/devicetree/bindings/processed-schema.json /foo/linux/Documentation/devicetree/bindings/usb/typec-switch.yaml: ignoring, error in schema: properties: compatible
- enum:
- typec-switch
- mode-switch:
- type: boolean
- description: Specify that this switch can handle alternate mode switching.
- orientation-switch:
- type: boolean
- description: Specify that this switch can handle orientation switching.
- ports:
- $ref: /schemas/graph.yaml#/properties/ports
- description: OF graph binding modelling data lines to the Type-C switch.
- properties:
port@0:
$ref: /schemas/graph.yaml#/properties/port
description: Link between the switch and a Type-C connector.
- required:
- port@0
+required:
- compatible
- ports
+anyOf:
- required:
- mode-switch
- required:
- orientation-switch
+additionalProperties: true
Why true? I see usb-connector has it from commit 6a0e321ea735 ("dt-bindings: Explicitly allow additional properties in common schemas") but that looks also weird - this is not a common schema, but a complete, generic one.
+examples:
- |
- anx7625 {
Generic node name.
Will fix in v2.
typecswitch {
I guess here as well, so "usb-switch"?
Same here, will fix with v2, along with 4-space indentation.
compatible = "typec-switch";
mode-switch;
orientation-switch;
ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
anx_ep: endpoint {
remote-endpoint = <&typec_controller>;
};
};
};
};
- };
Best regards, Krzysztof