* [PATCH 0/3] arm64: dts: qcom: monaco-arduino-monza: Enable JHAT 40-pin HAT accessories
@ 2026-07-07 16:37 Srinivas Kandagatla
2026-07-07 16:37 ` [PATCH 1/3] arm64: dts: qcom: monaco-arduino-monza: Enable I2C0 and SPI3 for 40-pin JHAT connector Srinivas Kandagatla
` (2 more replies)
0 siblings, 3 replies; 13+ messages in thread
From: Srinivas Kandagatla @ 2026-07-07 16:37 UTC (permalink / raw)
To: andersson, konradybcio
Cc: robh, krzk+dt, conor+dt, linux-arm-msm, devicetree, linux-kernel,
loic.poulain, Srinivas Kandagatla
The Arduino VENTUNO Q board exposes a 40-pin JHAT connector that is
pin-compatible with the Raspberry Pi HAT specification. This series
enables the I2C0 and SPI3 interfaces on that connector and provides
a DT overlay for the first supported accessory.
Patch 1 enables I2C0 and SPI3 on the JHAT connector and adds the
corresponding aliases, allowing HATs that rely on those buses to be
used. This covers accessories such as the Pimoroni Automation HAT
[1] which uses I2C for its on-board ADS1015 ADC and SN3218 LED driver.
Patch 2 adds a label to the sound node so that audio-related DT
overlays can extend it.
Patch 3 adds a DT overlay for the Waveshare WM8960 Audio HAT [2].
The overlay enables the WM8960 codec on I2C0, defines the LPI I2S1
pinctrl state for the JHAT I2S pins, and wires up playback and
capture DAI links to the Q6APM audio subsystem.
Audioreach tplg changes are at [3]
[1] https://shop.pimoroni.com/products/automation-hat?variant=30712316554
[2] https://www.waveshare.com/wiki/WM8960_Audio_HAT
[3] https://github.com/linux-msm/audioreach-topology/pull/67
Srinivas Kandagatla (3):
arm64: dts: qcom: monaco-arduino-monza: Enable I2C0 and SPI3 for
40-pin JHAT connector
arm64: dts: qcom: monaco-arduino-monza: Add label to sound node
arm64: dts: qcom: monaco-arduino-monza: Add overlay for Waveshare
WM8960 Audio HAT
arch/arm64/boot/dts/qcom/Makefile | 4 +
...uino-monza-waveshare-wm8960-audio-hat.dtso | 100 ++++++++++++++++++
.../boot/dts/qcom/monaco-arduino-monza.dts | 14 ++-
3 files changed, 117 insertions(+), 1 deletion(-)
create mode 100644 arch/arm64/boot/dts/qcom/monaco-arduino-monza-waveshare-wm8960-audio-hat.dtso
--
2.53.0
^ permalink raw reply [flat|nested] 13+ messages in thread
* [PATCH 1/3] arm64: dts: qcom: monaco-arduino-monza: Enable I2C0 and SPI3 for 40-pin JHAT connector
2026-07-07 16:37 [PATCH 0/3] arm64: dts: qcom: monaco-arduino-monza: Enable JHAT 40-pin HAT accessories Srinivas Kandagatla
@ 2026-07-07 16:37 ` Srinivas Kandagatla
2026-07-07 18:11 ` Dmitry Baryshkov
` (2 more replies)
2026-07-07 16:37 ` [PATCH 2/3] arm64: dts: qcom: monaco-arduino-monza: Add label to sound node Srinivas Kandagatla
2026-07-07 16:37 ` [PATCH 3/3] arm64: dts: qcom: monaco-arduino-monza: Add overlay for Waveshare WM8960 Audio HAT Srinivas Kandagatla
2 siblings, 3 replies; 13+ messages in thread
From: Srinivas Kandagatla @ 2026-07-07 16:37 UTC (permalink / raw)
To: andersson, konradybcio
Cc: robh, krzk+dt, conor+dt, linux-arm-msm, devicetree, linux-kernel,
loic.poulain, Srinivas Kandagatla
Enable i2c0 and spi3 interfaces that are exposed on the 40-pin JHAT
connector and add the corresponding i2c0 and spi0 aliases for them.
Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@oss.qualcomm.com>
---
arch/arm64/boot/dts/qcom/monaco-arduino-monza.dts | 12 ++++++++++++
1 file changed, 12 insertions(+)
diff --git a/arch/arm64/boot/dts/qcom/monaco-arduino-monza.dts b/arch/arm64/boot/dts/qcom/monaco-arduino-monza.dts
index 8b3ed73feb6e..4b1975dff885 100644
--- a/arch/arm64/boot/dts/qcom/monaco-arduino-monza.dts
+++ b/arch/arm64/boot/dts/qcom/monaco-arduino-monza.dts
@@ -19,9 +19,11 @@ / {
aliases {
ethernet0 = ðernet0;
+ i2c0 = &i2c0;
i2c1 = &i2c1;
serial0 = &uart7;
serial1 = &uart10;
+ spi0 = &spi3;
};
chosen {
@@ -257,6 +259,11 @@ queue3 {
};
};
+/* JHAT 40-pin I2C0 */
+&i2c0 {
+ status = "okay";
+};
+
&i2c12 {
clock-frequency = <400000>;
@@ -425,6 +432,11 @@ &pcieport1 {
reset-gpios = <&tlmm 23 GPIO_ACTIVE_LOW>;
};
+/* JHAT 40-pin SPI */
+&spi3 {
+ status = "okay";
+};
+
&tlmm {
pcie0_default_state: pcie0-default-state {
wake-pins {
--
2.53.0
^ permalink raw reply related [flat|nested] 13+ messages in thread
* [PATCH 2/3] arm64: dts: qcom: monaco-arduino-monza: Add label to sound node
2026-07-07 16:37 [PATCH 0/3] arm64: dts: qcom: monaco-arduino-monza: Enable JHAT 40-pin HAT accessories Srinivas Kandagatla
2026-07-07 16:37 ` [PATCH 1/3] arm64: dts: qcom: monaco-arduino-monza: Enable I2C0 and SPI3 for 40-pin JHAT connector Srinivas Kandagatla
@ 2026-07-07 16:37 ` Srinivas Kandagatla
2026-07-07 18:13 ` Dmitry Baryshkov
2026-07-07 16:37 ` [PATCH 3/3] arm64: dts: qcom: monaco-arduino-monza: Add overlay for Waveshare WM8960 Audio HAT Srinivas Kandagatla
2 siblings, 1 reply; 13+ messages in thread
From: Srinivas Kandagatla @ 2026-07-07 16:37 UTC (permalink / raw)
To: andersson, konradybcio
Cc: robh, krzk+dt, conor+dt, linux-arm-msm, devicetree, linux-kernel,
loic.poulain, Srinivas Kandagatla
Add a label to the sound node to allow DT overlays to reference and
extend it.
Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@oss.qualcomm.com>
---
arch/arm64/boot/dts/qcom/monaco-arduino-monza.dts | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arch/arm64/boot/dts/qcom/monaco-arduino-monza.dts b/arch/arm64/boot/dts/qcom/monaco-arduino-monza.dts
index 4b1975dff885..1f27d92d9ec1 100644
--- a/arch/arm64/boot/dts/qcom/monaco-arduino-monza.dts
+++ b/arch/arm64/boot/dts/qcom/monaco-arduino-monza.dts
@@ -55,7 +55,7 @@ hdmi_connector_in: endpoint {
};
};
- sound {
+ sound: sound {
compatible = "qcom,qcs8275-sndcard";
model = "arduino-monza";
audio-routing = "IN12", "Headset Mic12",
--
2.53.0
^ permalink raw reply related [flat|nested] 13+ messages in thread
* [PATCH 3/3] arm64: dts: qcom: monaco-arduino-monza: Add overlay for Waveshare WM8960 Audio HAT
2026-07-07 16:37 [PATCH 0/3] arm64: dts: qcom: monaco-arduino-monza: Enable JHAT 40-pin HAT accessories Srinivas Kandagatla
2026-07-07 16:37 ` [PATCH 1/3] arm64: dts: qcom: monaco-arduino-monza: Enable I2C0 and SPI3 for 40-pin JHAT connector Srinivas Kandagatla
2026-07-07 16:37 ` [PATCH 2/3] arm64: dts: qcom: monaco-arduino-monza: Add label to sound node Srinivas Kandagatla
@ 2026-07-07 16:37 ` Srinivas Kandagatla
2026-07-07 18:15 ` Dmitry Baryshkov
2026-07-08 12:33 ` Loic Poulain
2 siblings, 2 replies; 13+ messages in thread
From: Srinivas Kandagatla @ 2026-07-07 16:37 UTC (permalink / raw)
To: andersson, konradybcio
Cc: robh, krzk+dt, conor+dt, linux-arm-msm, devicetree, linux-kernel,
loic.poulain, Srinivas Kandagatla
Add a DT overlay for the Waveshare WM8960 Audio HAT connected to the
40-pin JHAT connector. The overlay adds the WM8960 fixed MCLK clock,
the WM8960 codec on I2C0, and the corresponding I2S1 playback and
capture DAI links to the sound card.
Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@oss.qualcomm.com>
---
arch/arm64/boot/dts/qcom/Makefile | 4 +
...uino-monza-waveshare-wm8960-audio-hat.dtso | 100 ++++++++++++++++++
2 files changed, 104 insertions(+)
create mode 100644 arch/arm64/boot/dts/qcom/monaco-arduino-monza-waveshare-wm8960-audio-hat.dtso
diff --git a/arch/arm64/boot/dts/qcom/Makefile b/arch/arm64/boot/dts/qcom/Makefile
index 5a1c56cf98f6..27cce61893ad 100644
--- a/arch/arm64/boot/dts/qcom/Makefile
+++ b/arch/arm64/boot/dts/qcom/Makefile
@@ -59,6 +59,10 @@ dtb-$(CONFIG_ARCH_QCOM) += mahua-crd.dtb
dtb-$(CONFIG_ARCH_QCOM) += milos-fairphone-fp6.dtb
dtb-$(CONFIG_ARCH_QCOM) += milos-nothing-asteroids.dtb
dtb-$(CONFIG_ARCH_QCOM) += monaco-arduino-monza.dtb
+
+monaco-arduino-monza-waveshare-wm8960-audio-hat-dtbs := monaco-arduino-monza.dtb monaco-arduino-monza-waveshare-wm8960-audio-hat.dtbo
+dtb-$(CONFIG_ARCH_QCOM) += monaco-arduino-monza-waveshare-wm8960-audio-hat.dtb
+
dtb-$(CONFIG_ARCH_QCOM) += monaco-evk.dtb
monaco-evk-camera-imx577-dtbs := monaco-evk.dtb monaco-evk-camera-imx577.dtbo
diff --git a/arch/arm64/boot/dts/qcom/monaco-arduino-monza-waveshare-wm8960-audio-hat.dtso b/arch/arm64/boot/dts/qcom/monaco-arduino-monza-waveshare-wm8960-audio-hat.dtso
new file mode 100644
index 000000000000..cf7b6a220bab
--- /dev/null
+++ b/arch/arm64/boot/dts/qcom/monaco-arduino-monza-waveshare-wm8960-audio-hat.dtso
@@ -0,0 +1,100 @@
+// SPDX-License-Identifier: BSD-3-Clause
+/*
+ * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
+ *
+ * Device tree overlay for the Waveshare WM8960 Audio HAT connected to the
+ * Arduino Monza 40-pin JHAT connector.
+ */
+
+/dts-v1/;
+/plugin/;
+
+#include <dt-bindings/sound/qcom,q6dsp-lpass-ports.h>
+
+&{/} {
+ /* on board fixed crystal */
+ wm8960_mclk: wm8960-mclk {
+ compatible = "fixed-clock";
+ clock-frequency = <12288000>;
+ #clock-cells = <0>;
+ };
+};
+
+&i2c0 {
+ clock-frequency = <400000>;
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ wm8960: audio-codec@1a {
+ compatible = "wlf,wm8960";
+ reg = <0x1a>;
+ clocks = <&wm8960_mclk>;
+ clock-names = "mclk";
+ AVDD-supply = <&vdc_3v3>;
+ SPKVDD1-supply = <&vdc_5v>;
+ SPKVDD2-supply = <&vdc_5v>;
+ #sound-dai-cells = <0>;
+ };
+};
+
+&lpass_tlmm {
+ lpi_i2s1_active: lpi-i2s1-active-state {
+ clk-pins {
+ pins = "gpio6";
+ function = "i2s1_clk";
+ drive-strength = <8>;
+ bias-disable;
+ };
+
+ ws-pins {
+ pins = "gpio7";
+ function = "i2s1_ws";
+ drive-strength = <8>;
+ bias-disable;
+ };
+
+ data-pins {
+ pins = "gpio8", "gpio9";
+ function = "i2s1_data";
+ drive-strength = <8>;
+ bias-disable;
+ };
+ };
+};
+
+&sound {
+ pinctrl-0 = <&quad_mi2s_active>, <&quad_mclk_active>, <&lpi_i2s4_active>,
+ <&lpi_i2s1_active>;
+
+ i2s1-playback-dai-link {
+ link-name = "JHAT Analog Playback";
+
+ codec {
+ sound-dai = <&wm8960>;
+ };
+
+ cpu {
+ sound-dai = <&q6apmbedai LPI_MI2S_RX_1>;
+ };
+
+ platform {
+ sound-dai = <&q6apm>;
+ };
+ };
+
+ i2s1-capture-dai-link {
+ link-name = "JHAT Analog Capture";
+
+ codec {
+ sound-dai = <&wm8960>;
+ };
+
+ cpu {
+ sound-dai = <&q6apmbedai LPI_MI2S_TX_1>;
+ };
+
+ platform {
+ sound-dai = <&q6apm>;
+ };
+ };
+};
--
2.53.0
^ permalink raw reply related [flat|nested] 13+ messages in thread
* Re: [PATCH 1/3] arm64: dts: qcom: monaco-arduino-monza: Enable I2C0 and SPI3 for 40-pin JHAT connector
2026-07-07 16:37 ` [PATCH 1/3] arm64: dts: qcom: monaco-arduino-monza: Enable I2C0 and SPI3 for 40-pin JHAT connector Srinivas Kandagatla
@ 2026-07-07 18:11 ` Dmitry Baryshkov
2026-07-08 6:34 ` Loic Poulain
2026-07-08 7:01 ` Konrad Dybcio
2 siblings, 0 replies; 13+ messages in thread
From: Dmitry Baryshkov @ 2026-07-07 18:11 UTC (permalink / raw)
To: Srinivas Kandagatla
Cc: andersson, konradybcio, robh, krzk+dt, conor+dt, linux-arm-msm,
devicetree, linux-kernel, loic.poulain
On Tue, Jul 07, 2026 at 05:37:01PM +0100, Srinivas Kandagatla wrote:
> Enable i2c0 and spi3 interfaces that are exposed on the 40-pin JHAT
> connector and add the corresponding i2c0 and spi0 aliases for them.
>
> Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@oss.qualcomm.com>
> ---
> arch/arm64/boot/dts/qcom/monaco-arduino-monza.dts | 12 ++++++++++++
> 1 file changed, 12 insertions(+)
>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
--
With best wishes
Dmitry
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH 2/3] arm64: dts: qcom: monaco-arduino-monza: Add label to sound node
2026-07-07 16:37 ` [PATCH 2/3] arm64: dts: qcom: monaco-arduino-monza: Add label to sound node Srinivas Kandagatla
@ 2026-07-07 18:13 ` Dmitry Baryshkov
0 siblings, 0 replies; 13+ messages in thread
From: Dmitry Baryshkov @ 2026-07-07 18:13 UTC (permalink / raw)
To: Srinivas Kandagatla
Cc: andersson, konradybcio, robh, krzk+dt, conor+dt, linux-arm-msm,
devicetree, linux-kernel, loic.poulain
On Tue, Jul 07, 2026 at 05:37:02PM +0100, Srinivas Kandagatla wrote:
> Add a label to the sound node to allow DT overlays to reference and
> extend it.
>
> Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@oss.qualcomm.com>
> ---
> arch/arm64/boot/dts/qcom/monaco-arduino-monza.dts | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
--
With best wishes
Dmitry
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH 3/3] arm64: dts: qcom: monaco-arduino-monza: Add overlay for Waveshare WM8960 Audio HAT
2026-07-07 16:37 ` [PATCH 3/3] arm64: dts: qcom: monaco-arduino-monza: Add overlay for Waveshare WM8960 Audio HAT Srinivas Kandagatla
@ 2026-07-07 18:15 ` Dmitry Baryshkov
2026-07-07 20:41 ` Srinivas Kandagatla
2026-07-08 12:33 ` Loic Poulain
1 sibling, 1 reply; 13+ messages in thread
From: Dmitry Baryshkov @ 2026-07-07 18:15 UTC (permalink / raw)
To: Srinivas Kandagatla
Cc: andersson, konradybcio, robh, krzk+dt, conor+dt, linux-arm-msm,
devicetree, linux-kernel, loic.poulain
On Tue, Jul 07, 2026 at 05:37:03PM +0100, Srinivas Kandagatla wrote:
> Add a DT overlay for the Waveshare WM8960 Audio HAT connected to the
> 40-pin JHAT connector. The overlay adds the WM8960 fixed MCLK clock,
> the WM8960 codec on I2C0, and the corresponding I2S1 playback and
> capture DAI links to the sound card.
The contents of the overlay is more or less visible from the patch.
Please provide some useful documentation, e.g. how to test the codec.
Does one need extra UCM file for it?
>
> Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@oss.qualcomm.com>
> ---
> arch/arm64/boot/dts/qcom/Makefile | 4 +
> ...uino-monza-waveshare-wm8960-audio-hat.dtso | 100 ++++++++++++++++++
> 2 files changed, 104 insertions(+)
> create mode 100644 arch/arm64/boot/dts/qcom/monaco-arduino-monza-waveshare-wm8960-audio-hat.dtso
--
With best wishes
Dmitry
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH 3/3] arm64: dts: qcom: monaco-arduino-monza: Add overlay for Waveshare WM8960 Audio HAT
2026-07-07 18:15 ` Dmitry Baryshkov
@ 2026-07-07 20:41 ` Srinivas Kandagatla
2026-07-08 7:02 ` Konrad Dybcio
0 siblings, 1 reply; 13+ messages in thread
From: Srinivas Kandagatla @ 2026-07-07 20:41 UTC (permalink / raw)
To: Dmitry Baryshkov
Cc: andersson, konradybcio, robh, krzk+dt, conor+dt, linux-arm-msm,
devicetree, linux-kernel, loic.poulain
On 7/7/26 7:15 PM, Dmitry Baryshkov wrote:
> On Tue, Jul 07, 2026 at 05:37:03PM +0100, Srinivas Kandagatla wrote:
>> Add a DT overlay for the Waveshare WM8960 Audio HAT connected to the
>> 40-pin JHAT connector. The overlay adds the WM8960 fixed MCLK clock,
>> the WM8960 codec on I2C0, and the corresponding I2S1 playback and
>> capture DAI links to the sound card.
>
> The contents of the overlay is more or less visible from the patch.
> Please provide some useful documentation, e.g. how to test the codec.
> Does one need extra UCM file for it?
Yes, currently this has been tested manually with mixer commands from
console, the plan make this work with ucm dynamically based on the
existence of the dai-link that comes as part of overlay.
Here is wip ucm changes required for this,
https://github.com/Srinivas-Kandagatla/alsa-ucm-conf/tree/ventuno-q-jhat
--srini
>
>>
>> Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@oss.qualcomm.com>
>> ---
>> arch/arm64/boot/dts/qcom/Makefile | 4 +
>> ...uino-monza-waveshare-wm8960-audio-hat.dtso | 100 ++++++++++++++++++
>> 2 files changed, 104 insertions(+)
>> create mode 100644 arch/arm64/boot/dts/qcom/monaco-arduino-monza-waveshare-wm8960-audio-hat.dtso
>
>
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH 1/3] arm64: dts: qcom: monaco-arduino-monza: Enable I2C0 and SPI3 for 40-pin JHAT connector
2026-07-07 16:37 ` [PATCH 1/3] arm64: dts: qcom: monaco-arduino-monza: Enable I2C0 and SPI3 for 40-pin JHAT connector Srinivas Kandagatla
2026-07-07 18:11 ` Dmitry Baryshkov
@ 2026-07-08 6:34 ` Loic Poulain
2026-07-08 7:01 ` Konrad Dybcio
2 siblings, 0 replies; 13+ messages in thread
From: Loic Poulain @ 2026-07-08 6:34 UTC (permalink / raw)
To: Srinivas Kandagatla
Cc: andersson, konradybcio, robh, krzk+dt, conor+dt, linux-arm-msm,
devicetree, linux-kernel
On Tue, Jul 7, 2026 at 6:37 PM Srinivas Kandagatla
<srinivas.kandagatla@oss.qualcomm.com> wrote:
>
> Enable i2c0 and spi3 interfaces that are exposed on the 40-pin JHAT
> connector and add the corresponding i2c0 and spi0 aliases for them.
>
> Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@oss.qualcomm.com>
Reviewed-by: Loic Poulain <loic.poulain@oss.qualcomm.com>
> ---
> arch/arm64/boot/dts/qcom/monaco-arduino-monza.dts | 12 ++++++++++++
> 1 file changed, 12 insertions(+)
>
> diff --git a/arch/arm64/boot/dts/qcom/monaco-arduino-monza.dts b/arch/arm64/boot/dts/qcom/monaco-arduino-monza.dts
> index 8b3ed73feb6e..4b1975dff885 100644
> --- a/arch/arm64/boot/dts/qcom/monaco-arduino-monza.dts
> +++ b/arch/arm64/boot/dts/qcom/monaco-arduino-monza.dts
> @@ -19,9 +19,11 @@ / {
>
> aliases {
> ethernet0 = ðernet0;
> + i2c0 = &i2c0;
> i2c1 = &i2c1;
> serial0 = &uart7;
> serial1 = &uart10;
> + spi0 = &spi3;
> };
>
> chosen {
> @@ -257,6 +259,11 @@ queue3 {
> };
> };
>
> +/* JHAT 40-pin I2C0 */
> +&i2c0 {
> + status = "okay";
> +};
> +
> &i2c12 {
> clock-frequency = <400000>;
>
> @@ -425,6 +432,11 @@ &pcieport1 {
> reset-gpios = <&tlmm 23 GPIO_ACTIVE_LOW>;
> };
>
> +/* JHAT 40-pin SPI */
> +&spi3 {
> + status = "okay";
> +};
> +
> &tlmm {
> pcie0_default_state: pcie0-default-state {
> wake-pins {
> --
> 2.53.0
>
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH 1/3] arm64: dts: qcom: monaco-arduino-monza: Enable I2C0 and SPI3 for 40-pin JHAT connector
2026-07-07 16:37 ` [PATCH 1/3] arm64: dts: qcom: monaco-arduino-monza: Enable I2C0 and SPI3 for 40-pin JHAT connector Srinivas Kandagatla
2026-07-07 18:11 ` Dmitry Baryshkov
2026-07-08 6:34 ` Loic Poulain
@ 2026-07-08 7:01 ` Konrad Dybcio
2 siblings, 0 replies; 13+ messages in thread
From: Konrad Dybcio @ 2026-07-08 7:01 UTC (permalink / raw)
To: Srinivas Kandagatla, andersson, konradybcio
Cc: robh, krzk+dt, conor+dt, linux-arm-msm, devicetree, linux-kernel,
loic.poulain
On 7/7/26 6:37 PM, Srinivas Kandagatla wrote:
> Enable i2c0 and spi3 interfaces that are exposed on the 40-pin JHAT
> connector and add the corresponding i2c0 and spi0 aliases for them.
>
> Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@oss.qualcomm.com>
> ---
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Konrad
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH 3/3] arm64: dts: qcom: monaco-arduino-monza: Add overlay for Waveshare WM8960 Audio HAT
2026-07-07 20:41 ` Srinivas Kandagatla
@ 2026-07-08 7:02 ` Konrad Dybcio
0 siblings, 0 replies; 13+ messages in thread
From: Konrad Dybcio @ 2026-07-08 7:02 UTC (permalink / raw)
To: Srinivas Kandagatla, Dmitry Baryshkov
Cc: andersson, konradybcio, robh, krzk+dt, conor+dt, linux-arm-msm,
devicetree, linux-kernel, loic.poulain
On 7/7/26 10:41 PM, Srinivas Kandagatla wrote:
> On 7/7/26 7:15 PM, Dmitry Baryshkov wrote:
>> On Tue, Jul 07, 2026 at 05:37:03PM +0100, Srinivas Kandagatla wrote:
>>> Add a DT overlay for the Waveshare WM8960 Audio HAT connected to the
>>> 40-pin JHAT connector. The overlay adds the WM8960 fixed MCLK clock,
>>> the WM8960 codec on I2C0, and the corresponding I2S1 playback and
>>> capture DAI links to the sound card.
>>
>> The contents of the overlay is more or less visible from the patch.
>> Please provide some useful documentation, e.g. how to test the codec.
>> Does one need extra UCM file for it?
>
> Yes, currently this has been tested manually with mixer commands from
> console, the plan make this work with ucm dynamically based on the
> existence of the dai-link that comes as part of overlay.
>
> Here is wip ucm changes required for this,
>
> https://github.com/Srinivas-Kandagatla/alsa-ucm-conf/tree/ventuno-q-jhat
with the commit message amended
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Konrad
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH 3/3] arm64: dts: qcom: monaco-arduino-monza: Add overlay for Waveshare WM8960 Audio HAT
2026-07-07 16:37 ` [PATCH 3/3] arm64: dts: qcom: monaco-arduino-monza: Add overlay for Waveshare WM8960 Audio HAT Srinivas Kandagatla
2026-07-07 18:15 ` Dmitry Baryshkov
@ 2026-07-08 12:33 ` Loic Poulain
2026-07-08 13:30 ` Srinivas Kandagatla
1 sibling, 1 reply; 13+ messages in thread
From: Loic Poulain @ 2026-07-08 12:33 UTC (permalink / raw)
To: Srinivas Kandagatla
Cc: andersson, konradybcio, robh, krzk+dt, conor+dt, linux-arm-msm,
devicetree, linux-kernel
Hi Srini,
On Tue, Jul 7, 2026 at 6:37 PM Srinivas Kandagatla
<srinivas.kandagatla@oss.qualcomm.com> wrote:
>
> Add a DT overlay for the Waveshare WM8960 Audio HAT connected to the
> 40-pin JHAT connector. The overlay adds the WM8960 fixed MCLK clock,
> the WM8960 codec on I2C0, and the corresponding I2S1 playback and
> capture DAI links to the sound card.
Looks like this hat also features a button on P11 (gpio85)?
So it would be good to extend gpio-keys in that overlay.
In that context, maybe assigning KEY_NEXTSONG or KEY_PLAYPAUSE?
>
> Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@oss.qualcomm.com>
> ---
> arch/arm64/boot/dts/qcom/Makefile | 4 +
> ...uino-monza-waveshare-wm8960-audio-hat.dtso | 100 ++++++++++++++++++
> 2 files changed, 104 insertions(+)
> create mode 100644 arch/arm64/boot/dts/qcom/monaco-arduino-monza-waveshare-wm8960-audio-hat.dtso
>
> diff --git a/arch/arm64/boot/dts/qcom/Makefile b/arch/arm64/boot/dts/qcom/Makefile
> index 5a1c56cf98f6..27cce61893ad 100644
> --- a/arch/arm64/boot/dts/qcom/Makefile
> +++ b/arch/arm64/boot/dts/qcom/Makefile
> @@ -59,6 +59,10 @@ dtb-$(CONFIG_ARCH_QCOM) += mahua-crd.dtb
> dtb-$(CONFIG_ARCH_QCOM) += milos-fairphone-fp6.dtb
> dtb-$(CONFIG_ARCH_QCOM) += milos-nothing-asteroids.dtb
> dtb-$(CONFIG_ARCH_QCOM) += monaco-arduino-monza.dtb
> +
> +monaco-arduino-monza-waveshare-wm8960-audio-hat-dtbs := monaco-arduino-monza.dtb monaco-arduino-monza-waveshare-wm8960-audio-hat.dtbo
> +dtb-$(CONFIG_ARCH_QCOM) += monaco-arduino-monza-waveshare-wm8960-audio-hat.dtb
> +
> dtb-$(CONFIG_ARCH_QCOM) += monaco-evk.dtb
>
> monaco-evk-camera-imx577-dtbs := monaco-evk.dtb monaco-evk-camera-imx577.dtbo
> diff --git a/arch/arm64/boot/dts/qcom/monaco-arduino-monza-waveshare-wm8960-audio-hat.dtso b/arch/arm64/boot/dts/qcom/monaco-arduino-monza-waveshare-wm8960-audio-hat.dtso
> new file mode 100644
> index 000000000000..cf7b6a220bab
> --- /dev/null
> +++ b/arch/arm64/boot/dts/qcom/monaco-arduino-monza-waveshare-wm8960-audio-hat.dtso
> @@ -0,0 +1,100 @@
> +// SPDX-License-Identifier: BSD-3-Clause
> +/*
> + * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
> + *
> + * Device tree overlay for the Waveshare WM8960 Audio HAT connected to the
> + * Arduino Monza 40-pin JHAT connector.
> + */
> +
> +/dts-v1/;
> +/plugin/;
> +
> +#include <dt-bindings/sound/qcom,q6dsp-lpass-ports.h>
> +
> +&{/} {
> + /* on board fixed crystal */
> + wm8960_mclk: wm8960-mclk {
> + compatible = "fixed-clock";
> + clock-frequency = <12288000>;
> + #clock-cells = <0>;
> + };
> +};
> +
> +&i2c0 {
> + clock-frequency = <400000>;
> + #address-cells = <1>;
> + #size-cells = <0>;
> +
> + wm8960: audio-codec@1a {
> + compatible = "wlf,wm8960";
> + reg = <0x1a>;
> + clocks = <&wm8960_mclk>;
> + clock-names = "mclk";
> + AVDD-supply = <&vdc_3v3>;
> + SPKVDD1-supply = <&vdc_5v>;
> + SPKVDD2-supply = <&vdc_5v>;
> + #sound-dai-cells = <0>;
> + };
> +};
> +
> +&lpass_tlmm {
> + lpi_i2s1_active: lpi-i2s1-active-state {
> + clk-pins {
> + pins = "gpio6";
> + function = "i2s1_clk";
> + drive-strength = <8>;
> + bias-disable;
> + };
> +
> + ws-pins {
> + pins = "gpio7";
> + function = "i2s1_ws";
> + drive-strength = <8>;
> + bias-disable;
> + };
> +
> + data-pins {
> + pins = "gpio8", "gpio9";
> + function = "i2s1_data";
> + drive-strength = <8>;
> + bias-disable;
> + };
> + };
> +};
> +
> +&sound {
> + pinctrl-0 = <&quad_mi2s_active>, <&quad_mclk_active>, <&lpi_i2s4_active>,
> + <&lpi_i2s1_active>;
> +
> + i2s1-playback-dai-link {
> + link-name = "JHAT Analog Playback";
> +
> + codec {
> + sound-dai = <&wm8960>;
> + };
> +
> + cpu {
> + sound-dai = <&q6apmbedai LPI_MI2S_RX_1>;
> + };
> +
> + platform {
> + sound-dai = <&q6apm>;
> + };
> + };
> +
> + i2s1-capture-dai-link {
> + link-name = "JHAT Analog Capture";
> +
> + codec {
> + sound-dai = <&wm8960>;
> + };
> +
> + cpu {
> + sound-dai = <&q6apmbedai LPI_MI2S_TX_1>;
> + };
> +
> + platform {
> + sound-dai = <&q6apm>;
> + };
> + };
> +};
> --
> 2.53.0
>
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH 3/3] arm64: dts: qcom: monaco-arduino-monza: Add overlay for Waveshare WM8960 Audio HAT
2026-07-08 12:33 ` Loic Poulain
@ 2026-07-08 13:30 ` Srinivas Kandagatla
0 siblings, 0 replies; 13+ messages in thread
From: Srinivas Kandagatla @ 2026-07-08 13:30 UTC (permalink / raw)
To: Loic Poulain
Cc: andersson, konradybcio, robh, krzk+dt, conor+dt, linux-arm-msm,
devicetree, linux-kernel
On 7/8/26 1:33 PM, Loic Poulain wrote:
> Hi Srini,
>
> On Tue, Jul 7, 2026 at 6:37 PM Srinivas Kandagatla
> <srinivas.kandagatla@oss.qualcomm.com> wrote:
>>
>> Add a DT overlay for the Waveshare WM8960 Audio HAT connected to the
>> 40-pin JHAT connector. The overlay adds the WM8960 fixed MCLK clock,
>> the WM8960 codec on I2C0, and the corresponding I2S1 playback and
>> capture DAI links to the sound card.
>
> Looks like this hat also features a button on P11 (gpio85)?
> So it would be good to extend gpio-keys in that overlay.
> In that context, maybe assigning KEY_NEXTSONG or KEY_PLAYPAUSE?
>
good point, We could add this, interestingly Rpi does nothing with this.
Will add this in v2 as PLAYPAUSE button.
--srini
>
>>
>> Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@oss.qualcomm.com>
>> ---
>> arch/arm64/boot/dts/qcom/Makefile | 4 +
>> ...uino-monza-waveshare-wm8960-audio-hat.dtso | 100 ++++++++++++++++++
>> 2 files changed, 104 insertions(+)
>> create mode 100644 arch/arm64/boot/dts/qcom/monaco-arduino-monza-waveshare-wm8960-audio-hat.dtso
>>
>> diff --git a/arch/arm64/boot/dts/qcom/Makefile b/arch/arm64/boot/dts/qcom/Makefile
>> index 5a1c56cf98f6..27cce61893ad 100644
>> --- a/arch/arm64/boot/dts/qcom/Makefile
>> +++ b/arch/arm64/boot/dts/qcom/Makefile
>> @@ -59,6 +59,10 @@ dtb-$(CONFIG_ARCH_QCOM) += mahua-crd.dtb
>> dtb-$(CONFIG_ARCH_QCOM) += milos-fairphone-fp6.dtb
>> dtb-$(CONFIG_ARCH_QCOM) += milos-nothing-asteroids.dtb
>> dtb-$(CONFIG_ARCH_QCOM) += monaco-arduino-monza.dtb
>> +
>> +monaco-arduino-monza-waveshare-wm8960-audio-hat-dtbs := monaco-arduino-monza.dtb monaco-arduino-monza-waveshare-wm8960-audio-hat.dtbo
>> +dtb-$(CONFIG_ARCH_QCOM) += monaco-arduino-monza-waveshare-wm8960-audio-hat.dtb
>> +
>> dtb-$(CONFIG_ARCH_QCOM) += monaco-evk.dtb
>>
>> monaco-evk-camera-imx577-dtbs := monaco-evk.dtb monaco-evk-camera-imx577.dtbo
>> diff --git a/arch/arm64/boot/dts/qcom/monaco-arduino-monza-waveshare-wm8960-audio-hat.dtso b/arch/arm64/boot/dts/qcom/monaco-arduino-monza-waveshare-wm8960-audio-hat.dtso
>> new file mode 100644
>> index 000000000000..cf7b6a220bab
>> --- /dev/null
>> +++ b/arch/arm64/boot/dts/qcom/monaco-arduino-monza-waveshare-wm8960-audio-hat.dtso
>> @@ -0,0 +1,100 @@
>> +// SPDX-License-Identifier: BSD-3-Clause
>> +/*
>> + * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
>> + *
>> + * Device tree overlay for the Waveshare WM8960 Audio HAT connected to the
>> + * Arduino Monza 40-pin JHAT connector.
>> + */
>> +
>> +/dts-v1/;
>> +/plugin/;
>> +
>> +#include <dt-bindings/sound/qcom,q6dsp-lpass-ports.h>
>> +
>> +&{/} {
>> + /* on board fixed crystal */
>> + wm8960_mclk: wm8960-mclk {
>> + compatible = "fixed-clock";
>> + clock-frequency = <12288000>;
>> + #clock-cells = <0>;
>> + };
>> +};
>> +
>> +&i2c0 {
>> + clock-frequency = <400000>;
>> + #address-cells = <1>;
>> + #size-cells = <0>;
>> +
>> + wm8960: audio-codec@1a {
>> + compatible = "wlf,wm8960";
>> + reg = <0x1a>;
>> + clocks = <&wm8960_mclk>;
>> + clock-names = "mclk";
>> + AVDD-supply = <&vdc_3v3>;
>> + SPKVDD1-supply = <&vdc_5v>;
>> + SPKVDD2-supply = <&vdc_5v>;
>> + #sound-dai-cells = <0>;
>> + };
>> +};
>> +
>> +&lpass_tlmm {
>> + lpi_i2s1_active: lpi-i2s1-active-state {
>> + clk-pins {
>> + pins = "gpio6";
>> + function = "i2s1_clk";
>> + drive-strength = <8>;
>> + bias-disable;
>> + };
>> +
>> + ws-pins {
>> + pins = "gpio7";
>> + function = "i2s1_ws";
>> + drive-strength = <8>;
>> + bias-disable;
>> + };
>> +
>> + data-pins {
>> + pins = "gpio8", "gpio9";
>> + function = "i2s1_data";
>> + drive-strength = <8>;
>> + bias-disable;
>> + };
>> + };
>> +};
>> +
>> +&sound {
>> + pinctrl-0 = <&quad_mi2s_active>, <&quad_mclk_active>, <&lpi_i2s4_active>,
>> + <&lpi_i2s1_active>;
>> +
>> + i2s1-playback-dai-link {
>> + link-name = "JHAT Analog Playback";
>> +
>> + codec {
>> + sound-dai = <&wm8960>;
>> + };
>> +
>> + cpu {
>> + sound-dai = <&q6apmbedai LPI_MI2S_RX_1>;
>> + };
>> +
>> + platform {
>> + sound-dai = <&q6apm>;
>> + };
>> + };
>> +
>> + i2s1-capture-dai-link {
>> + link-name = "JHAT Analog Capture";
>> +
>> + codec {
>> + sound-dai = <&wm8960>;
>> + };
>> +
>> + cpu {
>> + sound-dai = <&q6apmbedai LPI_MI2S_TX_1>;
>> + };
>> +
>> + platform {
>> + sound-dai = <&q6apm>;
>> + };
>> + };
>> +};
>> --
>> 2.53.0
>>
^ permalink raw reply [flat|nested] 13+ messages in thread
end of thread, other threads:[~2026-07-08 13:30 UTC | newest]
Thread overview: 13+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-07-07 16:37 [PATCH 0/3] arm64: dts: qcom: monaco-arduino-monza: Enable JHAT 40-pin HAT accessories Srinivas Kandagatla
2026-07-07 16:37 ` [PATCH 1/3] arm64: dts: qcom: monaco-arduino-monza: Enable I2C0 and SPI3 for 40-pin JHAT connector Srinivas Kandagatla
2026-07-07 18:11 ` Dmitry Baryshkov
2026-07-08 6:34 ` Loic Poulain
2026-07-08 7:01 ` Konrad Dybcio
2026-07-07 16:37 ` [PATCH 2/3] arm64: dts: qcom: monaco-arduino-monza: Add label to sound node Srinivas Kandagatla
2026-07-07 18:13 ` Dmitry Baryshkov
2026-07-07 16:37 ` [PATCH 3/3] arm64: dts: qcom: monaco-arduino-monza: Add overlay for Waveshare WM8960 Audio HAT Srinivas Kandagatla
2026-07-07 18:15 ` Dmitry Baryshkov
2026-07-07 20:41 ` Srinivas Kandagatla
2026-07-08 7:02 ` Konrad Dybcio
2026-07-08 12:33 ` Loic Poulain
2026-07-08 13:30 ` Srinivas Kandagatla
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox