> diff --git a/sound/soc/codecs/cs35l41-i2c.c b/sound/soc/codecs/cs35l41-i2c.c > +#ifdef CONFIG_ACPI > +static const struct acpi_device_id cs35l41_acpi_match[] = { > + { "CSC3541", 0 }, /* Cirrus Logic PnP ID + part ID */ > + {}, > +}; > +MODULE_DEVICE_TABLE(acpi, cs35l41_acpi_match); > +#endif > + > +static struct i2c_driver cs35l41_i2c_driver = { > + .driver = { > + .name = "cs35l41", > + .of_match_table = of_match_ptr(cs35l41_of_match), > + .acpi_match_table = ACPI_PTR(cs35l41_acpi_match), > + }, > + .id_table = cs35l41_id_i2c, > + .probe = cs35l41_i2c_probe, > + .remove = cs35l41_i2c_remove, > +}; > + > +module_i2c_driver(cs35l41_i2c_driver); > +#ifdef CONFIG_ACPI > +static const struct acpi_device_id cs35l41_acpi_match[] = { > + { "CSC3541", 0 }, /* Cirrus Logic PnP ID + part ID */ > + {}, > +}; > +MODULE_DEVICE_TABLE(acpi, cs35l41_acpi_match); > +#endif > + > +static struct spi_driver cs35l41_spi_driver = { > + .driver = { > + .name = "cs35l41", > + .of_match_table = of_match_ptr(cs35l41_of_match), > + .acpi_match_table = ACPI_PTR(cs35l41_acpi_match), > + }, > + .id_table = cs35l41_id_spi, > + .probe = cs35l41_spi_probe, > + .remove = cs35l41_spi_remove, > +}; > + > +module_spi_driver(cs35l41_spi_driver); Is the ACPI probe smart enough to deal with two different drivers registering for the *same* HID? I haven't seen any precedent, e.g. the RT6777 uses a different ACPI HID for its I2C and SPI modes.