# 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: - 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: description: Flag the port as possible handle of altmode switching type: boolean orientation-switch: description: Flag the port as possible handler of orientation switching type: boolean 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 - mode-switch - orientation-switch - port 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>; }; }; }; ...