xref: /linux/Documentation/devicetree/bindings/usb/onnn,nb7vpq904m.yaml (revision 79790b6818e96c58fe2bffee1b418c16e64e7b80)
1771e0e37SNeil Armstrong# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
2771e0e37SNeil Armstrong%YAML 1.2
3771e0e37SNeil Armstrong---
4771e0e37SNeil Armstrong$id: http://devicetree.org/schemas/usb/onnn,nb7vpq904m.yaml#
5771e0e37SNeil Armstrong$schema: http://devicetree.org/meta-schemas/core.yaml#
6771e0e37SNeil Armstrong
7771e0e37SNeil Armstrongtitle: ON Semiconductor Type-C DisplayPort ALT Mode Linear Redriver
8771e0e37SNeil Armstrong
9771e0e37SNeil Armstrongmaintainers:
10771e0e37SNeil Armstrong  - Neil Armstrong <neil.armstrong@linaro.org>
11771e0e37SNeil Armstrong
12771e0e37SNeil Armstrongproperties:
13771e0e37SNeil Armstrong  compatible:
14771e0e37SNeil Armstrong    enum:
15771e0e37SNeil Armstrong      - onnn,nb7vpq904m
16771e0e37SNeil Armstrong
17771e0e37SNeil Armstrong  reg:
18771e0e37SNeil Armstrong    maxItems: 1
19771e0e37SNeil Armstrong
20771e0e37SNeil Armstrong  vcc-supply:
21771e0e37SNeil Armstrong    description: power supply (1.8V)
22771e0e37SNeil Armstrong
23771e0e37SNeil Armstrong  enable-gpios: true
24*fd2a052cSKrzysztof Kozlowski  orientation-switch: true
25*fd2a052cSKrzysztof Kozlowski  retimer-switch: true
26771e0e37SNeil Armstrong
27771e0e37SNeil Armstrong  ports:
28771e0e37SNeil Armstrong    $ref: /schemas/graph.yaml#/properties/ports
29771e0e37SNeil Armstrong    properties:
30771e0e37SNeil Armstrong      port@0:
31771e0e37SNeil Armstrong        $ref: /schemas/graph.yaml#/properties/port
32771e0e37SNeil Armstrong        description: Super Speed (SS) Output endpoint to the Type-C connector
33771e0e37SNeil Armstrong
34771e0e37SNeil Armstrong      port@1:
35771e0e37SNeil Armstrong        $ref: /schemas/graph.yaml#/$defs/port-base
36771e0e37SNeil Armstrong        description: Super Speed (SS) Input endpoint from the Super-Speed PHY
37771e0e37SNeil Armstrong        unevaluatedProperties: false
38771e0e37SNeil Armstrong
39771e0e37SNeil Armstrong        properties:
40771e0e37SNeil Armstrong          endpoint:
41771e0e37SNeil Armstrong            $ref: /schemas/graph.yaml#/$defs/endpoint-base
42771e0e37SNeil Armstrong            unevaluatedProperties: false
43771e0e37SNeil Armstrong
44771e0e37SNeil Armstrong            properties:
45771e0e37SNeil Armstrong              data-lanes:
46771e0e37SNeil Armstrong                $ref: /schemas/types.yaml#/definitions/uint32-array
47771e0e37SNeil Armstrong                description: |
48771e0e37SNeil Armstrong                  An array of physical data lane indexes. Position determines how
49771e0e37SNeil Armstrong                  lanes are connected to the redriver, It is assumed the same order
50771e0e37SNeil Armstrong                  is kept on the other side of the redriver.
51771e0e37SNeil Armstrong                  Lane number represents the following
52771e0e37SNeil Armstrong                  - 0 is RX2 lane
53771e0e37SNeil Armstrong                  - 1 is TX2 lane
54771e0e37SNeil Armstrong                  - 2 is TX1 lane
55771e0e37SNeil Armstrong                  - 3 is RX1 lane
56771e0e37SNeil Armstrong                  The position determines the physical port of the redriver, in the
57771e0e37SNeil Armstrong                  order A, B, C & D.
58771e0e37SNeil Armstrong                oneOf:
59771e0e37SNeil Armstrong                  - items:
60771e0e37SNeil Armstrong                      - const: 0
61771e0e37SNeil Armstrong                      - const: 1
62771e0e37SNeil Armstrong                      - const: 2
63771e0e37SNeil Armstrong                      - const: 3
64771e0e37SNeil Armstrong                    description: |
65771e0e37SNeil Armstrong                      This is the lanes default layout
66771e0e37SNeil Armstrong                      - Port A to RX2 lane
67771e0e37SNeil Armstrong                      - Port B to TX2 lane
68771e0e37SNeil Armstrong                      - Port C to TX1 lane
69771e0e37SNeil Armstrong                      - Port D to RX1 lane
70771e0e37SNeil Armstrong                  - items:
71771e0e37SNeil Armstrong                      - const: 3
72771e0e37SNeil Armstrong                      - const: 2
73771e0e37SNeil Armstrong                      - const: 1
74771e0e37SNeil Armstrong                      - const: 0
75771e0e37SNeil Armstrong                    description: |
76771e0e37SNeil Armstrong                      This is the USBRX2/USBTX2 and USBRX1/USBTX1 swapped lanes layout
77771e0e37SNeil Armstrong                      - Port A to RX1 lane
78771e0e37SNeil Armstrong                      - Port B to TX1 lane
79771e0e37SNeil Armstrong                      - Port C to TX2 lane
80771e0e37SNeil Armstrong                      - Port D to RX2 lane
81771e0e37SNeil Armstrong
82771e0e37SNeil Armstrong      port@2:
83771e0e37SNeil Armstrong        $ref: /schemas/graph.yaml#/properties/port
84771e0e37SNeil Armstrong        description:
85771e0e37SNeil Armstrong          Sideband Use (SBU) AUX lines endpoint to the Type-C connector for the purpose of
86771e0e37SNeil Armstrong          handling altmode muxing and orientation switching.
87771e0e37SNeil Armstrong
88771e0e37SNeil Armstrongrequired:
89771e0e37SNeil Armstrong  - compatible
90771e0e37SNeil Armstrong  - reg
91771e0e37SNeil Armstrong
92*fd2a052cSKrzysztof KozlowskiallOf:
93*fd2a052cSKrzysztof Kozlowski  - $ref: usb-switch.yaml#
94*fd2a052cSKrzysztof Kozlowski
95771e0e37SNeil ArmstrongadditionalProperties: false
96771e0e37SNeil Armstrong
97771e0e37SNeil Armstrongexamples:
98771e0e37SNeil Armstrong  - |
99771e0e37SNeil Armstrong    i2c {
100771e0e37SNeil Armstrong        #address-cells = <1>;
101771e0e37SNeil Armstrong        #size-cells = <0>;
102771e0e37SNeil Armstrong
103771e0e37SNeil Armstrong        typec-mux@32 {
104771e0e37SNeil Armstrong            compatible = "onnn,nb7vpq904m";
105771e0e37SNeil Armstrong            reg = <0x32>;
106771e0e37SNeil Armstrong
107771e0e37SNeil Armstrong            vcc-supply = <&vreg_l15b_1p8>;
108771e0e37SNeil Armstrong
109771e0e37SNeil Armstrong            retimer-switch;
110771e0e37SNeil Armstrong            orientation-switch;
111771e0e37SNeil Armstrong
112771e0e37SNeil Armstrong            ports {
113771e0e37SNeil Armstrong                #address-cells = <1>;
114771e0e37SNeil Armstrong                #size-cells = <0>;
115771e0e37SNeil Armstrong
116771e0e37SNeil Armstrong                port@0 {
117771e0e37SNeil Armstrong                    reg = <0>;
118771e0e37SNeil Armstrong                    usb_con_ss: endpoint {
119771e0e37SNeil Armstrong                        remote-endpoint = <&typec_con_ss>;
120771e0e37SNeil Armstrong                    };
121771e0e37SNeil Armstrong                };
122771e0e37SNeil Armstrong                port@1 {
123771e0e37SNeil Armstrong                    reg = <1>;
124771e0e37SNeil Armstrong                    phy_con_ss: endpoint {
125771e0e37SNeil Armstrong                        remote-endpoint = <&usb_phy_ss>;
126771e0e37SNeil Armstrong                        data-lanes = <3 2 1 0>;
127771e0e37SNeil Armstrong                    };
128771e0e37SNeil Armstrong                };
129771e0e37SNeil Armstrong                port@2 {
130771e0e37SNeil Armstrong                    reg = <2>;
131771e0e37SNeil Armstrong                    usb_con_sbu: endpoint {
132771e0e37SNeil Armstrong                        remote-endpoint = <&typec_dp_aux>;
133771e0e37SNeil Armstrong                    };
134771e0e37SNeil Armstrong                };
135771e0e37SNeil Armstrong            };
136771e0e37SNeil Armstrong        };
137771e0e37SNeil Armstrong    };
138771e0e37SNeil Armstrong...
139