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