ASoC: fsl_mqs: Add i.MX943 platform support

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>
This commit is contained in:
Shengjiu Wang 2025-01-13 17:03:20 +08:00 committed by Mark Brown
parent 84eac6d478
commit 6f490e6b2c
No known key found for this signature in database
GPG Key ID: 24D68B725D5487D0

View 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);