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