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