109 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
			
		
		
	
	
			109 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
# 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
 | 
						|
      - 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
 | 
						|
  - enable-gpios
 | 
						|
  - select-gpios
 | 
						|
  - orientation-switch
 | 
						|
  - port
 | 
						|
 | 
						|
allOf:
 | 
						|
  - $ref: usb-switch.yaml#
 | 
						|
 | 
						|
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>;
 | 
						|
            };
 | 
						|
        };
 | 
						|
    };    
 | 
						|
...
 |