* [PATCH 1/5] dt-binding: trivial-devices: add arduino spi mcu interface
2025-11-06 15:31 [PATCH 0/5] arm64: qcom: add support for Arduino UnoQ SBC Riccardo Mereu
@ 2025-11-06 15:31 ` Riccardo Mereu
2025-11-07 7:10 ` Krzysztof Kozlowski
2025-11-07 8:09 ` Krzysztof Kozlowski
2025-11-06 15:31 ` [PATCH 2/5] drivers: spi: spidev: add compatible for " Riccardo Mereu
` (3 subsequent siblings)
4 siblings, 2 replies; 12+ messages in thread
From: Riccardo Mereu @ 2025-11-06 15:31 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, farouk.bouabid,
linux-arm-msm, devicetree, linux-kernel, linux-spi, mm.facchin,
Riccardo Mereu
Add spidev item in order to describe in Arduino boards one of the
interfaces between microprocessor and microcontroller.
Signed-off-by: Riccardo Mereu <r.mereu@arduino.cc>
---
Documentation/devicetree/bindings/trivial-devices.yaml | 2 ++
1 file changed, 2 insertions(+)
diff --git a/Documentation/devicetree/bindings/trivial-devices.yaml b/Documentation/devicetree/bindings/trivial-devices.yaml
index 2eff6f274302..c44fff4ce2e2 100644
--- a/Documentation/devicetree/bindings/trivial-devices.yaml
+++ b/Documentation/devicetree/bindings/trivial-devices.yaml
@@ -59,6 +59,8 @@ properties:
- adi,lt7182s
# AMS iAQ-Core VOC Sensor
- ams,iaq-core
+ # Arduino microcontroller interface over SPI, e.g. on UnoQ board
+ - arduino,mcu
# Temperature monitoring of Astera Labs PT5161L PCIe retimer
- asteralabs,pt5161l
# i2c h/w elliptic curve crypto module
--
2.51.2
^ permalink raw reply related [flat|nested] 12+ messages in thread* Re: [PATCH 1/5] dt-binding: trivial-devices: add arduino spi mcu interface
2025-11-06 15:31 ` [PATCH 1/5] dt-binding: trivial-devices: add arduino spi mcu interface Riccardo Mereu
@ 2025-11-07 7:10 ` Krzysztof Kozlowski
2025-11-07 8:09 ` Krzysztof Kozlowski
1 sibling, 0 replies; 12+ messages in thread
From: Krzysztof Kozlowski @ 2025-11-07 7: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, farouk.bouabid,
linux-arm-msm, devicetree, linux-kernel, linux-spi, mm.facchin,
Riccardo Mereu
On 06/11/2025 16:31, Riccardo Mereu wrote:
> Add spidev item in order to describe in Arduino boards one of the
> interfaces between microprocessor and microcontroller.
>
> Signed-off-by: Riccardo Mereu <r.mereu@arduino.cc>
> ---
> Documentation/devicetree/bindings/trivial-devices.yaml | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/Documentation/devicetree/bindings/trivial-devices.yaml b/Documentation/devicetree/bindings/trivial-devices.yaml
> index 2eff6f274302..c44fff4ce2e2 100644
> --- a/Documentation/devicetree/bindings/trivial-devices.yaml
> +++ b/Documentation/devicetree/bindings/trivial-devices.yaml
> @@ -59,6 +59,8 @@ properties:
> - adi,lt7182s
> # AMS iAQ-Core VOC Sensor
> - ams,iaq-core
> + # Arduino microcontroller interface over SPI, e.g. on UnoQ board
> + - arduino,mcu
MCU is so broad it can cover everything, so for sure this is not a
trivial device. It also can be connected over serial, which would not be
covered here. Or can have additional GPIOs connected or supplies - also
not covered here.
Best regards,
Krzysztof
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH 1/5] dt-binding: trivial-devices: add arduino spi mcu interface
2025-11-06 15:31 ` [PATCH 1/5] dt-binding: trivial-devices: add arduino spi mcu interface Riccardo Mereu
2025-11-07 7:10 ` Krzysztof Kozlowski
@ 2025-11-07 8:09 ` Krzysztof Kozlowski
1 sibling, 0 replies; 12+ messages in thread
From: Krzysztof Kozlowski @ 2025-11-07 8:09 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, farouk.bouabid,
linux-arm-msm, devicetree, linux-kernel, linux-spi, mm.facchin,
Riccardo Mereu
On Thu, Nov 06, 2025 at 04:31:15PM +0100, Riccardo Mereu wrote:
> Add spidev item in order to describe in Arduino boards one of the
> interfaces between microprocessor and microcontroller.
>
> Signed-off-by: Riccardo Mereu <r.mereu@arduino.cc>
Also, now I see warnings, so standard message:
Please run scripts/checkpatch.pl on the patches and fix reported
warnings. After that, run also 'scripts/checkpatch.pl --strict' on the
patches and (probably) fix more warnings. Some warnings can be ignored,
especially from --strict run, but the code here looks like it needs a
fix. Feel free to get in touch if the warning is not clear.
Best regards,
Krzysztof
^ permalink raw reply [flat|nested] 12+ messages in thread
* [PATCH 2/5] drivers: spi: spidev: add compatible for arduino spi mcu interface
2025-11-06 15:31 [PATCH 0/5] arm64: qcom: add support for Arduino UnoQ SBC Riccardo Mereu
2025-11-06 15:31 ` [PATCH 1/5] dt-binding: trivial-devices: add arduino spi mcu interface Riccardo Mereu
@ 2025-11-06 15:31 ` Riccardo Mereu
2025-11-07 7:13 ` Krzysztof Kozlowski
2025-11-06 15:31 ` [PATCH 3/5] dt-binding: arm: qcom: add arduino unoq codename Riccardo Mereu
` (2 subsequent siblings)
4 siblings, 1 reply; 12+ messages in thread
From: Riccardo Mereu @ 2025-11-06 15:31 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, farouk.bouabid,
linux-arm-msm, devicetree, linux-kernel, linux-spi, mm.facchin,
Riccardo Mereu
Add compatible entry in spidev describing in Arduino boards one of the
interfaces between microprocessor and microcontroller.
Signed-off-by: Riccardo Mereu <r.mereu@arduino.cc>
---
drivers/spi/spidev.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/drivers/spi/spidev.c b/drivers/spi/spidev.c
index 5300c942a2a4..f0dd516c2083 100644
--- a/drivers/spi/spidev.c
+++ b/drivers/spi/spidev.c
@@ -704,6 +704,7 @@ static const struct class spidev_class = {
*/
static const struct spi_device_id spidev_spi_ids[] = {
{ .name = /* abb */ "spi-sensor" },
+ { .name = /* arduino */ "mcu" },
{ .name = /* cisco */ "spi-petra" },
{ .name = /* dh */ "dhcom-board" },
{ .name = /* elgin */ "jg10309-01" },
@@ -737,6 +738,7 @@ static int spidev_of_check(struct device *dev)
static const struct of_device_id spidev_dt_ids[] = {
{ .compatible = "abb,spi-sensor", .data = &spidev_of_check },
+ { .compatible = "arduino,mcu", .data = &spidev_of_check },
{ .compatible = "cisco,spi-petra", .data = &spidev_of_check },
{ .compatible = "dh,dhcom-board", .data = &spidev_of_check },
{ .compatible = "elgin,jg10309-01", .data = &spidev_of_check },
--
2.51.2
^ permalink raw reply related [flat|nested] 12+ messages in thread* Re: [PATCH 2/5] drivers: spi: spidev: add compatible for arduino spi mcu interface
2025-11-06 15:31 ` [PATCH 2/5] drivers: spi: spidev: add compatible for " Riccardo Mereu
@ 2025-11-07 7:13 ` Krzysztof Kozlowski
0 siblings, 0 replies; 12+ messages in thread
From: Krzysztof Kozlowski @ 2025-11-07 7:13 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, farouk.bouabid,
linux-arm-msm, devicetree, linux-kernel, linux-spi, mm.facchin,
Riccardo Mereu
On 06/11/2025 16:31, Riccardo Mereu wrote:
> Add compatible entry in spidev describing in Arduino boards one of the
> interfaces between microprocessor and microcontroller.
>
> Signed-off-by: Riccardo Mereu <r.mereu@arduino.cc>
Please use subject prefixes matching the subsystem. You can get them for
example with `git log --oneline -- DIRECTORY_OR_FILE` on the directory
your patch is touching. For bindings, the preferred subjects are
explained here:
https://www.kernel.org/doc/html/latest/devicetree/bindings/submitting-patches.html#i-for-patch-submitters
It is almost never "drivers" (with one or two exceptions).
> ---
> drivers/spi/spidev.c | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/drivers/spi/spidev.c b/drivers/spi/spidev.c
> index 5300c942a2a4..f0dd516c2083 100644
> --- a/drivers/spi/spidev.c
> +++ b/drivers/spi/spidev.c
> @@ -704,6 +704,7 @@ static const struct class spidev_class = {
> */
> static const struct spi_device_id spidev_spi_ids[] = {
> { .name = /* abb */ "spi-sensor" },
> + { .name = /* arduino */ "mcu" },
> { .name = /* cisco */ "spi-petra" },
> { .name = /* dh */ "dhcom-board" },
> { .name = /* elgin */ "jg10309-01" },
> @@ -737,6 +738,7 @@ static int spidev_of_check(struct device *dev)
>
> static const struct of_device_id spidev_dt_ids[] = {
> { .compatible = "abb,spi-sensor", .data = &spidev_of_check },
> + { .compatible = "arduino,mcu", .data = &spidev_of_check },
That's way too generic, IMO. First, I am not aware of Arduino boards
mounted on top of regular development boards, so basically you are not
describing actual hardware setup but what could be potentially plugged
into box with Linux... and then it is like saying "you can plug
anything" because MCU covers everything, like calling it "Raspberry
Pi-clone".
Best regards,
Krzysztof
^ permalink raw reply [flat|nested] 12+ messages in thread
* [PATCH 3/5] dt-binding: arm: qcom: add arduino unoq codename
2025-11-06 15:31 [PATCH 0/5] arm64: qcom: add support for Arduino UnoQ SBC Riccardo Mereu
2025-11-06 15:31 ` [PATCH 1/5] dt-binding: trivial-devices: add arduino spi mcu interface Riccardo Mereu
2025-11-06 15:31 ` [PATCH 2/5] drivers: spi: spidev: add compatible for " Riccardo Mereu
@ 2025-11-06 15:31 ` Riccardo Mereu
2025-11-07 7:13 ` Krzysztof Kozlowski
2025-11-06 15:31 ` [PATCH 4/5] arm64: dts: qcom: qcm2290: add uart2 node Riccardo Mereu
2025-11-06 15:31 ` [PATCH 5/5] arm64: dts: qcom: unoq: add dts for arduino unoq Riccardo Mereu
4 siblings, 1 reply; 12+ messages in thread
From: Riccardo Mereu @ 2025-11-06 15:31 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, farouk.bouabid,
linux-arm-msm, devicetree, linux-kernel, linux-spi, mm.facchin,
Riccardo Mereu, Riccardo Mereu
From: Riccardo Mereu <r.mereu.kernel@arduino.cc>
Document Arduino UnoQ. Arduino UnoQ is a single-board computer
combining Qualcomm Dragonwing™ QRB2210 microprocessor with
STMicroelectronics STM32U585 microcontroller.
Signed-off-by: Riccardo Mereu <r.mereu@arduino.cc>
---
Documentation/devicetree/bindings/arm/qcom.yaml | 1 +
1 file changed, 1 insertion(+)
diff --git a/Documentation/devicetree/bindings/arm/qcom.yaml b/Documentation/devicetree/bindings/arm/qcom.yaml
index d84bd3bca201..1af19245b1d5 100644
--- a/Documentation/devicetree/bindings/arm/qcom.yaml
+++ b/Documentation/devicetree/bindings/arm/qcom.yaml
@@ -336,6 +336,7 @@ properties:
- description: Qualcomm Technologies, Inc. Robotics RB1
items:
- enum:
+ - arduino,imola
- qcom,qrb2210-rb1
- const: qcom,qrb2210
- const: qcom,qcm2290
--
2.51.2
^ permalink raw reply related [flat|nested] 12+ messages in thread* Re: [PATCH 3/5] dt-binding: arm: qcom: add arduino unoq codename
2025-11-06 15:31 ` [PATCH 3/5] dt-binding: arm: qcom: add arduino unoq codename Riccardo Mereu
@ 2025-11-07 7:13 ` Krzysztof Kozlowski
0 siblings, 0 replies; 12+ messages in thread
From: Krzysztof Kozlowski @ 2025-11-07 7:13 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, farouk.bouabid,
linux-arm-msm, devicetree, linux-kernel, linux-spi, mm.facchin,
Riccardo Mereu
On 06/11/2025 16:31, Riccardo Mereu wrote:
> From: Riccardo Mereu <r.mereu.kernel@arduino.cc>
>
> Document Arduino UnoQ. Arduino UnoQ is a single-board computer
compatible says imola, not unoq.
> combining Qualcomm Dragonwing™ QRB2210 microprocessor with
> STMicroelectronics STM32U585 microcontroller.
>
> Signed-off-by: Riccardo Mereu <r.mereu@arduino.cc>
> ---
Please use subject prefixes matching the subsystem. You can get them for
example with `git log --oneline -- DIRECTORY_OR_FILE` on the directory
your patch is touching. For bindings, the preferred subjects are
explained here:
https://www.kernel.org/doc/html/latest/devicetree/bindings/submitting-patches.html#i-for-patch-submitters
Best regards,
Krzysztof
^ permalink raw reply [flat|nested] 12+ messages in thread
* [PATCH 4/5] arm64: dts: qcom: qcm2290: add uart2 node
2025-11-06 15:31 [PATCH 0/5] arm64: qcom: add support for Arduino UnoQ SBC Riccardo Mereu
` (2 preceding siblings ...)
2025-11-06 15:31 ` [PATCH 3/5] dt-binding: arm: qcom: add arduino unoq codename Riccardo Mereu
@ 2025-11-06 15:31 ` Riccardo Mereu
2025-11-06 16:27 ` Konrad Dybcio
2025-11-06 15:31 ` [PATCH 5/5] arm64: dts: qcom: unoq: add dts for arduino unoq Riccardo Mereu
4 siblings, 1 reply; 12+ messages in thread
From: Riccardo Mereu @ 2025-11-06 15:31 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, farouk.bouabid,
linux-arm-msm, devicetree, linux-kernel, linux-spi, mm.facchin,
Riccardo Mereu
uart2 is used in Arduino UnoQ as an interface between microprocessor and
microcontroller.
Signed-off-by: Riccardo Mereu <r.mereu@arduino.cc>
---
arch/arm64/boot/dts/qcom/agatti.dtsi | 24 ++++++++++++++++++++++++
1 file changed, 24 insertions(+)
diff --git a/arch/arm64/boot/dts/qcom/agatti.dtsi b/arch/arm64/boot/dts/qcom/agatti.dtsi
index 8bf5c5583fc2..32d58e66f57d 100644
--- a/arch/arm64/boot/dts/qcom/agatti.dtsi
+++ b/arch/arm64/boot/dts/qcom/agatti.dtsi
@@ -562,6 +562,13 @@ qup_uart1_default: qup-uart1-default-state {
bias-disable;
};
+ qup_uart2_default: qup-uart2-default-state {
+ pins = "gpio6", "gpio7", "gpio71", "gpio80";
+ function = "qup2";
+ drive-strength = <2>;
+ bias-disable;
+ };
+
qup_uart3_default: qup-uart3-default-state {
pins = "gpio8", "gpio9", "gpio10", "gpio11";
function = "qup3";
@@ -1315,6 +1322,23 @@ &qup_virt SLAVE_QUP_CORE_0 RPM_ALWAYS_TAG>,
status = "disabled";
};
+ uart2: serial@4a88000 {
+ compatible = "qcom,geni-uart";
+ reg = <0x0 0x04a88000 0x0 0x4000>;
+ interrupts = <GIC_SPI 329 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&gcc GCC_QUPV3_WRAP0_S2_CLK>;
+ clock-names = "se";
+ pinctrl-0 = <&qup_uart2_default>;
+ pinctrl-names = "default";
+ interconnects = <&qup_virt MASTER_QUP_CORE_0 RPM_ALWAYS_TAG
+ &qup_virt SLAVE_QUP_CORE_0 RPM_ALWAYS_TAG>,
+ <&bimc MASTER_APPSS_PROC RPM_ALWAYS_TAG
+ &config_noc MASTER_APPSS_PROC RPM_ALWAYS_TAG>;
+ interconnect-names = "qup-core",
+ "qup-config";
+ status = "disabled";
+ };
+
i2c3: i2c@4a8c000 {
compatible = "qcom,geni-i2c";
reg = <0x0 0x04a8c000 0x0 0x4000>;
--
2.51.2
^ permalink raw reply related [flat|nested] 12+ messages in thread* Re: [PATCH 4/5] arm64: dts: qcom: qcm2290: add uart2 node
2025-11-06 15:31 ` [PATCH 4/5] arm64: dts: qcom: qcm2290: add uart2 node Riccardo Mereu
@ 2025-11-06 16:27 ` Konrad Dybcio
0 siblings, 0 replies; 12+ messages in thread
From: Konrad Dybcio @ 2025-11-06 16:27 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, farouk.bouabid,
linux-arm-msm, devicetree, linux-kernel, linux-spi, mm.facchin,
Riccardo Mereu
On 11/6/25 4:31 PM, Riccardo Mereu wrote:
> uart2 is used in Arduino UnoQ as an interface between microprocessor and
> microcontroller.
>
> Signed-off-by: Riccardo Mereu <r.mereu@arduino.cc>
> ---
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Konrad
^ permalink raw reply [flat|nested] 12+ messages in thread
* [PATCH 5/5] arm64: dts: qcom: unoq: add dts for arduino unoq
2025-11-06 15:31 [PATCH 0/5] arm64: qcom: add support for Arduino UnoQ SBC Riccardo Mereu
` (3 preceding siblings ...)
2025-11-06 15:31 ` [PATCH 4/5] arm64: dts: qcom: qcm2290: add uart2 node Riccardo Mereu
@ 2025-11-06 15:31 ` Riccardo Mereu
2025-11-06 16:29 ` Konrad Dybcio
4 siblings, 1 reply; 12+ messages in thread
From: Riccardo Mereu @ 2025-11-06 15:31 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, farouk.bouabid,
linux-arm-msm, devicetree, linux-kernel, linux-spi, mm.facchin,
Riccardo Mereu, Riccardo Mereu
From: Riccardo Mereu <r.mereu.kernel@arduino.cc>
Arduino UnoQ is a single-board computer combining Qualcomm
Dragonwing™ QRB2210 microprocessor with STMicroelectronics STM32U585
microcontroller.
Support to a simply boot to shell environment includes:
- UART, I2C, SPI
- onboard LEDS
- eMMC
- WLAN and BT
Signed-off-by: Riccardo Mereu <r.mereu@arduino.cc>
---
arch/arm64/boot/dts/qcom/Makefile | 1 +
.../boot/dts/qcom/qrb2210-arduino-imola.dts | 456 ++++++++++++++++++
2 files changed, 457 insertions(+)
create mode 100644 arch/arm64/boot/dts/qcom/qrb2210-arduino-imola.dts
diff --git a/arch/arm64/boot/dts/qcom/Makefile b/arch/arm64/boot/dts/qcom/Makefile
index 6f34d5ed331c..9f98a7f2cbb4 100644
--- a/arch/arm64/boot/dts/qcom/Makefile
+++ b/arch/arm64/boot/dts/qcom/Makefile
@@ -143,6 +143,7 @@ dtb-$(CONFIG_ARCH_QCOM) += qcs8550-aim300-aiot.dtb
dtb-$(CONFIG_ARCH_QCOM) += qcs9100-ride.dtb
dtb-$(CONFIG_ARCH_QCOM) += qcs9100-ride-r3.dtb
dtb-$(CONFIG_ARCH_QCOM) += qdu1000-idp.dtb
+dtb-$(CONFIG_ARCH_QCOM) += qrb2210-arduino-imola.dtb
dtb-$(CONFIG_ARCH_QCOM) += qrb2210-rb1.dtb
dtb-$(CONFIG_ARCH_QCOM) += qrb4210-rb2.dtb
dtb-$(CONFIG_ARCH_QCOM) += qrb5165-rb5.dtb
diff --git a/arch/arm64/boot/dts/qcom/qrb2210-arduino-imola.dts b/arch/arm64/boot/dts/qcom/qrb2210-arduino-imola.dts
new file mode 100644
index 000000000000..83e7f3e9da76
--- /dev/null
+++ b/arch/arm64/boot/dts/qcom/qrb2210-arduino-imola.dts
@@ -0,0 +1,456 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
+/*
+ * Copyright (c) 2025, Arduino SA
+ */
+
+/dts-v1/;
+
+#include <dt-bindings/leds/common.h>
+#include "agatti.dtsi"
+#include "pm4125.dtsi"
+
+/delete-node/ &cont_splash_memory;
+
+/ {
+ model = "Arduino UnoQ";
+ compatible = "arduino,imola", "qcom,qrb2210", "qcom,qcm2290";
+
+ aliases {
+ serial0 = &uart4;
+ serial1 = &uart2;
+ serial2 = &uart3;
+ sdhc1 = &sdhc_1;
+ };
+
+ chosen {
+ stdout-path = "serial0:115200n8";
+ };
+
+ gpio-keys {
+ compatible = "gpio-keys";
+ label = "gpio-keys";
+
+ pinctrl-0 = <&key_volp_n>, <&key_vold_n>;
+ pinctrl-names = "default";
+
+ key-volume-up {
+ label = "Volume Up";
+ linux,code = <KEY_VOLUMEUP>;
+ gpios = <&tlmm 96 GPIO_ACTIVE_LOW>;
+ debounce-interval = <15>;
+ linux,can-disable;
+ wakeup-source;
+ };
+
+ key-volume-down {
+ label = "Volume Down";
+ linux,code = <KEY_VOLUMEDOWN>;
+ gpios = <&tlmm 36 GPIO_ACTIVE_LOW>;
+ debounce-interval = <15>;
+ linux,can-disable;
+ wakeup-source;
+ };
+ };
+
+ leds: leds {
+ compatible = "gpio-leds";
+
+ ledpanic: led-panic {
+ label = "red:panic";
+ function = LED_FUNCTION_INDICATOR;
+ color = <LED_COLOR_ID_RED>;
+ gpios = <&tlmm 39 GPIO_ACTIVE_HIGH>;
+ linux,default-trigger = "none";
+ default-state = "off";
+ panic-indicator;
+ };
+
+ ledwlan: led-wlan {
+ label = "green:wlan";
+ function = LED_FUNCTION_WLAN;
+ color = <LED_COLOR_ID_GREEN>;
+ gpios = <&tlmm 40 GPIO_ACTIVE_HIGH>;
+ linux,default-trigger = "phy0tx";
+ default-state = "off";
+ };
+
+ ledbt: led-bt {
+ label = "blue:bt";
+ function = LED_FUNCTION_BLUETOOTH;
+ color = <LED_COLOR_ID_BLUE>;
+ gpios = <&tlmm 47 GPIO_ACTIVE_HIGH>;
+ linux,default-trigger = "bluetooth-power";
+ default-state = "off";
+ };
+
+ ledr: led-user-red {
+ gpios = <&tlmm 41 GPIO_ACTIVE_HIGH>;
+ color = <LED_COLOR_ID_RED>;
+ };
+
+ ledg: led-user-green {
+ gpios = <&tlmm 42 GPIO_ACTIVE_HIGH>;
+ color = <LED_COLOR_ID_GREEN>;
+ };
+
+ ledb: led-user-blue {
+ gpios = <&tlmm 60 GPIO_ACTIVE_HIGH>;
+ color = <LED_COLOR_ID_BLUE>;
+ };
+ };
+
+ multi-led {
+ compatible = "leds-group-multicolor";
+ color = <LED_COLOR_ID_RGB>;
+ function = LED_FUNCTION_INDICATOR;
+ leds = <&ledr>, <&ledg>, <&ledb>;
+ };
+
+ /* PM4125 charger out, supplied by VBAT */
+ vph_pwr: regulator-vph-pwr {
+ compatible = "regulator-fixed";
+ regulator-name = "vph_pwr";
+ regulator-min-microvolt = <3700000>;
+ regulator-max-microvolt = <3700000>;
+ regulator-always-on;
+ regulator-boot-on;
+ };
+};
+
+&gpi_dma0 {
+ status = "okay";
+};
+
+&gpu {
+ status = "okay";
+};
+
+&gpu_zap_shader {
+ firmware-name = "qcom/qcm2290/a702_zap.mbn";
+};
+
+&pm4125_vbus {
+ regulator-min-microamp = <500000>;
+ regulator-max-microamp = <500000>;
+
+ status = "okay";
+};
+
+&qupv3_id_0 {
+ status = "okay";
+};
+
+&remoteproc_adsp {
+ firmware-name = "qcom/qcm2290/adsp.mbn";
+
+ status = "okay";
+};
+
+&remoteproc_mpss {
+ firmware-name = "qcom/qcm2290/modem.mbn";
+
+ status = "okay";
+};
+
+&rpm_requests {
+ regulators {
+ compatible = "qcom,rpm-pm2250-regulators";
+ vdd_s3-supply = <&vph_pwr>;
+ vdd_s4-supply = <&vph_pwr>;
+ vdd_l1_l2_l3_l5_l6_l7_l8_l9_l10_l11_l12-supply = <&pm4125_s3>;
+ vdd_l4_l17_l18_l19_l20_l21_l22-supply = <&vph_pwr>;
+ vdd_l13_l14_l15_l16-supply = <&pm4125_s4>;
+
+ pm4125_s3: s3 {
+ /* 0.4V-1.6625V -> 1.3V (Power tree requirements) */
+ regulator-min-microvolt = <1352000>;
+ regulator-max-microvolt = <1352000>;
+ regulator-boot-on;
+ };
+
+ pm4125_s4: s4 {
+ /* 1.2V-2.35V -> 2.05V (Power tree requirements) */
+ regulator-min-microvolt = <2072000>;
+ regulator-max-microvolt = <2072000>;
+ regulator-boot-on;
+ };
+
+ pm4125_l2: l2 {
+ /* LPDDR4X VDD2 */
+ regulator-min-microvolt = <1136000>;
+ regulator-max-microvolt = <1136000>;
+ regulator-always-on;
+ regulator-boot-on;
+ };
+
+ pm4125_l3: l3 {
+ /* LPDDR4X VDDQ */
+ regulator-min-microvolt = <616000>;
+ regulator-max-microvolt = <616000>;
+ regulator-always-on;
+ regulator-boot-on;
+ };
+
+ pm4125_l4: l4 {
+ /* max = 3.05V -> max = 2.7 to disable 3V signaling (SDHCI2) */
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <2700000>;
+ regulator-allow-set-load;
+ };
+
+ pm4125_l5: l5 {
+ /* CSI/DSI */
+ regulator-min-microvolt = <1232000>;
+ regulator-max-microvolt = <1232000>;
+ regulator-allow-set-load;
+ regulator-boot-on;
+ };
+
+ pm4125_l6: l6 {
+ /* DRAM PLL */
+ regulator-min-microvolt = <928000>;
+ regulator-max-microvolt = <928000>;
+ regulator-always-on;
+ regulator-boot-on;
+ };
+
+ pm4125_l7: l7 {
+ /* Wi-Fi CX */
+ regulator-min-microvolt = <664000>;
+ regulator-max-microvolt = <664000>;
+ };
+
+ pm4125_l10: l10 {
+ /* Wi-Fi RFA */
+ regulator-min-microvolt = <1304000>;
+ regulator-max-microvolt = <1304000>;
+ };
+
+ pm4125_l11: l11 {
+ /* ANX7625 DVDD1P0V/AVDD1P0V */
+ regulator-min-microvolt = <1000000>;
+ regulator-max-microvolt = <1000000>;
+ regulator-boot-on;
+ regulator-always-on;
+ };
+
+ pm4125_l12: l12 {
+ /* USB PHYs */
+ regulator-min-microvolt = <928000>;
+ regulator-max-microvolt = <928000>;
+ regulator-allow-set-load;
+ regulator-boot-on;
+ };
+
+ pm4125_l13: l13 {
+ /* USB/QFPROM/PLLs */
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+ regulator-allow-set-load;
+ regulator-boot-on;
+ };
+
+ pm4125_l14: l14 {
+ /* SDHCI1 EMMC VCCQ */
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+ regulator-allow-set-load;
+ /* Broken hardware, never turn it off! */
+ regulator-always-on;
+ };
+
+ pm4125_l15: l15 {
+ /* VDDIO */
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+ regulator-allow-set-load;
+ regulator-always-on;
+ regulator-boot-on;
+ };
+
+ pm4125_l20: l20 {
+ /* SDHCI1 EMMC */
+ regulator-min-microvolt = <2400000>;
+ regulator-max-microvolt = <3600000>;
+ regulator-allow-set-load;
+ };
+
+ pm4125_l21: l21 {
+ /* USB HS */
+ regulator-min-microvolt = <2960000>;
+ regulator-max-microvolt = <3300000>;
+ regulator-allow-set-load;
+ regulator-boot-on;
+ };
+
+ pm4125_l22: l22 {
+ /* Wi-Fi VDD */
+ regulator-min-microvolt = <3312000>;
+ regulator-max-microvolt = <3312000>;
+ };
+ };
+};
+
+&sdhc_1 {
+ vmmc-supply = <&pm4125_l20>;
+ vqmmc-supply = <&pm4125_l14>;
+ pinctrl-0 = <&sdc1_state_on>;
+ pinctrl-1 = <&sdc1_state_off>;
+ pinctrl-names = "default", "sleep";
+ mmc-hs400-1_8v;
+ mmc-hs200-1_8v;
+ non-removable;
+ supports-cqe;
+ no-sdio;
+ no-sd;
+
+ status = "okay";
+};
+
+&tlmm {
+ spidev_cs: spidev-cs-state {
+ pins = "gpio17";
+ function = "gpio";
+ drive-strength = <16>;
+ };
+
+ jmisc_gpio18: jmisc-gpio18-state {
+ pins = "gpio18";
+ function = "gpio";
+ drive-strength = <2>;
+ bias-pull-down;
+ };
+
+ jmisc_gpio28: jmisc-gpio28-state {
+ pins = "gpio28";
+ function = "gpio";
+ drive-strength = <2>;
+ bias-pull-down;
+ };
+
+ key_vold_n: key-vold-n-state {
+ pins = "gpio36";
+ function = "gpio";
+ bias-pull-up;
+ output-disable;
+ };
+
+ key_volp_n: key-volp-n-state {
+ pins = "gpio96";
+ function = "gpio";
+ bias-pull-up;
+ output-disable;
+ };
+
+ jmisc_gpio98: jmisc-gpio98-state {
+ pins = "gpio98";
+ function = "gpio";
+ drive-strength = <2>;
+ bias-pull-down;
+ };
+
+ jmisc_gpio99: jmisc-gpio99-state {
+ pins = "gpio99";
+ function = "gpio";
+ drive-strength = <2>;
+ bias-pull-down;
+ };
+
+ jmisc_gpio100: jmisc-gpio100-state {
+ pins = "gpio100";
+ function = "gpio";
+ drive-strength = <2>;
+ bias-pull-down;
+ };
+
+ jmisc_gpio101: jmisc-gpio101-state {
+ pins = "gpio101";
+ function = "gpio";
+ drive-strength = <2>;
+ bias-pull-down;
+ };
+};
+
+&i2c0 {
+ clock-frequency = <100000>;
+
+ status = "okay";
+};
+
+&i2c1 {
+ clock-frequency = <100000>;
+
+ status = "okay";
+};
+
+&uart2 {
+ status = "okay";
+};
+
+/* UART connected to Bluetooth */
+&uart3 {
+ status = "okay";
+
+ bluetooth {
+ compatible = "qcom,wcn3988-bt";
+
+ vddio-supply = <&pm4125_l15>;
+ vddxo-supply = <&pm4125_l13>;
+ vddrf-supply = <&pm4125_l10>;
+ vddch0-supply = <&pm4125_l22>;
+ enable-gpios = <&tlmm 87 GPIO_ACTIVE_HIGH>;
+ max-speed = <3000000>;
+ };
+};
+
+/* UART connected to JCTL */
+&uart4 {
+ compatible = "qcom,geni-debug-uart";
+
+ status = "okay";
+};
+
+&spi5 {
+ status = "okay";
+
+ spidev@0 {
+ reg = <0>;
+ compatible = "arduino,mcu";
+ pinctrl-0 = <&spidev_cs>;
+ pinctrl-names = "default";
+ };
+};
+
+&usb {
+ status = "okay";
+};
+
+&usb_hsphy {
+ vdd-supply = <&pm4125_l12>;
+ vdda-pll-supply = <&pm4125_l13>;
+ vdda-phy-dpdm-supply = <&pm4125_l21>;
+
+ status = "okay";
+};
+
+&usb_qmpphy {
+ vdda-phy-supply = <&pm4125_l12>;
+ vdda-pll-supply = <&pm4125_l13>;
+
+ status = "okay";
+};
+
+&wifi {
+ vdd-0.8-cx-mx-supply = <&pm4125_l7>;
+ vdd-1.8-xo-supply = <&pm4125_l13>;
+ vdd-1.3-rfa-supply = <&pm4125_l10>;
+ vdd-3.3-ch0-supply = <&pm4125_l22>;
+ qcom,ath10k-calibration-variant = "Arduino_UnoQ";
+ firmware-name = "qcm2290";
+
+ status = "okay";
+};
+
+&xo_board {
+ clock-frequency = <38400000>;
+};
--
2.51.2
^ permalink raw reply related [flat|nested] 12+ messages in thread* Re: [PATCH 5/5] arm64: dts: qcom: unoq: add dts for arduino unoq
2025-11-06 15:31 ` [PATCH 5/5] arm64: dts: qcom: unoq: add dts for arduino unoq Riccardo Mereu
@ 2025-11-06 16:29 ` Konrad Dybcio
0 siblings, 0 replies; 12+ messages in thread
From: Konrad Dybcio @ 2025-11-06 16:29 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, farouk.bouabid,
linux-arm-msm, devicetree, linux-kernel, linux-spi, mm.facchin,
Riccardo Mereu
On 11/6/25 4:31 PM, Riccardo Mereu wrote:
> From: Riccardo Mereu <r.mereu.kernel@arduino.cc>
>
> Arduino UnoQ is a single-board computer combining Qualcomm
> Dragonwing™ QRB2210 microprocessor with STMicroelectronics STM32U585
> microcontroller.
> Support to a simply boot to shell environment includes:
> - UART, I2C, SPI
> - onboard LEDS
> - eMMC
> - WLAN and BT
>
> Signed-off-by: Riccardo Mereu <r.mereu@arduino.cc>
> ---
[...]
> + leds: leds {
> + compatible = "gpio-leds";
> +
> + ledpanic: led-panic {
> + label = "red:panic";
> + function = LED_FUNCTION_INDICATOR;
> + color = <LED_COLOR_ID_RED>;
> + gpios = <&tlmm 39 GPIO_ACTIVE_HIGH>;
> + linux,default-trigger = "none";
> + default-state = "off";
> + panic-indicator;
> + };
> +
> + ledwlan: led-wlan {
> + label = "green:wlan";
> + function = LED_FUNCTION_WLAN;
> + color = <LED_COLOR_ID_GREEN>;
> + gpios = <&tlmm 40 GPIO_ACTIVE_HIGH>;
> + linux,default-trigger = "phy0tx";
> + default-state = "off";
> + };
> +
> + ledbt: led-bt {
The labels (label: node-name@unit-addr {}) for the above 3 LEDs and
the group are not used, please drop them
Looks good otherwise
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Konrad
^ permalink raw reply [flat|nested] 12+ messages in thread