brintos

brintos / linux-shallow public Read only

0
0
Text · 2.5 KiB · 8a5f837 Raw
115 lines · yaml
1# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause2%YAML 1.23---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 mux8 9maintainers:10  - Bjorn Andersson <andersson@kernel.org>11 12description:13  In USB Type-C applications the SBU lines needs to be connected, disconnected14  and swapped depending on the altmode and orientation. This binding describes15  a family of hardware solutions which switches between these modes using GPIO16  signals.17 18properties:19  compatible:20    items:21      - enum:22          - nxp,cbdtu0204323          - onnn,fsusb43l10x24          - pericom,pi3usb10225          - ti,tmuxhs421226      - const: gpio-sbu-mux27 28  enable-gpios:29    description: Switch enable GPIO30 31  select-gpios:32    description: Orientation select33 34  vcc-supply:35    description: power supply36 37  mode-switch: true38  orientation-switch: true39 40  port:41    $ref: /schemas/graph.yaml#/properties/port42    description:43      A port node to link the SBU mux to a TypeC controller for the purpose of44      handling altmode muxing and orientation switching.45 46required:47  - compatible48  - select-gpios49  - orientation-switch50  - port51 52allOf:53  - $ref: usb-switch.yaml#54  - if:55      required:56        - mode-switch57    then:58      required:59        - enable-gpios60 61additionalProperties: false62 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