1# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause 2%YAML 1.2 3--- 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 mux 8 9maintainers: 10 - Bjorn Andersson <andersson@kernel.org> 11 12description: 13 In USB Type-C applications the SBU lines needs to be connected, disconnected 14 and swapped depending on the altmode and orientation. This binding describes 15 a family of hardware solutions which switches between these modes using GPIO 16 signals. 17 18properties: 19 compatible: 20 items: 21 - enum: 22 - nxp,cbdtu02043 23 - onnn,fsusb42 24 - onnn,fsusb43l10x 25 - pericom,pi3usb102 26 - ti,tmuxhs4212 27 - const: gpio-sbu-mux 28 29 enable-gpios: 30 description: Switch enable GPIO 31 32 select-gpios: 33 description: Orientation select 34 35 vcc-supply: 36 description: power supply 37 38 mode-switch: true 39 orientation-switch: true 40 41 port: 42 $ref: /schemas/graph.yaml#/properties/port 43 description: 44 A port node to link the SBU mux to a TypeC controller for the purpose of 45 handling altmode muxing and orientation switching. 46 47required: 48 - compatible 49 - select-gpios 50 - orientation-switch 51 - port 52 53allOf: 54 - $ref: usb-switch.yaml# 55 - $ref: usb-switch-ports.yaml# 56 - if: 57 required: 58 - mode-switch 59 then: 60 required: 61 - enable-gpios 62 63additionalProperties: false 64 65examples: 66 - | 67 #include <dt-bindings/gpio/gpio.h> 68 69 tcpm { 70 connector { 71 compatible = "usb-c-connector"; 72 73 ports { 74 #address-cells = <1>; 75 #size-cells = <0>; 76 77 port@0 { 78 reg = <0>; 79 tcpm_hs_out: endpoint { 80 remote-endpoint = <&usb_hs_phy_in>; 81 }; 82 }; 83 84 port@1 { 85 reg = <1>; 86 tcpm_ss_out: endpoint { 87 remote-endpoint = <&usb_ss_phy_in>; 88 }; 89 }; 90 91 port@2 { 92 reg = <2>; 93 tcpm_sbu_out: endpoint { 94 remote-endpoint = <&sbu_mux_in>; 95 }; 96 }; 97 }; 98 }; 99 }; 100 101 sbu-mux { 102 compatible = "pericom,pi3usb102", "gpio-sbu-mux"; 103 104 enable-gpios = <&tlmm 101 GPIO_ACTIVE_LOW>; 105 select-gpios = <&tlmm 164 GPIO_ACTIVE_HIGH>; 106 107 mode-switch; 108 orientation-switch; 109 110 port { 111 sbu_mux_in: endpoint { 112 remote-endpoint = <&tcpm_sbu_out>; 113 }; 114 }; 115 }; 116... 117