[PATCH v2] arm64: dts: qcom: qrb2210-arduino-imola: describe DSI / DP bridge

From: Dmitry Baryshkov

Date: Fri Feb 13 2026 - 12:25:38 EST


Aruino Uno-Q uses Analogix ANX7625 DSI-to-DP bridge to convert DSI
signals to the connected USB-C DisplayPort dongles. Decribe the chip,
USB-C connector and routing of USB and display signals.

Co-developed-by: Martino Facchin <m.facchin@xxxxxxxxxx>
Signed-off-by: Martino Facchin <m.facchin@xxxxxxxxxx>
Tested-by: Loic Poulain <loic.poulain@xxxxxxxxxxxxxxxx>
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@xxxxxxxxxxxxxxxx>
---
Note, to function correctly this patch depends on several patch series,
fixing the ANX7625 driver:

- https://lore.kernel.org/r/20251218151307.95491-1-loic.poulain@xxxxxxxxxxxxxxxx/
(part of 7.0-rc1)

- https://lore.kernel.org/r/20260121-anx7625-typec-v2-0-d14f31256a17@xxxxxxxxxxxxxxxx/
(part of drm-misc-next, to be landed in 7.1)

- https://lore.kernel.org/r/20260211-anx7625-fix-pd-v1-1-1dd31451b06f@xxxxxxxxxxxxxxxx/
(recently submitted, hopefully to land in 7.1)
---
Changes in v2:
- Dropped extra comment (Konrad)
- Added empty lines before the subnodes (Konrad)
- Link to v1: https://lore.kernel.org/r/20260211-uno-q-anx7625-v1-1-677bbcf63668@xxxxxxxxxxxxxxxx
---
arch/arm64/boot/dts/qcom/qrb2210-arduino-imola.dts | 114 +++++++++++++++++++++
1 file changed, 114 insertions(+)

diff --git a/arch/arm64/boot/dts/qcom/qrb2210-arduino-imola.dts b/arch/arm64/boot/dts/qcom/qrb2210-arduino-imola.dts
index 197ab6eb1666..0be5f2a3b3f3 100644
--- a/arch/arm64/boot/dts/qcom/qrb2210-arduino-imola.dts
+++ b/arch/arm64/boot/dts/qcom/qrb2210-arduino-imola.dts
@@ -6,6 +6,7 @@
/dts-v1/;

#include <dt-bindings/leds/common.h>
+#include <dt-bindings/usb/pd.h>
#include "agatti.dtsi"
#include "pm4125.dtsi"

@@ -109,6 +110,15 @@ multi-led {
leds = <&ledr>, <&ledg>, <&ledb>;
};

+ vreg_anx_30: regulator-anx-30 {
+ compatible = "regulator-fixed";
+ regulator-name = "anx30";
+ regulator-min-microvolt = <3000000>;
+ regulator-max-microvolt = <3000000>;
+ regulator-always-on;
+ regulator-boot-on;
+ };
+
/* PM4125 charger out, supplied by VBAT */
vph_pwr: regulator-vph-pwr {
compatible = "regulator-fixed";
@@ -142,6 +152,86 @@ &i2c1 {
clock-frequency = <100000>;

status = "okay";
+
+ anx7625: encoder@58 {
+ compatible = "analogix,anx7625";
+ reg = <0x58>;
+ interrupts-extended = <&tlmm 81 IRQ_TYPE_EDGE_FALLING>;
+ vdd10-supply = <&pm4125_l11>;
+ vdd18-supply = <&pm4125_l15>;
+ vdd33-supply = <&vreg_anx_30>;
+ analogix,audio-enable;
+ analogix,lane0-swing = /bits/ 8 <0x14 0x54 0x64 0x74>;
+ analogix,lane1-swing = /bits/ 8 <0x14 0x54 0x64 0x74>;
+
+ pinctrl-0 = <&anx7625_int_pin>, <&anx7625_cable_det_pin>;
+
+ connector {
+ compatible = "usb-c-connector";
+ power-role = "sink";
+ data-role = "dual";
+ try-power-role = "sink";
+
+ pd-revision = /bits/ 8 <0x03 0x00 0x00 0x00>;
+ op-sink-microwatt = <15000000>;
+ sink-pdos = <PDO_FIXED(5000, 3000, PDO_FIXED_USB_COMM)
+ PDO_VAR(5000, 20000, 3000)>;
+
+ ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ port@0 {
+ reg = <0>;
+
+ anx_hs_in: endpoint {
+ remote-endpoint = <&usb_dwc3_hs>;
+ };
+ };
+
+ port@1 {
+ reg = <1>;
+
+ anx_ss_in: endpoint {
+ remote-endpoint = <&usb_qmpphy_out>;
+ };
+ };
+ };
+ };
+
+ ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ port@0 {
+ reg = <0>;
+
+ anx_dsi0_in: endpoint {
+ remote-endpoint = <&mdss_dsi0_out>;
+ data-lanes = <0 1 2 3>;
+ };
+ };
+ };
+ };
+};
+
+&mdss {
+ status = "okay";
+};
+
+&mdss_dsi0 {
+ vdda-supply = <&pm4125_l5>;
+
+ status = "okay";
+};
+
+&mdss_dsi0_out {
+ remote-endpoint = <&anx_dsi0_in>;
+ data-lanes = <0 1 2 3>;
+};
+
+&mdss_dsi0_phy {
+ status = "okay";
};

&pm4125_vbus {
@@ -361,6 +451,22 @@ key_vold_n: key-vold-n-state {
output-disable;
};

+ anx7625_cable_det_pin: anx7625-cable-det-pins-state {
+ pins = "gpio46";
+ function = "gpio";
+ drive-strength = <16>;
+ output-disable;
+ bias-pull-up;
+ };
+
+ anx7625_int_pin: anx7625-int-pins-state {
+ pins = "gpio81";
+ function = "gpio";
+ drive-strength = <16>;
+ output-disable;
+ bias-pull-up;
+ };
+
key_volp_n: key-volp-n-state {
pins = "gpio96";
function = "gpio";
@@ -428,6 +534,10 @@ &usb {
status = "okay";
};

+&usb_dwc3_hs {
+ remote-endpoint = <&anx_hs_in>;
+};
+
&usb_hsphy {
vdd-supply = <&pm4125_l12>;
vdda-pll-supply = <&pm4125_l13>;
@@ -443,6 +553,10 @@ &usb_qmpphy {
status = "okay";
};

+&usb_qmpphy_out {
+ remote-endpoint = <&anx_ss_in>;
+};
+
&wifi {
vdd-0.8-cx-mx-supply = <&pm4125_l7>;
vdd-1.8-xo-supply = <&pm4125_l13>;

---
base-commit: 9845cf73f7db6094c0d8419d6adb848028f4a921
change-id: 20260211-uno-q-anx7625-26f8fa8360ca

Best regards,
--
With best wishes
Dmitry