]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
ASoC: fsl_mqs: Add i.MX943 platform support
authorShengjiu Wang <shengjiu.wang@nxp.com>
Mon, 13 Jan 2025 09:03:20 +0000 (17:03 +0800)
committerMark Brown <broonie@kernel.org>
Mon, 13 Jan 2025 13:12:57 +0000 (13:12 +0000)
There are two MQS instances on the i.MX943 platform.
The definition of bit positions in the control register are
different. In order to support these MQS modules, define
two compatible strings to distinguish them.

On i.MX943 one instance is in Always-on mix, another is in
Wakeup-mix.

Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com>
Reviewed-by: Daniel Baluta <daniel.baluta@nxp.com>
Link: https://patch.msgid.link/20250113090321.3193464-2-shengjiu.wang@nxp.com
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/fsl/fsl_mqs.c

index 0513e9e8402e82f5b973a8583c092a3dc185e294..e34e5ea98de52cb7bc22ccc0a9d8f82c4bed55b7 100644 (file)
@@ -410,12 +410,40 @@ static const struct fsl_mqs_soc_data fsl_mqs_imx95_netc_data = {
        .div_shift = 9,
 };
 
+static const struct fsl_mqs_soc_data fsl_mqs_imx943_aon_data = {
+       .type = TYPE_REG_SM,
+       .ctrl_off = 0x88,
+       .en_mask  = BIT(1),
+       .en_shift = 1,
+       .rst_mask = BIT(2),
+       .rst_shift = 2,
+       .osr_mask = BIT(3),
+       .osr_shift = 3,
+       .div_mask = GENMASK(15, 8),
+       .div_shift = 8,
+};
+
+static const struct fsl_mqs_soc_data fsl_mqs_imx943_wakeup_data = {
+       .type = TYPE_REG_GPR,
+       .ctrl_off = 0x10,
+       .en_mask  = BIT(1),
+       .en_shift = 1,
+       .rst_mask = BIT(2),
+       .rst_shift = 2,
+       .osr_mask = BIT(3),
+       .osr_shift = 3,
+       .div_mask = GENMASK(15, 8),
+       .div_shift = 8,
+};
+
 static const struct of_device_id fsl_mqs_dt_ids[] = {
        { .compatible = "fsl,imx8qm-mqs", .data = &fsl_mqs_imx8qm_data },
        { .compatible = "fsl,imx6sx-mqs", .data = &fsl_mqs_imx6sx_data },
        { .compatible = "fsl,imx93-mqs", .data = &fsl_mqs_imx93_data },
        { .compatible = "fsl,imx95-aonmix-mqs", .data = &fsl_mqs_imx95_aon_data },
        { .compatible = "fsl,imx95-netcmix-mqs", .data = &fsl_mqs_imx95_netc_data },
+       { .compatible = "fsl,imx943-aonmix-mqs", .data = &fsl_mqs_imx943_aon_data },
+       { .compatible = "fsl,imx943-wakeupmix-mqs", .data = &fsl_mqs_imx943_wakeup_data },
        {}
 };
 MODULE_DEVICE_TABLE(of, fsl_mqs_dt_ids);