This patch introduces the following changes:
- Adds OF match table.
- Hardcodes hid-report-addr in the driver rather than fetching it
from the device property.
Signed-off-by: Charles Wang <charles.goodix@gmail.com>
---
drivers/hid/hid-goodix-spi.c | 17 +++++++++++------
1 file changed, 11 insertions(+), 6 deletions(-)
diff --git a/drivers/hid/hid-goodix-spi.c b/drivers/hid/hid-goodix-spi.c
index 6ae2300a6..80c0288a3 100644
--- a/drivers/hid/hid-goodix-spi.c
+++ b/drivers/hid/hid-goodix-spi.c
@@ -20,6 +20,7 @@
#define GOODIX_HID_REPORT_DESC_ADDR 0x105AA
#define GOODIX_HID_SIGN_ADDR 0x10D32
#define GOODIX_HID_CMD_ADDR 0x10364
+#define GOODIX_HID_REPORT_ADDR 0x22C8C
#define GOODIX_HID_GET_REPORT_CMD 0x02
#define GOODIX_HID_SET_REPORT_CMD 0x03
@@ -701,12 +702,7 @@ static int goodix_spi_probe(struct spi_device *spi)
return dev_err_probe(dev, PTR_ERR(ts->reset_gpio),
"failed to request reset gpio\n");
- error = device_property_read_u32(dev, "goodix,hid-report-addr",
- &ts->hid_report_addr);
- if (error)
- return dev_err_probe(dev, error,
- "failed get hid report addr\n");
-
+ ts->hid_report_addr = GOODIX_HID_REPORT_ADDR;
error = goodix_dev_confirm(ts);
if (error)
return error;
@@ -790,6 +786,14 @@ static const struct acpi_device_id goodix_spi_acpi_match[] = {
MODULE_DEVICE_TABLE(acpi, goodix_spi_acpi_match);
#endif
+#ifdef CONFIG_OF
+static const struct of_device_id goodix_spi_of_match[] = {
+ { .compatible = "goodix,gt7986u-spifw", },
+ { }
+};
+MODULE_DEVICE_TABLE(of, goodix_spi_of_match);
+#endif
+
static const struct spi_device_id goodix_spi_ids[] = {
{ "gt7986u" },
{ },
@@ -800,6 +804,7 @@ static struct spi_driver goodix_spi_driver = {
.driver = {
.name = "goodix-spi-hid",
.acpi_match_table = ACPI_PTR(goodix_spi_acpi_match),
+ .of_match_table = of_match_ptr(goodix_spi_of_match),
.pm = pm_sleep_ptr(&goodix_spi_pm_ops),
},
.probe = goodix_spi_probe,
--
2.43.0
Hi, On Sun, Nov 10, 2024 at 11:50 PM Charles Wang <charles.goodix@gmail.com> wrote: > > This patch introduces the following changes: > - Adds OF match table. > - Hardcodes hid-report-addr in the driver rather than fetching it > from the device property. > > Signed-off-by: Charles Wang <charles.goodix@gmail.com> > --- > drivers/hid/hid-goodix-spi.c | 17 +++++++++++------ > 1 file changed, 11 insertions(+), 6 deletions(-) > > diff --git a/drivers/hid/hid-goodix-spi.c b/drivers/hid/hid-goodix-spi.c > index 6ae2300a6..80c0288a3 100644 > --- a/drivers/hid/hid-goodix-spi.c > +++ b/drivers/hid/hid-goodix-spi.c > @@ -20,6 +20,7 @@ > #define GOODIX_HID_REPORT_DESC_ADDR 0x105AA > #define GOODIX_HID_SIGN_ADDR 0x10D32 > #define GOODIX_HID_CMD_ADDR 0x10364 > +#define GOODIX_HID_REPORT_ADDR 0x22C8C > > #define GOODIX_HID_GET_REPORT_CMD 0x02 > #define GOODIX_HID_SET_REPORT_CMD 0x03 > @@ -701,12 +702,7 @@ static int goodix_spi_probe(struct spi_device *spi) > return dev_err_probe(dev, PTR_ERR(ts->reset_gpio), > "failed to request reset gpio\n"); > > - error = device_property_read_u32(dev, "goodix,hid-report-addr", > - &ts->hid_report_addr); > - if (error) > - return dev_err_probe(dev, error, > - "failed get hid report addr\n"); > - > + ts->hid_report_addr = GOODIX_HID_REPORT_ADDR; > error = goodix_dev_confirm(ts); > if (error) > return error; > @@ -790,6 +786,14 @@ static const struct acpi_device_id goodix_spi_acpi_match[] = { > MODULE_DEVICE_TABLE(acpi, goodix_spi_acpi_match); > #endif > > +#ifdef CONFIG_OF > +static const struct of_device_id goodix_spi_of_match[] = { > + { .compatible = "goodix,gt7986u-spifw", }, > + { } > +}; > +MODULE_DEVICE_TABLE(of, goodix_spi_of_match); > +#endif > + > static const struct spi_device_id goodix_spi_ids[] = { > { "gt7986u" }, > { }, > @@ -800,6 +804,7 @@ static struct spi_driver goodix_spi_driver = { > .driver = { > .name = "goodix-spi-hid", > .acpi_match_table = ACPI_PTR(goodix_spi_acpi_match), > + .of_match_table = of_match_ptr(goodix_spi_of_match), I can never quite remember what the current preference is in regards to "OF" tables (whether to use #ifdef like you've done or mark them `__maybe_unused`), so maybe someone will request you change it. ...but IMO what you have is fine and looks to be properly guarded with of_match_ptr(). As far as I'm concerned, this patch looks OK. Oh, I guess the one "nit" is that I would have put "spi" in the subject, making it "HID: hid-goodix-spi: Add OF supports". It might be worth sending a v5 for that (after waiting a day or two) unless a maintainer tells you not to. In any case: Reviewed-by: Douglas Anderson <dianders@chromium.org>
On Mon, 11 Nov 2024, Doug Anderson wrote: > Oh, I guess the one "nit" is that I would have put "spi" in the > subject, making it "HID: hid-goodix-spi: Add OF supports". It might be > worth sending a v5 for that (after waiting a day or two) unless a > maintainer tells you not to. No need to resend v5 just for this, I'll adjust manually while applying. Thanks, -- Jiri Kosina SUSE Labs
Hi Doug, On Mon, Nov 11, 2024 at 09:24:39AM -0800, Doug Anderson wrote: > Hi, > > On Sun, Nov 10, 2024 at 11:50 PM Charles Wang <charles.goodix@gmail.com> wrote: > > > > This patch introduces the following changes: > > - Adds OF match table. > > - Hardcodes hid-report-addr in the driver rather than fetching it > > from the device property. > > > > Signed-off-by: Charles Wang <charles.goodix@gmail.com> > > --- > > drivers/hid/hid-goodix-spi.c | 17 +++++++++++------ > > 1 file changed, 11 insertions(+), 6 deletions(-) > > > > diff --git a/drivers/hid/hid-goodix-spi.c b/drivers/hid/hid-goodix-spi.c > > index 6ae2300a6..80c0288a3 100644 > > --- a/drivers/hid/hid-goodix-spi.c > > +++ b/drivers/hid/hid-goodix-spi.c > > @@ -20,6 +20,7 @@ > > #define GOODIX_HID_REPORT_DESC_ADDR 0x105AA > > #define GOODIX_HID_SIGN_ADDR 0x10D32 > > #define GOODIX_HID_CMD_ADDR 0x10364 > > +#define GOODIX_HID_REPORT_ADDR 0x22C8C > > > > #define GOODIX_HID_GET_REPORT_CMD 0x02 > > #define GOODIX_HID_SET_REPORT_CMD 0x03 > > @@ -701,12 +702,7 @@ static int goodix_spi_probe(struct spi_device *spi) > > return dev_err_probe(dev, PTR_ERR(ts->reset_gpio), > > "failed to request reset gpio\n"); > > > > - error = device_property_read_u32(dev, "goodix,hid-report-addr", > > - &ts->hid_report_addr); > > - if (error) > > - return dev_err_probe(dev, error, > > - "failed get hid report addr\n"); > > - > > + ts->hid_report_addr = GOODIX_HID_REPORT_ADDR; > > error = goodix_dev_confirm(ts); > > if (error) > > return error; > > @@ -790,6 +786,14 @@ static const struct acpi_device_id goodix_spi_acpi_match[] = { > > MODULE_DEVICE_TABLE(acpi, goodix_spi_acpi_match); > > #endif > > > > +#ifdef CONFIG_OF > > +static const struct of_device_id goodix_spi_of_match[] = { > > + { .compatible = "goodix,gt7986u-spifw", }, > > + { } > > +}; > > +MODULE_DEVICE_TABLE(of, goodix_spi_of_match); > > +#endif > > + > > static const struct spi_device_id goodix_spi_ids[] = { > > { "gt7986u" }, > > { }, > > @@ -800,6 +804,7 @@ static struct spi_driver goodix_spi_driver = { > > .driver = { > > .name = "goodix-spi-hid", > > .acpi_match_table = ACPI_PTR(goodix_spi_acpi_match), > > + .of_match_table = of_match_ptr(goodix_spi_of_match), > > I can never quite remember what the current preference is in regards > to "OF" tables (whether to use #ifdef like you've done or mark them > `__maybe_unused`), so maybe someone will request you change it. ...but > IMO what you have is fine and looks to be properly guarded with > of_match_ptr(). As far as I'm concerned, this patch looks OK. > > Oh, I guess the one "nit" is that I would have put "spi" in the > subject, making it "HID: hid-goodix-spi: Add OF supports". It might be > worth sending a v5 for that (after waiting a day or two) unless a > maintainer tells you not to. > Ack, > In any case: > > Reviewed-by: Douglas Anderson <dianders@chromium.org> Thanks, Charles
© 2016 - 2024 Red Hat, Inc.