xref: /freebsd/sys/contrib/device-tree/Bindings/usb/onnn,nb7vpq904m.yaml (revision 01950c46b8155250f64374fb72fc11faa44bf099)
1f126890aSEmmanuel Vadot# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
2f126890aSEmmanuel Vadot%YAML 1.2
3f126890aSEmmanuel Vadot---
4f126890aSEmmanuel Vadot$id: http://devicetree.org/schemas/usb/onnn,nb7vpq904m.yaml#
5f126890aSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6f126890aSEmmanuel Vadot
7f126890aSEmmanuel Vadottitle: ON Semiconductor Type-C DisplayPort ALT Mode Linear Redriver
8f126890aSEmmanuel Vadot
9f126890aSEmmanuel Vadotmaintainers:
10f126890aSEmmanuel Vadot  - Neil Armstrong <neil.armstrong@linaro.org>
11f126890aSEmmanuel Vadot
12f126890aSEmmanuel Vadotproperties:
13f126890aSEmmanuel Vadot  compatible:
14f126890aSEmmanuel Vadot    enum:
15f126890aSEmmanuel Vadot      - onnn,nb7vpq904m
16f126890aSEmmanuel Vadot
17f126890aSEmmanuel Vadot  reg:
18f126890aSEmmanuel Vadot    maxItems: 1
19f126890aSEmmanuel Vadot
20f126890aSEmmanuel Vadot  vcc-supply:
21f126890aSEmmanuel Vadot    description: power supply (1.8V)
22f126890aSEmmanuel Vadot
23f126890aSEmmanuel Vadot  enable-gpios: true
24*01950c46SEmmanuel Vadot  orientation-switch: true
25*01950c46SEmmanuel Vadot  retimer-switch: true
26f126890aSEmmanuel Vadot
27f126890aSEmmanuel Vadot  ports:
28f126890aSEmmanuel Vadot    $ref: /schemas/graph.yaml#/properties/ports
29f126890aSEmmanuel Vadot    properties:
30f126890aSEmmanuel Vadot      port@0:
31f126890aSEmmanuel Vadot        $ref: /schemas/graph.yaml#/properties/port
32f126890aSEmmanuel Vadot        description: Super Speed (SS) Output endpoint to the Type-C connector
33f126890aSEmmanuel Vadot
34f126890aSEmmanuel Vadot      port@1:
35f126890aSEmmanuel Vadot        $ref: /schemas/graph.yaml#/$defs/port-base
36f126890aSEmmanuel Vadot        description: Super Speed (SS) Input endpoint from the Super-Speed PHY
37f126890aSEmmanuel Vadot        unevaluatedProperties: false
38f126890aSEmmanuel Vadot
39f126890aSEmmanuel Vadot        properties:
40f126890aSEmmanuel Vadot          endpoint:
41f126890aSEmmanuel Vadot            $ref: /schemas/graph.yaml#/$defs/endpoint-base
42f126890aSEmmanuel Vadot            unevaluatedProperties: false
43f126890aSEmmanuel Vadot
44f126890aSEmmanuel Vadot            properties:
45f126890aSEmmanuel Vadot              data-lanes:
46f126890aSEmmanuel Vadot                $ref: /schemas/types.yaml#/definitions/uint32-array
47f126890aSEmmanuel Vadot                description: |
48f126890aSEmmanuel Vadot                  An array of physical data lane indexes. Position determines how
49f126890aSEmmanuel Vadot                  lanes are connected to the redriver, It is assumed the same order
50f126890aSEmmanuel Vadot                  is kept on the other side of the redriver.
51f126890aSEmmanuel Vadot                  Lane number represents the following
52f126890aSEmmanuel Vadot                  - 0 is RX2 lane
53f126890aSEmmanuel Vadot                  - 1 is TX2 lane
54f126890aSEmmanuel Vadot                  - 2 is TX1 lane
55f126890aSEmmanuel Vadot                  - 3 is RX1 lane
56f126890aSEmmanuel Vadot                  The position determines the physical port of the redriver, in the
57f126890aSEmmanuel Vadot                  order A, B, C & D.
58f126890aSEmmanuel Vadot                oneOf:
59f126890aSEmmanuel Vadot                  - items:
60f126890aSEmmanuel Vadot                      - const: 0
61f126890aSEmmanuel Vadot                      - const: 1
62f126890aSEmmanuel Vadot                      - const: 2
63f126890aSEmmanuel Vadot                      - const: 3
64f126890aSEmmanuel Vadot                    description: |
65f126890aSEmmanuel Vadot                      This is the lanes default layout
66f126890aSEmmanuel Vadot                      - Port A to RX2 lane
67f126890aSEmmanuel Vadot                      - Port B to TX2 lane
68f126890aSEmmanuel Vadot                      - Port C to TX1 lane
69f126890aSEmmanuel Vadot                      - Port D to RX1 lane
70f126890aSEmmanuel Vadot                  - items:
71f126890aSEmmanuel Vadot                      - const: 3
72f126890aSEmmanuel Vadot                      - const: 2
73f126890aSEmmanuel Vadot                      - const: 1
74f126890aSEmmanuel Vadot                      - const: 0
75f126890aSEmmanuel Vadot                    description: |
76f126890aSEmmanuel Vadot                      This is the USBRX2/USBTX2 and USBRX1/USBTX1 swapped lanes layout
77f126890aSEmmanuel Vadot                      - Port A to RX1 lane
78f126890aSEmmanuel Vadot                      - Port B to TX1 lane
79f126890aSEmmanuel Vadot                      - Port C to TX2 lane
80f126890aSEmmanuel Vadot                      - Port D to RX2 lane
81f126890aSEmmanuel Vadot
82f126890aSEmmanuel Vadot      port@2:
83f126890aSEmmanuel Vadot        $ref: /schemas/graph.yaml#/properties/port
84f126890aSEmmanuel Vadot        description:
85f126890aSEmmanuel Vadot          Sideband Use (SBU) AUX lines endpoint to the Type-C connector for the purpose of
86f126890aSEmmanuel Vadot          handling altmode muxing and orientation switching.
87f126890aSEmmanuel Vadot
88f126890aSEmmanuel Vadotrequired:
89f126890aSEmmanuel Vadot  - compatible
90f126890aSEmmanuel Vadot  - reg
91f126890aSEmmanuel Vadot
92*01950c46SEmmanuel VadotallOf:
93*01950c46SEmmanuel Vadot  - $ref: usb-switch.yaml#
94*01950c46SEmmanuel Vadot
95f126890aSEmmanuel VadotadditionalProperties: false
96f126890aSEmmanuel Vadot
97f126890aSEmmanuel Vadotexamples:
98f126890aSEmmanuel Vadot  - |
99f126890aSEmmanuel Vadot    i2c {
100f126890aSEmmanuel Vadot        #address-cells = <1>;
101f126890aSEmmanuel Vadot        #size-cells = <0>;
102f126890aSEmmanuel Vadot
103f126890aSEmmanuel Vadot        typec-mux@32 {
104f126890aSEmmanuel Vadot            compatible = "onnn,nb7vpq904m";
105f126890aSEmmanuel Vadot            reg = <0x32>;
106f126890aSEmmanuel Vadot
107f126890aSEmmanuel Vadot            vcc-supply = <&vreg_l15b_1p8>;
108f126890aSEmmanuel Vadot
109f126890aSEmmanuel Vadot            retimer-switch;
110f126890aSEmmanuel Vadot            orientation-switch;
111f126890aSEmmanuel Vadot
112f126890aSEmmanuel Vadot            ports {
113f126890aSEmmanuel Vadot                #address-cells = <1>;
114f126890aSEmmanuel Vadot                #size-cells = <0>;
115f126890aSEmmanuel Vadot
116f126890aSEmmanuel Vadot                port@0 {
117f126890aSEmmanuel Vadot                    reg = <0>;
118f126890aSEmmanuel Vadot                    usb_con_ss: endpoint {
119f126890aSEmmanuel Vadot                        remote-endpoint = <&typec_con_ss>;
120f126890aSEmmanuel Vadot                    };
121f126890aSEmmanuel Vadot                };
122f126890aSEmmanuel Vadot                port@1 {
123f126890aSEmmanuel Vadot                    reg = <1>;
124f126890aSEmmanuel Vadot                    phy_con_ss: endpoint {
125f126890aSEmmanuel Vadot                        remote-endpoint = <&usb_phy_ss>;
126f126890aSEmmanuel Vadot                        data-lanes = <3 2 1 0>;
127f126890aSEmmanuel Vadot                    };
128f126890aSEmmanuel Vadot                };
129f126890aSEmmanuel Vadot                port@2 {
130f126890aSEmmanuel Vadot                    reg = <2>;
131f126890aSEmmanuel Vadot                    usb_con_sbu: endpoint {
132f126890aSEmmanuel Vadot                        remote-endpoint = <&typec_dp_aux>;
133f126890aSEmmanuel Vadot                    };
134f126890aSEmmanuel Vadot                };
135f126890aSEmmanuel Vadot            };
136f126890aSEmmanuel Vadot        };
137f126890aSEmmanuel Vadot    };
138f126890aSEmmanuel Vadot...
139