From: Lee Jones <lee@kernel.org>
To: Charles Keepax <ckeepax@opensource.cirrus.com>
Cc: broonie@kernel.org, robh@kernel.org, krzk+dt@kernel.org,
conor+dt@kernel.org, lgirdwood@gmail.com,
linux-sound@vger.kernel.org, devicetree@vger.kernel.org,
mfd@lists.linux.dev, linux-kernel@vger.kernel.org,
patches@opensource.cirrus.com
Subject: Re: [PATCH 3/3] mfd: cs42l43: Add support for new cs42l44 variant
Date: Thu, 16 Jul 2026 16:14:37 +0100 [thread overview]
Message-ID: <20260716151437.GA1409595@google.com> (raw)
In-Reply-To: <20260708140039.1993489-4-ckeepax@opensource.cirrus.com>
On Wed, 08 Jul 2026, Charles Keepax wrote:
> The cs42l44 is a cost optimised variant of cs42l43b. Add basic support
> for this new device.
>
> Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com>
> ---
> drivers/mfd/cs42l43-i2c.c | 2 ++
> drivers/mfd/cs42l43-sdw.c | 1 +
> drivers/mfd/cs42l43.c | 18 ++++++++++++------
> include/linux/mfd/cs42l43-regs.h | 1 +
> 4 files changed, 16 insertions(+), 6 deletions(-)
>
> diff --git a/drivers/mfd/cs42l43-i2c.c b/drivers/mfd/cs42l43-i2c.c
> index bd9752d2cfc34..1af878c7a20b4 100644
> --- a/drivers/mfd/cs42l43-i2c.c
> +++ b/drivers/mfd/cs42l43-i2c.c
> @@ -59,6 +59,7 @@ static int cs42l43_i2c_probe(struct i2c_client *i2c)
> static const struct of_device_id cs42l43_of_match[] = {
> { .compatible = "cirrus,cs42l43", .data = (void *)CS42L43_DEVID_VAL },
> { .compatible = "cirrus,cs42l43b", .data = (void *)CS42L43B_DEVID_VAL },
> + { .compatible = "cirrus,cs42l44", .data = (void *)CS42L43B_DEVID_VAL },
> { }
> };
> MODULE_DEVICE_TABLE(of, cs42l43_of_match);
> @@ -68,6 +69,7 @@ MODULE_DEVICE_TABLE(of, cs42l43_of_match);
> static const struct acpi_device_id cs42l43_acpi_match[] = {
> { .id = "CSC4243", .driver_data = CS42L43_DEVID_VAL },
> { .id = "CSC2A3B", .driver_data = CS42L43B_DEVID_VAL },
> + { .id = "CSC4244", .driver_data = CS42L43B_DEVID_VAL },
> { }
> };
> MODULE_DEVICE_TABLE(acpi, cs42l43_acpi_match);
> diff --git a/drivers/mfd/cs42l43-sdw.c b/drivers/mfd/cs42l43-sdw.c
> index 6ccfdcd3f6698..81dd19df53685 100644
> --- a/drivers/mfd/cs42l43-sdw.c
> +++ b/drivers/mfd/cs42l43-sdw.c
> @@ -184,6 +184,7 @@ static int cs42l43_sdw_probe(struct sdw_slave *sdw, const struct sdw_device_id *
> static const struct sdw_device_id cs42l43_sdw_id[] = {
> SDW_SLAVE_ENTRY(0x01FA, 0x4243, (void *)CS42L43_DEVID_VAL),
> SDW_SLAVE_ENTRY(0x01FA, 0x2A3B, (void *)CS42L43B_DEVID_VAL),
> + SDW_SLAVE_ENTRY(0x01FA, 0x4244, (void *)CS42L43B_DEVID_VAL),
> { }
> };
> MODULE_DEVICE_TABLE(sdw, cs42l43_sdw_id);
> diff --git a/drivers/mfd/cs42l43.c b/drivers/mfd/cs42l43.c
> index 33479ddd539a6..d6027fa4de705 100644
> --- a/drivers/mfd/cs42l43.c
> +++ b/drivers/mfd/cs42l43.c
> @@ -959,6 +959,7 @@ static void cs42l43_boot_work(struct work_struct *work)
> {
> struct cs42l43 *cs42l43 = container_of(work, struct cs42l43, boot_work);
> unsigned int devid, revid, otp;
> + bool valid_id;
> int ret;
>
> ret = cs42l43_wait_for_attach(cs42l43);
> @@ -973,19 +974,24 @@ static void cs42l43_boot_work(struct work_struct *work)
>
> switch (devid) {
> case CS42L43_DEVID_VAL:
> + valid_id = (cs42l43->variant_id == CS42L43_DEVID_VAL);
> + break;
> case CS42L43B_DEVID_VAL:
> - if (devid != cs42l43->variant_id) {
> - dev_err(cs42l43->dev,
> - "Device ID (0x%06x) does not match variant ID (0x%06lx)\n",
> - devid, cs42l43->variant_id);
> - goto err;
> - }
Needs a fall-through statement.
> + case CS42L44_DEVID_VAL:
> + valid_id = (cs42l43->variant_id == CS42L43B_DEVID_VAL);
> break;
> default:
> dev_err(cs42l43->dev, "Unrecognised devid: 0x%06x\n", devid);
> goto err;
> }
>
> + if (!valid_id) {
How is this nor handled in the default branch?
> + dev_err(cs42l43->dev,
> + "Device ID (0x%06x) does not match variant ID (0x%06lx)\n",
> + devid, cs42l43->variant_id);
> + goto err;
> + }
> +
> ret = regmap_read(cs42l43->regmap, CS42L43_REVID, &revid);
> if (ret) {
> dev_err(cs42l43->dev, "Failed to read rev: %d\n", ret);
> diff --git a/include/linux/mfd/cs42l43-regs.h b/include/linux/mfd/cs42l43-regs.h
> index 68831f113589d..4c00ceae8b461 100644
> --- a/include/linux/mfd/cs42l43-regs.h
> +++ b/include/linux/mfd/cs42l43-regs.h
> @@ -1183,6 +1183,7 @@
>
> /* CS42L43B VARIANT REGISTERS */
> #define CS42L43B_DEVID_VAL 0x0042A43B
> +#define CS42L44_DEVID_VAL 0x00042A44
>
> #define CS42L43B_DECIM_VOL_CTRL_CH1_CH2 0x00008280
> #define CS42L43B_DECIM_VOL_CTRL_CH3_CH4 0x00008284
> --
> 2.47.3
>
--
Lee Jones
next prev parent reply other threads:[~2026-07-16 15:14 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-07-08 14:00 [PATCH 0/3] Add support for cs42l44 Charles Keepax
2026-07-08 14:00 ` [PATCH 1/3] ASoC: dt-bindings: cirrus,cs42l43: Add CS42L44 variant Charles Keepax
2026-07-08 14:00 ` [PATCH 2/3] mfd: cs42l43: Tidy up formatting on sdw_device_id table Charles Keepax
2026-07-16 15:16 ` (subset) " Lee Jones
2026-07-08 14:00 ` [PATCH 3/3] mfd: cs42l43: Add support for new cs42l44 variant Charles Keepax
2026-07-16 15:14 ` Lee Jones [this message]
2026-07-16 15:47 ` Charles Keepax
2026-07-16 16:08 ` Lee Jones
2026-07-16 16:26 ` Charles Keepax
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=20260716151437.GA1409595@google.com \
--to=lee@kernel.org \
--cc=broonie@kernel.org \
--cc=ckeepax@opensource.cirrus.com \
--cc=conor+dt@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=krzk+dt@kernel.org \
--cc=lgirdwood@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-sound@vger.kernel.org \
--cc=mfd@lists.linux.dev \
--cc=patches@opensource.cirrus.com \
--cc=robh@kernel.org \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.