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,fsusb43l10x 24 - pericom,pi3usb102 25 - ti,tmuxhs4212 26 - const: gpio-sbu-mux 27 28 enable-gpios: 29 description: Switch enable GPIO 30 31 select-gpios: 32 description: Orientation select 33 34 vcc-supply: 35 description: power supply 36 37 mode-switch: true 38 orientation-switch: true 39 40 port: 41 $ref: /schemas/graph.yaml#/properties/port 42 description: 43 A port node to link the SBU mux to a TypeC controller for the purpose of 44 handling altmode muxing and orientation switching. 45 46required: 47 - compatible 48 - select-gpios 49 - orientation-switch 50 - port 51 52allOf: 53 - $ref: usb-switch.yaml# 54 - if: 55 required: 56 - mode-switch 57 then: 58 required: 59 - enable-gpios 60 61additionalProperties: false 62 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