* [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
* 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 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
* [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
* 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
* [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 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 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