Re: [EXTERNAL] [PATCH v1 1/1] i2c: designware: Add ACPI ID MSFT0006 for Microsoft Cobalt SoCs
From: Siddharth Chintamaneni
Date: Fri Nov 06 2026 - 20:19:40 EST
On Fri, 6 Nov 2026 at 08:30, Siddharth Chintamaneni
<sidchintamaneni@xxxxxxxxx> wrote:
>
> On Thu, 5 Nov 2026 at 13:27, Jarred White
> <jarredwhite@xxxxxxxxxxxxxxxxxxx> wrote:
> >
> > > [You don't often get email from sidchintamaneni@xxxxxxxxx. Learn why
> > > this is important at https://aka.ms/LearnAboutSenderIdentification
> > > <https://aka.ms/LearnAboutSenderIdentification> ]
> > >
> > > Add the MSFT0006 ACPI ID for the DesignWare I2C controller integrated
> > > on Microsoft Cobalt SoCs, along with its 300 MHz input clock description
> > > in acpi_apd.c.
> > >
> > > Without an explicit MSFT0006 entry, ACPI device matching falls back to
> > > its _CID (APMC0D0F), which configures a 100 MHz input clock instead of
> > > the controller's actual 300 MHz clock.
> > >
> > > Signed-off-by: Siddharth Chintamaneni <sidchintamaneni@xxxxxxxxx>
> >
> > Acked-by: Jarred White <jarredwhite@xxxxxxxxxxxxxxxxxxx>
> >
>
> Thanks!
> Do I have to respin the patch?
>
> > > ---
> > > Cc: Jarred White <jarredwhite@xxxxxxxxxxxxxxxxxxx>
> > > Cc: Jeff Kirsher <jeff.kirsher@xxxxxxxxxxxxx>
> > >
> > > drivers/acpi/acpi_apd.c | 6 ++++++
> > > drivers/i2c/busses/i2c-designware-platdrv.c | 1 +
> > > 2 files changed, 7 insertions(+)
> > >
> > > diff --git a/drivers/acpi/acpi_apd.c b/drivers/acpi/acpi_apd.c
> > > index 9fc667d6776c8..a1baa056931c4 100644
> > > --- a/drivers/acpi/acpi_apd.c
> > > +++ b/drivers/acpi/acpi_apd.c
> > > @@ -198,6 +198,11 @@ static const struct apd_device_desc hjmc_i2c_desc = {
> > > .fixed_clk_rate = 200 * HZ_PER_MHZ,
> > > };
> > >
> > > +static const struct apd_device_desc msft_i2c_desc = {
> > > + .setup = acpi_apd_setup,
> > > + .fixed_clk_rate = 300 * HZ_PER_MHZ,
> > > +};
> > > +
> > > #endif /* CONFIG_ARM64 */
> > >
> > > #endif
> > > @@ -272,6 +277,7 @@ static const struct acpi_device_id
> > > acpi_apd_device_ids[] = {
> > > { "HJMC3001", APD_ADDR(hjmc_i2c_desc) },
> > > { "LECA0002", APD_ADDR(leca_spi_desc) },
> > > { "LECA0003", APD_ADDR(leca_i2c_desc) },
> > > + { "MSFT0006", APD_ADDR(msft_i2c_desc) },
> > > { "NXP0001", APD_ADDR(nxp_i2c_desc) },
> > > #endif
> > > { }
> > > diff --git a/drivers/i2c/busses/i2c-designware-platdrv.c b/drivers/i2c/
> > > busses/i2c-designware-platdrv.c
> > > index 1da6b0314b6a0..f359d38cc63c7 100644
> > > --- a/drivers/i2c/busses/i2c-designware-platdrv.c
> > > +++ b/drivers/i2c/busses/i2c-designware-platdrv.c
> > > @@ -280,6 +280,7 @@ static const struct acpi_device_id
> > > dw_i2c_acpi_match[] = {
> > > { .id = "INT3433" },
> > > { .id = "INTC10EF" },
> > > { .id = "LECA0003" },
> > > + { .id = "MSFT0006" },
> > > { }
> > > };
> > > MODULE_DEVICE_TABLE(acpi, dw_i2c_acpi_match);
> > > --
> > > 2.45.4
> > >
> >
Andy,
For Cobalt, the firmware exposes the designware input clock frequency
through the ACPI HCLK object.
Is there an existing way to retrieve or configure this clock frequency
through the ACPI tables, rather than hardcoding it in the driver?
Although the frequency is currently constant, it could change in
future hardware revisions that use the same ACPI HID. Would it make
sense to retrieve the frequency from firmware instead of relying on a
fixed value?