diff --git a/Documentation/devicetree/bindings/usb/analogix,anx7688.yaml b/Documentation/devicetree/bindings/usb/analogix,anx7688.yaml
new file mode 100644
index 000000000000..6c4dd6b4b28b
--- /dev/null
+++ b/Documentation/devicetree/bindings/usb/analogix,anx7688.yaml
@@ -0,0 +1,177 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/usb/analogix,anx7688.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Analogix ANX7688 Type-C Port Controller with HDMI to DP conversion
+
+maintainers:
+  - Nicolas Boichat <drinkcat@chromium.org>
+  - Enric Balletbo i Serra <enric.balletbo@collabora.com>
+
+description: |
+  ANX7688 is a USB Type-C port controller with a MUX. It converts HDMI 2.0 to
+  DisplayPort 1.3 Ultra-HDi (4096x2160p60).
+  The integrated crosspoint switch (the MUX) supports USB 3.1 data transfer along with
+  the DisplayPort Alternate Mode signaling over USB Type-C. Additionally,
+  an on-chip microcontroller (OCM) is available to manage the signal switching,
+  Channel Configuration (CC) detection, USB Power Delivery (USB-PD), Vendor
+  Defined Message (VDM) protocol support and other functions as defined in the
+  USB TypeC and USB Power Delivery specifications.
+
+
+properties:
+  compatible:
+    const: analogix,anx7688
+
+  reg:
+    maxItems: 1
+
+  avdd33-supply:
+    description: 3.3V Analog core supply voltage.
+
+  dvdd18-supply:
+    description: 1.8V Digital I/O supply voltage.
+
+  avdd18-supply:
+    description: 1.8V Analog core power supply voltage.
+
+  avdd10-supply:
+    description: 1.0V Analog core power supply voltage.
+
+  dvdd10-supply:
+    description: 1.0V Digital core supply voltage.
+
+  hdmi5v-supply:
+    description: 5V power supply for the HDMI.
+
+  hdmi_vt-supply:
+    description: Termination voltage for HDMI input.
+
+  clocks:
+    description: The input clock specifier.
+    maxItems: 1
+
+  clock-names:
+    items:
+      - const: xtal
+
+  hpd-gpios:
+    description: |
+      In USB Type-C applications, DP_HPD has no use. In standard DisplayPort
+      applications, DP_HPD is used as DP hot-plug.
+    maxItems: 1
+
+  enable-gpios:
+    description: Chip power down control. No internal pull-down or pull-up resistor.
+    maxItems: 1
+
+  reset-gpios:
+    description: Reset input signal. Active low.
+    maxItems: 1
+
+  vbus-det-gpios:
+    description: |
+      An input gpio for VBUS detection and high voltage detection,
+      external resistance divide VBUS voltage to 1/8.
+    maxItems: 1
+
+  interrupts:
+    description: |
+      The interrupt notifies 4 possible events - TCPC ALERT int, PD int, DP int, HDMI int.
+    maxItems: 1
+
+  cabledet-gpios:
+    description: An output gpio, indicates by the device that a cable is plugged.
+    maxItems: 1
+
+  vbus-ctrl-gpios:
+    description:
+      External VBUS power path. Enable VBUS source and disable VBUS sink or vice versa.
+    maxItems: 1
+
+  vconn-en1-gpios:
+    description: Controls the VCONN switch on the CC1 pin.
+    maxItems: 1
+
+  vconn-en2-gpios:
+    description: Controls the VCONN switch on the CC2 pin.
+    maxItems: 1
+
+  ports:
+    $ref: /schemas/graph.yaml#/properties/ports
+
+    properties:
+      port@0:
+        $ref: /schemas/graph.yaml#/properties/port
+        description: Video port for HDMI input.
+
+      port@1:
+        $ref: /schemas/graph.yaml#/properties/port
+        description: USB port for the USB3 input.
+
+      port@2:
+        $ref: /schemas/graph.yaml#/properties/port
+        description: USB Type-c connector, see connector/usb-connector.yaml.
+
+    required:
+      - port@0
+
+required:
+  - compatible
+  - reg
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/gpio/gpio.h>
+    #include <dt-bindings/interrupt-controller/irq.h>
+
+    i2c0 {
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        anx7688: anx7688@2c {
+            compatible = "analogix,anx7688";
+            reg = <0x2c>;
+            avdd33-supply = <&reg_dcdc1>;
+            dvdd18-supply = <&reg_ldo_io1>;
+            avdd18-supply = <&reg_ldo_io1>;
+            avdd10-supply = <&reg_anx1v0>;
+            dvdd10-supply = <&reg_anx1v0>;
+            hdmi_vt-supply = <&reg_dldo1>;
+            enable-gpios = <&pio 3 10 GPIO_ACTIVE_LOW>; /* PD10 */
+            reset-gpios = <&pio 3 6 GPIO_ACTIVE_HIGH>; /* PD6 */
+            interrupt-parent = <&r_pio>;
+            interrupts = <0 11 IRQ_TYPE_EDGE_FALLING>; /* PL11 */
+            cabledet-gpios = <&r_pio 0 8 GPIO_ACTIVE_HIGH>; /* PL8 */
+            vconn-en1-gpios = <&pio 3 9 GPIO_ACTIVE_LOW>; /* PD9 */
+            vconn-en2-gpios = <&pio 3 9 GPIO_ACTIVE_LOW>; /* PD9 */
+            ports {
+                #address-cells = <1>;
+                #size-cells = <0>;
+
+                port@0 {
+                    reg = <0>;
+                    anx7688_in0: endpoint {
+                        remote-endpoint = <&hdmi0_out>;
+                    };
+                };
+
+                port@1 {
+                    reg = <1>;
+                    anx7688_in1: endpoint {
+                        remote-endpoint = <&usbdrd_phy_ss>;
+                    };
+                };
+                port@2 {
+                    reg = <2>;
+                    anx7688_out: endpoint {
+                        remote-endpoint = <&typec_connector>;
+                    };
+                };
+            };
+        };
+    };
