From d7a810374597774f0e01eedfc30074772f4e9f85 Mon Sep 17 00:00:00 2001 From: Christoph Date: Wed, 28 Apr 2021 20:30:44 +0200 Subject: [PATCH] overlays: Add ugreen-dabboard overlay This is a simple overlay based on the simple-audio-card and the dmic codec. It has the speciality that it is configured to use the codec as a master I2S device. It works for example with the Si468x DAB receiver on the uGreen DABBoard. See: https://github.com/raspberrypi/linux/issues/4304 Signed-off-by: Christoph Orth --- arch/arm/boot/dts/overlays/Makefile | 1 + arch/arm/boot/dts/overlays/README | 10 ++++ .../dts/overlays/ugreen-dabboard-overlay.dts | 49 +++++++++++++++++++ 3 files changed, 60 insertions(+) create mode 100644 arch/arm/boot/dts/overlays/ugreen-dabboard-overlay.dts --- a/arch/arm/boot/dts/overlays/Makefile +++ b/arch/arm/boot/dts/overlays/Makefile @@ -209,6 +209,7 @@ dtbo-$(CONFIG_ARCH_BCM2835) += \ uart4.dtbo \ uart5.dtbo \ udrc.dtbo \ + ugreen-dabboard.dtbo \ upstream.dtbo \ upstream-pi4.dtbo \ vc4-fkms-v3d.dtbo \ --- a/arch/arm/boot/dts/overlays/README +++ b/arch/arm/boot/dts/overlays/README @@ -3130,6 +3130,16 @@ Load: dtoverlay=udrc,= Params: alsaname Name of the ALSA audio device (default "udrc") +Name: ugreen-dabboard +Info: Configures the ugreen-dabboard I2S overlay + This is a simple overlay based on the simple-audio-card and the dmic + codec. It has the speciality that it is configured to use the codec + as a master I2S device. It works for example with the Si468x DAB + receiver on the uGreen DABBoard. +Load: dtoverlay=ugreen-dabboard,= +Params: card-name Override the default, "dabboard", card name. + + Name: upstream Info: Allow usage of downstream .dtb with upstream kernel. Comprises the vc4-kms-v3d and dwc2 overlays. --- /dev/null +++ b/arch/arm/boot/dts/overlays/ugreen-dabboard-overlay.dts @@ -0,0 +1,49 @@ +// Definitions for the ugreen dabboard I2S +/dts-v1/; +/plugin/; + +/ { + compatible = "brcm,bcm2835"; + + fragment@0 { + target = <&i2s>; + __overlay__ { + status = "okay"; + }; + }; + + fragment@1 { + target-path = "/"; + __overlay__ { + dmic_codec: dmic-codec { + #sound-dai-cells = <0>; + compatible = "dmic-codec"; + status = "okay"; + }; + }; + }; + + fragment@2 { + target = <&sound>; + sound_overlay: __overlay__ { + compatible = "simple-audio-card"; + simple-audio-card,format = "i2s"; + simple-audio-card,name = "dabboard"; + simple-audio-card,bitclock-master = <&dailink0_slave>; + simple-audio-card,frame-master = <&dailink0_slave>; + simple-audio-card,widgets = "Microphone", "Microphone Jack"; + status = "okay"; + simple-audio-card,cpu { + sound-dai = <&i2s>; + }; + dailink0_slave: simple-audio-card,codec { + #sound-dai-cells = <0>; + sound-dai = <&dmic_codec>; + }; + }; + }; + + __overrides__ { + card-name = <&sound_overlay>,"simple-audio-card,name"; + }; +};