summaryrefslogtreecommitdiff
path: root/Documentation/devicetree/bindings/usb/richtek,rt1711h.yaml
blob: ae611f7e57ca42a439a93946342c2421fca8a303 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/usb/richtek,rt1711h.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Richtek RT1711H Type-C Port Switch and Power Delivery controller

maintainers:
  - Gene Chen <gene_chen@richtek.com>

description: |
  The RT1711H is a USB Type-C controller that complies with the latest
  USB Type-C and PD standards. It does the USB Type-C detection including attach
  and orientation. It integrates the physical layer of the USB BMC power
  delivery protocol to allow up to 100W of power. The BMC PD block enables full
  support for alternative interfaces of the Type-C specification.

properties:
  compatible:
    enum:
      - richtek,rt1711h
      - richtek,rt1715
    description:
      RT1711H support PD20, RT1715 support PD30 except Fast Role Swap.

  reg:
    maxItems: 1

  interrupts:
    maxItems: 1

  vbus-supply:
    description: VBUS power supply

  wakeup-source:
    type: boolean

  connector:
    type: object
    $ref: /schemas/connector/usb-connector.yaml#
    description:
      Properties for usb c connector.

additionalProperties: false

required:
  - compatible
  - reg
  - connector
  - interrupts

examples:
  - |
    #include <dt-bindings/interrupt-controller/irq.h>
    #include <dt-bindings/usb/pd.h>
    i2c {
      #address-cells = <1>;
      #size-cells = <0>;

      rt1711h@4e {
        compatible = "richtek,rt1711h";
        reg = <0x4e>;
        interrupts-extended = <&gpio26 3 IRQ_TYPE_LEVEL_LOW>;
        wakeup-source;

        connector {
          compatible = "usb-c-connector";
          label = "USB-C";
          data-role = "dual";
          power-role = "dual";
          try-power-role = "sink";
          source-pdos = <PDO_FIXED(5000, 2000, PDO_FIXED_DUAL_ROLE | PDO_FIXED_DATA_SWAP)>;
          sink-pdos = <PDO_FIXED(5000, 2000, PDO_FIXED_DUAL_ROLE | PDO_FIXED_DATA_SWAP)>;
          op-sink-microwatt = <10000000>;

          ports {
            #address-cells = <1>;
            #size-cells = <0>;

            port@0 {
              reg = <0>;
              endpoint {
                remote-endpoint = <&usb_hs>;
              };
            };
            port@1 {
              reg = <1>;
              endpoint {
                remote-endpoint = <&usb_ss>;
              };
            };
            port@2 {
              reg = <2>;
              endpoint {
                remote-endpoint = <&dp_aux>;
              };
            };
          };
        };
      };
    };
...