[PATCH v2 1/4] dt-bindings: usb: gpio-sbu-mux: add support for ss-data lanes mux
Marco Felsch
m.felsch at pengutronix.de
Thu May 4 06:46:50 PDT 2023
This adds the support for GPIO based USB-C SS data lane muxing.
Signed-off-by: Marco Felsch <m.felsch at pengutronix.de>
---
.../devicetree/bindings/usb/gpio-sbu-mux.yaml | 82 +++++++++++++++++++---
1 file changed, 71 insertions(+), 11 deletions(-)
diff --git a/Documentation/devicetree/bindings/usb/gpio-sbu-mux.yaml b/Documentation/devicetree/bindings/usb/gpio-sbu-mux.yaml
index bf4b1d016e1f..796f3283ac02 100644
--- a/Documentation/devicetree/bindings/usb/gpio-sbu-mux.yaml
+++ b/Documentation/devicetree/bindings/usb/gpio-sbu-mux.yaml
@@ -4,24 +4,26 @@
$id: "http://devicetree.org/schemas/usb/gpio-sbu-mux.yaml#"
$schema: "http://devicetree.org/meta-schemas/core.yaml#"
-title: GPIO-based SBU mux
+title: GPIO-based SS/SBU mux
maintainers:
- Bjorn Andersson <andersson at 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.
+ In USB Type-C applications the SS/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:
- - onnn,fsusb43l10x
- - pericom,pi3usb102
- - const: gpio-sbu-mux
+ oneOf:
+ - items:
+ - enum:
+ - onnn,fsusb43l10x
+ - pericom,pi3usb102
+ - const: gpio-sbu-mux
+ - const: gpio-ss-mux
enable-gpios:
description: Switch enable GPIO
@@ -50,10 +52,18 @@ required:
- compatible
- enable-gpios
- select-gpios
- - mode-switch
- orientation-switch
- port
+if:
+ properties:
+ compatible:
+ contains:
+ const: gpio-sbu-mux
+then:
+ required:
+ - mode-switch
+
additionalProperties: false
examples:
@@ -107,4 +117,54 @@ examples:
};
};
};
+
+ - |
+ #include <dt-bindings/gpio/gpio.h>
+
+ tcpm {
+ connector {
+ compatible = "usb-c-connector";
+
+ ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ port at 0 {
+ reg = <0>;
+ tcpm_hs_out: endpoint {
+ remote-endpoint = <&usb_hs_phy_in>;
+ };
+ };
+
+ port at 1 {
+ reg = <1>;
+ tcpm_ss_out: endpoint {
+ remote-endpoint = <&usb_ss_phy_in>;
+ };
+ };
+
+ port at 2 {
+ reg = <2>;
+ tcpm_ss_mux_out: endpoint {
+ remote-endpoint = <&ss_mux_in>;
+ };
+ };
+ };
+ };
+ };
+
+ usb-ss-mux {
+ compatible = "gpio-ss-mux";
+
+ enable-gpios = <&tlmm 101 GPIO_ACTIVE_LOW>;
+ select-gpios = <&tlmm 164 GPIO_ACTIVE_HIGH>;
+
+ orientation-switch;
+
+ port {
+ ss_mux_in: endpoint {
+ remote-endpoint = <&tcpm_ss_mux_out>;
+ };
+ };
+ };
...
--
2.39.2
More information about the linux-arm-kernel
mailing list