# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
%YAML 1.2
---
$id: http://devicetree.org/schemas/usb/gpio-sbu-mux.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: GPIO-based SBU mux

maintainers:
  - Bjorn Andersson <andersson@kernel.org>

description:
  In USB Type-C applications the SBU lines needs to be connected, disconnected
  and swapped depending on the altmode and orientation. This binding describes
  a family of hardware solutions which switches between these modes using GPIO
  signals.

properties:
  compatible:
    items:
      - enum:
          - nxp,cbdtu02043
          - onnn,fsusb43l10x
          - pericom,pi3usb102
      - const: gpio-sbu-mux

  enable-gpios:
    description: Switch enable GPIO

  select-gpios:
    description: Orientation select

  vcc-supply:
    description: power supply

  mode-switch: true
  orientation-switch: true

  port:
    $ref: /schemas/graph.yaml#/properties/port
    description:
      A port node to link the SBU mux to a TypeC controller for the purpose of
      handling altmode muxing and orientation switching.

required:
  - compatible
  - enable-gpios
  - select-gpios
  - orientation-switch
  - port

allOf:
  - $ref: usb-switch.yaml#

additionalProperties: false

examples:
  - |
    #include <dt-bindings/gpio/gpio.h>

    tcpm {
        connector {
            compatible = "usb-c-connector";

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

                port@0 {
                    reg = <0>;
                    tcpm_hs_out: endpoint {
                        remote-endpoint = <&usb_hs_phy_in>;
                    };
                };

                port@1 {
                    reg = <1>;
                    tcpm_ss_out: endpoint {
                        remote-endpoint = <&usb_ss_phy_in>;
                    };
                };

                port@2 {
                    reg = <2>;
                    tcpm_sbu_out: endpoint {
                        remote-endpoint = <&sbu_mux_in>;
                    };
                };
            };
        };
    };

    sbu-mux {
        compatible = "pericom,pi3usb102", "gpio-sbu-mux";

        enable-gpios = <&tlmm 101 GPIO_ACTIVE_LOW>;
        select-gpios = <&tlmm 164 GPIO_ACTIVE_HIGH>;

        mode-switch;
        orientation-switch;

        port {
            sbu_mux_in: endpoint {
                remote-endpoint = <&tcpm_sbu_out>;
            };
        };
    };
...
