1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2%YAML 1.2
3---
4$id: "http://devicetree.org/schemas/usb/mediatek,mt6360-tcpc.yaml#"
5$schema: "http://devicetree.org/meta-schemas/core.yaml#"
6
7title: Mediatek MT6360 Type-C Port Switch and Power Delivery controller DT bindings
8
9maintainers:
10  - ChiYuan Huang <cy_huang@richtek.com>
11
12description: |
13  Mediatek MT6360 is a multi-functional device. It integrates charger, ADC, flash, RGB indicators,
14  regulators (BUCKs/LDOs), and TypeC Port Switch with Power Delivery controller.
15  This document only describes MT6360 Type-C Port Switch and Power Delivery controller.
16
17properties:
18  compatible:
19    enum:
20      - mediatek,mt6360-tcpc
21
22  interrupts:
23    maxItems: 1
24
25  interrupt-names:
26    items:
27      - const: PD_IRQB
28
29  connector:
30    type: object
31    $ref: ../connector/usb-connector.yaml#
32    description:
33      Properties for usb c connector.
34
35additionalProperties: false
36
37required:
38  - compatible
39  - interrupts
40  - interrupt-names
41
42examples:
43  - |
44    #include <dt-bindings/interrupt-controller/irq.h>
45    #include <dt-bindings/usb/pd.h>
46    i2c0 {
47      #address-cells = <1>;
48      #size-cells = <0>;
49
50      mt6360@34 {
51        compatible = "mediatek,mt6360";
52        reg = <0x34>;
53        tcpc {
54          compatible = "mediatek,mt6360-tcpc";
55          interrupts-extended = <&gpio26 3 IRQ_TYPE_LEVEL_LOW>;
56          interrupt-names = "PD_IRQB";
57
58          connector {
59            compatible = "usb-c-connector";
60            label = "USB-C";
61            data-role = "dual";
62            power-role = "dual";
63            try-power-role = "sink";
64            source-pdos = <PDO_FIXED(5000, 1000, PDO_FIXED_DUAL_ROLE | PDO_FIXED_DATA_SWAP)>;
65            sink-pdos = <PDO_FIXED(5000, 2000, PDO_FIXED_DUAL_ROLE | PDO_FIXED_DATA_SWAP)>;
66            op-sink-microwatt = <10000000>;
67
68            ports {
69              #address-cells = <1>;
70              #size-cells = <0>;
71
72              port@0 {
73                reg = <0>;
74                endpoint {
75                  remote-endpoint = <&usb_hs>;
76                };
77              };
78              port@1 {
79                reg = <1>;
80                endpoint {
81                  remote-endpoint = <&usb_ss>;
82                };
83              };
84              port@2 {
85                reg = <2>;
86                endpoint {
87                  remote-endpoint = <&dp_aux>;
88                };
89              };
90            };
91          };
92        };
93      };
94    };
95...
96