* [PATCH v2 0/4] Add OF support to ST sensor framework @ 2017-06-25 15:24 Lorenzo Bianconi [not found] ` <20170625152413.22325-1-lorenzo.bianconi-qxv4g6HH51o@public.gmane.org> 0 siblings, 1 reply; 10+ messages in thread From: Lorenzo Bianconi @ 2017-06-25 15:24 UTC (permalink / raw) To: jic23-DgEjT+Ai2ygdnm+yROfE0A Cc: linux-iio-u79uwXL29TY76Z2rM5mHXA, devicetree-u79uwXL29TY76Z2rM5mHXA, lorenzo.bianconi-qxv4g6HH51o Changes since v1: - add missing devices to {accel, magn, gyro, press} of_device_id table Lorenzo Bianconi (4): iio: accel: st_accel_spi: add OF capability to st_accel_spi iio: magnetometer: st_magn_spi: add OF capability to st_magn_spi iio: gyro: st_gyro_spi: add OF capability to st_gyro_spi iio: pressure: st_pressure_spi: add OF capability to st_pressure_spi drivers/iio/accel/st_accel_spi.c | 67 ++++++++++++++++++++++++++++++---- drivers/iio/gyro/st_gyro_spi.c | 53 +++++++++++++++++++++++++++ drivers/iio/magnetometer/st_magn_spi.c | 25 +++++++++++++ drivers/iio/pressure/st_pressure_spi.c | 33 +++++++++++++++++ 4 files changed, 170 insertions(+), 8 deletions(-) -- 2.13.1 ^ permalink raw reply [flat|nested] 10+ messages in thread
[parent not found: <20170625152413.22325-1-lorenzo.bianconi-qxv4g6HH51o@public.gmane.org>]
* [PATCH v2 1/4] iio: accel: st_accel_spi: add OF capability to st_accel_spi [not found] ` <20170625152413.22325-1-lorenzo.bianconi-qxv4g6HH51o@public.gmane.org> @ 2017-06-25 15:24 ` Lorenzo Bianconi [not found] ` <20170625152413.22325-2-lorenzo.bianconi-qxv4g6HH51o@public.gmane.org> 2017-06-25 15:24 ` [PATCH v2 2/4] iio: magnetometer: st_magn_spi: add OF capability to st_magn_spi Lorenzo Bianconi ` (3 subsequent siblings) 4 siblings, 1 reply; 10+ messages in thread From: Lorenzo Bianconi @ 2017-06-25 15:24 UTC (permalink / raw) To: jic23-DgEjT+Ai2ygdnm+yROfE0A Cc: linux-iio-u79uwXL29TY76Z2rM5mHXA, devicetree-u79uwXL29TY76Z2rM5mHXA, lorenzo.bianconi-qxv4g6HH51o Add device tree support for LIS3DH, LSM330D, LSM330DL, LSM330DLC, LIS331DLH, LSM330, LSM303AGR, LIS2DH12, LIS3L02DQ, LNG2DM accel sensors. Signed-off-by: Lorenzo Bianconi <lorenzo.bianconi-qxv4g6HH51o@public.gmane.org> --- drivers/iio/accel/st_accel_spi.c | 67 +++++++++++++++++++++++++++++++++++----- 1 file changed, 59 insertions(+), 8 deletions(-) diff --git a/drivers/iio/accel/st_accel_spi.c b/drivers/iio/accel/st_accel_spi.c index d13742edee0e..a8b61daa83d7 100644 --- a/drivers/iio/accel/st_accel_spi.c +++ b/drivers/iio/accel/st_accel_spi.c @@ -18,6 +18,63 @@ #include <linux/iio/common/st_sensors_spi.h> #include "st_accel.h" +#ifdef CONFIG_OF +/* + * For new single-chip sensors use <device_name> as compatible string. + * For old single-chip devices keep <device_name>-accel to maintain + * compatibility + */ +static const struct of_device_id st_accel_of_match[] = { + { + .compatible = "st,lis302dl-spi" + }, + { + .compatible = "st,lis3dh-accel", + .data = LIS3DH_ACCEL_DEV_NAME, + }, + { + .compatible = "st,lsm330d-accel", + .data = LSM330D_ACCEL_DEV_NAME, + }, + { + .compatible = "st,lsm330dl-accel", + .data = LSM330DL_ACCEL_DEV_NAME, + }, + { + .compatible = "st,lsm330dlc-accel", + .data = LSM330DLC_ACCEL_DEV_NAME, + }, + { + .compatible = "st,lis331dlh-accel", + .data = LIS331DLH_ACCEL_DEV_NAME, + }, + { + .compatible = "st,lsm330-accel", + .data = LSM330_ACCEL_DEV_NAME, + }, + { + .compatible = "st,lsm303agr-accel", + .data = LSM303AGR_ACCEL_DEV_NAME, + }, + { + .compatible = "st,lis2dh12-accel", + .data = LIS2DH12_ACCEL_DEV_NAME, + }, + { + .compatible = "st,lis3l02dq", + .data = LIS3L02DQ_ACCEL_DEV_NAME, + }, + { + .compatible = "st,lng2dm-accel", + .data = LNG2DM_ACCEL_DEV_NAME, + }, + {} +}; +MODULE_DEVICE_TABLE(of, st_accel_of_match); +#else +#define st_accel_of_match NULL +#endif + static int st_accel_spi_probe(struct spi_device *spi) { struct iio_dev *indio_dev; @@ -30,6 +87,8 @@ static int st_accel_spi_probe(struct spi_device *spi) adata = iio_priv(indio_dev); + st_sensors_of_name_probe(&spi->dev, st_accel_of_match, + spi->modalias, sizeof(spi->modalias)); st_sensors_spi_configure(indio_dev, spi, adata); err = st_accel_common_probe(indio_dev); @@ -61,14 +120,6 @@ static const struct spi_device_id st_accel_id_table[] = { }; MODULE_DEVICE_TABLE(spi, st_accel_id_table); -#ifdef CONFIG_OF -static const struct of_device_id st_accel_of_match[] = { - { .compatible = "st,lis302dl-spi" }, - {} -}; -MODULE_DEVICE_TABLE(of, st_accel_of_match); -#endif - static struct spi_driver st_accel_driver = { .driver = { .name = "st-accel-spi", -- 2.13.1 ^ permalink raw reply related [flat|nested] 10+ messages in thread
[parent not found: <20170625152413.22325-2-lorenzo.bianconi-qxv4g6HH51o@public.gmane.org>]
* Re: [PATCH v2 1/4] iio: accel: st_accel_spi: add OF capability to st_accel_spi [not found] ` <20170625152413.22325-2-lorenzo.bianconi-qxv4g6HH51o@public.gmane.org> @ 2017-06-25 16:14 ` Jonathan Cameron [not found] ` <20170625171404.4ee965c7-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org> 0 siblings, 1 reply; 10+ messages in thread From: Jonathan Cameron @ 2017-06-25 16:14 UTC (permalink / raw) To: Lorenzo Bianconi Cc: linux-iio-u79uwXL29TY76Z2rM5mHXA, devicetree-u79uwXL29TY76Z2rM5mHXA, lorenzo.bianconi-qxv4g6HH51o On Sun, 25 Jun 2017 17:24:10 +0200 Lorenzo Bianconi <lorenzo.bianconi83-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote: > Add device tree support for LIS3DH, LSM330D, LSM330DL, LSM330DLC, > LIS331DLH, LSM330, LSM303AGR, LIS2DH12, LIS3L02DQ, LNG2DM accel sensors. > > Signed-off-by: Lorenzo Bianconi <lorenzo.bianconi-qxv4g6HH51o@public.gmane.org> > --- > drivers/iio/accel/st_accel_spi.c | 67 +++++++++++++++++++++++++++++++++++----- > 1 file changed, 59 insertions(+), 8 deletions(-) > > diff --git a/drivers/iio/accel/st_accel_spi.c b/drivers/iio/accel/st_accel_spi.c > index d13742edee0e..a8b61daa83d7 100644 > --- a/drivers/iio/accel/st_accel_spi.c > +++ b/drivers/iio/accel/st_accel_spi.c > @@ -18,6 +18,63 @@ > #include <linux/iio/common/st_sensors_spi.h> > #include "st_accel.h" > > +#ifdef CONFIG_OF > +/* > + * For new single-chip sensors use <device_name> as compatible string. > + * For old single-chip devices keep <device_name>-accel to maintain > + * compatibility > + */ > +static const struct of_device_id st_accel_of_match[] = { > + { > + .compatible = "st,lis302dl-spi" Leaving this without some explanation of why it doesn't have .data set requires a comment at least. It will result in the name never being set - or ending up as the default spi->modalias anyway.. Presumably not what is desired? If I have missed something about why this works, please add a comment here in v3 to explain it. > + }, > + { > + .compatible = "st,lis3dh-accel", > + .data = LIS3DH_ACCEL_DEV_NAME, > + }, > + { > + .compatible = "st,lsm330d-accel", > + .data = LSM330D_ACCEL_DEV_NAME, > + }, > + { > + .compatible = "st,lsm330dl-accel", > + .data = LSM330DL_ACCEL_DEV_NAME, > + }, > + { > + .compatible = "st,lsm330dlc-accel", > + .data = LSM330DLC_ACCEL_DEV_NAME, > + }, > + { > + .compatible = "st,lis331dlh-accel", > + .data = LIS331DLH_ACCEL_DEV_NAME, > + }, > + { > + .compatible = "st,lsm330-accel", > + .data = LSM330_ACCEL_DEV_NAME, > + }, > + { > + .compatible = "st,lsm303agr-accel", > + .data = LSM303AGR_ACCEL_DEV_NAME, > + }, > + { > + .compatible = "st,lis2dh12-accel", > + .data = LIS2DH12_ACCEL_DEV_NAME, > + }, > + { > + .compatible = "st,lis3l02dq", > + .data = LIS3L02DQ_ACCEL_DEV_NAME, > + }, > + { > + .compatible = "st,lng2dm-accel", > + .data = LNG2DM_ACCEL_DEV_NAME, > + }, > + {} > +}; > +MODULE_DEVICE_TABLE(of, st_accel_of_match); > +#else > +#define st_accel_of_match NULL > +#endif > + > static int st_accel_spi_probe(struct spi_device *spi) > { > struct iio_dev *indio_dev; > @@ -30,6 +87,8 @@ static int st_accel_spi_probe(struct spi_device *spi) > > adata = iio_priv(indio_dev); > > + st_sensors_of_name_probe(&spi->dev, st_accel_of_match, > + spi->modalias, sizeof(spi->modalias)); > st_sensors_spi_configure(indio_dev, spi, adata); > > err = st_accel_common_probe(indio_dev); > @@ -61,14 +120,6 @@ static const struct spi_device_id st_accel_id_table[] = { > }; > MODULE_DEVICE_TABLE(spi, st_accel_id_table); > > -#ifdef CONFIG_OF > -static const struct of_device_id st_accel_of_match[] = { > - { .compatible = "st,lis302dl-spi" }, > - {} > -}; > -MODULE_DEVICE_TABLE(of, st_accel_of_match); > -#endif > - > static struct spi_driver st_accel_driver = { > .driver = { > .name = "st-accel-spi", ^ permalink raw reply [flat|nested] 10+ messages in thread
[parent not found: <20170625171404.4ee965c7-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>]
* Re: [PATCH v2 1/4] iio: accel: st_accel_spi: add OF capability to st_accel_spi [not found] ` <20170625171404.4ee965c7-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org> @ 2017-06-25 16:20 ` Lorenzo Bianconi [not found] ` <CAA2SeNKs8VZehYWpGjnPzTn4N5dzK6VxQs5=e51p2cXVWzPkig-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org> 0 siblings, 1 reply; 10+ messages in thread From: Lorenzo Bianconi @ 2017-06-25 16:20 UTC (permalink / raw) To: Jonathan Cameron Cc: linux-iio-u79uwXL29TY76Z2rM5mHXA, devicetree-u79uwXL29TY76Z2rM5mHXA, Lorenzo BIANCONI > On Sun, 25 Jun 2017 17:24:10 +0200 > Lorenzo Bianconi <lorenzo.bianconi83-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote: > >> Add device tree support for LIS3DH, LSM330D, LSM330DL, LSM330DLC, >> LIS331DLH, LSM330, LSM303AGR, LIS2DH12, LIS3L02DQ, LNG2DM accel sensors. >> >> Signed-off-by: Lorenzo Bianconi <lorenzo.bianconi-qxv4g6HH51o@public.gmane.org> >> --- >> drivers/iio/accel/st_accel_spi.c | 67 +++++++++++++++++++++++++++++++++++----- >> 1 file changed, 59 insertions(+), 8 deletions(-) >> >> diff --git a/drivers/iio/accel/st_accel_spi.c b/drivers/iio/accel/st_accel_spi.c >> index d13742edee0e..a8b61daa83d7 100644 >> --- a/drivers/iio/accel/st_accel_spi.c >> +++ b/drivers/iio/accel/st_accel_spi.c >> @@ -18,6 +18,63 @@ >> #include <linux/iio/common/st_sensors_spi.h> >> #include "st_accel.h" >> >> +#ifdef CONFIG_OF >> +/* >> + * For new single-chip sensors use <device_name> as compatible string. >> + * For old single-chip devices keep <device_name>-accel to maintain >> + * compatibility >> + */ >> +static const struct of_device_id st_accel_of_match[] = { >> + { >> + .compatible = "st,lis302dl-spi" > Leaving this without some explanation of why it doesn't have > .data set requires a comment at least. It will result > in the name never being set - or ending up as > the default spi->modalias anyway.. Presumably not what is > desired? > > If I have missed something about why this works, please > add a comment here in v3 to explain it. Right, it will not work, but it needs a device (lis3lv02dl) that is not currently support in st_accel_spi. So I preferred to fix OF capability for currently supported devices and add missing ones (LIS3LV02DL, LIS331DL and H3LIS331DL) in a subsequent patch. What do you think? Is it better to squash the two patches together? Regards, Lorenzo >> + }, >> + { >> + .compatible = "st,lis3dh-accel", >> + .data = LIS3DH_ACCEL_DEV_NAME, >> + }, >> + { >> + .compatible = "st,lsm330d-accel", >> + .data = LSM330D_ACCEL_DEV_NAME, >> + }, >> + { >> + .compatible = "st,lsm330dl-accel", >> + .data = LSM330DL_ACCEL_DEV_NAME, >> + }, >> + { >> + .compatible = "st,lsm330dlc-accel", >> + .data = LSM330DLC_ACCEL_DEV_NAME, >> + }, >> + { >> + .compatible = "st,lis331dlh-accel", >> + .data = LIS331DLH_ACCEL_DEV_NAME, >> + }, >> + { >> + .compatible = "st,lsm330-accel", >> + .data = LSM330_ACCEL_DEV_NAME, >> + }, >> + { >> + .compatible = "st,lsm303agr-accel", >> + .data = LSM303AGR_ACCEL_DEV_NAME, >> + }, >> + { >> + .compatible = "st,lis2dh12-accel", >> + .data = LIS2DH12_ACCEL_DEV_NAME, >> + }, >> + { >> + .compatible = "st,lis3l02dq", >> + .data = LIS3L02DQ_ACCEL_DEV_NAME, >> + }, >> + { >> + .compatible = "st,lng2dm-accel", >> + .data = LNG2DM_ACCEL_DEV_NAME, >> + }, >> + {} >> +}; >> +MODULE_DEVICE_TABLE(of, st_accel_of_match); >> +#else >> +#define st_accel_of_match NULL >> +#endif >> + >> static int st_accel_spi_probe(struct spi_device *spi) >> { >> struct iio_dev *indio_dev; >> @@ -30,6 +87,8 @@ static int st_accel_spi_probe(struct spi_device *spi) >> >> adata = iio_priv(indio_dev); >> >> + st_sensors_of_name_probe(&spi->dev, st_accel_of_match, >> + spi->modalias, sizeof(spi->modalias)); >> st_sensors_spi_configure(indio_dev, spi, adata); >> >> err = st_accel_common_probe(indio_dev); >> @@ -61,14 +120,6 @@ static const struct spi_device_id st_accel_id_table[] = { >> }; >> MODULE_DEVICE_TABLE(spi, st_accel_id_table); >> >> -#ifdef CONFIG_OF >> -static const struct of_device_id st_accel_of_match[] = { >> - { .compatible = "st,lis302dl-spi" }, >> - {} >> -}; >> -MODULE_DEVICE_TABLE(of, st_accel_of_match); >> -#endif >> - >> static struct spi_driver st_accel_driver = { >> .driver = { >> .name = "st-accel-spi", > -- UNIX is Sexy: who | grep -i blonde | talk; cd ~; wine; talk; touch; unzip; touch; strip; gasp; finger; gasp; mount; fsck; more; yes; gasp; umount; make clean; sleep -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply [flat|nested] 10+ messages in thread
[parent not found: <CAA2SeNKs8VZehYWpGjnPzTn4N5dzK6VxQs5=e51p2cXVWzPkig-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>]
* Re: [PATCH v2 1/4] iio: accel: st_accel_spi: add OF capability to st_accel_spi [not found] ` <CAA2SeNKs8VZehYWpGjnPzTn4N5dzK6VxQs5=e51p2cXVWzPkig-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org> @ 2017-06-25 16:58 ` Jonathan Cameron [not found] ` <140A7A0D-35DB-433F-8861-2D4400AA7942-tko9wxEg+fIOOJlXag/Snyp2UmYkHbXO@public.gmane.org> 0 siblings, 1 reply; 10+ messages in thread From: Jonathan Cameron @ 2017-06-25 16:58 UTC (permalink / raw) To: Lorenzo Bianconi, Jonathan Cameron Cc: linux-iio-u79uwXL29TY76Z2rM5mHXA, devicetree-u79uwXL29TY76Z2rM5mHXA, Lorenzo BIANCONI On 25 June 2017 18:20:33 CEST, Lorenzo Bianconi <lorenzo.bianconi83-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote: >> On Sun, 25 Jun 2017 17:24:10 +0200 >> Lorenzo Bianconi <lorenzo.bianconi83-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote: >> >>> Add device tree support for LIS3DH, LSM330D, LSM330DL, LSM330DLC, >>> LIS331DLH, LSM330, LSM303AGR, LIS2DH12, LIS3L02DQ, LNG2DM accel >sensors. >>> >>> Signed-off-by: Lorenzo Bianconi <lorenzo.bianconi-qxv4g6HH51o@public.gmane.org> >>> --- >>> drivers/iio/accel/st_accel_spi.c | 67 >+++++++++++++++++++++++++++++++++++----- >>> 1 file changed, 59 insertions(+), 8 deletions(-) >>> >>> diff --git a/drivers/iio/accel/st_accel_spi.c >b/drivers/iio/accel/st_accel_spi.c >>> index d13742edee0e..a8b61daa83d7 100644 >>> --- a/drivers/iio/accel/st_accel_spi.c >>> +++ b/drivers/iio/accel/st_accel_spi.c >>> @@ -18,6 +18,63 @@ >>> #include <linux/iio/common/st_sensors_spi.h> >>> #include "st_accel.h" >>> >>> +#ifdef CONFIG_OF >>> +/* >>> + * For new single-chip sensors use <device_name> as compatible >string. >>> + * For old single-chip devices keep <device_name>-accel to maintain >>> + * compatibility >>> + */ >>> +static const struct of_device_id st_accel_of_match[] = { >>> + { >>> + .compatible = "st,lis302dl-spi" >> Leaving this without some explanation of why it doesn't have >> .data set requires a comment at least. It will result >> in the name never being set - or ending up as >> the default spi->modalias anyway.. Presumably not what is >> desired? >> >> If I have missed something about why this works, please >> add a comment here in v3 to explain it. > >Right, it will not work, but it needs a device (lis3lv02dl) that is >not currently support in st_accel_spi. >So I preferred to fix OF capability for currently supported devices >and add missing ones (LIS3LV02DL, LIS331DL and H3LIS331DL) >in a subsequent patch. What do you think? Is it better to squash the >two patches together? Up to you, but if separate squash this element for now. > >Regards, >Lorenzo > >>> + }, >>> + { >>> + .compatible = "st,lis3dh-accel", >>> + .data = LIS3DH_ACCEL_DEV_NAME, >>> + }, >>> + { >>> + .compatible = "st,lsm330d-accel", >>> + .data = LSM330D_ACCEL_DEV_NAME, >>> + }, >>> + { >>> + .compatible = "st,lsm330dl-accel", >>> + .data = LSM330DL_ACCEL_DEV_NAME, >>> + }, >>> + { >>> + .compatible = "st,lsm330dlc-accel", >>> + .data = LSM330DLC_ACCEL_DEV_NAME, >>> + }, >>> + { >>> + .compatible = "st,lis331dlh-accel", >>> + .data = LIS331DLH_ACCEL_DEV_NAME, >>> + }, >>> + { >>> + .compatible = "st,lsm330-accel", >>> + .data = LSM330_ACCEL_DEV_NAME, >>> + }, >>> + { >>> + .compatible = "st,lsm303agr-accel", >>> + .data = LSM303AGR_ACCEL_DEV_NAME, >>> + }, >>> + { >>> + .compatible = "st,lis2dh12-accel", >>> + .data = LIS2DH12_ACCEL_DEV_NAME, >>> + }, >>> + { >>> + .compatible = "st,lis3l02dq", >>> + .data = LIS3L02DQ_ACCEL_DEV_NAME, >>> + }, >>> + { >>> + .compatible = "st,lng2dm-accel", >>> + .data = LNG2DM_ACCEL_DEV_NAME, >>> + }, >>> + {} >>> +}; >>> +MODULE_DEVICE_TABLE(of, st_accel_of_match); >>> +#else >>> +#define st_accel_of_match NULL >>> +#endif >>> + >>> static int st_accel_spi_probe(struct spi_device *spi) >>> { >>> struct iio_dev *indio_dev; >>> @@ -30,6 +87,8 @@ static int st_accel_spi_probe(struct spi_device >*spi) >>> >>> adata = iio_priv(indio_dev); >>> >>> + st_sensors_of_name_probe(&spi->dev, st_accel_of_match, >>> + spi->modalias, >sizeof(spi->modalias)); >>> st_sensors_spi_configure(indio_dev, spi, adata); >>> >>> err = st_accel_common_probe(indio_dev); >>> @@ -61,14 +120,6 @@ static const struct spi_device_id >st_accel_id_table[] = { >>> }; >>> MODULE_DEVICE_TABLE(spi, st_accel_id_table); >>> >>> -#ifdef CONFIG_OF >>> -static const struct of_device_id st_accel_of_match[] = { >>> - { .compatible = "st,lis302dl-spi" }, >>> - {} >>> -}; >>> -MODULE_DEVICE_TABLE(of, st_accel_of_match); >>> -#endif >>> - >>> static struct spi_driver st_accel_driver = { >>> .driver = { >>> .name = "st-accel-spi", >> -- Sent from my Android device with K-9 Mail. Please excuse my brevity. ^ permalink raw reply [flat|nested] 10+ messages in thread
[parent not found: <140A7A0D-35DB-433F-8861-2D4400AA7942-tko9wxEg+fIOOJlXag/Snyp2UmYkHbXO@public.gmane.org>]
* Re: [PATCH v2 1/4] iio: accel: st_accel_spi: add OF capability to st_accel_spi [not found] ` <140A7A0D-35DB-433F-8861-2D4400AA7942-tko9wxEg+fIOOJlXag/Snyp2UmYkHbXO@public.gmane.org> @ 2017-06-25 20:24 ` Lorenzo Bianconi 0 siblings, 0 replies; 10+ messages in thread From: Lorenzo Bianconi @ 2017-06-25 20:24 UTC (permalink / raw) To: Jonathan Cameron Cc: Jonathan Cameron, linux-iio-u79uwXL29TY76Z2rM5mHXA, devicetree-u79uwXL29TY76Z2rM5mHXA, Lorenzo BIANCONI > > > On 25 June 2017 18:20:33 CEST, Lorenzo Bianconi <lorenzo.bianconi83-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote: >>> On Sun, 25 Jun 2017 17:24:10 +0200 >>> Lorenzo Bianconi <lorenzo.bianconi83-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote: >>> >>>> Add device tree support for LIS3DH, LSM330D, LSM330DL, LSM330DLC, >>>> LIS331DLH, LSM330, LSM303AGR, LIS2DH12, LIS3L02DQ, LNG2DM accel >>sensors. >>>> >>>> Signed-off-by: Lorenzo Bianconi <lorenzo.bianconi-qxv4g6HH51o@public.gmane.org> >>>> --- >>>> drivers/iio/accel/st_accel_spi.c | 67 >>+++++++++++++++++++++++++++++++++++----- >>>> 1 file changed, 59 insertions(+), 8 deletions(-) >>>> >>>> diff --git a/drivers/iio/accel/st_accel_spi.c >>b/drivers/iio/accel/st_accel_spi.c >>>> index d13742edee0e..a8b61daa83d7 100644 >>>> --- a/drivers/iio/accel/st_accel_spi.c >>>> +++ b/drivers/iio/accel/st_accel_spi.c >>>> @@ -18,6 +18,63 @@ >>>> #include <linux/iio/common/st_sensors_spi.h> >>>> #include "st_accel.h" >>>> >>>> +#ifdef CONFIG_OF >>>> +/* >>>> + * For new single-chip sensors use <device_name> as compatible >>string. >>>> + * For old single-chip devices keep <device_name>-accel to maintain >>>> + * compatibility >>>> + */ >>>> +static const struct of_device_id st_accel_of_match[] = { >>>> + { >>>> + .compatible = "st,lis302dl-spi" >>> Leaving this without some explanation of why it doesn't have >>> .data set requires a comment at least. It will result >>> in the name never being set - or ending up as >>> the default spi->modalias anyway.. Presumably not what is >>> desired? >>> >>> If I have missed something about why this works, please >>> add a comment here in v3 to explain it. >> >>Right, it will not work, but it needs a device (lis3lv02dl) that is >>not currently support in st_accel_spi. >>So I preferred to fix OF capability for currently supported devices >>and add missing ones (LIS3LV02DL, LIS331DL and H3LIS331DL) >>in a subsequent patch. What do you think? Is it better to squash the >>two patches together? > Up to you, but if separate squash this element for now. >> >>Regards, >>Lorenzo Ok, I figured out I can fix support for lis302dl without adding new devices. I will send a v3 with that fix. Regards, Lorenzo >> >>>> + }, >>>> + { >>>> + .compatible = "st,lis3dh-accel", >>>> + .data = LIS3DH_ACCEL_DEV_NAME, >>>> + }, >>>> + { >>>> + .compatible = "st,lsm330d-accel", >>>> + .data = LSM330D_ACCEL_DEV_NAME, >>>> + }, >>>> + { >>>> + .compatible = "st,lsm330dl-accel", >>>> + .data = LSM330DL_ACCEL_DEV_NAME, >>>> + }, >>>> + { >>>> + .compatible = "st,lsm330dlc-accel", >>>> + .data = LSM330DLC_ACCEL_DEV_NAME, >>>> + }, >>>> + { >>>> + .compatible = "st,lis331dlh-accel", >>>> + .data = LIS331DLH_ACCEL_DEV_NAME, >>>> + }, >>>> + { >>>> + .compatible = "st,lsm330-accel", >>>> + .data = LSM330_ACCEL_DEV_NAME, >>>> + }, >>>> + { >>>> + .compatible = "st,lsm303agr-accel", >>>> + .data = LSM303AGR_ACCEL_DEV_NAME, >>>> + }, >>>> + { >>>> + .compatible = "st,lis2dh12-accel", >>>> + .data = LIS2DH12_ACCEL_DEV_NAME, >>>> + }, >>>> + { >>>> + .compatible = "st,lis3l02dq", >>>> + .data = LIS3L02DQ_ACCEL_DEV_NAME, >>>> + }, >>>> + { >>>> + .compatible = "st,lng2dm-accel", >>>> + .data = LNG2DM_ACCEL_DEV_NAME, >>>> + }, >>>> + {} >>>> +}; >>>> +MODULE_DEVICE_TABLE(of, st_accel_of_match); >>>> +#else >>>> +#define st_accel_of_match NULL >>>> +#endif >>>> + >>>> static int st_accel_spi_probe(struct spi_device *spi) >>>> { >>>> struct iio_dev *indio_dev; >>>> @@ -30,6 +87,8 @@ static int st_accel_spi_probe(struct spi_device >>*spi) >>>> >>>> adata = iio_priv(indio_dev); >>>> >>>> + st_sensors_of_name_probe(&spi->dev, st_accel_of_match, >>>> + spi->modalias, >>sizeof(spi->modalias)); >>>> st_sensors_spi_configure(indio_dev, spi, adata); >>>> >>>> err = st_accel_common_probe(indio_dev); >>>> @@ -61,14 +120,6 @@ static const struct spi_device_id >>st_accel_id_table[] = { >>>> }; >>>> MODULE_DEVICE_TABLE(spi, st_accel_id_table); >>>> >>>> -#ifdef CONFIG_OF >>>> -static const struct of_device_id st_accel_of_match[] = { >>>> - { .compatible = "st,lis302dl-spi" }, >>>> - {} >>>> -}; >>>> -MODULE_DEVICE_TABLE(of, st_accel_of_match); >>>> -#endif >>>> - >>>> static struct spi_driver st_accel_driver = { >>>> .driver = { >>>> .name = "st-accel-spi", >>> > > -- > Sent from my Android device with K-9 Mail. Please excuse my brevity. -- UNIX is Sexy: who | grep -i blonde | talk; cd ~; wine; talk; touch; unzip; touch; strip; gasp; finger; gasp; mount; fsck; more; yes; gasp; umount; make clean; sleep ^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH v2 2/4] iio: magnetometer: st_magn_spi: add OF capability to st_magn_spi [not found] ` <20170625152413.22325-1-lorenzo.bianconi-qxv4g6HH51o@public.gmane.org> 2017-06-25 15:24 ` [PATCH v2 1/4] iio: accel: st_accel_spi: add OF capability to st_accel_spi Lorenzo Bianconi @ 2017-06-25 15:24 ` Lorenzo Bianconi 2017-06-25 15:24 ` [PATCH v2 3/4] iio: gyro: st_gyro_spi: add OF capability to st_gyro_spi Lorenzo Bianconi ` (2 subsequent siblings) 4 siblings, 0 replies; 10+ messages in thread From: Lorenzo Bianconi @ 2017-06-25 15:24 UTC (permalink / raw) To: jic23-DgEjT+Ai2ygdnm+yROfE0A Cc: linux-iio-u79uwXL29TY76Z2rM5mHXA, devicetree-u79uwXL29TY76Z2rM5mHXA, lorenzo.bianconi-qxv4g6HH51o Add device tree support for LIS3MDL and LSM303AGR magnetometer sensors Signed-off-by: Lorenzo Bianconi <lorenzo.bianconi-qxv4g6HH51o@public.gmane.org> --- drivers/iio/magnetometer/st_magn_spi.c | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/drivers/iio/magnetometer/st_magn_spi.c b/drivers/iio/magnetometer/st_magn_spi.c index f3cb4dc05391..1ea64dd318aa 100644 --- a/drivers/iio/magnetometer/st_magn_spi.c +++ b/drivers/iio/magnetometer/st_magn_spi.c @@ -18,6 +18,28 @@ #include <linux/iio/common/st_sensors_spi.h> #include "st_magn.h" +#ifdef CONFIG_OF +/* + * For new single-chip sensors use <device_name> as compatible string. + * For old single-chip devices keep <device_name>-magn to maintain + * compatibility + */ +static const struct of_device_id st_magn_of_match[] = { + { + .compatible = "st,lis3mdl-magn", + .data = LIS3MDL_MAGN_DEV_NAME, + }, + { + .compatible = "st,lsm303agr-magn", + .data = LSM303AGR_MAGN_DEV_NAME, + }, + {} +}; +MODULE_DEVICE_TABLE(of, st_magn_of_match); +#else +#define st_magn_of_match NULL +#endif + static int st_magn_spi_probe(struct spi_device *spi) { struct iio_dev *indio_dev; @@ -30,6 +52,8 @@ static int st_magn_spi_probe(struct spi_device *spi) mdata = iio_priv(indio_dev); + st_sensors_of_name_probe(&spi->dev, st_magn_of_match, + spi->modalias, sizeof(spi->modalias)); st_sensors_spi_configure(indio_dev, spi, mdata); err = st_magn_common_probe(indio_dev); @@ -57,6 +81,7 @@ MODULE_DEVICE_TABLE(spi, st_magn_id_table); static struct spi_driver st_magn_driver = { .driver = { .name = "st-magn-spi", + .of_match_table = of_match_ptr(st_magn_of_match), }, .probe = st_magn_spi_probe, .remove = st_magn_spi_remove, -- 2.13.1 -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH v2 3/4] iio: gyro: st_gyro_spi: add OF capability to st_gyro_spi [not found] ` <20170625152413.22325-1-lorenzo.bianconi-qxv4g6HH51o@public.gmane.org> 2017-06-25 15:24 ` [PATCH v2 1/4] iio: accel: st_accel_spi: add OF capability to st_accel_spi Lorenzo Bianconi 2017-06-25 15:24 ` [PATCH v2 2/4] iio: magnetometer: st_magn_spi: add OF capability to st_magn_spi Lorenzo Bianconi @ 2017-06-25 15:24 ` Lorenzo Bianconi 2017-06-25 15:24 ` [PATCH v2 4/4] iio: pressure: st_pressure_spi: add OF capability to st_pressure_spi Lorenzo Bianconi 2017-06-25 16:15 ` [PATCH v2 0/4] Add OF support to ST sensor framework Jonathan Cameron 4 siblings, 0 replies; 10+ messages in thread From: Lorenzo Bianconi @ 2017-06-25 15:24 UTC (permalink / raw) To: jic23-DgEjT+Ai2ygdnm+yROfE0A Cc: linux-iio-u79uwXL29TY76Z2rM5mHXA, devicetree-u79uwXL29TY76Z2rM5mHXA, lorenzo.bianconi-qxv4g6HH51o Add device tree support for L3G4200D, LSM330D, LSM330DL, LSM330DLC, L3GD20, L3GD20H, L3G4IS, LSM330, LSM9DS0 gyroscope sensors Signed-off-by: Lorenzo Bianconi <lorenzo.bianconi-qxv4g6HH51o@public.gmane.org> --- drivers/iio/gyro/st_gyro_spi.c | 53 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) diff --git a/drivers/iio/gyro/st_gyro_spi.c b/drivers/iio/gyro/st_gyro_spi.c index fa14d8f2170d..0b52ed577dc2 100644 --- a/drivers/iio/gyro/st_gyro_spi.c +++ b/drivers/iio/gyro/st_gyro_spi.c @@ -18,6 +18,56 @@ #include <linux/iio/common/st_sensors_spi.h> #include "st_gyro.h" +#ifdef CONFIG_OF +/* + * For new single-chip sensors use <device_name> as compatible string. + * For old single-chip devices keep <device_name>-gyro to maintain + * compatibility + */ +static const struct of_device_id st_gyro_of_match[] = { + { + .compatible = "st,l3g4200d-gyro", + .data = L3G4200D_GYRO_DEV_NAME, + }, + { + .compatible = "st,lsm330d-gyro", + .data = LSM330D_GYRO_DEV_NAME, + }, + { + .compatible = "st,lsm330dl-gyro", + .data = LSM330DL_GYRO_DEV_NAME, + }, + { + .compatible = "st,lsm330dlc-gyro", + .data = LSM330DLC_GYRO_DEV_NAME, + }, + { + .compatible = "st,l3gd20-gyro", + .data = L3GD20_GYRO_DEV_NAME, + }, + { + .compatible = "st,l3gd20h-gyro", + .data = L3GD20H_GYRO_DEV_NAME, + }, + { + .compatible = "st,l3g4is-gyro", + .data = L3G4IS_GYRO_DEV_NAME, + }, + { + .compatible = "st,lsm330-gyro", + .data = LSM330_GYRO_DEV_NAME, + }, + { + .compatible = "st,lsm9ds0-gyro", + .data = LSM9DS0_GYRO_DEV_NAME, + }, + {}, +}; +MODULE_DEVICE_TABLE(of, st_gyro_of_match); +#else +#define st_gyro_of_match NULL +#endif + static int st_gyro_spi_probe(struct spi_device *spi) { struct iio_dev *indio_dev; @@ -30,6 +80,8 @@ static int st_gyro_spi_probe(struct spi_device *spi) gdata = iio_priv(indio_dev); + st_sensors_of_name_probe(&spi->dev, st_gyro_of_match, + spi->modalias, sizeof(spi->modalias)); st_sensors_spi_configure(indio_dev, spi, gdata); err = st_gyro_common_probe(indio_dev); @@ -63,6 +115,7 @@ MODULE_DEVICE_TABLE(spi, st_gyro_id_table); static struct spi_driver st_gyro_driver = { .driver = { .name = "st-gyro-spi", + .of_match_table = of_match_ptr(st_gyro_of_match), }, .probe = st_gyro_spi_probe, .remove = st_gyro_spi_remove, -- 2.13.1 -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH v2 4/4] iio: pressure: st_pressure_spi: add OF capability to st_pressure_spi [not found] ` <20170625152413.22325-1-lorenzo.bianconi-qxv4g6HH51o@public.gmane.org> ` (2 preceding siblings ...) 2017-06-25 15:24 ` [PATCH v2 3/4] iio: gyro: st_gyro_spi: add OF capability to st_gyro_spi Lorenzo Bianconi @ 2017-06-25 15:24 ` Lorenzo Bianconi 2017-06-25 16:15 ` [PATCH v2 0/4] Add OF support to ST sensor framework Jonathan Cameron 4 siblings, 0 replies; 10+ messages in thread From: Lorenzo Bianconi @ 2017-06-25 15:24 UTC (permalink / raw) To: jic23-DgEjT+Ai2ygdnm+yROfE0A Cc: linux-iio-u79uwXL29TY76Z2rM5mHXA, devicetree-u79uwXL29TY76Z2rM5mHXA, lorenzo.bianconi-qxv4g6HH51o Add device tree support for LPS22HB, LPS25H, LPS331AP, LPS001WP pressure sensors Signed-off-by: Lorenzo Bianconi <lorenzo.bianconi-qxv4g6HH51o@public.gmane.org> --- drivers/iio/pressure/st_pressure_spi.c | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/drivers/iio/pressure/st_pressure_spi.c b/drivers/iio/pressure/st_pressure_spi.c index 550508025af1..f5ebd36bb4bf 100644 --- a/drivers/iio/pressure/st_pressure_spi.c +++ b/drivers/iio/pressure/st_pressure_spi.c @@ -18,6 +18,36 @@ #include <linux/iio/common/st_sensors_spi.h> #include "st_pressure.h" +#ifdef CONFIG_OF +/* + * For new single-chip sensors use <device_name> as compatible string. + * For old single-chip devices keep <device_name>-press to maintain + * compatibility + */ +static const struct of_device_id st_press_of_match[] = { + { + .compatible = "st,lps001wp-press", + .data = LPS001WP_PRESS_DEV_NAME, + }, + { + .compatible = "st,lps25h-press", + .data = LPS25H_PRESS_DEV_NAME, + }, + { + .compatible = "st,lps331ap-press", + .data = LPS331AP_PRESS_DEV_NAME, + }, + { + .compatible = "st,lps22hb-press", + .data = LPS22HB_PRESS_DEV_NAME, + }, + {}, +}; +MODULE_DEVICE_TABLE(of, st_press_of_match); +#else +#define st_press_of_match NULL +#endif + static int st_press_spi_probe(struct spi_device *spi) { struct iio_dev *indio_dev; @@ -30,6 +60,8 @@ static int st_press_spi_probe(struct spi_device *spi) press_data = iio_priv(indio_dev); + st_sensors_of_name_probe(&spi->dev, st_press_of_match, + spi->modalias, sizeof(spi->modalias)); st_sensors_spi_configure(indio_dev, spi, press_data); err = st_press_common_probe(indio_dev); @@ -58,6 +90,7 @@ MODULE_DEVICE_TABLE(spi, st_press_id_table); static struct spi_driver st_press_driver = { .driver = { .name = "st-press-spi", + .of_match_table = of_match_ptr(st_press_of_match), }, .probe = st_press_spi_probe, .remove = st_press_spi_remove, -- 2.13.1 -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: [PATCH v2 0/4] Add OF support to ST sensor framework [not found] ` <20170625152413.22325-1-lorenzo.bianconi-qxv4g6HH51o@public.gmane.org> ` (3 preceding siblings ...) 2017-06-25 15:24 ` [PATCH v2 4/4] iio: pressure: st_pressure_spi: add OF capability to st_pressure_spi Lorenzo Bianconi @ 2017-06-25 16:15 ` Jonathan Cameron 4 siblings, 0 replies; 10+ messages in thread From: Jonathan Cameron @ 2017-06-25 16:15 UTC (permalink / raw) To: Lorenzo Bianconi Cc: linux-iio-u79uwXL29TY76Z2rM5mHXA, devicetree-u79uwXL29TY76Z2rM5mHXA, lorenzo.bianconi-qxv4g6HH51o On Sun, 25 Jun 2017 17:24:09 +0200 Lorenzo Bianconi <lorenzo.bianconi83-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote: > Changes since v1: > - add missing devices to {accel, magn, gyro, press} of_device_id table > > Lorenzo Bianconi (4): > iio: accel: st_accel_spi: add OF capability to st_accel_spi > iio: magnetometer: st_magn_spi: add OF capability to st_magn_spi > iio: gyro: st_gyro_spi: add OF capability to st_gyro_spi > iio: pressure: st_pressure_spi: add OF capability to st_pressure_spi I am going to let the series as a whole sit a little while to see if anyone has a better way of dealing with the prefixes we added in the past that aren't really right for devicetree bindings. Jonathan > > drivers/iio/accel/st_accel_spi.c | 67 ++++++++++++++++++++++++++++++---- > drivers/iio/gyro/st_gyro_spi.c | 53 +++++++++++++++++++++++++++ > drivers/iio/magnetometer/st_magn_spi.c | 25 +++++++++++++ > drivers/iio/pressure/st_pressure_spi.c | 33 +++++++++++++++++ > 4 files changed, 170 insertions(+), 8 deletions(-) > ^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2017-06-25 20:24 UTC | newest] Thread overview: 10+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2017-06-25 15:24 [PATCH v2 0/4] Add OF support to ST sensor framework Lorenzo Bianconi [not found] ` <20170625152413.22325-1-lorenzo.bianconi-qxv4g6HH51o@public.gmane.org> 2017-06-25 15:24 ` [PATCH v2 1/4] iio: accel: st_accel_spi: add OF capability to st_accel_spi Lorenzo Bianconi [not found] ` <20170625152413.22325-2-lorenzo.bianconi-qxv4g6HH51o@public.gmane.org> 2017-06-25 16:14 ` Jonathan Cameron [not found] ` <20170625171404.4ee965c7-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org> 2017-06-25 16:20 ` Lorenzo Bianconi [not found] ` <CAA2SeNKs8VZehYWpGjnPzTn4N5dzK6VxQs5=e51p2cXVWzPkig-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org> 2017-06-25 16:58 ` Jonathan Cameron [not found] ` <140A7A0D-35DB-433F-8861-2D4400AA7942-tko9wxEg+fIOOJlXag/Snyp2UmYkHbXO@public.gmane.org> 2017-06-25 20:24 ` Lorenzo Bianconi 2017-06-25 15:24 ` [PATCH v2 2/4] iio: magnetometer: st_magn_spi: add OF capability to st_magn_spi Lorenzo Bianconi 2017-06-25 15:24 ` [PATCH v2 3/4] iio: gyro: st_gyro_spi: add OF capability to st_gyro_spi Lorenzo Bianconi 2017-06-25 15:24 ` [PATCH v2 4/4] iio: pressure: st_pressure_spi: add OF capability to st_pressure_spi Lorenzo Bianconi 2017-06-25 16:15 ` [PATCH v2 0/4] Add OF support to ST sensor framework Jonathan Cameron
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).