[PATCH v2 1/2] iio: gyro: bmg160_spi: add of_match_table

Jun Yan posted 2 patches 9 months, 4 weeks ago
[PATCH v2 1/2] iio: gyro: bmg160_spi: add of_match_table
Posted by Jun Yan 9 months, 4 weeks ago
Add of_match_table to bmg160_spi driver.

This fixes automatic driver loading by userspace
When using the device tree and the driver is built
as a module, devices can be probed.

Signed-off-by: Jun Yan <jerrysteve1101@gmail.com>
---
 drivers/iio/gyro/bmg160_spi.c | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/drivers/iio/gyro/bmg160_spi.c b/drivers/iio/gyro/bmg160_spi.c
index fc2e453527b9..ac04b3b1b554 100644
--- a/drivers/iio/gyro/bmg160_spi.c
+++ b/drivers/iio/gyro/bmg160_spi.c
@@ -41,9 +41,19 @@ static const struct spi_device_id bmg160_spi_id[] = {
 
 MODULE_DEVICE_TABLE(spi, bmg160_spi_id);
 
+static const struct of_device_id bmg160_of_match[] = {
+	{ .compatible = "bosch,bmg160" },
+	{ .compatible = "bosch,bmi055_gyro" },
+	{ .compatible = "bosch,bmi088_gyro" },
+	{ }
+};
+
+MODULE_DEVICE_TABLE(of, bmg160_of_match);
+
 static struct spi_driver bmg160_spi_driver = {
 	.driver = {
 		.name	= "bmg160_spi",
+		.of_match_table = bmg160_of_match,
 		.pm	= &bmg160_pm_ops,
 	},
 	.probe		= bmg160_spi_probe,
-- 
2.48.1
Re: [PATCH v2 1/2] iio: gyro: bmg160_spi: add of_match_table
Posted by Jonathan Cameron 9 months, 3 weeks ago
On Fri, 21 Feb 2025 00:50:00 +0800
Jun Yan <jerrysteve1101@gmail.com> wrote:

> Add of_match_table to bmg160_spi driver.
> 
> This fixes automatic driver loading by userspace
> When using the device tree and the driver is built
> as a module, devices can be probed.
Wrap patch descriptions at 75 chars as mentioned in submitting-patches.rst

> 
> Signed-off-by: Jun Yan <jerrysteve1101@gmail.com>
Hi.

The patch content is fine, but I'm doubtful about the autoloading.
Did you actually try this and see a failure without this patch?

For SPI autoloading even with device tree compatibles should work without
the of_match_table though it will match against the compatible without
the bosch, part.  Maybe I missed a change that means that no longer
works.

I in general don't mind the actual change because it does ensure
we have the manufacturer in the match as well so makes future
problems less likely.

Jonathan



> ---
>  drivers/iio/gyro/bmg160_spi.c | 10 ++++++++++
>  1 file changed, 10 insertions(+)
> 
> diff --git a/drivers/iio/gyro/bmg160_spi.c b/drivers/iio/gyro/bmg160_spi.c
> index fc2e453527b9..ac04b3b1b554 100644
> --- a/drivers/iio/gyro/bmg160_spi.c
> +++ b/drivers/iio/gyro/bmg160_spi.c
> @@ -41,9 +41,19 @@ static const struct spi_device_id bmg160_spi_id[] = {
>  
>  MODULE_DEVICE_TABLE(spi, bmg160_spi_id);
>  
> +static const struct of_device_id bmg160_of_match[] = {
> +	{ .compatible = "bosch,bmg160" },
> +	{ .compatible = "bosch,bmi055_gyro" },
> +	{ .compatible = "bosch,bmi088_gyro" },
> +	{ }
> +};
> +
> +MODULE_DEVICE_TABLE(of, bmg160_of_match);
> +
>  static struct spi_driver bmg160_spi_driver = {
>  	.driver = {
>  		.name	= "bmg160_spi",
> +		.of_match_table = bmg160_of_match,
>  		.pm	= &bmg160_pm_ops,
>  	},
>  	.probe		= bmg160_spi_probe,
Re: [PATCH v2 1/2] iio: gyro: bmg160_spi: add of_match_table
Posted by yjun 9 months, 2 weeks ago
I'm sorry. The commit message was referenced from other similar
submissions and hasn't been actually verified. I will resubmit the
patch in V3.

On Sun, Feb 23, 2025 at 12:37 AM Jonathan Cameron <jic23@kernel.org> wrote:
>
> On Fri, 21 Feb 2025 00:50:00 +0800
> Jun Yan <jerrysteve1101@gmail.com> wrote:
>
> > Add of_match_table to bmg160_spi driver.
> >
> > This fixes automatic driver loading by userspace
> > When using the device tree and the driver is built
> > as a module, devices can be probed.
> Wrap patch descriptions at 75 chars as mentioned in submitting-patches.rst
>
> >
> > Signed-off-by: Jun Yan <jerrysteve1101@gmail.com>
> Hi.
>
> The patch content is fine, but I'm doubtful about the autoloading.
> Did you actually try this and see a failure without this patch?
>
> For SPI autoloading even with device tree compatibles should work without
> the of_match_table though it will match against the compatible without
> the bosch, part.  Maybe I missed a change that means that no longer
> works.
>
> I in general don't mind the actual change because it does ensure
> we have the manufacturer in the match as well so makes future
> problems less likely.
>
> Jonathan
>
>
>
> > ---
> >  drivers/iio/gyro/bmg160_spi.c | 10 ++++++++++
> >  1 file changed, 10 insertions(+)
> >
> > diff --git a/drivers/iio/gyro/bmg160_spi.c b/drivers/iio/gyro/bmg160_spi.c
> > index fc2e453527b9..ac04b3b1b554 100644
> > --- a/drivers/iio/gyro/bmg160_spi.c
> > +++ b/drivers/iio/gyro/bmg160_spi.c
> > @@ -41,9 +41,19 @@ static const struct spi_device_id bmg160_spi_id[] = {
> >
> >  MODULE_DEVICE_TABLE(spi, bmg160_spi_id);
> >
> > +static const struct of_device_id bmg160_of_match[] = {
> > +     { .compatible = "bosch,bmg160" },
> > +     { .compatible = "bosch,bmi055_gyro" },
> > +     { .compatible = "bosch,bmi088_gyro" },
> > +     { }
> > +};
> > +
> > +MODULE_DEVICE_TABLE(of, bmg160_of_match);
> > +
> >  static struct spi_driver bmg160_spi_driver = {
> >       .driver = {
> >               .name   = "bmg160_spi",
> > +             .of_match_table = bmg160_of_match,
> >               .pm     = &bmg160_pm_ops,
> >       },
> >       .probe          = bmg160_spi_probe,
>