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