Message ID | 20220928125227.3045703-1-waynec@nvidia.com (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
Series | [1/1] usb: typec: ucsi_ccg: Add OF support | expand |
Hi, On Wed, Sep 28, 2022 at 08:52:27PM +0800, Wayne Chang wrote: > The change enables the device tree infrastructure support on Cypress > cypd4226. > > Signed-off-by: Wayne Chang <waynec@nvidia.com> > --- > drivers/usb/typec/ucsi/ucsi_ccg.c | 9 ++++++++- > 1 file changed, 8 insertions(+), 1 deletion(-) > > diff --git a/drivers/usb/typec/ucsi/ucsi_ccg.c b/drivers/usb/typec/ucsi/ucsi_ccg.c > index 5c0bf48be766..36442508bc37 100644 > --- a/drivers/usb/typec/ucsi/ucsi_ccg.c > +++ b/drivers/usb/typec/ucsi/ucsi_ccg.c > @@ -631,7 +631,7 @@ static int ccg_request_irq(struct ucsi_ccg *uc) > { > unsigned long flags = IRQF_ONESHOT; > > - if (!has_acpi_companion(uc->dev)) > + if (!has_acpi_companion(uc->dev) && !uc->dev->of_node) You can use: if (!dev_fwnode(uc->dev)) instead. > flags |= IRQF_TRIGGER_HIGH; > > return request_threaded_irq(uc->irq, NULL, ccg_irq_handler, flags, dev_name(uc->dev), uc); > @@ -1417,6 +1417,12 @@ static int ucsi_ccg_remove(struct i2c_client *client) > return 0; > } > > +static const struct of_device_id ucsi_ccg_of_match_table[] = { > + { .compatible = "cypress,cypd4226", }, > + { /* sentinel */ } > +}; > +MODULE_DEVICE_TABLE(of, ucsi_ccg_of_match_table); > + > static const struct i2c_device_id ucsi_ccg_device_id[] = { > {"ccgx-ucsi", 0}, > {} > @@ -1471,6 +1477,7 @@ static struct i2c_driver ucsi_ccg_driver = { > .pm = &ucsi_ccg_pm, > .dev_groups = ucsi_ccg_groups, > .acpi_match_table = amd_i2c_ucsi_match, > + .of_match_table = ucsi_ccg_of_match_table, > }, > .probe = ucsi_ccg_probe, > .remove = ucsi_ccg_remove, thanks,
Hi Heikki Thanks for the review. On 9/28/22 22:33, Heikki Krogerus wrote: > External email: Use caution opening links or attachments > > > Hi, > > On Wed, Sep 28, 2022 at 08:52:27PM +0800, Wayne Chang wrote: >> The change enables the device tree infrastructure support on Cypress >> cypd4226. >> >> Signed-off-by: Wayne Chang <waynec@nvidia.com> >> --- >> drivers/usb/typec/ucsi/ucsi_ccg.c | 9 ++++++++- >> 1 file changed, 8 insertions(+), 1 deletion(-) >> >> diff --git a/drivers/usb/typec/ucsi/ucsi_ccg.c b/drivers/usb/typec/ucsi/ucsi_ccg.c >> index 5c0bf48be766..36442508bc37 100644 >> --- a/drivers/usb/typec/ucsi/ucsi_ccg.c >> +++ b/drivers/usb/typec/ucsi/ucsi_ccg.c >> @@ -631,7 +631,7 @@ static int ccg_request_irq(struct ucsi_ccg *uc) >> { >> unsigned long flags = IRQF_ONESHOT; >> >> - if (!has_acpi_companion(uc->dev)) >> + if (!has_acpi_companion(uc->dev) && !uc->dev->of_node) > > You can use: > > if (!dev_fwnode(uc->dev)) > > instead. Thanks for the advice. Checked the source code and verified. I'll update it in the next patchset. > >> flags |= IRQF_TRIGGER_HIGH; >> >> return request_threaded_irq(uc->irq, NULL, ccg_irq_handler, flags, dev_name(uc->dev), uc); >> @@ -1417,6 +1417,12 @@ static int ucsi_ccg_remove(struct i2c_client *client) >> return 0; >> } >> >> +static const struct of_device_id ucsi_ccg_of_match_table[] = { >> + { .compatible = "cypress,cypd4226", }, >> + { /* sentinel */ } >> +}; >> +MODULE_DEVICE_TABLE(of, ucsi_ccg_of_match_table); >> + >> static const struct i2c_device_id ucsi_ccg_device_id[] = { >> {"ccgx-ucsi", 0}, >> {} >> @@ -1471,6 +1477,7 @@ static struct i2c_driver ucsi_ccg_driver = { >> .pm = &ucsi_ccg_pm, >> .dev_groups = ucsi_ccg_groups, >> .acpi_match_table = amd_i2c_ucsi_match, >> + .of_match_table = ucsi_ccg_of_match_table, >> }, >> .probe = ucsi_ccg_probe, >> .remove = ucsi_ccg_remove, > > thanks, > > -- > heikki > thanks, Wayne.
diff --git a/drivers/usb/typec/ucsi/ucsi_ccg.c b/drivers/usb/typec/ucsi/ucsi_ccg.c index 5c0bf48be766..36442508bc37 100644 --- a/drivers/usb/typec/ucsi/ucsi_ccg.c +++ b/drivers/usb/typec/ucsi/ucsi_ccg.c @@ -631,7 +631,7 @@ static int ccg_request_irq(struct ucsi_ccg *uc) { unsigned long flags = IRQF_ONESHOT; - if (!has_acpi_companion(uc->dev)) + if (!has_acpi_companion(uc->dev) && !uc->dev->of_node) flags |= IRQF_TRIGGER_HIGH; return request_threaded_irq(uc->irq, NULL, ccg_irq_handler, flags, dev_name(uc->dev), uc); @@ -1417,6 +1417,12 @@ static int ucsi_ccg_remove(struct i2c_client *client) return 0; } +static const struct of_device_id ucsi_ccg_of_match_table[] = { + { .compatible = "cypress,cypd4226", }, + { /* sentinel */ } +}; +MODULE_DEVICE_TABLE(of, ucsi_ccg_of_match_table); + static const struct i2c_device_id ucsi_ccg_device_id[] = { {"ccgx-ucsi", 0}, {} @@ -1471,6 +1477,7 @@ static struct i2c_driver ucsi_ccg_driver = { .pm = &ucsi_ccg_pm, .dev_groups = ucsi_ccg_groups, .acpi_match_table = amd_i2c_ucsi_match, + .of_match_table = ucsi_ccg_of_match_table, }, .probe = ucsi_ccg_probe, .remove = ucsi_ccg_remove,
The change enables the device tree infrastructure support on Cypress cypd4226. Signed-off-by: Wayne Chang <waynec@nvidia.com> --- drivers/usb/typec/ucsi/ucsi_ccg.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-)