xref: /freebsd/sys/contrib/device-tree/Bindings/usb/usb-switch.yaml (revision 01950c46b8155250f64374fb72fc11faa44bf099)
1*01950c46SEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2*01950c46SEmmanuel Vadot%YAML 1.2
3*01950c46SEmmanuel Vadot---
4*01950c46SEmmanuel Vadot$id: http://devicetree.org/schemas/usb/usb-switch.yaml#
5*01950c46SEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6*01950c46SEmmanuel Vadot
7*01950c46SEmmanuel Vadottitle: USB Orientation and Mode Switches Common Properties
8*01950c46SEmmanuel Vadot
9*01950c46SEmmanuel Vadotmaintainers:
10*01950c46SEmmanuel Vadot  - Greg Kroah-Hartman <gregkh@linuxfoundation.org>
11*01950c46SEmmanuel Vadot
12*01950c46SEmmanuel Vadotdescription:
13*01950c46SEmmanuel Vadot  Common properties for devices handling USB mode and orientation switching.
14*01950c46SEmmanuel Vadot
15*01950c46SEmmanuel Vadotproperties:
16*01950c46SEmmanuel Vadot  mode-switch:
17*01950c46SEmmanuel Vadot    description: Possible handler of altmode switching
18*01950c46SEmmanuel Vadot    type: boolean
19*01950c46SEmmanuel Vadot
20*01950c46SEmmanuel Vadot  orientation-switch:
21*01950c46SEmmanuel Vadot    description: Possible handler of orientation switching
22*01950c46SEmmanuel Vadot    type: boolean
23*01950c46SEmmanuel Vadot
24*01950c46SEmmanuel Vadot  retimer-switch:
25*01950c46SEmmanuel Vadot    description: Possible handler of SuperSpeed signals retiming
26*01950c46SEmmanuel Vadot    type: boolean
27*01950c46SEmmanuel Vadot
28*01950c46SEmmanuel Vadot  port:
29*01950c46SEmmanuel Vadot    $ref: /schemas/graph.yaml#/properties/port
30*01950c46SEmmanuel Vadot    description:
31*01950c46SEmmanuel Vadot      A port node to link the device to a TypeC controller for the purpose of
32*01950c46SEmmanuel Vadot      handling altmode muxing and orientation switching.
33*01950c46SEmmanuel Vadot
34*01950c46SEmmanuel Vadot  ports:
35*01950c46SEmmanuel Vadot    $ref: /schemas/graph.yaml#/properties/ports
36*01950c46SEmmanuel Vadot    properties:
37*01950c46SEmmanuel Vadot      port@0:
38*01950c46SEmmanuel Vadot        $ref: /schemas/graph.yaml#/properties/port
39*01950c46SEmmanuel Vadot        description:
40*01950c46SEmmanuel Vadot          Super Speed (SS) Output endpoint to the Type-C connector
41*01950c46SEmmanuel Vadot
42*01950c46SEmmanuel Vadot      port@1:
43*01950c46SEmmanuel Vadot        $ref: /schemas/graph.yaml#/$defs/port-base
44*01950c46SEmmanuel Vadot        description:
45*01950c46SEmmanuel Vadot          Super Speed (SS) Input endpoint from the Super-Speed PHY
46*01950c46SEmmanuel Vadot        unevaluatedProperties: false
47*01950c46SEmmanuel Vadot
48*01950c46SEmmanuel Vadot        properties:
49*01950c46SEmmanuel Vadot          endpoint:
50*01950c46SEmmanuel Vadot            $ref: /schemas/graph.yaml#/$defs/endpoint-base
51*01950c46SEmmanuel Vadot            unevaluatedProperties: false
52*01950c46SEmmanuel Vadot            properties:
53*01950c46SEmmanuel Vadot              data-lanes:
54*01950c46SEmmanuel Vadot                $ref: /schemas/types.yaml#/definitions/uint32-array
55*01950c46SEmmanuel Vadot                minItems: 1
56*01950c46SEmmanuel Vadot                maxItems: 8
57*01950c46SEmmanuel Vadot                uniqueItems: true
58*01950c46SEmmanuel Vadot                items:
59*01950c46SEmmanuel Vadot                  maximum: 8
60*01950c46SEmmanuel Vadot
61*01950c46SEmmanuel VadotoneOf:
62*01950c46SEmmanuel Vadot  - required:
63*01950c46SEmmanuel Vadot      - port
64*01950c46SEmmanuel Vadot  - required:
65*01950c46SEmmanuel Vadot      - ports
66*01950c46SEmmanuel Vadot
67*01950c46SEmmanuel VadotadditionalProperties: true
68