arch/arm64/boot/dts/qcom/qrb2210-arduino-imola.dts | 112 +++++++++++++++++++++ 1 file changed, 112 insertions(+)
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@arduino.cc>
Signed-off-by: Martino Facchin <m.facchin@arduino.cc>
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
---
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@oss.qualcomm.com/
(part of 7.0-rc1)
- https://lore.kernel.org/r/20260121-anx7625-typec-v2-0-d14f31256a17@oss.qualcomm.com/
(part of drm-misc-next, to be landed in 7.1)
- https://lore.kernel.org/r/20260211-anx7625-fix-pd-v1-1-1dd31451b06f@oss.qualcomm.com/
(recently submitted, hopefully to land in 7.1)
---
arch/arm64/boot/dts/qcom/qrb2210-arduino-imola.dts | 112 +++++++++++++++++++++
1 file changed, 112 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..ba3f0c74e814 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,16 @@ multi-led {
leds = <&ledr>, <&ledg>, <&ledb>;
};
+ vreg_anx_30: regulator-anx-30 {
+ /* ANX7625 VDD3 */
+ 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 +153,83 @@ &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 +449,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 +532,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 +551,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
On 2/11/26 10:28 AM, Dmitry Baryshkov wrote:
> 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@arduino.cc>
> Signed-off-by: Martino Facchin <m.facchin@arduino.cc>
> Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
> ---
[...]
> #include <dt-bindings/leds/common.h>
> +#include <dt-bindings/usb/pd.h>
> #include "agatti.dtsi"
> #include "pm4125.dtsi"
>
> @@ -109,6 +110,16 @@ multi-led {
> leds = <&ledr>, <&ledg>, <&ledb>;
> };
>
> + vreg_anx_30: regulator-anx-30 {
> + /* ANX7625 VDD3 */
This comment is only mildly useful given the anx7625 node consumes it
via a reference in "vdd33-supply"
[...]
> + 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>;
no mode-orientation/switch?
> +
> + 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)>;
nice!
> +
> + ports {
> + #address-cells = <1>;
> + #size-cells = <0>;
> +
> + port@0 {
> + reg = <0>;
Please add a \n between the last prop and the following subnodes
lg otherwise
Konrad
On Thu, Feb 12, 2026 at 10:40:41AM +0100, Konrad Dybcio wrote:
> On 2/11/26 10:28 AM, Dmitry Baryshkov wrote:
> > 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@arduino.cc>
> > Signed-off-by: Martino Facchin <m.facchin@arduino.cc>
> > Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
> > ---
>
> [...]
>
> > #include <dt-bindings/leds/common.h>
> > +#include <dt-bindings/usb/pd.h>
> > #include "agatti.dtsi"
> > #include "pm4125.dtsi"
> >
> > @@ -109,6 +110,16 @@ multi-led {
> > leds = <&ledr>, <&ledg>, <&ledb>;
> > };
> >
> > + vreg_anx_30: regulator-anx-30 {
> > + /* ANX7625 VDD3 */
>
> This comment is only mildly useful given the anx7625 node consumes it
> via a reference in "vdd33-supply"
>
> [...]
>
> > + 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>;
>
> no mode-orientation/switch?
No, why? ANX handles everything internally.
>
>
> > +
> > + 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)>;
>
> nice!
>
> > +
> > + ports {
> > + #address-cells = <1>;
> > + #size-cells = <0>;
> > +
> > + port@0 {
> > + reg = <0>;
>
> Please add a \n between the last prop and the following subnodes
>
> lg otherwise
>
> Konrad
--
With best wishes
Dmitry
On Wed, Feb 11, 2026 at 10:28 AM Dmitry Baryshkov
<dmitry.baryshkov@oss.qualcomm.com> wrote:
>
> 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@arduino.cc>
> Signed-off-by: Martino Facchin <m.facchin@arduino.cc>
> Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Tested-by: Loic Poulain <loic.poulain@oss.qualcomm.com>
> ---
> 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@oss.qualcomm.com/
> (part of 7.0-rc1)
>
> - https://lore.kernel.org/r/20260121-anx7625-typec-v2-0-d14f31256a17@oss.qualcomm.com/
> (part of drm-misc-next, to be landed in 7.1)
>
> - https://lore.kernel.org/r/20260211-anx7625-fix-pd-v1-1-1dd31451b06f@oss.qualcomm.com/
> (recently submitted, hopefully to land in 7.1)
> ---
> arch/arm64/boot/dts/qcom/qrb2210-arduino-imola.dts | 112 +++++++++++++++++++++
> 1 file changed, 112 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..ba3f0c74e814 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,16 @@ multi-led {
> leds = <&ledr>, <&ledg>, <&ledb>;
> };
>
> + vreg_anx_30: regulator-anx-30 {
> + /* ANX7625 VDD3 */
> + 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 +153,83 @@ &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 +449,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 +532,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 +551,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
>
>
© 2016 - 2026 Red Hat, Inc.