xref: /freebsd/sys/contrib/device-tree/Bindings/usb/willsemi,wusb3801.yaml (revision c9ccf3a32da427475985b85d7df023ccfb138c27)
1*c9ccf3a3SEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2*c9ccf3a3SEmmanuel Vadot%YAML 1.2
3*c9ccf3a3SEmmanuel Vadot---
4*c9ccf3a3SEmmanuel Vadot$id: http://devicetree.org/schemas/usb/willsemi,wusb3801.yaml#
5*c9ccf3a3SEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6*c9ccf3a3SEmmanuel Vadot
7*c9ccf3a3SEmmanuel Vadottitle: WUSB3801 Type-C port controller DT bindings
8*c9ccf3a3SEmmanuel Vadot
9*c9ccf3a3SEmmanuel Vadotdescription:
10*c9ccf3a3SEmmanuel Vadot  The Will Semiconductor WUSB3801 is a USB Type-C port controller which
11*c9ccf3a3SEmmanuel Vadot  supports role and plug orientation detection using the CC pins. It is
12*c9ccf3a3SEmmanuel Vadot  compatible with the USB Type-C Cable and Connector Specification v1.2.
13*c9ccf3a3SEmmanuel Vadot
14*c9ccf3a3SEmmanuel Vadotmaintainers:
15*c9ccf3a3SEmmanuel Vadot  - Samuel Holland <samuel@sholland.org>
16*c9ccf3a3SEmmanuel Vadot
17*c9ccf3a3SEmmanuel Vadotproperties:
18*c9ccf3a3SEmmanuel Vadot  compatible:
19*c9ccf3a3SEmmanuel Vadot    enum:
20*c9ccf3a3SEmmanuel Vadot      - willsemi,wusb3801
21*c9ccf3a3SEmmanuel Vadot
22*c9ccf3a3SEmmanuel Vadot  reg:
23*c9ccf3a3SEmmanuel Vadot    maxItems: 1
24*c9ccf3a3SEmmanuel Vadot
25*c9ccf3a3SEmmanuel Vadot  interrupts:
26*c9ccf3a3SEmmanuel Vadot    maxItems: 1
27*c9ccf3a3SEmmanuel Vadot
28*c9ccf3a3SEmmanuel Vadot  connector:
29*c9ccf3a3SEmmanuel Vadot    type: object
30*c9ccf3a3SEmmanuel Vadot    $ref: ../connector/usb-connector.yaml#
31*c9ccf3a3SEmmanuel Vadot    description:
32*c9ccf3a3SEmmanuel Vadot      The managed USB Type-C connector. Since WUSB3801 does not support
33*c9ccf3a3SEmmanuel Vadot      Power Delivery, the node should have the "pd-disable" property.
34*c9ccf3a3SEmmanuel Vadot
35*c9ccf3a3SEmmanuel Vadot    properties:
36*c9ccf3a3SEmmanuel Vadot      compatible:
37*c9ccf3a3SEmmanuel Vadot        const: usb-c-connector
38*c9ccf3a3SEmmanuel Vadot
39*c9ccf3a3SEmmanuel Vadot    required:
40*c9ccf3a3SEmmanuel Vadot      - pd-disable
41*c9ccf3a3SEmmanuel Vadot
42*c9ccf3a3SEmmanuel Vadotrequired:
43*c9ccf3a3SEmmanuel Vadot  - compatible
44*c9ccf3a3SEmmanuel Vadot  - reg
45*c9ccf3a3SEmmanuel Vadot  - interrupts
46*c9ccf3a3SEmmanuel Vadot  - connector
47*c9ccf3a3SEmmanuel Vadot
48*c9ccf3a3SEmmanuel VadotadditionalProperties: false
49*c9ccf3a3SEmmanuel Vadot
50*c9ccf3a3SEmmanuel Vadotexamples:
51*c9ccf3a3SEmmanuel Vadot  - |
52*c9ccf3a3SEmmanuel Vadot    #include <dt-bindings/interrupt-controller/irq.h>
53*c9ccf3a3SEmmanuel Vadot
54*c9ccf3a3SEmmanuel Vadot    i2c {
55*c9ccf3a3SEmmanuel Vadot      #address-cells = <1>;
56*c9ccf3a3SEmmanuel Vadot      #size-cells = <0>;
57*c9ccf3a3SEmmanuel Vadot
58*c9ccf3a3SEmmanuel Vadot      tcpc@60 {
59*c9ccf3a3SEmmanuel Vadot        compatible = "willsemi,wusb3801";
60*c9ccf3a3SEmmanuel Vadot        reg = <0x60>;
61*c9ccf3a3SEmmanuel Vadot        interrupt-parent = <&gpio0>;
62*c9ccf3a3SEmmanuel Vadot        interrupts = <4 IRQ_TYPE_LEVEL_LOW>;
63*c9ccf3a3SEmmanuel Vadot
64*c9ccf3a3SEmmanuel Vadot        connector {
65*c9ccf3a3SEmmanuel Vadot          compatible = "usb-c-connector";
66*c9ccf3a3SEmmanuel Vadot          label = "USB-C";
67*c9ccf3a3SEmmanuel Vadot          vbus-supply = <&otg_switch>;
68*c9ccf3a3SEmmanuel Vadot          power-role = "dual";
69*c9ccf3a3SEmmanuel Vadot          try-power-role = "sink";
70*c9ccf3a3SEmmanuel Vadot          data-role = "dual";
71*c9ccf3a3SEmmanuel Vadot          typec-power-opmode = "default";
72*c9ccf3a3SEmmanuel Vadot          pd-disable;
73*c9ccf3a3SEmmanuel Vadot        };
74*c9ccf3a3SEmmanuel Vadot      };
75*c9ccf3a3SEmmanuel Vadot    };
76