Re: [PATCH 3/3] arm64: dts: qcom: monaco-arduino-monza: Add overlay for Waveshare WM8960 Audio HAT

From: Loic Poulain

Date: Wed Jul 08 2026 - 08:34:01 EST


Hi Srini,

On Tue, Jul 7, 2026 at 6:37 PM Srinivas Kandagatla
<srinivas.kandagatla@xxxxxxxxxxxxxxxx> 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@xxxxxxxxxxxxxxxx>
> ---
> 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
>