From: Valerio Setti <vsetti@baylibre.com>
To: Jerome Brunet <jbrunet@baylibre.com>,
Liam Girdwood <lgirdwood@gmail.com>,
Mark Brown <broonie@kernel.org>, Rob Herring <robh@kernel.org>,
Krzysztof Kozlowski <krzk+dt@kernel.org>,
Conor Dooley <conor+dt@kernel.org>,
Neil Armstrong <neil.armstrong@linaro.org>,
Kevin Hilman <khilman@baylibre.com>,
Martin Blumenstingl <martin.blumenstingl@googlemail.com>,
Jaroslav Kysela <perex@perex.cz>, Takashi Iwai <tiwai@suse.com>
Cc: linux-sound@vger.kernel.org, devicetree@vger.kernel.org,
linux-arm-kernel@lists.infradead.org,
linux-amlogic@lists.infradead.org, linux-kernel@vger.kernel.org,
Valerio Setti <vsetti@baylibre.com>
Subject: [PATCH 6/6] arm64: dts: amlogic: gx: add nodes for audin and its FIFOs
Date: Sat, 12 Sep 2026 00:14:36 +0200 [thread overview]
Message-ID: <20260912-audin-v1-6-7fbefe928711@baylibre.com> (raw)
In-Reply-To: <20260912-audin-v1-0-7fbefe928711@baylibre.com>
Add nodes to provide audio input support to Amlogic Meson GXBB/GXL
platforms:
- audin is the parent node that spans the entire register range and
implements the data formatters.
- audin_fifo are the child nodes that implement the FIFO: they receive
formatted data from the interfaces and then bulk transfer it to RAM
when the FIFO is full.
What's missing after this to get capture support working is to connect a
capture capable codec to the SoC. For example to test these changes an
NXP SGTL5000 chip has been connected to and OdroidC2 (Meson GXBB) board
using a custom hat board.
The following additions are required on 'amlogic/meson-gxbb-odroidc2.dts'
to make that hat board to work:
&sound {
audio-aux-devs = <&audin>;
audio-routing = "AUDIN I2S Formatter", "AIU I2S Encoder Capture",
"AUDIN FIFO0 I2S IN", "AUDIN I2S Formatter";
dai-link-1 {
codec-1 {
sound-dai = <&sgtl5000>;
};
};
dai-link-2 {
sound-dai = <&aiu AIU_CPU CPU_I2S_ENCODER>;
dai-format = "i2s";
mclk-fs = <256>;
codec-0 {
sound-dai = <&sgtl5000>;
};
};
dai-link-3 {
sound-dai = <&audin_fifo0>;
};
};
&audin {
status = "okay";
};
&audin_fifo0 {
status = "okay";
};
Then, from userspace:
$ amixer sset 'AUDIN FIFO0 SRC SEL' 'I2S'
$ arecord -l # find the "FIFO Capture" device
$ arecord -D hw:0,<N> -f S16_LE -r 48000 -c 2 /tmp/in.wav
Signed-off-by: Valerio Setti <vsetti@baylibre.com>
---
arch/arm64/boot/dts/amlogic/meson-gx.dtsi | 35 +++++++++++++++++++++++++++++
arch/arm64/boot/dts/amlogic/meson-gxbb.dtsi | 22 ++++++++++++++++++
arch/arm64/boot/dts/amlogic/meson-gxl.dtsi | 22 ++++++++++++++++++
3 files changed, 79 insertions(+)
diff --git a/arch/arm64/boot/dts/amlogic/meson-gx.dtsi b/arch/arm64/boot/dts/amlogic/meson-gx.dtsi
index c1d8e81d95cb..68632ed86e8c 100644
--- a/arch/arm64/boot/dts/amlogic/meson-gx.dtsi
+++ b/arch/arm64/boot/dts/amlogic/meson-gx.dtsi
@@ -436,6 +436,41 @@ watchdog@98d0 {
reg = <0x0 0x098d0 0x0 0x10>;
clocks = <&xtal>;
};
+
+ audin: audio-controller@a000 {
+ compatible = "amlogic,meson-gx-audin";
+ reg = <0x0 0xa000 0x0 0x308>;
+ #address-cells = <1>;
+ #size-cells = <1>;
+ ranges = <0x0 0x0 0xa000 0x308>;
+ interrupts = <GIC_SPI 7 IRQ_TYPE_EDGE_RISING>;
+ sound-name-prefix = "AUDIN";
+ status = "disabled";
+
+ audin_fifo0: audio-controller@80 {
+ compatible = "amlogic,meson-gx-audin-fifo";
+ reg = <0x80 0x1c>;
+ #sound-dai-cells = <0>;
+ sound-name-prefix = "AUDIN FIFO0";
+ status = "disabled";
+ };
+
+ audin_fifo1: audio-controller@cc {
+ compatible = "amlogic,meson-gx-audin-fifo";
+ reg = <0xcc 0x1c>;
+ #sound-dai-cells = <0>;
+ sound-name-prefix = "AUDIN FIFO1";
+ status = "disabled";
+ };
+
+ audin_fifo2: audio-controller@114 {
+ compatible = "amlogic,meson-gx-audin-fifo";
+ reg = <0x114 0x1c>;
+ #sound-dai-cells = <0>;
+ sound-name-prefix = "AUDIN FIFO2";
+ status = "disabled";
+ };
+ };
};
gic: interrupt-controller@c4301000 {
diff --git a/arch/arm64/boot/dts/amlogic/meson-gxbb.dtsi b/arch/arm64/boot/dts/amlogic/meson-gxbb.dtsi
index a9c830a570cc..53cc92ebbc9f 100644
--- a/arch/arm64/boot/dts/amlogic/meson-gxbb.dtsi
+++ b/arch/arm64/boot/dts/amlogic/meson-gxbb.dtsi
@@ -84,6 +84,28 @@ &aiu {
resets = <&reset RESET_AIU>;
};
+&audin {
+ compatible = "amlogic,meson-gxbb-audin",
+ "amlogic,meson-gx-audin";
+ clocks = <&clkc CLKID_I2S_SPDIF>;
+ resets = <&reset RESET_AUDIN>;
+};
+
+&audin_fifo0 {
+ compatible = "amlogic,meson-gxbb-audin-fifo",
+ "amlogic,meson-gx-audin-fifo";
+};
+
+&audin_fifo1 {
+ compatible = "amlogic,meson-gxbb-audin-fifo",
+ "amlogic,meson-gx-audin-fifo";
+};
+
+&audin_fifo2 {
+ compatible = "amlogic,meson-gxbb-audin-fifo",
+ "amlogic,meson-gx-audin-fifo";
+};
+
&aobus {
pinctrl_aobus: pinctrl@14 {
compatible = "amlogic,meson-gxbb-aobus-pinctrl";
diff --git a/arch/arm64/boot/dts/amlogic/meson-gxl.dtsi b/arch/arm64/boot/dts/amlogic/meson-gxl.dtsi
index d5e0f72892f8..be8fac36fb59 100644
--- a/arch/arm64/boot/dts/amlogic/meson-gxl.dtsi
+++ b/arch/arm64/boot/dts/amlogic/meson-gxl.dtsi
@@ -100,6 +100,28 @@ &aiu {
resets = <&reset RESET_AIU>;
};
+&audin {
+ compatible = "amlogic,meson-gxl-audin",
+ "amlogic,meson-gx-audin";
+ clocks = <&clkc CLKID_I2S_SPDIF>;
+ resets = <&reset RESET_AUDIN>;
+};
+
+&audin_fifo0 {
+ compatible = "amlogic,meson-gxl-audin-fifo",
+ "amlogic,meson-gx-audin-fifo";
+};
+
+&audin_fifo1 {
+ compatible = "amlogic,meson-gxl-audin-fifo",
+ "amlogic,meson-gx-audin-fifo";
+};
+
+&audin_fifo2 {
+ compatible = "amlogic,meson-gxl-audin-fifo",
+ "amlogic,meson-gx-audin-fifo";
+};
+
&apb {
usb2_phy0: phy@78000 {
compatible = "amlogic,meson-gxl-usb2-phy";
--
2.47.3
_______________________________________________
linux-amlogic mailing list
linux-amlogic@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-amlogic
prev parent reply other threads:[~2026-09-11 22:15 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-09-11 22:14 [PATCH 0/6] ASoC: meson: gx: add base support for I2S audio input Valerio Setti
2026-09-11 22:14 ` [PATCH 1/6] dt-bindings: sound: amlogic: add schemas for audin components Valerio Setti
2026-09-13 9:38 ` Krzysztof Kozlowski
2026-09-11 22:14 ` [PATCH 2/6] ASoC: meson: add audin main module and I2S formatter Valerio Setti
2026-09-13 9:41 ` Krzysztof Kozlowski
2026-09-14 13:14 ` Valerio Setti
2026-09-14 7:33 ` Uwe Kleine-König
2026-09-11 22:14 ` [PATCH 3/6] ASoC: meson: add audin FIFO driver Valerio Setti
2026-09-11 22:30 ` sashiko-bot
2026-09-11 22:14 ` [PATCH 4/6] ASoC: meson: aiu: add I2S Capture DAI Valerio Setti
2026-09-11 22:14 ` [PATCH 5/6] ASoC: meson: gx-card: add support for audin FIFO Valerio Setti
2026-09-11 22:14 ` Valerio Setti [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260912-audin-v1-6-7fbefe928711@baylibre.com \
--to=vsetti@baylibre.com \
--cc=broonie@kernel.org \
--cc=conor+dt@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=jbrunet@baylibre.com \
--cc=khilman@baylibre.com \
--cc=krzk+dt@kernel.org \
--cc=lgirdwood@gmail.com \
--cc=linux-amlogic@lists.infradead.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-sound@vger.kernel.org \
--cc=martin.blumenstingl@googlemail.com \
--cc=neil.armstrong@linaro.org \
--cc=perex@perex.cz \
--cc=robh@kernel.org \
--cc=tiwai@suse.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®