On Thu, Oct 09, 2025 at 01:03:07AM +0000, Jameson Thies wrote: > Add support for cros_ec_ucsi to load based on "google,cros-ec-ucsi" > compatible devices and "GOOG0021" ACPI nodes. > > Signed-off-by: Jameson Thies > Reviewed-by: Heikki Krogerus Reviewed-by: Benson Leung > --- > drivers/usb/typec/ucsi/cros_ec_ucsi.c | 22 ++++++++++++++++++++-- > 1 file changed, 20 insertions(+), 2 deletions(-) > > diff --git a/drivers/usb/typec/ucsi/cros_ec_ucsi.c b/drivers/usb/typec/ucsi/cros_ec_ucsi.c > index eed2a7d0ebc6..62b80ad85a68 100644 > --- a/drivers/usb/typec/ucsi/cros_ec_ucsi.c > +++ b/drivers/usb/typec/ucsi/cros_ec_ucsi.c > @@ -5,11 +5,13 @@ > * Copyright 2024 Google LLC. > */ > > +#include > #include > #include > #include > #include > #include > +#include > #include > #include > #include > @@ -235,7 +237,6 @@ static void cros_ucsi_destroy(struct cros_ucsi_data *udata) > static int cros_ucsi_probe(struct platform_device *pdev) > { > struct device *dev = &pdev->dev; > - struct cros_ec_dev *ec_data = dev_get_drvdata(dev->parent); > struct cros_ucsi_data *udata; > int ret; > > @@ -244,8 +245,11 @@ static int cros_ucsi_probe(struct platform_device *pdev) > return -ENOMEM; > > udata->dev = dev; > + if (is_acpi_device_node(dev->fwnode) || is_of_node(dev->fwnode)) > + udata->ec = dev_get_drvdata(dev->parent); > + else > + udata->ec = ((struct cros_ec_dev *)dev_get_drvdata(dev->parent))->ec_dev; > > - udata->ec = ec_data->ec_dev; > if (!udata->ec) > return dev_err_probe(dev, -ENODEV, "couldn't find parent EC device\n"); > > @@ -326,10 +330,24 @@ static const struct platform_device_id cros_ucsi_id[] = { > }; > MODULE_DEVICE_TABLE(platform, cros_ucsi_id); > > +static const struct acpi_device_id cros_ec_ucsi_acpi_device_ids[] = { > + { "GOOG0021", 0 }, > + { } > +}; > +MODULE_DEVICE_TABLE(acpi, cros_ec_ucsi_acpi_device_ids); > + > +static const struct of_device_id cros_ucsi_of_match[] = { > + { .compatible = "google,cros-ec-ucsi", }, > + {} > +}; > +MODULE_DEVICE_TABLE(of, cros_ucsi_of_match); > + > static struct platform_driver cros_ucsi_driver = { > .driver = { > .name = KBUILD_MODNAME, > .pm = &cros_ucsi_pm_ops, > + .acpi_match_table = cros_ec_ucsi_acpi_device_ids, > + .of_match_table = cros_ucsi_of_match, > }, > .id_table = cros_ucsi_id, > .probe = cros_ucsi_probe, > -- > 2.51.0.710.ga91ca5db03-goog >