diff mbox series

[1/2] dt-bindings: st_sensors: add st,lis2hh12 compatible entry

Message ID 20200330141923.280226-1-rvlander@gaetanandre.eu
State Not Applicable, archived
Headers show
Series [1/2] dt-bindings: st_sensors: add st,lis2hh12 compatible entry | expand

Checks

Context Check Description
robh/checkpatch success

Commit Message

Gaëtan André March 30, 2020, 2:19 p.m. UTC
Add LIS2HH12 compatible entry.

Signed-off-by: Gaëtan André <rvlander@gaetanandre.eu>
---
 Documentation/devicetree/bindings/iio/st-sensors.txt | 1 +
 1 file changed, 1 insertion(+)


base-commit: b723e9431b77976b83efb90178dfcada3405321c

Comments

Stephan Gerhold March 30, 2020, 5:10 p.m. UTC | #1
Hi,

On Mon, Mar 30, 2020 at 04:19:23PM +0200, Gaëtan André wrote:
> Add support for STMicroelectronics LISHH12 accelerometer in st_accel
> framework.
> 
> https://www.st.com/resource/en/datasheet/lis2hh12.pdf
> 
> Signed-off-by: Gaëtan André <rvlander@gaetanandre.eu>

Thanks a lot for sending this patch upstream!

> ---
>  drivers/iio/accel/Kconfig         |  2 +-
>  drivers/iio/accel/st_accel.h      |  2 +
>  drivers/iio/accel/st_accel_core.c | 77 +++++++++++++++++++++++++++++++
>  drivers/iio/accel/st_accel_i2c.c  |  5 ++
>  4 files changed, 85 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/iio/accel/Kconfig b/drivers/iio/accel/Kconfig
> index 5d91a6dda894..24ebe9e76915 100644
> --- a/drivers/iio/accel/Kconfig
> +++ b/drivers/iio/accel/Kconfig
> @@ -238,7 +238,7 @@ config IIO_ST_ACCEL_3AXIS
>  	  Say yes here to build support for STMicroelectronics accelerometers:
>  	  LSM303DLH, LSM303DLHC, LIS3DH, LSM330D, LSM330DL, LSM330DLC,
>  	  LIS331DLH, LSM303DL, LSM303DLM, LSM330, LIS2DH12, H3LIS331DL,
> -	  LNG2DM, LIS3DE, LIS2DE12
> +	  LNG2DM, LIS3DE, LIS2DE12, LIS2HH12
>  
>  	  This driver can also be built as a module. If so, these modules
>  	  will be created:
> diff --git a/drivers/iio/accel/st_accel.h b/drivers/iio/accel/st_accel.h
> index 5b13e293cade..5d356288e001 100644
> --- a/drivers/iio/accel/st_accel.h
> +++ b/drivers/iio/accel/st_accel.h
> @@ -35,6 +35,7 @@ enum st_accel_type {
>  	LIS2DW12,
>  	LIS3DHH,
>  	LIS2DE12,
> +	LIS2HH12,
>  	ST_ACCEL_MAX,
>  };
>  
> @@ -59,6 +60,7 @@ enum st_accel_type {
>  #define LIS3DHH_ACCEL_DEV_NAME		"lis3dhh"
>  #define LIS3DE_ACCEL_DEV_NAME		"lis3de"
>  #define LIS2DE12_ACCEL_DEV_NAME		"lis2de12"
> +#define LIS2HH12_ACCEL_DEV_NAME		"lis2hh12"
>  
>  /**
>  * struct st_sensors_platform_data - default accel platform data
> diff --git a/drivers/iio/accel/st_accel_core.c b/drivers/iio/accel/st_accel_core.c
> index e2ec5d127495..43c50167d220 100644
> --- a/drivers/iio/accel/st_accel_core.c
> +++ b/drivers/iio/accel/st_accel_core.c
> @@ -904,6 +904,83 @@ static const struct st_sensor_settings st_accel_sensors_settings[] = {
>  		.multi_read_bit = true,
>  		.bootime = 2,
>  	},
> +	{
> +		.wai = 0x41,
> +		.wai_addr = ST_SENSORS_DEFAULT_WAI_ADDRESS,
> +		.sensors_supported = {
> +			[0] = LIS2HH12_ACCEL_DEV_NAME,
> +		},
> +		.ch = (struct iio_chan_spec *)st_accel_16bit_channels,
> +		.odr = {
> +			.addr = 0x20,
> +			.mask = 0x70,
> +			.odr_avl = {
> +				{ .hz = 10, .value = 0x01, },
> +				{ .hz = 50, .value = 0x02, },
> +				{ .hz = 100, .value = 0x03, },
> +				{ .hz = 200, .value = 0x04, },
> +				{ .hz = 400, .value = 0x05, },
> +				{ .hz = 800, .value = 0x06, },
> +			},
> +		},
> +		.pw = {
> +			.addr = 0x20,
> +			.mask = 0x70,
> +			.value_off = ST_SENSORS_DEFAULT_POWER_OFF_VALUE,
> +		},
> +		.enable_axis = {
> +			.addr = ST_SENSORS_DEFAULT_AXIS_ADDR,
> +			.mask = ST_SENSORS_DEFAULT_AXIS_MASK,
> +		},
> +		.fs = {
> +			.addr = 0x23,
> +			.mask = 0x30,
> +			.fs_avl = {
> +				[0] = {
> +					.num = ST_ACCEL_FS_AVL_2G,
> +					.value = 0x00,
> +					.gain = IIO_G_TO_M_S_2(61),
> +				},
> +				[1] = {
> +					.num = ST_ACCEL_FS_AVL_4G,
> +					.value = 0x02,
> +					.gain = IIO_G_TO_M_S_2(122),
> +				},
> +				[2] = {
> +					.num = ST_ACCEL_FS_AVL_8G,
> +					.value = 0x03,
> +					.gain = IIO_G_TO_M_S_2(244),
> +				},
> +			},
> +		},
> +		.bdu = {
> +			.addr = 0x20,
> +			.mask = 0x08,
> +		},
> +		.drdy_irq = {
> +			.int1 = {
> +				.addr = 0x22,
> +				.mask = 0x01,
> +			},
> +			.int2 = {
> +				.addr = 0x25,
> +				.mask = 0x01,
> +			},
> +			.addr_ihl = 0x24,
> +			.mask_ihl = 0x02,
> +			.stat_drdy = {
> +				.addr = ST_SENSORS_DEFAULT_STAT_ADDR,
> +				.mask = 0x07,
> +			},
> +		},
> +		.sim = {
> +			.addr = 0x23,
> +			.value = BIT(0),
> +		},
> +		.multi_read_bit = true,
> +		.bootime = 2,
> +	},
> +
>  };

I checked that this conforms to the information in the linked datasheet:

Reviewed-by: Stephan Gerhold <stephan@gerhold.net>

>  
>  static int st_accel_read_raw(struct iio_dev *indio_dev,
> diff --git a/drivers/iio/accel/st_accel_i2c.c b/drivers/iio/accel/st_accel_i2c.c
> index 8c489312f668..821854251a7b 100644
> --- a/drivers/iio/accel/st_accel_i2c.c
> +++ b/drivers/iio/accel/st_accel_i2c.c
> @@ -104,6 +104,10 @@ static const struct of_device_id st_accel_of_match[] = {
>  		.compatible = "st,lis2de12",
>  		.data = LIS2DE12_ACCEL_DEV_NAME,
>  	},
> +	{
> +		.compatible = "st,lis2hh12",
> +		.data = LIS2HH12_ACCEL_DEV_NAME,
> +	},
>  	{},
>  };
>  MODULE_DEVICE_TABLE(of, st_accel_of_match);
> @@ -138,6 +142,7 @@ static const struct i2c_device_id st_accel_id_table[] = {
>  	{ LIS2DW12_ACCEL_DEV_NAME },
>  	{ LIS3DE_ACCEL_DEV_NAME },
>  	{ LIS2DE12_ACCEL_DEV_NAME },
> +	{ LIS2HH12_ACCEL_DEV_NAME },
>  	{},
>  };
>  MODULE_DEVICE_TABLE(i2c, st_accel_id_table);
> -- 
> 2.26.0
Jonathan Cameron April 4, 2020, 3:41 p.m. UTC | #2
On Mon, 30 Mar 2020 16:19:22 +0200
Gaëtan André <rvlander@gaetanandre.eu> wrote:

> Add LIS2HH12 compatible entry.
> 
> Signed-off-by: Gaëtan André <rvlander@gaetanandre.eu>
Applied to the togreg branch of iio.git and pushed out as testing for
the autobuilders to ignore this patch (and build the next one!)

At somepoint we should look to convert this binding over to yaml.

Thanks,

Jonathan

> ---
>  Documentation/devicetree/bindings/iio/st-sensors.txt | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/Documentation/devicetree/bindings/iio/st-sensors.txt b/Documentation/devicetree/bindings/iio/st-sensors.txt
> index 0ef64a444479..3213599c5071 100644
> --- a/Documentation/devicetree/bindings/iio/st-sensors.txt
> +++ b/Documentation/devicetree/bindings/iio/st-sensors.txt
> @@ -50,6 +50,7 @@ Accelerometers:
>  - st,lis3dhh
>  - st,lis3de
>  - st,lis2de12
> +- st,lis2hh12
>  
>  Gyroscopes:
>  - st,l3g4200d-gyro
> 
> base-commit: b723e9431b77976b83efb90178dfcada3405321c
Jonathan Cameron April 4, 2020, 3:42 p.m. UTC | #3
On Mon, 30 Mar 2020 19:10:31 +0200
Stephan Gerhold <stephan@gerhold.net> wrote:

> Hi,
> 
> On Mon, Mar 30, 2020 at 04:19:23PM +0200, Gaëtan André wrote:
> > Add support for STMicroelectronics LISHH12 accelerometer in st_accel
> > framework.
> > 
> > https://www.st.com/resource/en/datasheet/lis2hh12.pdf
> > 
> > Signed-off-by: Gaëtan André <rvlander@gaetanandre.eu>  
> 
> Thanks a lot for sending this patch upstream!

Thanks. Applied to the togreg branch of iio.git and pushed out as testing
for the various autobuilders to poke at it.

Thanks,

Jonathan

> 
> > ---
> >  drivers/iio/accel/Kconfig         |  2 +-
> >  drivers/iio/accel/st_accel.h      |  2 +
> >  drivers/iio/accel/st_accel_core.c | 77 +++++++++++++++++++++++++++++++
> >  drivers/iio/accel/st_accel_i2c.c  |  5 ++
> >  4 files changed, 85 insertions(+), 1 deletion(-)
> > 
> > diff --git a/drivers/iio/accel/Kconfig b/drivers/iio/accel/Kconfig
> > index 5d91a6dda894..24ebe9e76915 100644
> > --- a/drivers/iio/accel/Kconfig
> > +++ b/drivers/iio/accel/Kconfig
> > @@ -238,7 +238,7 @@ config IIO_ST_ACCEL_3AXIS
> >  	  Say yes here to build support for STMicroelectronics accelerometers:
> >  	  LSM303DLH, LSM303DLHC, LIS3DH, LSM330D, LSM330DL, LSM330DLC,
> >  	  LIS331DLH, LSM303DL, LSM303DLM, LSM330, LIS2DH12, H3LIS331DL,
> > -	  LNG2DM, LIS3DE, LIS2DE12
> > +	  LNG2DM, LIS3DE, LIS2DE12, LIS2HH12
> >  
> >  	  This driver can also be built as a module. If so, these modules
> >  	  will be created:
> > diff --git a/drivers/iio/accel/st_accel.h b/drivers/iio/accel/st_accel.h
> > index 5b13e293cade..5d356288e001 100644
> > --- a/drivers/iio/accel/st_accel.h
> > +++ b/drivers/iio/accel/st_accel.h
> > @@ -35,6 +35,7 @@ enum st_accel_type {
> >  	LIS2DW12,
> >  	LIS3DHH,
> >  	LIS2DE12,
> > +	LIS2HH12,
> >  	ST_ACCEL_MAX,
> >  };
> >  
> > @@ -59,6 +60,7 @@ enum st_accel_type {
> >  #define LIS3DHH_ACCEL_DEV_NAME		"lis3dhh"
> >  #define LIS3DE_ACCEL_DEV_NAME		"lis3de"
> >  #define LIS2DE12_ACCEL_DEV_NAME		"lis2de12"
> > +#define LIS2HH12_ACCEL_DEV_NAME		"lis2hh12"
> >  
> >  /**
> >  * struct st_sensors_platform_data - default accel platform data
> > diff --git a/drivers/iio/accel/st_accel_core.c b/drivers/iio/accel/st_accel_core.c
> > index e2ec5d127495..43c50167d220 100644
> > --- a/drivers/iio/accel/st_accel_core.c
> > +++ b/drivers/iio/accel/st_accel_core.c
> > @@ -904,6 +904,83 @@ static const struct st_sensor_settings st_accel_sensors_settings[] = {
> >  		.multi_read_bit = true,
> >  		.bootime = 2,
> >  	},
> > +	{
> > +		.wai = 0x41,
> > +		.wai_addr = ST_SENSORS_DEFAULT_WAI_ADDRESS,
> > +		.sensors_supported = {
> > +			[0] = LIS2HH12_ACCEL_DEV_NAME,
> > +		},
> > +		.ch = (struct iio_chan_spec *)st_accel_16bit_channels,
> > +		.odr = {
> > +			.addr = 0x20,
> > +			.mask = 0x70,
> > +			.odr_avl = {
> > +				{ .hz = 10, .value = 0x01, },
> > +				{ .hz = 50, .value = 0x02, },
> > +				{ .hz = 100, .value = 0x03, },
> > +				{ .hz = 200, .value = 0x04, },
> > +				{ .hz = 400, .value = 0x05, },
> > +				{ .hz = 800, .value = 0x06, },
> > +			},
> > +		},
> > +		.pw = {
> > +			.addr = 0x20,
> > +			.mask = 0x70,
> > +			.value_off = ST_SENSORS_DEFAULT_POWER_OFF_VALUE,
> > +		},
> > +		.enable_axis = {
> > +			.addr = ST_SENSORS_DEFAULT_AXIS_ADDR,
> > +			.mask = ST_SENSORS_DEFAULT_AXIS_MASK,
> > +		},
> > +		.fs = {
> > +			.addr = 0x23,
> > +			.mask = 0x30,
> > +			.fs_avl = {
> > +				[0] = {
> > +					.num = ST_ACCEL_FS_AVL_2G,
> > +					.value = 0x00,
> > +					.gain = IIO_G_TO_M_S_2(61),
> > +				},
> > +				[1] = {
> > +					.num = ST_ACCEL_FS_AVL_4G,
> > +					.value = 0x02,
> > +					.gain = IIO_G_TO_M_S_2(122),
> > +				},
> > +				[2] = {
> > +					.num = ST_ACCEL_FS_AVL_8G,
> > +					.value = 0x03,
> > +					.gain = IIO_G_TO_M_S_2(244),
> > +				},
> > +			},
> > +		},
> > +		.bdu = {
> > +			.addr = 0x20,
> > +			.mask = 0x08,
> > +		},
> > +		.drdy_irq = {
> > +			.int1 = {
> > +				.addr = 0x22,
> > +				.mask = 0x01,
> > +			},
> > +			.int2 = {
> > +				.addr = 0x25,
> > +				.mask = 0x01,
> > +			},
> > +			.addr_ihl = 0x24,
> > +			.mask_ihl = 0x02,
> > +			.stat_drdy = {
> > +				.addr = ST_SENSORS_DEFAULT_STAT_ADDR,
> > +				.mask = 0x07,
> > +			},
> > +		},
> > +		.sim = {
> > +			.addr = 0x23,
> > +			.value = BIT(0),
> > +		},
> > +		.multi_read_bit = true,
> > +		.bootime = 2,
> > +	},
> > +
> >  };  
> 
> I checked that this conforms to the information in the linked datasheet:
> 
> Reviewed-by: Stephan Gerhold <stephan@gerhold.net>
> 
> >  
> >  static int st_accel_read_raw(struct iio_dev *indio_dev,
> > diff --git a/drivers/iio/accel/st_accel_i2c.c b/drivers/iio/accel/st_accel_i2c.c
> > index 8c489312f668..821854251a7b 100644
> > --- a/drivers/iio/accel/st_accel_i2c.c
> > +++ b/drivers/iio/accel/st_accel_i2c.c
> > @@ -104,6 +104,10 @@ static const struct of_device_id st_accel_of_match[] = {
> >  		.compatible = "st,lis2de12",
> >  		.data = LIS2DE12_ACCEL_DEV_NAME,
> >  	},
> > +	{
> > +		.compatible = "st,lis2hh12",
> > +		.data = LIS2HH12_ACCEL_DEV_NAME,
> > +	},
> >  	{},
> >  };
> >  MODULE_DEVICE_TABLE(of, st_accel_of_match);
> > @@ -138,6 +142,7 @@ static const struct i2c_device_id st_accel_id_table[] = {
> >  	{ LIS2DW12_ACCEL_DEV_NAME },
> >  	{ LIS3DE_ACCEL_DEV_NAME },
> >  	{ LIS2DE12_ACCEL_DEV_NAME },
> > +	{ LIS2HH12_ACCEL_DEV_NAME },
> >  	{},
> >  };
> >  MODULE_DEVICE_TABLE(i2c, st_accel_id_table);
> > -- 
> > 2.26.0
diff mbox series

Patch

diff --git a/Documentation/devicetree/bindings/iio/st-sensors.txt b/Documentation/devicetree/bindings/iio/st-sensors.txt
index 0ef64a444479..3213599c5071 100644
--- a/Documentation/devicetree/bindings/iio/st-sensors.txt
+++ b/Documentation/devicetree/bindings/iio/st-sensors.txt
@@ -50,6 +50,7 @@  Accelerometers:
 - st,lis3dhh
 - st,lis3de
 - st,lis2de12
+- st,lis2hh12
 
 Gyroscopes:
 - st,l3g4200d-gyro