xref: /linux/Documentation/devicetree/bindings/usb/richtek,rt1711h.yaml (revision fc2d791a43d3880496d1c729b8bd74d2c19cb4e7)
1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/usb/richtek,rt1711h.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Richtek RT1711H Type-C Port Switch and Power Delivery controller
8
9maintainers:
10  - Gene Chen <gene_chen@richtek.com>
11
12description: |
13  The RT1711H is a USB Type-C controller that complies with the latest
14  USB Type-C and PD standards. It does the USB Type-C detection including attach
15  and orientation. It integrates the physical layer of the USB BMC power
16  delivery protocol to allow up to 100W of power. The BMC PD block enables full
17  support for alternative interfaces of the Type-C specification.
18
19properties:
20  compatible:
21    oneOf:
22      - enum:
23          - richtek,rt1711h
24          - richtek,rt1715
25      - items:
26          - enum:
27              - hynetek,husb311
28          - const: richtek,rt1711h
29      - items:
30          - enum:
31              - etekmicro,et7304
32          - const: richtek,rt1715
33    description:
34      RT1711H support PD20, ET7304 and RT1715 support PD30 except Fast Role Swap.
35      HUSB311 is a rebrand of RT1711H which is pin and register compatible.
36
37  reg:
38    maxItems: 1
39
40  interrupts:
41    maxItems: 1
42
43  vbus-supply:
44    description: VBUS power supply
45
46  wakeup-source:
47    type: boolean
48
49  connector:
50    type: object
51    $ref: /schemas/connector/usb-connector.yaml#
52    description:
53      Properties for usb c connector.
54
55additionalProperties: false
56
57required:
58  - compatible
59  - reg
60  - connector
61  - interrupts
62
63examples:
64  - |
65    #include <dt-bindings/interrupt-controller/irq.h>
66    #include <dt-bindings/usb/pd.h>
67    i2c {
68      #address-cells = <1>;
69      #size-cells = <0>;
70
71      rt1711h@4e {
72        compatible = "richtek,rt1711h";
73        reg = <0x4e>;
74        interrupts-extended = <&gpio26 3 IRQ_TYPE_LEVEL_LOW>;
75        wakeup-source;
76
77        connector {
78          compatible = "usb-c-connector";
79          label = "USB-C";
80          data-role = "dual";
81          power-role = "dual";
82          try-power-role = "sink";
83          source-pdos = <PDO_FIXED(5000, 2000, PDO_FIXED_DUAL_ROLE | PDO_FIXED_DATA_SWAP)>;
84          sink-pdos = <PDO_FIXED(5000, 2000, PDO_FIXED_DUAL_ROLE | PDO_FIXED_DATA_SWAP)>;
85          op-sink-microwatt = <10000000>;
86
87          ports {
88            #address-cells = <1>;
89            #size-cells = <0>;
90
91            port@0 {
92              reg = <0>;
93              endpoint {
94                remote-endpoint = <&usb_hs>;
95              };
96            };
97            port@1 {
98              reg = <1>;
99              endpoint {
100                remote-endpoint = <&usb_ss>;
101              };
102            };
103            port@2 {
104              reg = <2>;
105              endpoint {
106                remote-endpoint = <&dp_aux>;
107              };
108            };
109          };
110        };
111      };
112    };
113...
114