Linux 6.9-rc1
[linux-2.6-microblaze.git] / Documentation / devicetree / bindings / usb / ti,hd3ss3220.yaml
1 # SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2 %YAML 1.2
3 ---
4 $id: http://devicetree.org/schemas/usb/ti,hd3ss3220.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
6
7 title: TI HD3SS3220 TypeC DRP Port Controller
8
9 maintainers:
10   - Biju Das <biju.das.jz@bp.renesas.com>
11
12 description: |-
13   HD3SS3220 is a USB SuperSpeed (SS) 2:1 mux with DRP port controller. The device provides Channel
14   Configuration (CC) logic and 5V VCONN sourcing for ecosystems implementing USB Type-C. The
15   HD3SS3220 can be configured as a Downstream Facing Port (DFP), Upstream Facing Port (UFP) or a
16   Dual Role Port (DRP) making it ideal for any application.
17
18 properties:
19   compatible:
20     const: ti,hd3ss3220
21
22   reg:
23     maxItems: 1
24
25   interrupts:
26     maxItems: 1
27
28   ports:
29     $ref: /schemas/graph.yaml#/properties/ports
30     description: OF graph bindings (specified in bindings/graph.txt) that model
31       SS data bus to the SS capable connector.
32
33     properties:
34       port@0:
35         $ref: /schemas/graph.yaml#/properties/port
36         description: Super Speed (SS) MUX inputs connected to SS capable connector.
37
38       port@1:
39         $ref: /schemas/graph.yaml#/properties/port
40         description: Output of 2:1 MUX connected to Super Speed (SS) data bus.
41
42     required:
43       - port@0
44       - port@1
45
46 required:
47   - compatible
48   - reg
49
50 additionalProperties: false
51
52 examples:
53   - |
54     i2c {
55         #address-cells = <1>;
56         #size-cells = <0>;
57
58         hd3ss3220@47 {
59                 compatible = "ti,hd3ss3220";
60                 reg = <0x47>;
61                 interrupt-parent = <&gpio6>;
62                 interrupts = <3>;
63
64                 ports {
65                         #address-cells = <1>;
66                         #size-cells = <0>;
67                         port@0 {
68                                 reg = <0>;
69                                 hd3ss3220_in_ep: endpoint {
70                                         remote-endpoint = <&ss_ep>;
71                                 };
72                         };
73                         port@1 {
74                                 reg = <1>;
75                                 hd3ss3220_out_ep: endpoint {
76                                         remote-endpoint = <&usb3_role_switch>;
77                                 };
78                         };
79                 };
80         };
81     };