* [PATCH 0/3] arm64: qcom: imola: add support for Media Carrier
@ 2026-04-30 13:21 Riccardo Mereu
2026-04-30 13:21 ` [PATCH 1/3] arm64: qcom: agatti: Add dai@3 Riccardo Mereu
` (2 more replies)
0 siblings, 3 replies; 10+ messages in thread
From: Riccardo Mereu @ 2026-04-30 13:21 UTC (permalink / raw)
To: andersson, konradybcio, robh, krzk+dt, conor+dt, broonie
Cc: linux, Jonathan.Cameron, wenswang, naresh.solanki, michal.simek,
nuno.sa, chou.cosmo, grantpeltier93, eajames, linux-arm-msm,
devicetree, linux-kernel, festevam, imx, m.facchin,
dmitry.baryshkov, loic.poulain, Riccardo Mereu
From: Riccardo Mereu <r.mereu@arduino.cc>
This patch series adds support for the Arduino UNO Q (aka imola) Media
Carrier expansion board.
It adds:
- two CSI connectors (support only for imx219 sensor)
- one DSI connector (support for waveshare 5" and 8" touch A panels)
- 3 jack connectors (headset, lineout and ear)
It modifies the previous qrb2210-arduino-imola.dts (named in this patch
series qrb2210-arduino-imola-base.dts) in order to move audio and video
output via USB-C to a DTBO.
This is needed since the DSI lines can now be used via the carrier
board.
Camera and panels are divided each in their dedicated DTBO so the users
can easily configure the overlayed DTB to match what's actually
connected to the carrier via user-space tool soon to be released.
Depends on two patch series:
- https://lore.kernel.org/dri-devel/20260413-waveshare-dsi-touch-v3-0-3aeb53022c32@oss.qualcomm.com/
(applied to drm-misc-next)
- https://lore.kernel.org/dri-devel/20260331-ws-lcd-v2-0-a1add63b6eb6@oss.qualcomm.com/
Riccardo Mereu (3):
arm64: qcom: agatti: Add dai@3
arm64: qcom: imola: Move analogix video/audio output to dtso
arm64: dts: qcom: imola: add support for media carrier board
arch/arm64/boot/dts/qcom/Makefile | 13 ++
arch/arm64/boot/dts/qcom/agatti.dtsi | 4 +
...ola.dts => qrb2210-arduino-imola-base.dts} | 122 +++++++++++++---
...rrier-media-camera-imx219-csi0-2lanes.dtso | 49 +++++++
...rrier-media-camera-imx219-csi0-4lanes.dtso | 49 +++++++
...rrier-media-camera-imx219-csi1-2lanes.dtso | 49 +++++++
...rrier-media-camera-imx219-csi1-4lanes.dtso | 49 +++++++
...10-arduino-imola-carrier-media-common.dtsi | 46 ++++++
...a-carrier-media-panel-5in_touch_a-dsi.dtso | 80 +++++++++++
...a-carrier-media-panel-8in_touch_a-dsi.dtso | 80 +++++++++++
.../qrb2210-arduino-imola-carrier-media.dtso | 131 ++++++++++++++++++
...rb2210-arduino-imola-video_sound-usbc.dtso | 61 ++++++++
12 files changed, 713 insertions(+), 20 deletions(-)
rename arch/arm64/boot/dts/qcom/{qrb2210-arduino-imola.dts => qrb2210-arduino-imola-base.dts} (85%)
create mode 100644 arch/arm64/boot/dts/qcom/qrb2210-arduino-imola-carrier-media-camera-imx219-csi0-2lanes.dtso
create mode 100644 arch/arm64/boot/dts/qcom/qrb2210-arduino-imola-carrier-media-camera-imx219-csi0-4lanes.dtso
create mode 100644 arch/arm64/boot/dts/qcom/qrb2210-arduino-imola-carrier-media-camera-imx219-csi1-2lanes.dtso
create mode 100644 arch/arm64/boot/dts/qcom/qrb2210-arduino-imola-carrier-media-camera-imx219-csi1-4lanes.dtso
create mode 100644 arch/arm64/boot/dts/qcom/qrb2210-arduino-imola-carrier-media-common.dtsi
create mode 100644 arch/arm64/boot/dts/qcom/qrb2210-arduino-imola-carrier-media-panel-5in_touch_a-dsi.dtso
create mode 100644 arch/arm64/boot/dts/qcom/qrb2210-arduino-imola-carrier-media-panel-8in_touch_a-dsi.dtso
create mode 100644 arch/arm64/boot/dts/qcom/qrb2210-arduino-imola-carrier-media.dtso
create mode 100644 arch/arm64/boot/dts/qcom/qrb2210-arduino-imola-video_sound-usbc.dtso
--
2.53.0
^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH 1/3] arm64: qcom: agatti: Add dai@3
2026-04-30 13:21 [PATCH 0/3] arm64: qcom: imola: add support for Media Carrier Riccardo Mereu
@ 2026-04-30 13:21 ` Riccardo Mereu
2026-04-30 13:57 ` Konrad Dybcio
2026-04-30 13:21 ` [PATCH 2/3] arm64: qcom: imola: Move analogix video/audio output to dtso Riccardo Mereu
2026-04-30 13:21 ` [PATCH 3/3] arm64: dts: qcom: imola: add support for media carrier board Riccardo Mereu
2 siblings, 1 reply; 10+ messages in thread
From: Riccardo Mereu @ 2026-04-30 13:21 UTC (permalink / raw)
To: andersson, konradybcio, robh, krzk+dt, conor+dt, broonie
Cc: linux, Jonathan.Cameron, wenswang, naresh.solanki, michal.simek,
nuno.sa, chou.cosmo, grantpeltier93, eajames, linux-arm-msm,
devicetree, linux-kernel, festevam, imx, m.facchin,
dmitry.baryshkov, loic.poulain, Riccardo Mereu
From: Riccardo Mereu <r.mereu@arduino.cc>
This will be used for audio over USB-C in Arduino UNO Q board.
Signed-off-by: Riccardo Mereu <r.mereu@arduino.cc>
---
arch/arm64/boot/dts/qcom/agatti.dtsi | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/arch/arm64/boot/dts/qcom/agatti.dtsi b/arch/arm64/boot/dts/qcom/agatti.dtsi
index 8a7337239b1e..01e98ef52271 100644
--- a/arch/arm64/boot/dts/qcom/agatti.dtsi
+++ b/arch/arm64/boot/dts/qcom/agatti.dtsi
@@ -2275,6 +2275,10 @@ dai@1 {
dai@2 {
reg = <MSM_FRONTEND_DAI_MULTIMEDIA3>;
};
+
+ dai@3 {
+ reg = <MSM_FRONTEND_DAI_MULTIMEDIA4>;
+ };
};
};
--
2.53.0
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH 2/3] arm64: qcom: imola: Move analogix video/audio output to dtso
2026-04-30 13:21 [PATCH 0/3] arm64: qcom: imola: add support for Media Carrier Riccardo Mereu
2026-04-30 13:21 ` [PATCH 1/3] arm64: qcom: agatti: Add dai@3 Riccardo Mereu
@ 2026-04-30 13:21 ` Riccardo Mereu
2026-04-30 14:10 ` Konrad Dybcio
2026-05-05 15:44 ` Loic Poulain
2026-04-30 13:21 ` [PATCH 3/3] arm64: dts: qcom: imola: add support for media carrier board Riccardo Mereu
2 siblings, 2 replies; 10+ messages in thread
From: Riccardo Mereu @ 2026-04-30 13:21 UTC (permalink / raw)
To: andersson, konradybcio, robh, krzk+dt, conor+dt, broonie
Cc: linux, Jonathan.Cameron, wenswang, naresh.solanki, michal.simek,
nuno.sa, chou.cosmo, grantpeltier93, eajames, linux-arm-msm,
devicetree, linux-kernel, festevam, imx, m.facchin,
dmitry.baryshkov, loic.poulain, Riccardo Mereu
From: Riccardo Mereu <r.mereu@arduino.cc>
This is done in order to support different video output over DSI.
Since audio part is linked to Analogix USB-C controller it is moved to
the same DTSO.
Signed-off-by: Riccardo Mereu <r.mereu@arduino.cc>
---
arch/arm64/boot/dts/qcom/Makefile | 5 +
...ola.dts => qrb2210-arduino-imola-base.dts} | 122 +++++++++++++++---
...rb2210-arduino-imola-video_sound-usbc.dtso | 61 +++++++++
3 files changed, 168 insertions(+), 20 deletions(-)
rename arch/arm64/boot/dts/qcom/{qrb2210-arduino-imola.dts => qrb2210-arduino-imola-base.dts} (85%)
create mode 100644 arch/arm64/boot/dts/qcom/qrb2210-arduino-imola-video_sound-usbc.dtso
diff --git a/arch/arm64/boot/dts/qcom/Makefile b/arch/arm64/boot/dts/qcom/Makefile
index 4ba8e7306419..e89a0e77072b 100644
--- a/arch/arm64/boot/dts/qcom/Makefile
+++ b/arch/arm64/boot/dts/qcom/Makefile
@@ -193,6 +193,11 @@ qcs9100-ride-r3-el2-dtbs := qcs9100-ride-r3.dtb lemans-el2.dtbo
dtb-$(CONFIG_ARCH_QCOM) += qcs9100-ride-el2.dtb
dtb-$(CONFIG_ARCH_QCOM) += qcs9100-ride-r3-el2.dtb
dtb-$(CONFIG_ARCH_QCOM) += qdu1000-idp.dtb
+dtb-$(CONFIG_ARCH_QCOM) += qrb2210-arduino-imola-base.dtb
+
+dtb-$(CONFIG_ARCH_QCOM) += qrb2210-arduino-imola-video_sound-usbc.dtbo
+
+qrb2210-arduino-imola-dtbs := qrb2210-arduino-imola-base.dtb qrb2210-arduino-imola-video_sound-usbc.dtbo
dtb-$(CONFIG_ARCH_QCOM) += qrb2210-arduino-imola.dtb
dtb-$(CONFIG_ARCH_QCOM) += qrb2210-rb1.dtb
diff --git a/arch/arm64/boot/dts/qcom/qrb2210-arduino-imola.dts b/arch/arm64/boot/dts/qcom/qrb2210-arduino-imola-base.dts
similarity index 85%
rename from arch/arm64/boot/dts/qcom/qrb2210-arduino-imola.dts
rename to arch/arm64/boot/dts/qcom/qrb2210-arduino-imola-base.dts
index bf088fa9807f..fb22effb9a35 100644
--- a/arch/arm64/boot/dts/qcom/qrb2210-arduino-imola.dts
+++ b/arch/arm64/boot/dts/qcom/qrb2210-arduino-imola-base.dts
@@ -1,6 +1,6 @@
// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
/*
- * Copyright (c) 2025, Arduino SRL
+ * Copyright (c) 2026, Arduino SRL
*/
/dts-v1/;
@@ -110,6 +110,106 @@ multi-led {
leds = <&ledr>, <&ledg>, <&ledb>;
};
+ sound: sound {
+ compatible = "qcom,qrb2210-sndcard";
+ model = "Arduino-Imola-HPH-LOUT";
+ audio-routing = "IN1_HPHL", "HPHL_OUT",
+ "IN2_HPHR", "HPHR_OUT",
+ "AMIC2", "MIC BIAS2";
+
+ mm1-dai-link {
+ link-name = "MultiMedia1";
+
+ cpu {
+ sound-dai = <&q6asmdai MSM_FRONTEND_DAI_MULTIMEDIA1>;
+ };
+ };
+
+ mm2-dai-link {
+ link-name = "MultiMedia2";
+
+ cpu {
+ sound-dai = <&q6asmdai MSM_FRONTEND_DAI_MULTIMEDIA2>;
+ };
+ };
+
+ mm3-dai-link {
+ link-name = "MultiMedia3";
+
+ cpu {
+ sound-dai = <&q6asmdai MSM_FRONTEND_DAI_MULTIMEDIA3>;
+ };
+ };
+
+ mm4-dai-link {
+ link-name = "MultiMedia4";
+
+ cpu {
+ sound-dai = <&q6asmdai MSM_FRONTEND_DAI_MULTIMEDIA4>;
+ };
+ };
+
+ hph-playback-dai-link {
+ link-name = "HPH Playback";
+ cpu {
+ sound-dai = <&q6afedai RX_CODEC_DMA_RX_0>;
+ };
+
+ platform {
+ sound-dai = <&q6routing>;
+ };
+
+ codec {
+ sound-dai = <&pmic4125_codec 0>, <&swr1 0>, <&rxmacro 0>;
+ };
+ };
+
+ lo-playback-dai-link {
+ link-name = "LO Playback";
+ cpu {
+ sound-dai = <&q6afedai RX_CODEC_DMA_RX_0>;
+ };
+
+ platform {
+ sound-dai = <&q6routing>;
+ };
+
+ codec {
+ sound-dai = <&pmic4125_codec 0>, <&swr1 0>, <&rxmacro 0>;
+ };
+ };
+
+ ear-playback-dai-link {
+ link-name = "Ear Playback";
+ cpu {
+ sound-dai = <&q6afedai RX_CODEC_DMA_RX_0>;
+ };
+
+ platform {
+ sound-dai = <&q6routing>;
+ };
+
+ codec {
+ sound-dai = <&pmic4125_codec 0>, <&swr1 0>, <&rxmacro 0>;
+ };
+ };
+
+ hph-capture-dai-link {
+ link-name = "HP Capture";
+ cpu {
+ sound-dai = <&q6afedai TX_CODEC_DMA_TX_3>;
+ };
+
+ platform {
+ sound-dai = <&q6routing>;
+ };
+
+ codec {
+ sound-dai = <&pmic4125_codec 1>, <&swr0 0>, <&txmacro 0>;
+ };
+ };
+ };
+
vreg_anx_30: regulator-anx-30 {
compatible = "regulator-fixed";
regulator-name = "anx30";
@@ -165,6 +265,7 @@ anx7625: encoder@58 {
analogix,lane1-swing = /bits/ 8 <0x14 0x54 0x64 0x74>;
pinctrl-0 = <&anx7625_int_pin>, <&anx7625_cable_det_pin>;
+ #sound-dai-cells = <1>;
connector {
compatible = "usb-c-connector";
@@ -198,20 +299,6 @@ anx_ss_in: endpoint {
};
};
};
-
- 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>;
- };
- };
- };
};
};
@@ -225,11 +312,6 @@ &mdss_dsi0 {
status = "okay";
};
-&mdss_dsi0_out {
- remote-endpoint = <&anx_dsi0_in>;
- data-lanes = <0 1 2 3>;
-};
-
&mdss_dsi0_phy {
status = "okay";
};
diff --git a/arch/arm64/boot/dts/qcom/qrb2210-arduino-imola-video_sound-usbc.dtso b/arch/arm64/boot/dts/qcom/qrb2210-arduino-imola-video_sound-usbc.dtso
new file mode 100644
index 000000000000..6fb256498cd1
--- /dev/null
+++ b/arch/arm64/boot/dts/qcom/qrb2210-arduino-imola-video_sound-usbc.dtso
@@ -0,0 +1,61 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
+/*
+ * Copyright (c) 2025, Arduino SA
+ */
+
+/dts-v1/;
+/plugin/;
+
+#include <dt-bindings/sound/qcom,q6asm.h>
+#include <dt-bindings/sound/qcom,q6dsp-lpass-ports.h>
+
+&anx7625 {
+ 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_dsi0_out {
+ remote-endpoint = <&anx_dsi0_in>;
+ data-lanes = <0 1 2 3>;
+};
+
+&q6afedai {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ #sound-dai-cells = <1>;
+ dai@18 {
+ reg = <SECONDARY_MI2S_RX>;
+ qcom,sd-lines = <0>;
+ };
+};
+
+&sound {
+ pinctrl-0 = <&lpi_i2s2_active>;
+ pinctrl-names = "default";
+
+ hdmi-i2s-dai-link {
+ link-name = "HDMI/I2S Playback";
+
+ cpu {
+ sound-dai = <&q6afedai SECONDARY_MI2S_RX>;
+ };
+
+ platform {
+ sound-dai = <&q6routing>;
+ };
+
+ codec {
+ sound-dai = <&anx7625 0>;
+ };
+ };
+};
--
2.53.0
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH 3/3] arm64: dts: qcom: imola: add support for media carrier board
2026-04-30 13:21 [PATCH 0/3] arm64: qcom: imola: add support for Media Carrier Riccardo Mereu
2026-04-30 13:21 ` [PATCH 1/3] arm64: qcom: agatti: Add dai@3 Riccardo Mereu
2026-04-30 13:21 ` [PATCH 2/3] arm64: qcom: imola: Move analogix video/audio output to dtso Riccardo Mereu
@ 2026-04-30 13:21 ` Riccardo Mereu
2026-04-30 14:11 ` Konrad Dybcio
2 siblings, 1 reply; 10+ messages in thread
From: Riccardo Mereu @ 2026-04-30 13:21 UTC (permalink / raw)
To: andersson, konradybcio, robh, krzk+dt, conor+dt, broonie
Cc: linux, Jonathan.Cameron, wenswang, naresh.solanki, michal.simek,
nuno.sa, chou.cosmo, grantpeltier93, eajames, linux-arm-msm,
devicetree, linux-kernel, festevam, imx, m.facchin,
dmitry.baryshkov, loic.poulain, Riccardo Mereu
From: Riccardo Mereu <r.mereu@arduino.cc>
Media Carrier is an expansion board for Arduino UNO Q.
It adds two CSI connector, one DSI connector, 3 jack connectors for
headphones, earphone and lineout and 4 RGB LEDs.
Current devicetree overlays support:
- imx219 based cameras (both with 4 lanes and 2 lanes)
- Waveshare 5" and 8" touch A DSI displays.
As can be noticed DTBOs are split and no overlay is performed in the
Makefile. Overlaying is handled in user-space guiding users to configure
the system matching what it is connected to the Media Carrier.
Signed-off-by: Riccardo Mereu <r.mereu@arduino.cc>
---
arch/arm64/boot/dts/qcom/Makefile | 8 ++
...rrier-media-camera-imx219-csi0-2lanes.dtso | 49 +++++++
...rrier-media-camera-imx219-csi0-4lanes.dtso | 49 +++++++
...rrier-media-camera-imx219-csi1-2lanes.dtso | 49 +++++++
...rrier-media-camera-imx219-csi1-4lanes.dtso | 49 +++++++
...10-arduino-imola-carrier-media-common.dtsi | 46 ++++++
...a-carrier-media-panel-5in_touch_a-dsi.dtso | 80 +++++++++++
...a-carrier-media-panel-8in_touch_a-dsi.dtso | 80 +++++++++++
.../qrb2210-arduino-imola-carrier-media.dtso | 131 ++++++++++++++++++
9 files changed, 541 insertions(+)
create mode 100644 arch/arm64/boot/dts/qcom/qrb2210-arduino-imola-carrier-media-camera-imx219-csi0-2lanes.dtso
create mode 100644 arch/arm64/boot/dts/qcom/qrb2210-arduino-imola-carrier-media-camera-imx219-csi0-4lanes.dtso
create mode 100644 arch/arm64/boot/dts/qcom/qrb2210-arduino-imola-carrier-media-camera-imx219-csi1-2lanes.dtso
create mode 100644 arch/arm64/boot/dts/qcom/qrb2210-arduino-imola-carrier-media-camera-imx219-csi1-4lanes.dtso
create mode 100644 arch/arm64/boot/dts/qcom/qrb2210-arduino-imola-carrier-media-common.dtsi
create mode 100644 arch/arm64/boot/dts/qcom/qrb2210-arduino-imola-carrier-media-panel-5in_touch_a-dsi.dtso
create mode 100644 arch/arm64/boot/dts/qcom/qrb2210-arduino-imola-carrier-media-panel-8in_touch_a-dsi.dtso
create mode 100644 arch/arm64/boot/dts/qcom/qrb2210-arduino-imola-carrier-media.dtso
diff --git a/arch/arm64/boot/dts/qcom/Makefile b/arch/arm64/boot/dts/qcom/Makefile
index e89a0e77072b..441a217371ac 100644
--- a/arch/arm64/boot/dts/qcom/Makefile
+++ b/arch/arm64/boot/dts/qcom/Makefile
@@ -195,6 +195,14 @@ dtb-$(CONFIG_ARCH_QCOM) += qcs9100-ride-r3-el2.dtb
dtb-$(CONFIG_ARCH_QCOM) += qdu1000-idp.dtb
dtb-$(CONFIG_ARCH_QCOM) += qrb2210-arduino-imola-base.dtb
+dtb-$(CONFIG_ARCH_QCOM) += qrb2210-arduino-imola-carrier-media.dtbo
+dtb-$(CONFIG_ARCH_QCOM) += qrb2210-arduino-imola-carrier-media-camera-imx219-csi0-2lanes.dtbo
+dtb-$(CONFIG_ARCH_QCOM) += qrb2210-arduino-imola-carrier-media-camera-imx219-csi0-4lanes.dtbo
+dtb-$(CONFIG_ARCH_QCOM) += qrb2210-arduino-imola-carrier-media-camera-imx219-csi1-2lanes.dtbo
+dtb-$(CONFIG_ARCH_QCOM) += qrb2210-arduino-imola-carrier-media-camera-imx219-csi1-4lanes.dtbo
+dtb-$(CONFIG_ARCH_QCOM) += qrb2210-arduino-imola-carrier-media-panel-10in_touch_a-dsi.dtbo
+dtb-$(CONFIG_ARCH_QCOM) += qrb2210-arduino-imola-carrier-media-panel-8in_touch_a-dsi.dtbo
+dtb-$(CONFIG_ARCH_QCOM) += qrb2210-arduino-imola-carrier-media-panel-5in_touch_a-dsi.dtbo
dtb-$(CONFIG_ARCH_QCOM) += qrb2210-arduino-imola-video_sound-usbc.dtbo
qrb2210-arduino-imola-dtbs := qrb2210-arduino-imola-base.dtb qrb2210-arduino-imola-video_sound-usbc.dtbo
diff --git a/arch/arm64/boot/dts/qcom/qrb2210-arduino-imola-carrier-media-camera-imx219-csi0-2lanes.dtso b/arch/arm64/boot/dts/qcom/qrb2210-arduino-imola-carrier-media-camera-imx219-csi0-2lanes.dtso
new file mode 100644
index 000000000000..5b1d3cdc693a
--- /dev/null
+++ b/arch/arm64/boot/dts/qcom/qrb2210-arduino-imola-carrier-media-camera-imx219-csi0-2lanes.dtso
@@ -0,0 +1,49 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
+/*
+ * Copyright (c) 2026, Arduino SRL
+ */
+
+/dts-v1/;
+/plugin/;
+
+#include <dt-bindings/gpio/gpio.h>
+#include "qrb2210-arduino-imola-carrier-media-common.dtsi"
+
+&camss {
+ ports {
+ port@0 {
+ csiphy0_ep: endpoint {
+ data-lanes = <0 1>;
+ remote-endpoint = <&imx219_0_ep>;
+ };
+ };
+ };
+};
+
+&cci_i2c0 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ sensor@10 {
+ compatible = "sony,imx219";
+ reg = <0x10>;
+ clocks = <&cam24m>;
+ status = "okay";
+
+ VDIG-supply = <&cam_pwr_csi0>;
+ VANA-supply = <&cam_pwr_csi0>;
+ VDDL-supply = <&cam_pwr_csi0>;
+
+ reset-gpios = <&pca9555 0 GPIO_ACTIVE_HIGH>;
+
+ port {
+ /* MIPI CSI-2 bus endpoint */
+ imx219_0_ep: endpoint {
+ remote-endpoint = <&csiphy0_ep>;
+ clock-lanes = <0>;
+ data-lanes = <1 2>;
+ link-frequencies = /bits/ 64 <456000000>;
+ };
+ };
+ };
+};
\ No newline at end of file
diff --git a/arch/arm64/boot/dts/qcom/qrb2210-arduino-imola-carrier-media-camera-imx219-csi0-4lanes.dtso b/arch/arm64/boot/dts/qcom/qrb2210-arduino-imola-carrier-media-camera-imx219-csi0-4lanes.dtso
new file mode 100644
index 000000000000..0d76786bd925
--- /dev/null
+++ b/arch/arm64/boot/dts/qcom/qrb2210-arduino-imola-carrier-media-camera-imx219-csi0-4lanes.dtso
@@ -0,0 +1,49 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
+/*
+ * Copyright (c) 2026, Arduino SRL
+ */
+
+/dts-v1/;
+/plugin/;
+
+#include <dt-bindings/gpio/gpio.h>
+#include "qrb2210-arduino-imola-carrier-media-common.dtsi"
+
+&camss {
+ ports {
+ port@0 {
+ csiphy0_ep: endpoint {
+ data-lanes = <0 1 2 3>;
+ remote-endpoint = <&imx219_0_ep>;
+ };
+ };
+ };
+};
+
+&cci_i2c0 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ sensor@10 {
+ compatible = "sony,imx219";
+ reg = <0x10>;
+ clocks = <&cam24m>;
+ status = "okay";
+
+ VDIG-supply = <&cam_pwr_csi0>;
+ VANA-supply = <&cam_pwr_csi0>;
+ VDDL-supply = <&cam_pwr_csi0>;
+
+ reset-gpios = <&pca9555 0 GPIO_ACTIVE_HIGH>;
+
+ port {
+ /* MIPI CSI-2 bus endpoint */
+ imx219_0_ep: endpoint {
+ remote-endpoint = <&csiphy0_ep>;
+ clock-lanes = <0>;
+ data-lanes = <1 2 3 4>;
+ link-frequencies = /bits/ 64 <364000000>;
+ };
+ };
+ };
+};
\ No newline at end of file
diff --git a/arch/arm64/boot/dts/qcom/qrb2210-arduino-imola-carrier-media-camera-imx219-csi1-2lanes.dtso b/arch/arm64/boot/dts/qcom/qrb2210-arduino-imola-carrier-media-camera-imx219-csi1-2lanes.dtso
new file mode 100644
index 000000000000..d74b63876e87
--- /dev/null
+++ b/arch/arm64/boot/dts/qcom/qrb2210-arduino-imola-carrier-media-camera-imx219-csi1-2lanes.dtso
@@ -0,0 +1,49 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
+/*
+ * Copyright (c) 2026, Arduino SRL
+ */
+
+/dts-v1/;
+/plugin/;
+
+#include <dt-bindings/gpio/gpio.h>
+#include "qrb2210-arduino-imola-carrier-media-common.dtsi"
+
+&camss {
+ ports {
+ port@1 {
+ csiphy1_ep: endpoint {
+ data-lanes = <0 1>;
+ remote-endpoint = <&imx219_1_ep>;
+ };
+ };
+ };
+};
+
+&cci_i2c1 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ sensor@10 {
+ compatible = "sony,imx219";
+ reg = <0x10>;
+ clocks = <&cam24m>;
+ status = "okay";
+
+ VDIG-supply = <&cam_pwr_csi1>;
+ VANA-supply = <&cam_pwr_csi1>;
+ VDDL-supply = <&cam_pwr_csi1>;
+
+ reset-gpios = <&pca9555 2 GPIO_ACTIVE_HIGH>;
+
+ port {
+ /* MIPI CSI-2 bus endpoint */
+ imx219_1_ep: endpoint {
+ remote-endpoint = <&csiphy1_ep>;
+ clock-lanes = <0>;
+ data-lanes = <1 2>;
+ link-frequencies = /bits/ 64 <456000000>;
+ };
+ };
+ };
+};
\ No newline at end of file
diff --git a/arch/arm64/boot/dts/qcom/qrb2210-arduino-imola-carrier-media-camera-imx219-csi1-4lanes.dtso b/arch/arm64/boot/dts/qcom/qrb2210-arduino-imola-carrier-media-camera-imx219-csi1-4lanes.dtso
new file mode 100644
index 000000000000..87db9ed386af
--- /dev/null
+++ b/arch/arm64/boot/dts/qcom/qrb2210-arduino-imola-carrier-media-camera-imx219-csi1-4lanes.dtso
@@ -0,0 +1,49 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
+/*
+ * Copyright (c) 2026, Arduino SRL
+ */
+
+/dts-v1/;
+/plugin/;
+
+#include <dt-bindings/gpio/gpio.h>
+#include "qrb2210-arduino-imola-carrier-media-common.dtsi"
+
+&camss {
+ ports {
+ port@1 {
+ csiphy1_ep: endpoint {
+ data-lanes = <0 1 2 3>;
+ remote-endpoint = <&imx219_1_ep>;
+ };
+ };
+ };
+};
+
+&cci_i2c1 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ sensor@10 {
+ compatible = "sony,imx219";
+ reg = <0x10>;
+ clocks = <&cam24m>;
+ status = "okay";
+
+ VDIG-supply = <&cam_pwr_csi1>;
+ VANA-supply = <&cam_pwr_csi1>;
+ VDDL-supply = <&cam_pwr_csi1>;
+
+ reset-gpios = <&pca9555 2 GPIO_ACTIVE_HIGH>;
+
+ port {
+ /* MIPI CSI-2 bus endpoint */
+ imx219_1_ep: endpoint {
+ remote-endpoint = <&csiphy1_ep>;
+ clock-lanes = <0>;
+ data-lanes = <1 2 3 4>;
+ link-frequencies = /bits/ 64 <364000000>;
+ };
+ };
+ };
+};
\ No newline at end of file
diff --git a/arch/arm64/boot/dts/qcom/qrb2210-arduino-imola-carrier-media-common.dtsi b/arch/arm64/boot/dts/qcom/qrb2210-arduino-imola-carrier-media-common.dtsi
new file mode 100644
index 000000000000..9670fecf6a89
--- /dev/null
+++ b/arch/arm64/boot/dts/qcom/qrb2210-arduino-imola-carrier-media-common.dtsi
@@ -0,0 +1,46 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
+/*
+ * Copyright (c) 2026, Arduino SRL
+ */
+
+#include <dt-bindings/gpio/gpio.h>
+
+&{/} {
+ cam_pwr_csi0: cam-pwr-csi0 {
+ compatible = "regulator-fixed";
+ regulator-name = "cam-pwr";
+ startup-delay-us = <100000>;
+ gpio = <&pca9555 1 GPIO_ACTIVE_HIGH>;
+ enable-active-high;
+ };
+
+ cam_pwr_csi1: cam-pwr-csi1 {
+ compatible = "regulator-fixed";
+ regulator-name = "cam-pwr";
+ startup-delay-us = <100000>;
+ gpio = <&pca9555 3 GPIO_ACTIVE_HIGH>;
+ enable-active-high;
+ };
+
+ clocks {
+ cam24m: cam-clk {
+ compatible = "fixed-clock";
+ #clock-cells = <0>;
+ clock-frequency = <24000000>;
+ clock-output-names = "cam24m";
+ };
+ };
+};
+
+&cci_i2c0 {
+ clock-frequency = <100000>;
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ pca9555: gpio@26 {
+ compatible = "nxp,pca9555";
+ reg = <0x26>;
+ gpio-controller;
+ #gpio-cells = <2>;
+ };
+};
diff --git a/arch/arm64/boot/dts/qcom/qrb2210-arduino-imola-carrier-media-panel-5in_touch_a-dsi.dtso b/arch/arm64/boot/dts/qcom/qrb2210-arduino-imola-carrier-media-panel-5in_touch_a-dsi.dtso
new file mode 100644
index 000000000000..cd9c533ad3a4
--- /dev/null
+++ b/arch/arm64/boot/dts/qcom/qrb2210-arduino-imola-carrier-media-panel-5in_touch_a-dsi.dtso
@@ -0,0 +1,80 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
+/*
+ * Copyright (c) 2026, Arduino SRL
+ */
+
+ /dts-v1/;
+/plugin/;
+
+#include <dt-bindings/gpio/gpio.h>
+#include "qrb2210-arduino-imola-carrier-media-common.dtsi"
+
+&{/} {
+ panel_avdd: regulator-panel-avdd {
+ compatible = "regulator-fixed";
+ regulator-name = "panel-avdd";
+ gpios = <&wsgpio 0 GPIO_ACTIVE_HIGH>;
+ enable-active-high;
+ };
+
+ panel_iovcc: regulator-panel-iovcc {
+ compatible = "regulator-fixed";
+ regulator-name = "panel-iovcc";
+ gpios = <&wsgpio 4 GPIO_ACTIVE_HIGH>;
+ enable-active-high;
+ };
+
+ panel_vcc: regulator-panel-vcc {
+ compatible = "regulator-fixed";
+ regulator-name = "panel-vcc";
+ gpios = <&wsgpio 8 GPIO_ACTIVE_HIGH>;
+ enable-active-high;
+ regulator-always-on;
+ };
+};
+
+&cci_i2c0 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ wsgpio: gpio@45 {
+ compatible = "waveshare,dsi-touch-gpio";
+ reg = <0x45>;
+ gpio-controller;
+ #gpio-cells = <2>;
+ };
+
+ touch: goodix@5d {
+ compatible = "goodix,gt9271";
+ reg = <0x5d>;
+ reset-gpio = <&wsgpio 9 GPIO_ACTIVE_HIGH>;
+ };
+};
+
+&mdss_dsi0 {
+ vdda-supply = <&pm4125_l5>;
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ status = "okay";
+
+ dsi_panel: dsi_panel@0 {
+ reg = <0>;
+ compatible = "waveshare,5.0-dsi-touch-a", "himax,hx8399c";
+ reset-gpio = <&wsgpio 1 GPIO_ACTIVE_LOW>;
+ iovcc-supply = <&panel_iovcc>;
+ vcc-supply = <&panel_avdd>;
+ backlight = <&wsgpio>;
+
+ port {
+ panel_in: endpoint {
+ remote-endpoint = <&mdss_dsi0_out>;
+ };
+ };
+ };
+};
+
+&mdss_dsi0_out {
+ remote-endpoint = <&panel_in>;
+ data-lanes = <0 1 2 3>;
+};
diff --git a/arch/arm64/boot/dts/qcom/qrb2210-arduino-imola-carrier-media-panel-8in_touch_a-dsi.dtso b/arch/arm64/boot/dts/qcom/qrb2210-arduino-imola-carrier-media-panel-8in_touch_a-dsi.dtso
new file mode 100644
index 000000000000..41e7a254dbe7
--- /dev/null
+++ b/arch/arm64/boot/dts/qcom/qrb2210-arduino-imola-carrier-media-panel-8in_touch_a-dsi.dtso
@@ -0,0 +1,80 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
+/*
+ * Copyright (c) 2026, Arduino SRL
+ */
+
+ /dts-v1/;
+/plugin/;
+
+#include <dt-bindings/gpio/gpio.h>
+#include "qrb2210-arduino-imola-carrier-media-common.dtsi"
+
+&{/} {
+ panel_avdd: regulator-panel-avdd {
+ compatible = "regulator-fixed";
+ regulator-name = "panel-avdd";
+ gpios = <&wsgpio 0 GPIO_ACTIVE_HIGH>;
+ enable-active-high;
+ };
+
+ panel_iovcc: regulator-panel-iovcc {
+ compatible = "regulator-fixed";
+ regulator-name = "panel-iovcc";
+ gpios = <&wsgpio 4 GPIO_ACTIVE_HIGH>;
+ enable-active-high;
+ };
+
+ panel_vcc: regulator-panel-vcc {
+ compatible = "regulator-fixed";
+ regulator-name = "panel-vcc";
+ gpios = <&wsgpio 8 GPIO_ACTIVE_HIGH>;
+ enable-active-high;
+ regulator-always-on;
+ };
+};
+
+&cci_i2c0 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ wsgpio: gpio@45 {
+ compatible = "waveshare,dsi-touch-gpio";
+ reg = <0x45>;
+ gpio-controller;
+ #gpio-cells = <2>;
+ };
+
+ touch: goodix@5d {
+ compatible = "goodix,gt9271";
+ reg = <0x5d>;
+ reset-gpio = <&wsgpio 9 GPIO_ACTIVE_HIGH>;
+ };
+};
+
+&mdss_dsi0 {
+ vdda-supply = <&pm4125_l5>;
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ status = "okay";
+
+ dsi_panel: dsi_panel@0 {
+ reg = <0>;
+ compatible = "waveshare,8.0-dsi-touch-a", "jadard,jd9365da-h3";
+ reset-gpio = <&wsgpio 1 GPIO_ACTIVE_LOW>;
+ vccio-supply = <&panel_iovcc>;
+ vdd-supply = <&panel_avdd>;
+ backlight = <&wsgpio>;
+
+ port {
+ panel_in: endpoint {
+ remote-endpoint = <&mdss_dsi0_out>;
+ };
+ };
+ };
+};
+
+&mdss_dsi0_out {
+ remote-endpoint = <&panel_in>;
+ data-lanes = <0 1 2 3>;
+};
diff --git a/arch/arm64/boot/dts/qcom/qrb2210-arduino-imola-carrier-media.dtso b/arch/arm64/boot/dts/qcom/qrb2210-arduino-imola-carrier-media.dtso
new file mode 100644
index 000000000000..217a84199e9f
--- /dev/null
+++ b/arch/arm64/boot/dts/qcom/qrb2210-arduino-imola-carrier-media.dtso
@@ -0,0 +1,131 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
+/*
+ * Copyright (c) 2026, Arduino SRL
+ */
+
+/dts-v1/;
+/plugin/;
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/leds/common.h>
+#include "qrb2210-arduino-imola-carrier-media-common.dtsi"
+
+&camss {
+ status = "okay";
+
+ vdda-csiphy-1p2-supply = <&pm4125_l5>;
+ vdda-pll-1p8-supply = <&pm4125_l13>;
+};
+
+&cci {
+ status= "okay";
+};
+
+&leds {
+ led1-blue {
+ label = "media-carrier:blue1";
+ function = LED_FUNCTION_INDICATOR;
+ color = <LED_COLOR_ID_BLUE>;
+ gpios = <&pca9555 14 GPIO_ACTIVE_LOW>;
+ linux,default-trigger = "none";
+ default-state = "off";
+ };
+
+ led1-green {
+ label = "media-carrier:green1";
+ function = LED_FUNCTION_INDICATOR;
+ color = <LED_COLOR_ID_GREEN>;
+ gpios = <&pca9555 15 GPIO_ACTIVE_LOW>;
+ linux,default-trigger = "none";
+ default-state = "off";
+ };
+
+ led1-red {
+ label = "media-carrier:red1";
+ function = LED_FUNCTION_INDICATOR;
+ color = <LED_COLOR_ID_RED>;
+ gpios = <&pca9555 13 GPIO_ACTIVE_LOW>;
+ linux,default-trigger = "none";
+ default-state = "off";
+ };
+ led2-blue {
+ label = "media-carrier:blue2";
+ function = LED_FUNCTION_INDICATOR;
+ color = <LED_COLOR_ID_BLUE>;
+ gpios = <&pca9555 11 GPIO_ACTIVE_LOW>;
+ linux,default-trigger = "none";
+ default-state = "off";
+ };
+
+ led2-green {
+ label = "media-carrier:green2";
+ function = LED_FUNCTION_INDICATOR;
+ color = <LED_COLOR_ID_GREEN>;
+ gpios = <&pca9555 12 GPIO_ACTIVE_LOW>;
+ linux,default-trigger = "none";
+ default-state = "off";
+ };
+
+ led2-red {
+ label = "media-carrier:red2";
+ function = LED_FUNCTION_INDICATOR;
+ color = <LED_COLOR_ID_RED>;
+ gpios = <&pca9555 10 GPIO_ACTIVE_LOW>;
+ linux,default-trigger = "none";
+ default-state = "off";
+ };
+
+ led3-blue {
+ label = "media-carrier:blue3";
+ function = LED_FUNCTION_INDICATOR;
+ color = <LED_COLOR_ID_BLUE>;
+ gpios = <&pca9555 8 GPIO_ACTIVE_LOW>;
+ linux,default-trigger = "none";
+ default-state = "off";
+ };
+
+ led3-green {
+ label = "media-carrier:green3";
+ function = LED_FUNCTION_INDICATOR;
+ color = <LED_COLOR_ID_GREEN>;
+ gpios = <&pca9555 9 GPIO_ACTIVE_LOW>;
+ linux,default-trigger = "none";
+ default-state = "off";
+ };
+
+ led3-red {
+ label = "media-carrier:red3";
+ function = LED_FUNCTION_INDICATOR;
+ color = <LED_COLOR_ID_RED>;
+ gpios = <&pca9555 7 GPIO_ACTIVE_LOW>;
+ linux,default-trigger = "none";
+ default-state = "off";
+ };
+
+ led4-blue {
+ label = "media-carrier:blue4";
+ function = LED_FUNCTION_INDICATOR;
+ color = <LED_COLOR_ID_BLUE>;
+ gpios = <&pca9555 5 GPIO_ACTIVE_LOW>;
+ linux,default-trigger = "none";
+ default-state = "off";
+ };
+
+ led4-green {
+ label = "media-carrier:green4";
+ function = LED_FUNCTION_INDICATOR;
+ color = <LED_COLOR_ID_GREEN>;
+ gpios = <&pca9555 6 GPIO_ACTIVE_LOW>;
+ linux,default-trigger = "none";
+ default-state = "off";
+ };
+
+ led4-red {
+ label = "media-carrier:red4";
+ function = LED_FUNCTION_INDICATOR;
+ color = <LED_COLOR_ID_RED>;
+ gpios = <&pca9555 4 GPIO_ACTIVE_LOW>;
+ linux,default-trigger = "none";
+ default-state = "off";
+ };
+};
--
2.53.0
^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: [PATCH 1/3] arm64: qcom: agatti: Add dai@3
2026-04-30 13:21 ` [PATCH 1/3] arm64: qcom: agatti: Add dai@3 Riccardo Mereu
@ 2026-04-30 13:57 ` Konrad Dybcio
0 siblings, 0 replies; 10+ messages in thread
From: Konrad Dybcio @ 2026-04-30 13:57 UTC (permalink / raw)
To: Riccardo Mereu, andersson, konradybcio, robh, krzk+dt, conor+dt,
broonie
Cc: linux, Jonathan.Cameron, wenswang, naresh.solanki, michal.simek,
nuno.sa, chou.cosmo, grantpeltier93, eajames, linux-arm-msm,
devicetree, linux-kernel, festevam, imx, m.facchin,
dmitry.baryshkov, loic.poulain, Riccardo Mereu
On 4/30/26 3:21 PM, Riccardo Mereu wrote:
> From: Riccardo Mereu <r.mereu@arduino.cc>
>
> This will be used for audio over USB-C in Arduino UNO Q board.
>
> Signed-off-by: Riccardo Mereu <r.mereu@arduino.cc>
> ---
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Konrad
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH 2/3] arm64: qcom: imola: Move analogix video/audio output to dtso
2026-04-30 13:21 ` [PATCH 2/3] arm64: qcom: imola: Move analogix video/audio output to dtso Riccardo Mereu
@ 2026-04-30 14:10 ` Konrad Dybcio
2026-05-05 14:16 ` Riccardo Mereu Linux Kernel
2026-05-05 15:44 ` Loic Poulain
1 sibling, 1 reply; 10+ messages in thread
From: Konrad Dybcio @ 2026-04-30 14:10 UTC (permalink / raw)
To: Riccardo Mereu, andersson, konradybcio, robh, krzk+dt, conor+dt,
broonie
Cc: linux, Jonathan.Cameron, wenswang, naresh.solanki, michal.simek,
nuno.sa, chou.cosmo, grantpeltier93, eajames, linux-arm-msm,
devicetree, linux-kernel, festevam, imx, m.facchin,
dmitry.baryshkov, loic.poulain, Riccardo Mereu
On 4/30/26 3:21 PM, Riccardo Mereu wrote:
> From: Riccardo Mereu <r.mereu@arduino.cc>
>
> This is done in order to support different video output over DSI.
> Since audio part is linked to Analogix USB-C controller it is moved to
> the same DTSO.
>
> Signed-off-by: Riccardo Mereu <r.mereu@arduino.cc>
> ---
[...]
> + sound: sound {
> + compatible = "qcom,qrb2210-sndcard";
> + model = "Arduino-Imola-HPH-LOUT";
> + audio-routing = "IN1_HPHL", "HPHL_OUT",
> + "IN2_HPHR", "HPHR_OUT",
> + "AMIC2", "MIC BIAS2";
The commit message doesn't mention wiring this up, please split adding
new features
[...]
> + mm3-dai-link {
> + link-name = "MultiMedia3";
> +
> + cpu {
> + sound-dai = <&q6asmdai MSM_FRONTEND_DAI_MULTIMEDIA3>;
some of these have a double-space, please fix them up
[...]
> + hph-playback-dai-link {
> + link-name = "HPH Playback";
> + cpu {
Let's keep a \n between the last property and the following subnode, file-wide
> + sound-dai = <&q6afedai RX_CODEC_DMA_RX_0>;
> + };
> +
> + platform {
'co'dec < 'cp'u < 'p'latform, please
Konrad
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH 3/3] arm64: dts: qcom: imola: add support for media carrier board
2026-04-30 13:21 ` [PATCH 3/3] arm64: dts: qcom: imola: add support for media carrier board Riccardo Mereu
@ 2026-04-30 14:11 ` Konrad Dybcio
2026-05-05 14:19 ` Riccardo Mereu Linux Kernel
0 siblings, 1 reply; 10+ messages in thread
From: Konrad Dybcio @ 2026-04-30 14:11 UTC (permalink / raw)
To: Riccardo Mereu, andersson, konradybcio, robh, krzk+dt, conor+dt,
broonie
Cc: linux, Jonathan.Cameron, wenswang, naresh.solanki, michal.simek,
nuno.sa, chou.cosmo, grantpeltier93, eajames, linux-arm-msm,
devicetree, linux-kernel, festevam, imx, m.facchin,
dmitry.baryshkov, loic.poulain, Riccardo Mereu
On 4/30/26 3:21 PM, Riccardo Mereu wrote:
> From: Riccardo Mereu <r.mereu@arduino.cc>
>
> Media Carrier is an expansion board for Arduino UNO Q.
> It adds two CSI connector, one DSI connector, 3 jack connectors for
> headphones, earphone and lineout and 4 RGB LEDs.
>
> Current devicetree overlays support:
> - imx219 based cameras (both with 4 lanes and 2 lanes)
> - Waveshare 5" and 8" touch A DSI displays.
>
> As can be noticed DTBOs are split and no overlay is performed in the
> Makefile. Overlaying is handled in user-space guiding users to configure
> the system matching what it is connected to the Media Carrier.
>
> Signed-off-by: Riccardo Mereu <r.mereu@arduino.cc>
> ---
> arch/arm64/boot/dts/qcom/Makefile | 8 ++
> ...rrier-media-camera-imx219-csi0-2lanes.dtso | 49 +++++++
> ...rrier-media-camera-imx219-csi0-4lanes.dtso | 49 +++++++
> ...rrier-media-camera-imx219-csi1-2lanes.dtso | 49 +++++++
> ...rrier-media-camera-imx219-csi1-4lanes.dtso | 49 +++++++
Are the 2ln DTs actually useful in practice?
> ...10-arduino-imola-carrier-media-common.dtsi | 46 ++++++
> ...a-carrier-media-panel-5in_touch_a-dsi.dtso | 80 +++++++++++
> ...a-carrier-media-panel-8in_touch_a-dsi.dtso | 80 +++++++++++
The waveshare,dsi-touch-gpio compatible is absent upstream and I
would imagine it'll take a considerable amount of time for that to
change, let's focus on the other bits for now
Konrad
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH 2/3] arm64: qcom: imola: Move analogix video/audio output to dtso
2026-04-30 14:10 ` Konrad Dybcio
@ 2026-05-05 14:16 ` Riccardo Mereu Linux Kernel
0 siblings, 0 replies; 10+ messages in thread
From: Riccardo Mereu Linux Kernel @ 2026-05-05 14:16 UTC (permalink / raw)
To: Konrad Dybcio
Cc: andersson, konradybcio, robh, krzk+dt, conor+dt, broonie, linux,
Jonathan.Cameron, wenswang, naresh.solanki, michal.simek, nuno.sa,
chou.cosmo, grantpeltier93, eajames, linux-arm-msm, devicetree,
linux-kernel, festevam, imx, m.facchin, dmitry.baryshkov,
loic.poulain, Riccardo Mereu
On Thu, Apr 30, 2026 at 4:10 PM Konrad Dybcio
<konrad.dybcio@oss.qualcomm.com> wrote:
>
> On 4/30/26 3:21 PM, Riccardo Mereu wrote:
> > From: Riccardo Mereu <r.mereu@arduino.cc>
> >
> > This is done in order to support different video output over DSI.
> > Since audio part is linked to Analogix USB-C controller it is moved to
> > the same DTSO.
> >
> > Signed-off-by: Riccardo Mereu <r.mereu@arduino.cc>
> > ---
>
> [...]
>
> > + sound: sound {
> > + compatible = "qcom,qrb2210-sndcard";
> > + model = "Arduino-Imola-HPH-LOUT";
> > + audio-routing = "IN1_HPHL", "HPHL_OUT",
> > + "IN2_HPHR", "HPHR_OUT",
> > + "AMIC2", "MIC BIAS2";
>
> The commit message doesn't mention wiring this up, please split adding
> new features
Sorry for that, part of this is in a series that I was sure was added.
I'll make the dependence explicit in V2 cover letter.
> some of these have a double-space, please fix them up
[...]
> Let's keep a \n between the last property and the following subnode, file-wide
[...]
> 'co'dec < 'cp'u < 'p'latform, please
Thanks for the feedback, will fix this in V2
Best regards,
Riccardo
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH 3/3] arm64: dts: qcom: imola: add support for media carrier board
2026-04-30 14:11 ` Konrad Dybcio
@ 2026-05-05 14:19 ` Riccardo Mereu Linux Kernel
0 siblings, 0 replies; 10+ messages in thread
From: Riccardo Mereu Linux Kernel @ 2026-05-05 14:19 UTC (permalink / raw)
To: Konrad Dybcio
Cc: andersson, konradybcio, robh, krzk+dt, conor+dt, broonie, linux,
Jonathan.Cameron, wenswang, naresh.solanki, michal.simek, nuno.sa,
chou.cosmo, grantpeltier93, eajames, linux-arm-msm, devicetree,
linux-kernel, festevam, imx, m.facchin, dmitry.baryshkov,
loic.poulain, Riccardo Mereu
On Thu, Apr 30, 2026 at 4:11 PM Konrad Dybcio
<konrad.dybcio@oss.qualcomm.com> wrote:
>
> On 4/30/26 3:21 PM, Riccardo Mereu wrote:
> > From: Riccardo Mereu <r.mereu@arduino.cc>
> >
> > Media Carrier is an expansion board for Arduino UNO Q.
> > It adds two CSI connector, one DSI connector, 3 jack connectors for
> > headphones, earphone and lineout and 4 RGB LEDs.
> >
> > Current devicetree overlays support:
> > - imx219 based cameras (both with 4 lanes and 2 lanes)
> > - Waveshare 5" and 8" touch A DSI displays.
> >
> > As can be noticed DTBOs are split and no overlay is performed in the
> > Makefile. Overlaying is handled in user-space guiding users to configure
> > the system matching what it is connected to the Media Carrier.
> >
> > Signed-off-by: Riccardo Mereu <r.mereu@arduino.cc>
> > ---
> > arch/arm64/boot/dts/qcom/Makefile | 8 ++
> > ...rrier-media-camera-imx219-csi0-2lanes.dtso | 49 +++++++
> > ...rrier-media-camera-imx219-csi0-4lanes.dtso | 49 +++++++
> > ...rrier-media-camera-imx219-csi1-2lanes.dtso | 49 +++++++
> > ...rrier-media-camera-imx219-csi1-4lanes.dtso | 49 +++++++
>
> Are the 2ln DTs actually useful in practice?
Yes, all the cases are covered for the supported camera since
inexperienced users are guided in the configuration of cameras
without the need to perform overlays or write their own DTSO.
This is done via a GUI soon to be released.
That's why I covered all the possible cases for camera connection.
> > ...10-arduino-imola-carrier-media-common.dtsi | 46 ++++++
> > ...a-carrier-media-panel-5in_touch_a-dsi.dtso | 80 +++++++++++
> > ...a-carrier-media-panel-8in_touch_a-dsi.dtso | 80 +++++++++++
>
> The waveshare,dsi-touch-gpio compatible is absent upstream and I
> would imagine it'll take a considerable amount of time for that to
> change, let's focus on the other bits for now
Ok, I was hoping that mentioning dependencies in the cover letter
would suffice. I'll drop panels DTSOs in V2.
Best regards,
Riccardo
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH 2/3] arm64: qcom: imola: Move analogix video/audio output to dtso
2026-04-30 13:21 ` [PATCH 2/3] arm64: qcom: imola: Move analogix video/audio output to dtso Riccardo Mereu
2026-04-30 14:10 ` Konrad Dybcio
@ 2026-05-05 15:44 ` Loic Poulain
1 sibling, 0 replies; 10+ messages in thread
From: Loic Poulain @ 2026-05-05 15:44 UTC (permalink / raw)
To: Riccardo Mereu
Cc: andersson, konradybcio, robh, krzk+dt, conor+dt, broonie, linux,
Jonathan.Cameron, wenswang, naresh.solanki, michal.simek, nuno.sa,
chou.cosmo, grantpeltier93, eajames, linux-arm-msm, devicetree,
linux-kernel, festevam, imx, m.facchin, dmitry.baryshkov,
Riccardo Mereu
On Thu, Apr 30, 2026 at 3:21 PM Riccardo Mereu
<r.mereu.kernel@arduino.cc> wrote:
>
> From: Riccardo Mereu <r.mereu@arduino.cc>
>
> This is done in order to support different video output over DSI.
> Since audio part is linked to Analogix USB-C controller it is moved to
> the same DTSO.
I'm a bit skeptical about having a separate DT overlay for this. Is
that really the right approach? The Analogix block is part of the main
board, so it feels like it should be the default video/audio output
defined directly in the board DTS, rather than in an overlay.
Would it make things unnecessarily complex if we instead keep it in
the main DTS, and only use overlays to remove or override properties
for the specific cases that require different routing (e.g.
media-carrier or waveshare)?
Regards,
Loic
>
> Signed-off-by: Riccardo Mereu <r.mereu@arduino.cc>
> ---
> arch/arm64/boot/dts/qcom/Makefile | 5 +
> ...ola.dts => qrb2210-arduino-imola-base.dts} | 122 +++++++++++++++---
> ...rb2210-arduino-imola-video_sound-usbc.dtso | 61 +++++++++
> 3 files changed, 168 insertions(+), 20 deletions(-)
> rename arch/arm64/boot/dts/qcom/{qrb2210-arduino-imola.dts => qrb2210-arduino-imola-base.dts} (85%)
> create mode 100644 arch/arm64/boot/dts/qcom/qrb2210-arduino-imola-video_sound-usbc.dtso
>
> diff --git a/arch/arm64/boot/dts/qcom/Makefile b/arch/arm64/boot/dts/qcom/Makefile
> index 4ba8e7306419..e89a0e77072b 100644
> --- a/arch/arm64/boot/dts/qcom/Makefile
> +++ b/arch/arm64/boot/dts/qcom/Makefile
> @@ -193,6 +193,11 @@ qcs9100-ride-r3-el2-dtbs := qcs9100-ride-r3.dtb lemans-el2.dtbo
> dtb-$(CONFIG_ARCH_QCOM) += qcs9100-ride-el2.dtb
> dtb-$(CONFIG_ARCH_QCOM) += qcs9100-ride-r3-el2.dtb
> dtb-$(CONFIG_ARCH_QCOM) += qdu1000-idp.dtb
> +dtb-$(CONFIG_ARCH_QCOM) += qrb2210-arduino-imola-base.dtb
> +
> +dtb-$(CONFIG_ARCH_QCOM) += qrb2210-arduino-imola-video_sound-usbc.dtbo
> +
> +qrb2210-arduino-imola-dtbs := qrb2210-arduino-imola-base.dtb qrb2210-arduino-imola-video_sound-usbc.dtbo
> dtb-$(CONFIG_ARCH_QCOM) += qrb2210-arduino-imola.dtb
> dtb-$(CONFIG_ARCH_QCOM) += qrb2210-rb1.dtb
>
> diff --git a/arch/arm64/boot/dts/qcom/qrb2210-arduino-imola.dts b/arch/arm64/boot/dts/qcom/qrb2210-arduino-imola-base.dts
> similarity index 85%
> rename from arch/arm64/boot/dts/qcom/qrb2210-arduino-imola.dts
> rename to arch/arm64/boot/dts/qcom/qrb2210-arduino-imola-base.dts
> index bf088fa9807f..fb22effb9a35 100644
> --- a/arch/arm64/boot/dts/qcom/qrb2210-arduino-imola.dts
> +++ b/arch/arm64/boot/dts/qcom/qrb2210-arduino-imola-base.dts
> @@ -1,6 +1,6 @@
> // SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
> /*
> - * Copyright (c) 2025, Arduino SRL
> + * Copyright (c) 2026, Arduino SRL
> */
>
> /dts-v1/;
> @@ -110,6 +110,106 @@ multi-led {
> leds = <&ledr>, <&ledg>, <&ledb>;
> };
>
> + sound: sound {
> + compatible = "qcom,qrb2210-sndcard";
> + model = "Arduino-Imola-HPH-LOUT";
> + audio-routing = "IN1_HPHL", "HPHL_OUT",
> + "IN2_HPHR", "HPHR_OUT",
> + "AMIC2", "MIC BIAS2";
> +
> + mm1-dai-link {
> + link-name = "MultiMedia1";
> +
> + cpu {
> + sound-dai = <&q6asmdai MSM_FRONTEND_DAI_MULTIMEDIA1>;
> + };
> + };
> +
> + mm2-dai-link {
> + link-name = "MultiMedia2";
> +
> + cpu {
> + sound-dai = <&q6asmdai MSM_FRONTEND_DAI_MULTIMEDIA2>;
> + };
> + };
> +
> + mm3-dai-link {
> + link-name = "MultiMedia3";
> +
> + cpu {
> + sound-dai = <&q6asmdai MSM_FRONTEND_DAI_MULTIMEDIA3>;
> + };
> + };
> +
> + mm4-dai-link {
> + link-name = "MultiMedia4";
> +
> + cpu {
> + sound-dai = <&q6asmdai MSM_FRONTEND_DAI_MULTIMEDIA4>;
> + };
> + };
> +
> + hph-playback-dai-link {
> + link-name = "HPH Playback";
> + cpu {
> + sound-dai = <&q6afedai RX_CODEC_DMA_RX_0>;
> + };
> +
> + platform {
> + sound-dai = <&q6routing>;
> + };
> +
> + codec {
> + sound-dai = <&pmic4125_codec 0>, <&swr1 0>, <&rxmacro 0>;
> + };
> + };
> +
> + lo-playback-dai-link {
> + link-name = "LO Playback";
> + cpu {
> + sound-dai = <&q6afedai RX_CODEC_DMA_RX_0>;
> + };
> +
> + platform {
> + sound-dai = <&q6routing>;
> + };
> +
> + codec {
> + sound-dai = <&pmic4125_codec 0>, <&swr1 0>, <&rxmacro 0>;
> + };
> + };
> +
> + ear-playback-dai-link {
> + link-name = "Ear Playback";
> + cpu {
> + sound-dai = <&q6afedai RX_CODEC_DMA_RX_0>;
> + };
> +
> + platform {
> + sound-dai = <&q6routing>;
> + };
> +
> + codec {
> + sound-dai = <&pmic4125_codec 0>, <&swr1 0>, <&rxmacro 0>;
> + };
> + };
> +
> + hph-capture-dai-link {
> + link-name = "HP Capture";
> + cpu {
> + sound-dai = <&q6afedai TX_CODEC_DMA_TX_3>;
> + };
> +
> + platform {
> + sound-dai = <&q6routing>;
> + };
> +
> + codec {
> + sound-dai = <&pmic4125_codec 1>, <&swr0 0>, <&txmacro 0>;
> + };
> + };
> + };
> +
> vreg_anx_30: regulator-anx-30 {
> compatible = "regulator-fixed";
> regulator-name = "anx30";
> @@ -165,6 +265,7 @@ anx7625: encoder@58 {
> analogix,lane1-swing = /bits/ 8 <0x14 0x54 0x64 0x74>;
>
> pinctrl-0 = <&anx7625_int_pin>, <&anx7625_cable_det_pin>;
> + #sound-dai-cells = <1>;
>
> connector {
> compatible = "usb-c-connector";
> @@ -198,20 +299,6 @@ anx_ss_in: endpoint {
> };
> };
> };
> -
> - 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>;
> - };
> - };
> - };
> };
> };
>
> @@ -225,11 +312,6 @@ &mdss_dsi0 {
> status = "okay";
> };
>
> -&mdss_dsi0_out {
> - remote-endpoint = <&anx_dsi0_in>;
> - data-lanes = <0 1 2 3>;
> -};
> -
> &mdss_dsi0_phy {
> status = "okay";
> };
> diff --git a/arch/arm64/boot/dts/qcom/qrb2210-arduino-imola-video_sound-usbc.dtso b/arch/arm64/boot/dts/qcom/qrb2210-arduino-imola-video_sound-usbc.dtso
> new file mode 100644
> index 000000000000..6fb256498cd1
> --- /dev/null
> +++ b/arch/arm64/boot/dts/qcom/qrb2210-arduino-imola-video_sound-usbc.dtso
> @@ -0,0 +1,61 @@
> +// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
> +/*
> + * Copyright (c) 2025, Arduino SA
> + */
> +
> +/dts-v1/;
> +/plugin/;
> +
> +#include <dt-bindings/sound/qcom,q6asm.h>
> +#include <dt-bindings/sound/qcom,q6dsp-lpass-ports.h>
> +
> +&anx7625 {
> + 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_dsi0_out {
> + remote-endpoint = <&anx_dsi0_in>;
> + data-lanes = <0 1 2 3>;
> +};
> +
> +&q6afedai {
> + #address-cells = <1>;
> + #size-cells = <0>;
> + #sound-dai-cells = <1>;
> + dai@18 {
> + reg = <SECONDARY_MI2S_RX>;
> + qcom,sd-lines = <0>;
> + };
> +};
> +
> +&sound {
> + pinctrl-0 = <&lpi_i2s2_active>;
> + pinctrl-names = "default";
> +
> + hdmi-i2s-dai-link {
> + link-name = "HDMI/I2S Playback";
> +
> + cpu {
> + sound-dai = <&q6afedai SECONDARY_MI2S_RX>;
> + };
> +
> + platform {
> + sound-dai = <&q6routing>;
> + };
> +
> + codec {
> + sound-dai = <&anx7625 0>;
> + };
> + };
> +};
> --
> 2.53.0
>
^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2026-05-05 15:44 UTC | newest]
Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-04-30 13:21 [PATCH 0/3] arm64: qcom: imola: add support for Media Carrier Riccardo Mereu
2026-04-30 13:21 ` [PATCH 1/3] arm64: qcom: agatti: Add dai@3 Riccardo Mereu
2026-04-30 13:57 ` Konrad Dybcio
2026-04-30 13:21 ` [PATCH 2/3] arm64: qcom: imola: Move analogix video/audio output to dtso Riccardo Mereu
2026-04-30 14:10 ` Konrad Dybcio
2026-05-05 14:16 ` Riccardo Mereu Linux Kernel
2026-05-05 15:44 ` Loic Poulain
2026-04-30 13:21 ` [PATCH 3/3] arm64: dts: qcom: imola: add support for media carrier board Riccardo Mereu
2026-04-30 14:11 ` Konrad Dybcio
2026-05-05 14:19 ` Riccardo Mereu Linux Kernel
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox