* [RESEND PATCH 2/3] ARM: dts: imx28-amarula-rmm: add I2S audio
2025-09-24 13:07 [RESEND PATCH 1/3] ASoC: mxs-saif: support usage with simple-audio-card Dario Binacchi
@ 2025-09-24 13:07 ` Dario Binacchi
2025-10-27 0:49 ` Shawn Guo
2025-09-24 13:07 ` [RESEND PATCH 3/3] ARM: mxs_defconfig: enable sound drivers for imx28-amarula-rmm Dario Binacchi
` (2 subsequent siblings)
3 siblings, 1 reply; 6+ messages in thread
From: Dario Binacchi @ 2025-09-24 13:07 UTC (permalink / raw)
To: linux-kernel
Cc: linux-amarula, Frank Li, Sascha Hauer, Shawn Guo, Mark Brown,
Dario Binacchi, Michael Trimarchi, Conor Dooley, Fabio Estevam,
Krzysztof Kozlowski, Pengutronix Kernel Team, Rob Herring,
devicetree, imx, linux-arm-kernel
Add support for I2S audio on Amarula rmm board. Audio codec
TLV320AIC3X is connected as slave to SAIF0, which provides
bitclock, frame and MCLK.
Co-developed-by: Michael Trimarchi <michael@amarulasolutions.com>
Signed-off-by: Michael Trimarchi <michael@amarulasolutions.com>
Signed-off-by: Dario Binacchi <dario.binacchi@amarulasolutions.com>
---
.../boot/dts/nxp/mxs/imx28-amarula-rmm.dts | 51 +++++++++++++++++++
1 file changed, 51 insertions(+)
diff --git a/arch/arm/boot/dts/nxp/mxs/imx28-amarula-rmm.dts b/arch/arm/boot/dts/nxp/mxs/imx28-amarula-rmm.dts
index af59211842fb..0c5b52f67178 100644
--- a/arch/arm/boot/dts/nxp/mxs/imx28-amarula-rmm.dts
+++ b/arch/arm/boot/dts/nxp/mxs/imx28-amarula-rmm.dts
@@ -112,6 +112,29 @@ reg_usb1_vbus: regulator-usb1-vbus {
enable-active-high;
regulator-always-on;
};
+
+ sound {
+ compatible = "simple-audio-card";
+ simple-audio-card,name = "imx28-mrmmi-tlv320aic3x-audio";
+ simple-audio-card,format = "i2s";
+ simple-audio-card,bitclock-master = <&cpu_dai>;
+ simple-audio-card,frame-master = <&cpu_dai>;
+ simple-audio-card,widgets =
+ "Headphone", "Headphone Jack";
+ simple-audio-card,routing =
+ "Headphone Jack", "HPROUT",
+ "Headphone Jack", "HPRCOM";
+ simple-audio-card,mclk-fs = <512>;
+
+ cpu_dai: simple-audio-card,cpu {
+ sound-dai = <&saif0>;
+ clocks = <&saif0>;
+ };
+
+ codec_dai: simple-audio-card,codec {
+ sound-dai = <&tlv320aic3x>;
+ };
+ };
};
&auart0 {
@@ -154,6 +177,20 @@ &i2c0 {
pinctrl-0 = <&i2c0_pins_a>;
status = "okay";
+ tlv320aic3x: tlv320aic3x@18 {
+ compatible = "ti,tlv320aic3x";
+ pinctrl-names = "default";
+ pinctrl-0 = <&tlv320aic3x_pins>;
+ reg = <0x18>;
+ reset-gpios = <&gpio2 4 GPIO_ACTIVE_LOW>;
+ #sound-dai-cells = <0>;
+
+ DVDD-supply = <®_1v8>;
+ IOVDD-supply = <®_3v3>;
+ AVDD-supply = <®_3v3>;
+ DRVDD-supply = <®_3v3>;
+ };
+
touchscreen: touchscreen@38 {
compatible = "edt,edt-ft5306";
reg = <0x38>;
@@ -246,6 +283,14 @@ MX28_PAD_PWM1__GPIO_3_17
fsl,voltage = <MXS_VOLTAGE_HIGH>;
};
+ tlv320aic3x_pins: tlv320aic3x-pins@0 {
+ reg = <0>;
+ fsl,pinmux-ids = <MX28_PAD_SSP0_DATA4__GPIO_2_4>;
+ fsl,drive-strength = <MXS_DRIVE_4mA>;
+ fsl,pull-up = <MXS_PULL_ENABLE>;
+ fsl,voltage = <MXS_VOLTAGE_HIGH>;
+ };
+
usb0_vbus_enable_pin: usb0-vbus-enable@0 {
reg = <0>;
fsl,pinmux-ids = <MX28_PAD_SSP0_DATA5__GPIO_2_5>;
@@ -269,6 +314,12 @@ &pwm {
status = "okay";
};
+&saif0 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&saif0_pins_a>;
+ status = "okay";
+};
+
/* microSD */
&ssp0 {
compatible = "fsl,imx28-mmc";
--
2.43.0
base-commit: cec1e6e5d1ab33403b809f79cd20d6aff124ccfe
branch: microgea-rmm-audio
^ permalink raw reply related [flat|nested] 6+ messages in thread* Re: [RESEND PATCH 2/3] ARM: dts: imx28-amarula-rmm: add I2S audio
2025-09-24 13:07 ` [RESEND PATCH 2/3] ARM: dts: imx28-amarula-rmm: add I2S audio Dario Binacchi
@ 2025-10-27 0:49 ` Shawn Guo
0 siblings, 0 replies; 6+ messages in thread
From: Shawn Guo @ 2025-10-27 0:49 UTC (permalink / raw)
To: Dario Binacchi
Cc: linux-kernel, linux-amarula, Frank Li, Sascha Hauer, Shawn Guo,
Mark Brown, Michael Trimarchi, Conor Dooley, Fabio Estevam,
Krzysztof Kozlowski, Pengutronix Kernel Team, Rob Herring,
devicetree, imx, linux-arm-kernel
On Wed, Sep 24, 2025 at 03:07:45PM +0200, Dario Binacchi wrote:
> Add support for I2S audio on Amarula rmm board. Audio codec
> TLV320AIC3X is connected as slave to SAIF0, which provides
> bitclock, frame and MCLK.
>
> Co-developed-by: Michael Trimarchi <michael@amarulasolutions.com>
> Signed-off-by: Michael Trimarchi <michael@amarulasolutions.com>
> Signed-off-by: Dario Binacchi <dario.binacchi@amarulasolutions.com>
> ---
>
> .../boot/dts/nxp/mxs/imx28-amarula-rmm.dts | 51 +++++++++++++++++++
> 1 file changed, 51 insertions(+)
>
> diff --git a/arch/arm/boot/dts/nxp/mxs/imx28-amarula-rmm.dts b/arch/arm/boot/dts/nxp/mxs/imx28-amarula-rmm.dts
> index af59211842fb..0c5b52f67178 100644
> --- a/arch/arm/boot/dts/nxp/mxs/imx28-amarula-rmm.dts
> +++ b/arch/arm/boot/dts/nxp/mxs/imx28-amarula-rmm.dts
> @@ -112,6 +112,29 @@ reg_usb1_vbus: regulator-usb1-vbus {
> enable-active-high;
> regulator-always-on;
> };
> +
> + sound {
> + compatible = "simple-audio-card";
> + simple-audio-card,name = "imx28-mrmmi-tlv320aic3x-audio";
> + simple-audio-card,format = "i2s";
> + simple-audio-card,bitclock-master = <&cpu_dai>;
> + simple-audio-card,frame-master = <&cpu_dai>;
> + simple-audio-card,widgets =
> + "Headphone", "Headphone Jack";
> + simple-audio-card,routing =
> + "Headphone Jack", "HPROUT",
> + "Headphone Jack", "HPRCOM";
> + simple-audio-card,mclk-fs = <512>;
> +
> + cpu_dai: simple-audio-card,cpu {
> + sound-dai = <&saif0>;
> + clocks = <&saif0>;
> + };
> +
> + codec_dai: simple-audio-card,codec {
> + sound-dai = <&tlv320aic3x>;
> + };
> + };
> };
>
> &auart0 {
> @@ -154,6 +177,20 @@ &i2c0 {
> pinctrl-0 = <&i2c0_pins_a>;
> status = "okay";
>
> + tlv320aic3x: tlv320aic3x@18 {
Can we use a generic node name?
> + compatible = "ti,tlv320aic3x";
> + pinctrl-names = "default";
> + pinctrl-0 = <&tlv320aic3x_pins>;
> + reg = <0x18>;
> + reset-gpios = <&gpio2 4 GPIO_ACTIVE_LOW>;
> + #sound-dai-cells = <0>;
> +
Nitpick: unnecessary newline
Shawn
> + DVDD-supply = <®_1v8>;
> + IOVDD-supply = <®_3v3>;
> + AVDD-supply = <®_3v3>;
> + DRVDD-supply = <®_3v3>;
> + };
> +
> touchscreen: touchscreen@38 {
> compatible = "edt,edt-ft5306";
> reg = <0x38>;
> @@ -246,6 +283,14 @@ MX28_PAD_PWM1__GPIO_3_17
> fsl,voltage = <MXS_VOLTAGE_HIGH>;
> };
>
> + tlv320aic3x_pins: tlv320aic3x-pins@0 {
> + reg = <0>;
> + fsl,pinmux-ids = <MX28_PAD_SSP0_DATA4__GPIO_2_4>;
> + fsl,drive-strength = <MXS_DRIVE_4mA>;
> + fsl,pull-up = <MXS_PULL_ENABLE>;
> + fsl,voltage = <MXS_VOLTAGE_HIGH>;
> + };
> +
> usb0_vbus_enable_pin: usb0-vbus-enable@0 {
> reg = <0>;
> fsl,pinmux-ids = <MX28_PAD_SSP0_DATA5__GPIO_2_5>;
> @@ -269,6 +314,12 @@ &pwm {
> status = "okay";
> };
>
> +&saif0 {
> + pinctrl-names = "default";
> + pinctrl-0 = <&saif0_pins_a>;
> + status = "okay";
> +};
> +
> /* microSD */
> &ssp0 {
> compatible = "fsl,imx28-mmc";
> --
> 2.43.0
>
> base-commit: cec1e6e5d1ab33403b809f79cd20d6aff124ccfe
> branch: microgea-rmm-audio
^ permalink raw reply [flat|nested] 6+ messages in thread
* [RESEND PATCH 3/3] ARM: mxs_defconfig: enable sound drivers for imx28-amarula-rmm
2025-09-24 13:07 [RESEND PATCH 1/3] ASoC: mxs-saif: support usage with simple-audio-card Dario Binacchi
2025-09-24 13:07 ` [RESEND PATCH 2/3] ARM: dts: imx28-amarula-rmm: add I2S audio Dario Binacchi
@ 2025-09-24 13:07 ` Dario Binacchi
2025-09-25 1:18 ` [RESEND PATCH 1/3] ASoC: mxs-saif: support usage with simple-audio-card Rob Herring (Arm)
2025-10-17 11:24 ` (subset) " Mark Brown
3 siblings, 0 replies; 6+ messages in thread
From: Dario Binacchi @ 2025-09-24 13:07 UTC (permalink / raw)
To: linux-kernel
Cc: linux-amarula, Frank Li, Sascha Hauer, Shawn Guo, Mark Brown,
Dario Binacchi, Ard Biesheuvel, Eric Biggers, Fabio Estevam,
Martin K. Petersen, Pengutronix Kernel Team, Russell King, imx,
linux-arm-kernel
Enable TLV320AIC3X I2C codec and simple-card support used on Amarula
rmm board.
Signed-off-by: Dario Binacchi <dario.binacchi@amarulasolutions.com>
---
arch/arm/configs/mxs_defconfig | 2 ++
1 file changed, 2 insertions(+)
diff --git a/arch/arm/configs/mxs_defconfig b/arch/arm/configs/mxs_defconfig
index 3b08c63b6de4..603fb003b223 100644
--- a/arch/arm/configs/mxs_defconfig
+++ b/arch/arm/configs/mxs_defconfig
@@ -100,6 +100,8 @@ CONFIG_SND=y
CONFIG_SND_SOC=y
CONFIG_SND_MXS_SOC=y
CONFIG_SND_SOC_MXS_SGTL5000=y
+CONFIG_SND_SOC_TLV320AIC3X_I2C=y
+CONFIG_SND_SIMPLE_CARD=y
CONFIG_USB=y
CONFIG_USB_EHCI_HCD=y
CONFIG_USB_STORAGE=y
--
2.43.0
base-commit: cec1e6e5d1ab33403b809f79cd20d6aff124ccfe
branch: microgea-rmm-audio
^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [RESEND PATCH 1/3] ASoC: mxs-saif: support usage with simple-audio-card
2025-09-24 13:07 [RESEND PATCH 1/3] ASoC: mxs-saif: support usage with simple-audio-card Dario Binacchi
2025-09-24 13:07 ` [RESEND PATCH 2/3] ARM: dts: imx28-amarula-rmm: add I2S audio Dario Binacchi
2025-09-24 13:07 ` [RESEND PATCH 3/3] ARM: mxs_defconfig: enable sound drivers for imx28-amarula-rmm Dario Binacchi
@ 2025-09-25 1:18 ` Rob Herring (Arm)
2025-10-17 11:24 ` (subset) " Mark Brown
3 siblings, 0 replies; 6+ messages in thread
From: Rob Herring (Arm) @ 2025-09-25 1:18 UTC (permalink / raw)
To: Dario Binacchi
Cc: Mark Brown, Fabio Estevam, Jaroslav Kysela, linux-arm-kernel,
linux-sound, Sascha Hauer, imx, Pengutronix Kernel Team,
linux-kernel, Takashi Iwai, Michael Trimarchi, Liam Girdwood,
Shawn Guo, linux-amarula, Frank Li
On Wed, 24 Sep 2025 15:07:44 +0200, Dario Binacchi wrote:
> Add support for enabling MCLK output when using the simple-audio-card
> driver. In the sound/soc/mxs/mxs-sgtl5000.c use case, that driver
> handles MCLK enable/disable by calling mxs_saif_get_mclk() and
> mxs_saif_put_mclk() at probe/remove. This does not happen when the
> simple-audio-card driver is used. Extend the mxs-saif driver to enable
> MCLK output in that scenario.
>
> Co-developed-by: Michael Trimarchi <michael@amarulasolutions.com>
> Signed-off-by: Michael Trimarchi <michael@amarulasolutions.com>
> Signed-off-by: Dario Binacchi <dario.binacchi@amarulasolutions.com>
> ---
>
> sound/soc/mxs/mxs-saif.c | 123 ++++++++++++++++++++++++++++-----------
> 1 file changed, 90 insertions(+), 33 deletions(-)
>
My bot found new DTB warnings on the .dts files added or changed in this
series.
Some warnings may be from an existing SoC .dtsi. Or perhaps the warnings
are fixed by another series. Ultimately, it is up to the platform
maintainer whether these warnings are acceptable or not. No need to reply
unless the platform maintainer has comments.
If you already ran DT checks and didn't see these error(s), then
make sure dt-schema is up to date:
pip3 install dtschema --upgrade
This patch series was applied (using b4) to base:
Base: using specified base-commit cec1e6e5d1ab33403b809f79cd20d6aff124ccfe
If this is not the correct base, please add 'base-commit' tag
(or use b4 which does this automatically)
New warnings running 'make CHECK_DTBS=y for arch/arm/boot/dts/nxp/' for 20250924130749.3012071-1-dario.binacchi@amarulasolutions.com:
arch/arm/boot/dts/nxp/mxs/imx28-amarula-rmm.dtb: pinctrl@80018000 (fsl,imx28-pinctrl): 'auart0-2pins@0', 'auart0@0', 'auart1-2pins@0', 'auart1@0', 'auart2-2pins@0', 'auart2-2pins@1', 'auart2-pins@0', 'auart3-2pins@0', 'auart3-2pins@1', 'auart3@0', 'auart4@0', 'auart4@1', 'can0@0', 'can1@0', 'duart-4pins@0', 'duart@0', 'duart@1', 'edt-ft5x06-wake@0', 'edt-ft5x06@0', 'fec-3v3-enable@0', 'gpmi-nand@0', 'gpmi-status-cfg@0', 'hog@0', 'i2c0@0', 'i2c0@1', 'i2c1@0', 'i2c1@1', 'lcdif-16bit@0', 'lcdif-18bit@0', 'lcdif-24bit@0', 'lcdif-sync@0', 'leds@0', 'mac0@0', 'mac0@1', 'mac1@0', 'mmc0-4bit@0', 'mmc0-8bit@0', 'mmc0-cd-cfg@0', 'mmc0-sck-cfg@0', 'mmc1-4bit@0', 'mmc1-cd-cfg@0', 'mmc1-sck-cfg@0', 'mmc2-4bit@0', 'mmc2-4bit@1', 'mmc2-cd-cfg@0', 'mmc2-sck-cfg@0', 'mmc2-sck-cfg@1', 'pwm0@0', 'pwm2@0', 'pwm3@0', 'pwm3@1', 'pwm4@0', 'pwm7@0', 'saif0@0', 'saif0@1', 'saif1@0', 'spi2@0', 'spi3@0', 'spi3@1', 'tlv320aic3x-pins@0', 'usb0-vbus-enable@0', 'usb0@0', 'usb0@1', 'usb0id1@0', 'usb0id@0', 'usb1-vb
us-enable@0', 'usb1@0', 'usb1@1' do not match any of the regexes: '^pinctrl-[0-9]+$', 'gpio@[0-9]+$'
from schema $id: http://devicetree.org/schemas/gpio/gpio-mxs.yaml#
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: (subset) [RESEND PATCH 1/3] ASoC: mxs-saif: support usage with simple-audio-card
2025-09-24 13:07 [RESEND PATCH 1/3] ASoC: mxs-saif: support usage with simple-audio-card Dario Binacchi
` (2 preceding siblings ...)
2025-09-25 1:18 ` [RESEND PATCH 1/3] ASoC: mxs-saif: support usage with simple-audio-card Rob Herring (Arm)
@ 2025-10-17 11:24 ` Mark Brown
3 siblings, 0 replies; 6+ messages in thread
From: Mark Brown @ 2025-10-17 11:24 UTC (permalink / raw)
To: linux-kernel, Dario Binacchi
Cc: linux-amarula, Frank Li, Sascha Hauer, Shawn Guo,
Michael Trimarchi, Fabio Estevam, Jaroslav Kysela, Liam Girdwood,
Pengutronix Kernel Team, Takashi Iwai, imx, linux-arm-kernel,
linux-sound
On Wed, 24 Sep 2025 15:07:44 +0200, Dario Binacchi wrote:
> Add support for enabling MCLK output when using the simple-audio-card
> driver. In the sound/soc/mxs/mxs-sgtl5000.c use case, that driver
> handles MCLK enable/disable by calling mxs_saif_get_mclk() and
> mxs_saif_put_mclk() at probe/remove. This does not happen when the
> simple-audio-card driver is used. Extend the mxs-saif driver to enable
> MCLK output in that scenario.
>
> [...]
Applied to
https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git for-next
Thanks!
[1/3] ASoC: mxs-saif: support usage with simple-audio-card
commit: 1e570e77392f43a3cdab2849d1f81535f8a033e2
All being well this means that it will be integrated into the linux-next
tree (usually sometime in the next 24 hours) and sent to Linus during
the next merge window (or sooner if it is a bug fix), however if
problems are discovered then the patch may be dropped or reverted.
You may get further e-mails resulting from automated or manual testing
and review of the tree, please engage with people reporting problems and
send followup patches addressing any issues that are reported if needed.
If any updates are required or you are submitting further changes they
should be sent as incremental updates against current git, existing
patches will not be replaced.
Please add any relevant lists and maintainers to the CCs when replying
to this mail.
Thanks,
Mark
^ permalink raw reply [flat|nested] 6+ messages in thread