summaryrefslogtreecommitdiff
path: root/zephyr/dts/bindings/usbc/cros-ec,usb-mux-chain.yaml
diff options
context:
space:
mode:
Diffstat (limited to 'zephyr/dts/bindings/usbc/cros-ec,usb-mux-chain.yaml')
-rw-r--r--zephyr/dts/bindings/usbc/cros-ec,usb-mux-chain.yaml47
1 files changed, 47 insertions, 0 deletions
diff --git a/zephyr/dts/bindings/usbc/cros-ec,usb-mux-chain.yaml b/zephyr/dts/bindings/usbc/cros-ec,usb-mux-chain.yaml
new file mode 100644
index 0000000000..398d7255ac
--- /dev/null
+++ b/zephyr/dts/bindings/usbc/cros-ec,usb-mux-chain.yaml
@@ -0,0 +1,47 @@
+# Copyright 2022 The Chromium OS Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+description: USB-C muxes chain
+
+compatible: "cros-ec,usb-mux-chain"
+
+properties:
+ usb-muxes:
+ type: phandles
+ required: true
+ description: |
+ List of USB-C muxes and retimers for the USB-C port. The USB-C subsystem
+ traverses this list in the order specified. The phandles are references to
+ cros-ec,usbc-mux nodes. Link this mux chain with a specific USB-C port by
+ adding the "cros-ec,usb-mux-chain" as a child of the "named-usbc-port"
+ node.
+
+ alternative-chain:
+ type: boolean
+ description: |
+ Set if this is alternative USB-C muxes chain. It can be selected in
+ runtime using USB_MUX_ENABLE_ALTERNATIVE macro.
+
+# Example DTS defining USB-C port 0 with main and alternative usb mux chains.
+# The main chain has two muxes: BB retimer and virtual mux.
+# The alternative chain has three muxes: BB retimer, SOC side BB retimer and
+# virtual mux.
+#
+# usbc_port0: port0@0 {
+# compatible = "named-usbc-port";
+# reg = <0>;
+# ...
+# usb-mux-chain-0 {
+# compatible = "cros-ec,usb-mux-chain";
+# usb-muxes = <&usb_c0_bb_retimer
+# &virtual_mux_c0>;
+# };
+# usb-mux-chain-0 {
+# compatible = "cros-ec,usb-mux-chain";
+# alternative-chain;
+# usb-muxes = <&usb_c0_bb_retimer
+# &usb_c0_soc_side_bb_retimer
+# &virtual_mux_c0>;
+# };
+# };