| # 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: |
| - nxp,cbdtu02043 |
| - onnn,fsusb43l10x |
| - pericom,pi3usb102 |
| - ti,tmuxhs4212 |
| - const: gpio-sbu-mux |
| |
| enable-gpios: |
| description: Switch enable GPIO |
| |
| select-gpios: |
| description: Orientation select |
| |
| vcc-supply: |
| description: power supply |
| |
| mode-switch: true |
| orientation-switch: true |
| |
| 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 |
| - select-gpios |
| - orientation-switch |
| - port |
| |
| allOf: |
| - $ref: usb-switch.yaml# |
| - if: |
| required: |
| - mode-switch |
| then: |
| required: |
| - enable-gpios |
| |
| 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>; |
| }; |
| }; |
| }; |
| ... |