115 lines · yaml
1# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause2%YAML 1.23---4$id: http://devicetree.org/schemas/usb/gpio-sbu-mux.yaml#5$schema: http://devicetree.org/meta-schemas/core.yaml#6 7title: GPIO-based SBU mux8 9maintainers:10 - Bjorn Andersson <andersson@kernel.org>11 12description:13 In USB Type-C applications the SBU lines needs to be connected, disconnected14 and swapped depending on the altmode and orientation. This binding describes15 a family of hardware solutions which switches between these modes using GPIO16 signals.17 18properties:19 compatible:20 items:21 - enum:22 - nxp,cbdtu0204323 - onnn,fsusb43l10x24 - pericom,pi3usb10225 - ti,tmuxhs421226 - const: gpio-sbu-mux27 28 enable-gpios:29 description: Switch enable GPIO30 31 select-gpios:32 description: Orientation select33 34 vcc-supply:35 description: power supply36 37 mode-switch: true38 orientation-switch: true39 40 port:41 $ref: /schemas/graph.yaml#/properties/port42 description:43 A port node to link the SBU mux to a TypeC controller for the purpose of44 handling altmode muxing and orientation switching.45 46required:47 - compatible48 - select-gpios49 - orientation-switch50 - port51 52allOf:53 - $ref: usb-switch.yaml#54 - if:55 required:56 - mode-switch57 then:58 required:59 - enable-gpios60 61additionalProperties: false62 63examples:64 - |65 #include <dt-bindings/gpio/gpio.h>66 67 tcpm {68 connector {69 compatible = "usb-c-connector";70 71 ports {72 #address-cells = <1>;73 #size-cells = <0>;74 75 port@0 {76 reg = <0>;77 tcpm_hs_out: endpoint {78 remote-endpoint = <&usb_hs_phy_in>;79 };80 };81 82 port@1 {83 reg = <1>;84 tcpm_ss_out: endpoint {85 remote-endpoint = <&usb_ss_phy_in>;86 };87 };88 89 port@2 {90 reg = <2>;91 tcpm_sbu_out: endpoint {92 remote-endpoint = <&sbu_mux_in>;93 };94 };95 };96 };97 };98 99 sbu-mux {100 compatible = "pericom,pi3usb102", "gpio-sbu-mux";101 102 enable-gpios = <&tlmm 101 GPIO_ACTIVE_LOW>;103 select-gpios = <&tlmm 164 GPIO_ACTIVE_HIGH>;104 105 mode-switch;106 orientation-switch;107 108 port {109 sbu_mux_in: endpoint {110 remote-endpoint = <&tcpm_sbu_out>;111 };112 };113 };114...115