* [PATCH v3 0/4] ASoC: fsl_audmix: Support the i.MX952 platform
@ 2026-01-23 8:24 Shengjiu Wang
2026-01-23 8:24 ` [PATCH v3 1/4] ASoC: dt-bindings: fsl,audmix: Add support for " Shengjiu Wang
` (4 more replies)
0 siblings, 5 replies; 6+ messages in thread
From: Shengjiu Wang @ 2026-01-23 8:24 UTC (permalink / raw)
To: shengjiu.wang, Xiubo.Lee, festevam, nicoleotsuka, lgirdwood,
broonie, perex, tiwai, linux-sound, linuxppc-dev, linux-kernel,
robh, krzk+dt, conor+dt, devicetree, shawnguo, s.hauer, kernel,
imx, linux-arm-kernel
Enable AUDMIX on i.MX952 platform, update dt binding document and
driver.
SAI is connected to AUDMIX, and the AUDMIX can be bypassed, so
add 'fsl,sai-amix-mode' property in SAI binding document for this
case.
Changes in v3:
- refine the commit messages
- use string for 'fsl,sai-amix-mode' and add default value.
- update driver for property change
Changes in v2:
- Move the property to SAI binding document
- The property name is 'fsl,sai-amix-mode'
- Move the code for above property to SAI driver
Shengjiu Wang (4):
ASoC: dt-bindings: fsl,audmix: Add support for i.MX952 platform
ASoC: dt-bindings: fsl,sai: Add AUDMIX mode support on i.MX952
ASoC: fsl_audmix: Add support for i.MX952 platform
ASoC: fsl_sai: Add AUDMIX mode support on i.MX952
.../devicetree/bindings/sound/fsl,audmix.yaml | 16 ++++++++++++--
.../devicetree/bindings/sound/fsl,sai.yaml | 16 ++++++++++++++
include/linux/firmware/imx/sm.h | 2 ++
sound/soc/fsl/fsl_audmix.c | 3 +++
sound/soc/fsl/fsl_sai.c | 21 +++++++++++++++++++
sound/soc/fsl/fsl_sai.h | 4 ++++
6 files changed, 60 insertions(+), 2 deletions(-)
--
2.34.1
^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH v3 1/4] ASoC: dt-bindings: fsl,audmix: Add support for i.MX952 platform
2026-01-23 8:24 [PATCH v3 0/4] ASoC: fsl_audmix: Support the i.MX952 platform Shengjiu Wang
@ 2026-01-23 8:24 ` Shengjiu Wang
2026-01-23 8:24 ` [PATCH v3 2/4] ASoC: dt-bindings: fsl,sai: Add AUDMIX mode support on i.MX952 Shengjiu Wang
` (3 subsequent siblings)
4 siblings, 0 replies; 6+ messages in thread
From: Shengjiu Wang @ 2026-01-23 8:24 UTC (permalink / raw)
To: shengjiu.wang, Xiubo.Lee, festevam, nicoleotsuka, lgirdwood,
broonie, perex, tiwai, linux-sound, linuxppc-dev, linux-kernel,
robh, krzk+dt, conor+dt, devicetree, shawnguo, s.hauer, kernel,
imx, linux-arm-kernel
Add a compatible string for i.MX952 platform.
There is a power domain on i.MX952 for the mix system of AUDMIX.
But it is enabled by default, AUDMIX device don't need to enable it,
so make the power-domains to be optional on i.MX952, and be required on
i.MX8QM.
Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com>
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com>
---
.../devicetree/bindings/sound/fsl,audmix.yaml | 16 ++++++++++++++--
1 file changed, 14 insertions(+), 2 deletions(-)
diff --git a/Documentation/devicetree/bindings/sound/fsl,audmix.yaml b/Documentation/devicetree/bindings/sound/fsl,audmix.yaml
index 3ad197b3c82c..07b9a38761f2 100644
--- a/Documentation/devicetree/bindings/sound/fsl,audmix.yaml
+++ b/Documentation/devicetree/bindings/sound/fsl,audmix.yaml
@@ -34,7 +34,9 @@ description: |
properties:
compatible:
- const: fsl,imx8qm-audmix
+ enum:
+ - fsl,imx8qm-audmix
+ - fsl,imx952-audmix
reg:
maxItems: 1
@@ -80,7 +82,17 @@ required:
- reg
- clocks
- clock-names
- - power-domains
+
+allOf:
+ - if:
+ properties:
+ compatible:
+ contains:
+ enum:
+ - fsl,imx8qm-audmix
+ then:
+ required:
+ - power-domains
unevaluatedProperties: false
--
2.34.1
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH v3 2/4] ASoC: dt-bindings: fsl,sai: Add AUDMIX mode support on i.MX952
2026-01-23 8:24 [PATCH v3 0/4] ASoC: fsl_audmix: Support the i.MX952 platform Shengjiu Wang
2026-01-23 8:24 ` [PATCH v3 1/4] ASoC: dt-bindings: fsl,audmix: Add support for " Shengjiu Wang
@ 2026-01-23 8:24 ` Shengjiu Wang
2026-01-23 8:25 ` [PATCH v3 3/4] ASoC: fsl_audmix: Add support for i.MX952 platform Shengjiu Wang
` (2 subsequent siblings)
4 siblings, 0 replies; 6+ messages in thread
From: Shengjiu Wang @ 2026-01-23 8:24 UTC (permalink / raw)
To: shengjiu.wang, Xiubo.Lee, festevam, nicoleotsuka, lgirdwood,
broonie, perex, tiwai, linux-sound, linuxppc-dev, linux-kernel,
robh, krzk+dt, conor+dt, devicetree, shawnguo, s.hauer, kernel,
imx, linux-arm-kernel
The SAI can connect to AUDMIX, but AUDMIX can be bypassed or not on
i.MX952. There are three use cases:
1) SAI -> Codec (No AUDMIX between SAI and Codec)
2) SAI -> Codec (Has AUDMIX, but AUDMIX is bypassed)
3) SAI -> AUDMIX -> Codec (Has AUDMIX and used)
So add 'fsl,sai-amix-mode' property for this feature
fsl,sai-amix-mode = "none": is for case 1)
fsl,sai-amix-mode = "bypass": is for case 2)
fsl,sai-amix-mode = "audmix": is for case 3)
Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com>
---
.../devicetree/bindings/sound/fsl,sai.yaml | 16 ++++++++++++++++
1 file changed, 16 insertions(+)
diff --git a/Documentation/devicetree/bindings/sound/fsl,sai.yaml b/Documentation/devicetree/bindings/sound/fsl,sai.yaml
index d838ee0b61cb..83b5ea5f3d70 100644
--- a/Documentation/devicetree/bindings/sound/fsl,sai.yaml
+++ b/Documentation/devicetree/bindings/sound/fsl,sai.yaml
@@ -133,6 +133,13 @@ properties:
- description: dataline mask for 'rx'
- description: dataline mask for 'tx'
+ fsl,sai-amix-mode:
+ $ref: /schemas/types.yaml#/definitions/string
+ description:
+ The audmix module is bypassed from hardware or not.
+ enum: [none, bypass, audmix]
+ default: none
+
fsl,sai-mclk-direction-output:
description: SAI will output the SAI MCLK clock.
type: boolean
@@ -180,6 +187,15 @@ allOf:
properties:
fsl,sai-synchronous-rx: false
+ - if:
+ required:
+ - fsl,sai-amix-mode
+ then:
+ properties:
+ compatible:
+ contains:
+ const: fsl,imx952-sai
+
required:
- compatible
- reg
--
2.34.1
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH v3 3/4] ASoC: fsl_audmix: Add support for i.MX952 platform
2026-01-23 8:24 [PATCH v3 0/4] ASoC: fsl_audmix: Support the i.MX952 platform Shengjiu Wang
2026-01-23 8:24 ` [PATCH v3 1/4] ASoC: dt-bindings: fsl,audmix: Add support for " Shengjiu Wang
2026-01-23 8:24 ` [PATCH v3 2/4] ASoC: dt-bindings: fsl,sai: Add AUDMIX mode support on i.MX952 Shengjiu Wang
@ 2026-01-23 8:25 ` Shengjiu Wang
2026-01-23 8:25 ` [PATCH v3 4/4] ASoC: fsl_sai: Add AUDMIX mode support on i.MX952 Shengjiu Wang
2026-01-28 3:02 ` [PATCH v3 0/4] ASoC: fsl_audmix: Support the i.MX952 platform Mark Brown
4 siblings, 0 replies; 6+ messages in thread
From: Shengjiu Wang @ 2026-01-23 8:25 UTC (permalink / raw)
To: shengjiu.wang, Xiubo.Lee, festevam, nicoleotsuka, lgirdwood,
broonie, perex, tiwai, linux-sound, linuxppc-dev, linux-kernel,
robh, krzk+dt, conor+dt, devicetree, shawnguo, s.hauer, kernel,
imx, linux-arm-kernel
Add compatible string to support AUDMIX on i.MX952
Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com>
---
sound/soc/fsl/fsl_audmix.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/sound/soc/fsl/fsl_audmix.c b/sound/soc/fsl/fsl_audmix.c
index 7981d598ba13..40a3b7432174 100644
--- a/sound/soc/fsl/fsl_audmix.c
+++ b/sound/soc/fsl/fsl_audmix.c
@@ -444,6 +444,9 @@ static const struct of_device_id fsl_audmix_ids[] = {
{
.compatible = "fsl,imx8qm-audmix",
},
+ {
+ .compatible = "fsl,imx952-audmix",
+ },
{ /* sentinel */ }
};
MODULE_DEVICE_TABLE(of, fsl_audmix_ids);
--
2.34.1
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH v3 4/4] ASoC: fsl_sai: Add AUDMIX mode support on i.MX952
2026-01-23 8:24 [PATCH v3 0/4] ASoC: fsl_audmix: Support the i.MX952 platform Shengjiu Wang
` (2 preceding siblings ...)
2026-01-23 8:25 ` [PATCH v3 3/4] ASoC: fsl_audmix: Add support for i.MX952 platform Shengjiu Wang
@ 2026-01-23 8:25 ` Shengjiu Wang
2026-01-28 3:02 ` [PATCH v3 0/4] ASoC: fsl_audmix: Support the i.MX952 platform Mark Brown
4 siblings, 0 replies; 6+ messages in thread
From: Shengjiu Wang @ 2026-01-23 8:25 UTC (permalink / raw)
To: shengjiu.wang, Xiubo.Lee, festevam, nicoleotsuka, lgirdwood,
broonie, perex, tiwai, linux-sound, linuxppc-dev, linux-kernel,
robh, krzk+dt, conor+dt, devicetree, shawnguo, s.hauer, kernel,
imx, linux-arm-kernel
One of SAI interfaces is connected to AUDMIX in the i.MX952 chip, but
AUDMIX can be bypassed or not bypassed on the i.MX952 platform.
There are three use cases:
1) SAI -> Codec (No AUDMIX between SAI and Codec)
2) SAI -> Codec (Has AUDMIX, but AUDMIX is bypassed)
3) SAI -> AUDMIX -> Codec (Has AUDMIX and used)
So add 'fsl,sai-amix-mode' property for this feature
fsl,sai-amix-mode = "none": is for case 1)
fsl,sai-amix-mode = "bypass": is for case 2)
fsl,sai-amix-mode = "audmix": is for case 3)
Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com>
---
include/linux/firmware/imx/sm.h | 2 ++
sound/soc/fsl/fsl_sai.c | 21 +++++++++++++++++++++
sound/soc/fsl/fsl_sai.h | 4 ++++
3 files changed, 27 insertions(+)
diff --git a/include/linux/firmware/imx/sm.h b/include/linux/firmware/imx/sm.h
index a33b45027356..ba5d93bd6158 100644
--- a/include/linux/firmware/imx/sm.h
+++ b/include/linux/firmware/imx/sm.h
@@ -26,6 +26,8 @@
#define SCMI_IMX94_CTRL_SAI3_MCLK 5U /*!< WAKE SAI3 MCLK */
#define SCMI_IMX94_CTRL_SAI4_MCLK 6U /*!< WAKE SAI4 MCLK */
+#define SCMI_IMX952_CTRL_BYPASS_AUDMIX 8U /* WAKE AUDMIX */
+
#if IS_ENABLED(CONFIG_IMX_SCMI_MISC_DRV)
int scmi_imx_misc_ctrl_get(u32 id, u32 *num, u32 *val);
int scmi_imx_misc_ctrl_set(u32 id, u32 val);
diff --git a/sound/soc/fsl/fsl_sai.c b/sound/soc/fsl/fsl_sai.c
index 2fa14fbdfe1a..148e09e58dfa 100644
--- a/sound/soc/fsl/fsl_sai.c
+++ b/sound/soc/fsl/fsl_sai.c
@@ -7,6 +7,7 @@
#include <linux/clk.h>
#include <linux/delay.h>
#include <linux/dmaengine.h>
+#include <linux/firmware/imx/sm.h>
#include <linux/module.h>
#include <linux/of.h>
#include <linux/pinctrl/consumer.h>
@@ -1425,10 +1426,12 @@ static int fsl_sai_probe(struct platform_device *pdev)
struct fsl_sai *sai;
struct regmap *gpr;
void __iomem *base;
+ const char *str = NULL;
char tmp[8];
int irq, ret, i;
int index;
u32 dmas[4];
+ u32 val;
sai = devm_kzalloc(dev, sizeof(*sai), GFP_KERNEL);
if (!sai)
@@ -1598,6 +1601,24 @@ static int fsl_sai_probe(struct platform_device *pdev)
if (ret < 0 && ret != -ENOSYS)
goto err_pm_get_sync;
+ if (of_device_is_compatible(np, "fsl,imx952-sai") &&
+ !of_property_read_string(np, "fsl,sai-amix-mode", &str)) {
+ if (!strcmp(str, "bypass"))
+ val = FSL_SAI_AMIX_BYPASS;
+ else if (!strcmp(str, "audmix"))
+ val = FSL_SAI_AMIX_AUDMIX;
+ else
+ val = FSL_SAI_AMIX_NONE;
+
+ if (val < FSL_SAI_AMIX_NONE) {
+ ret = scmi_imx_misc_ctrl_set(SCMI_IMX952_CTRL_BYPASS_AUDMIX, val);
+ if (ret) {
+ dev_err_probe(dev, ret, "Error setting audmix mode\n");
+ goto err_pm_get_sync;
+ }
+ }
+ }
+
/*
* Register platform component before registering cpu dai for there
* is not defer probe for platform component in snd_soc_add_pcm_runtime().
diff --git a/sound/soc/fsl/fsl_sai.h b/sound/soc/fsl/fsl_sai.h
index 6c917f79c6b0..7605cbaca3d8 100644
--- a/sound/soc/fsl/fsl_sai.h
+++ b/sound/soc/fsl/fsl_sai.h
@@ -230,6 +230,10 @@
#define FSL_SAI_DL_I2S BIT(0)
#define FSL_SAI_DL_PDM BIT(1)
+#define FSL_SAI_AMIX_BYPASS 0
+#define FSL_SAI_AMIX_AUDMIX 1
+#define FSL_SAI_AMIX_NONE 2
+
struct fsl_sai_soc_data {
bool use_imx_pcm;
bool use_edma;
--
2.34.1
^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH v3 0/4] ASoC: fsl_audmix: Support the i.MX952 platform
2026-01-23 8:24 [PATCH v3 0/4] ASoC: fsl_audmix: Support the i.MX952 platform Shengjiu Wang
` (3 preceding siblings ...)
2026-01-23 8:25 ` [PATCH v3 4/4] ASoC: fsl_sai: Add AUDMIX mode support on i.MX952 Shengjiu Wang
@ 2026-01-28 3:02 ` Mark Brown
4 siblings, 0 replies; 6+ messages in thread
From: Mark Brown @ 2026-01-28 3:02 UTC (permalink / raw)
To: shengjiu.wang, Xiubo.Lee, festevam, nicoleotsuka, lgirdwood,
perex, tiwai, linux-sound, linuxppc-dev, linux-kernel, robh,
krzk+dt, conor+dt, devicetree, shawnguo, s.hauer, kernel, imx,
linux-arm-kernel, Shengjiu Wang
On Fri, 23 Jan 2026 16:24:57 +0800, Shengjiu Wang wrote:
> Enable AUDMIX on i.MX952 platform, update dt binding document and
> driver.
>
> SAI is connected to AUDMIX, and the AUDMIX can be bypassed, so
> add 'fsl,sai-amix-mode' property in SAI binding document for this
> case.
>
> [...]
Applied to
https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git for-next
Thanks!
[1/4] ASoC: dt-bindings: fsl,audmix: Add support for i.MX952 platform
commit: 7550d6263b9b2015a806f66bf7ad356b6f25d050
[2/4] ASoC: dt-bindings: fsl,sai: Add AUDMIX mode support on i.MX952
commit: 4d3b56b8a3504dab98d5f9a91ed9091431749863
[3/4] ASoC: fsl_audmix: Add support for i.MX952 platform
commit: 291f2f908823832e932582500816ad614631d568
[4/4] ASoC: fsl_sai: Add AUDMIX mode support on i.MX952
commit: 19b08fd23b20593ebe43708308dbddb02507877d
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
end of thread, other threads:[~2026-01-28 3:02 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-01-23 8:24 [PATCH v3 0/4] ASoC: fsl_audmix: Support the i.MX952 platform Shengjiu Wang
2026-01-23 8:24 ` [PATCH v3 1/4] ASoC: dt-bindings: fsl,audmix: Add support for " Shengjiu Wang
2026-01-23 8:24 ` [PATCH v3 2/4] ASoC: dt-bindings: fsl,sai: Add AUDMIX mode support on i.MX952 Shengjiu Wang
2026-01-23 8:25 ` [PATCH v3 3/4] ASoC: fsl_audmix: Add support for i.MX952 platform Shengjiu Wang
2026-01-23 8:25 ` [PATCH v3 4/4] ASoC: fsl_sai: Add AUDMIX mode support on i.MX952 Shengjiu Wang
2026-01-28 3:02 ` [PATCH v3 0/4] ASoC: fsl_audmix: Support the i.MX952 platform Mark Brown
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox