# SPDX-License-Identifier: GPL-2.0
%YAML 1.2
---
$id: http://devicetree.org/schemas/usb/fcs,fusb302.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Fairchild FUSB302 Type-C Port controller

maintainers:
  - Rob Herring <robh@kernel.org>

properties:
  compatible:
    const: fcs,fusb302

  reg:
    maxItems: 1

  interrupts:
    maxItems: 1

  vbus-supply:
    description: VBUS power supply

  connector:
    type: object
    $ref: /schemas/connector/usb-connector.yaml#
    unevaluatedProperties: false

required:
  - compatible
  - reg
  - interrupts
  - vbus-supply
  - connector

additionalProperties: false

examples:
  - |
    #include <dt-bindings/interrupt-controller/irq.h>
    #include <dt-bindings/usb/pd.h>

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

      typec-portc@54 {
        compatible = "fcs,fusb302";
        reg = <0x54>;
        interrupt-parent = <&nmi_intc>;
        interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
        vbus-supply = <&vbus_typec>;

        connector {
          compatible = "usb-c-connector";
          label = "USB-C";
          power-role = "dual";
          try-power-role = "sink";
          source-pdos = <PDO_FIXED(5000, 3000, PDO_FIXED_USB_COMM)>;
          sink-pdos = <PDO_FIXED(5000, 3000, PDO_FIXED_USB_COMM)
                       PDO_VAR(3000, 12000, 3000)
                       PDO_PPS_APDO(3000, 11000, 3000)>;
          op-sink-microwatt = <10000000>;
        };
      };
    };
