ucsi_ccg: ACPI based I2c client enumeration for AMD ASICs
authorSanket Goswami <Sanket.Goswami@amd.com>
Thu, 26 May 2022 06:33:05 +0000 (12:03 +0530)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 10 Jun 2022 09:54:08 +0000 (11:54 +0200)
Some of the AMD platforms have Cypress CCGX PD controller connected
to system I2C i.e designware I2C controller. Added support to enumerate
the CCGX client by adding ACPI ID to the firmware.

Suggested-by: Heikki Krogerus <heikki.krogerus@linux.intel.com>
Signed-off-by: Sanket Goswami <Sanket.Goswami@amd.com>
Link: https://lore.kernel.org/r/20220526063305.3144352-3-Sanket.Goswami@amd.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/usb/typec/ucsi/ucsi_ccg.c

index 0707a71..5c0bf48 100644 (file)
@@ -1423,6 +1423,12 @@ static const struct i2c_device_id ucsi_ccg_device_id[] = {
 };
 MODULE_DEVICE_TABLE(i2c, ucsi_ccg_device_id);
 
+static const struct acpi_device_id amd_i2c_ucsi_match[] = {
+       {"AMDI0042"},
+       {}
+};
+MODULE_DEVICE_TABLE(acpi, amd_i2c_ucsi_match);
+
 static int ucsi_ccg_resume(struct device *dev)
 {
        struct i2c_client *client = to_i2c_client(dev);
@@ -1464,6 +1470,7 @@ static struct i2c_driver ucsi_ccg_driver = {
                .name = "ucsi_ccg",
                .pm = &ucsi_ccg_pm,
                .dev_groups = ucsi_ccg_groups,
+               .acpi_match_table = amd_i2c_ucsi_match,
        },
        .probe = ucsi_ccg_probe,
        .remove = ucsi_ccg_remove,