All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jonathan Cameron <jic23@kernel.org>
To: Lee Jones <lee.jones@linaro.org>
Cc: linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org, jic23@cam.ac.uk, arnd@arndb.de,
	linus.walleij@linaro.org, denis.ciocca@st.com,
	linux-iio@vger.kernel.org
Subject: Re: [PATCH 15/20] iio: pressure: st: Add support for new LPS001WP pressure sensor
Date: Sat, 21 Sep 2013 13:53:55 +0100	[thread overview]
Message-ID: <523D96E3.40107@kernel.org> (raw)
In-Reply-To: <1379347346-823-16-git-send-email-lee.jones@linaro.org>

On 09/16/13 17:02, Lee Jones wrote:
> Here we use existing practices to introduce support for another
> pressure/temperature sensor, the LPS001WP.
> 
> Signed-off-by: Lee Jones <lee.jones@linaro.org>
Applied to the togreg branch of iio.git

Thanks
> ---
>  drivers/iio/pressure/st_pressure.h      |  1 +
>  drivers/iio/pressure/st_pressure_core.c | 84 +++++++++++++++++++++++++++++++++
>  drivers/iio/pressure/st_pressure_i2c.c  |  1 +
>  3 files changed, 86 insertions(+)
> 
> diff --git a/drivers/iio/pressure/st_pressure.h b/drivers/iio/pressure/st_pressure.h
> index b0b6306..049c21a 100644
> --- a/drivers/iio/pressure/st_pressure.h
> +++ b/drivers/iio/pressure/st_pressure.h
> @@ -14,6 +14,7 @@
>  #include <linux/types.h>
>  #include <linux/iio/common/st_sensors.h>
>  
> +#define LPS001WP_PRESS_DEV_NAME		"lps001wp"
>  #define LPS331AP_PRESS_DEV_NAME		"lps331ap"
>  
>  /**
> diff --git a/drivers/iio/pressure/st_pressure_core.c b/drivers/iio/pressure/st_pressure_core.c
> index 4539953..e879542 100644
> --- a/drivers/iio/pressure/st_pressure_core.c
> +++ b/drivers/iio/pressure/st_pressure_core.c
> @@ -64,6 +64,21 @@
>  #define ST_PRESS_LPS331AP_OUT_XL_ADDR		0x28
>  #define ST_TEMP_LPS331AP_OUT_L_ADDR		0x2b
>  
> +/* CUSTOM VALUES FOR LPS001WP SENSOR */
> +#define ST_PRESS_LPS001WP_WAI_EXP		0xba
> +#define ST_PRESS_LPS001WP_ODR_ADDR		0x20
> +#define ST_PRESS_LPS001WP_ODR_MASK		0x30
> +#define ST_PRESS_LPS001WP_ODR_AVL_1HZ_VAL	0x01
> +#define ST_PRESS_LPS001WP_ODR_AVL_7HZ_VAL	0x02
> +#define ST_PRESS_LPS001WP_ODR_AVL_13HZ_VAL	0x03
> +#define ST_PRESS_LPS001WP_PW_ADDR		0x20
> +#define ST_PRESS_LPS001WP_PW_MASK		0x40
> +#define ST_PRESS_LPS001WP_BDU_ADDR		0x20
> +#define ST_PRESS_LPS001WP_BDU_MASK		0x04
> +#define ST_PRESS_LPS001WP_MULTIREAD_BIT		true
> +#define ST_PRESS_LPS001WP_OUT_L_ADDR		0x28
> +#define ST_TEMP_LPS001WP_OUT_L_ADDR		0x2a
> +
>  static const struct iio_chan_spec st_press_lps331ap_channels[] = {
>  	{
>  		.type = IIO_PRESSURE,
> @@ -100,6 +115,40 @@ static const struct iio_chan_spec st_press_lps331ap_channels[] = {
>  	IIO_CHAN_SOFT_TIMESTAMP(1)
>  };
>  
> +static const struct iio_chan_spec st_press_lps001wp_channels[] = {
> +	{
> +		.type = IIO_PRESSURE,
> +		.channel2 = IIO_NO_MOD,
> +		.address = ST_PRESS_LPS001WP_OUT_L_ADDR,
> +		.scan_index = ST_SENSORS_SCAN_X,
> +		.scan_type = {
> +			.sign = 'u',
> +			.realbits = 16,
> +			.storagebits = 16,
> +			.endianness = IIO_LE,
> +		},
> +		.info_mask_separate = BIT(IIO_CHAN_INFO_RAW),
> +		.modified = 0,
> +	},
> +	{
> +		.type = IIO_TEMP,
> +		.channel2 = IIO_NO_MOD,
> +		.address = ST_TEMP_LPS001WP_OUT_L_ADDR,
> +		.scan_index = -1,
> +		.scan_type = {
> +			.sign = 'u',
> +			.realbits = 16,
> +			.storagebits = 16,
> +			.endianness = IIO_LE,
> +		},
> +		.info_mask_separate =
> +			BIT(IIO_CHAN_INFO_RAW) |
> +			BIT(IIO_CHAN_INFO_OFFSET),
> +		.modified = 0,
> +	},
> +	IIO_CHAN_SOFT_TIMESTAMP(1)
> +};
> +
>  static const struct st_sensors st_press_sensors[] = {
>  	{
>  		.wai = ST_PRESS_LPS331AP_WAI_EXP,
> @@ -148,6 +197,41 @@ static const struct st_sensors st_press_sensors[] = {
>  		.multi_read_bit = ST_PRESS_LPS331AP_MULTIREAD_BIT,
>  		.bootime = 2,
>  	},
> +	{
> +		.wai = ST_PRESS_LPS001WP_WAI_EXP,
> +		.sensors_supported = {
> +			[0] = LPS001WP_PRESS_DEV_NAME,
> +		},
> +		.ch = (struct iio_chan_spec *)st_press_lps001wp_channels,
> +		.num_ch = ARRAY_SIZE(st_press_lps001wp_channels),
> +		.odr = {
> +			.addr = ST_PRESS_LPS001WP_ODR_ADDR,
> +			.mask = ST_PRESS_LPS001WP_ODR_MASK,
> +			.odr_avl = {
> +				{ 1, ST_PRESS_LPS001WP_ODR_AVL_1HZ_VAL, },
> +				{ 7, ST_PRESS_LPS001WP_ODR_AVL_7HZ_VAL, },
> +				{ 13, ST_PRESS_LPS001WP_ODR_AVL_13HZ_VAL, },
> +			},
> +		},
> +		.pw = {
> +			.addr = ST_PRESS_LPS001WP_PW_ADDR,
> +			.mask = ST_PRESS_LPS001WP_PW_MASK,
> +			.value_on = ST_SENSORS_DEFAULT_POWER_ON_VALUE,
> +			.value_off = ST_SENSORS_DEFAULT_POWER_OFF_VALUE,
> +		},
> +		.fs = {
> +			.addr = 0,
> +		},
> +		.bdu = {
> +			.addr = ST_PRESS_LPS001WP_BDU_ADDR,
> +			.mask = ST_PRESS_LPS001WP_BDU_MASK,
> +		},
> +		.drdy_irq = {
> +			.addr = 0,
> +		},
> +		.multi_read_bit = ST_PRESS_LPS001WP_MULTIREAD_BIT,
> +		.bootime = 2,
> +	},
>  };
>  
>  static int st_press_read_raw(struct iio_dev *indio_dev,
> diff --git a/drivers/iio/pressure/st_pressure_i2c.c b/drivers/iio/pressure/st_pressure_i2c.c
> index 08aac5e..51eab7f 100644
> --- a/drivers/iio/pressure/st_pressure_i2c.c
> +++ b/drivers/iio/pressure/st_pressure_i2c.c
> @@ -49,6 +49,7 @@ static int st_press_i2c_remove(struct i2c_client *client)
>  }
>  
>  static const struct i2c_device_id st_press_id_table[] = {
> +	{ LPS001WP_PRESS_DEV_NAME },
>  	{ LPS331AP_PRESS_DEV_NAME },
>  	{},
>  };
> 

WARNING: multiple messages have this Message-ID (diff)
From: jic23@kernel.org (Jonathan Cameron)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 15/20] iio: pressure: st: Add support for new LPS001WP pressure sensor
Date: Sat, 21 Sep 2013 13:53:55 +0100	[thread overview]
Message-ID: <523D96E3.40107@kernel.org> (raw)
In-Reply-To: <1379347346-823-16-git-send-email-lee.jones@linaro.org>

On 09/16/13 17:02, Lee Jones wrote:
> Here we use existing practices to introduce support for another
> pressure/temperature sensor, the LPS001WP.
> 
> Signed-off-by: Lee Jones <lee.jones@linaro.org>
Applied to the togreg branch of iio.git

Thanks
> ---
>  drivers/iio/pressure/st_pressure.h      |  1 +
>  drivers/iio/pressure/st_pressure_core.c | 84 +++++++++++++++++++++++++++++++++
>  drivers/iio/pressure/st_pressure_i2c.c  |  1 +
>  3 files changed, 86 insertions(+)
> 
> diff --git a/drivers/iio/pressure/st_pressure.h b/drivers/iio/pressure/st_pressure.h
> index b0b6306..049c21a 100644
> --- a/drivers/iio/pressure/st_pressure.h
> +++ b/drivers/iio/pressure/st_pressure.h
> @@ -14,6 +14,7 @@
>  #include <linux/types.h>
>  #include <linux/iio/common/st_sensors.h>
>  
> +#define LPS001WP_PRESS_DEV_NAME		"lps001wp"
>  #define LPS331AP_PRESS_DEV_NAME		"lps331ap"
>  
>  /**
> diff --git a/drivers/iio/pressure/st_pressure_core.c b/drivers/iio/pressure/st_pressure_core.c
> index 4539953..e879542 100644
> --- a/drivers/iio/pressure/st_pressure_core.c
> +++ b/drivers/iio/pressure/st_pressure_core.c
> @@ -64,6 +64,21 @@
>  #define ST_PRESS_LPS331AP_OUT_XL_ADDR		0x28
>  #define ST_TEMP_LPS331AP_OUT_L_ADDR		0x2b
>  
> +/* CUSTOM VALUES FOR LPS001WP SENSOR */
> +#define ST_PRESS_LPS001WP_WAI_EXP		0xba
> +#define ST_PRESS_LPS001WP_ODR_ADDR		0x20
> +#define ST_PRESS_LPS001WP_ODR_MASK		0x30
> +#define ST_PRESS_LPS001WP_ODR_AVL_1HZ_VAL	0x01
> +#define ST_PRESS_LPS001WP_ODR_AVL_7HZ_VAL	0x02
> +#define ST_PRESS_LPS001WP_ODR_AVL_13HZ_VAL	0x03
> +#define ST_PRESS_LPS001WP_PW_ADDR		0x20
> +#define ST_PRESS_LPS001WP_PW_MASK		0x40
> +#define ST_PRESS_LPS001WP_BDU_ADDR		0x20
> +#define ST_PRESS_LPS001WP_BDU_MASK		0x04
> +#define ST_PRESS_LPS001WP_MULTIREAD_BIT		true
> +#define ST_PRESS_LPS001WP_OUT_L_ADDR		0x28
> +#define ST_TEMP_LPS001WP_OUT_L_ADDR		0x2a
> +
>  static const struct iio_chan_spec st_press_lps331ap_channels[] = {
>  	{
>  		.type = IIO_PRESSURE,
> @@ -100,6 +115,40 @@ static const struct iio_chan_spec st_press_lps331ap_channels[] = {
>  	IIO_CHAN_SOFT_TIMESTAMP(1)
>  };
>  
> +static const struct iio_chan_spec st_press_lps001wp_channels[] = {
> +	{
> +		.type = IIO_PRESSURE,
> +		.channel2 = IIO_NO_MOD,
> +		.address = ST_PRESS_LPS001WP_OUT_L_ADDR,
> +		.scan_index = ST_SENSORS_SCAN_X,
> +		.scan_type = {
> +			.sign = 'u',
> +			.realbits = 16,
> +			.storagebits = 16,
> +			.endianness = IIO_LE,
> +		},
> +		.info_mask_separate = BIT(IIO_CHAN_INFO_RAW),
> +		.modified = 0,
> +	},
> +	{
> +		.type = IIO_TEMP,
> +		.channel2 = IIO_NO_MOD,
> +		.address = ST_TEMP_LPS001WP_OUT_L_ADDR,
> +		.scan_index = -1,
> +		.scan_type = {
> +			.sign = 'u',
> +			.realbits = 16,
> +			.storagebits = 16,
> +			.endianness = IIO_LE,
> +		},
> +		.info_mask_separate =
> +			BIT(IIO_CHAN_INFO_RAW) |
> +			BIT(IIO_CHAN_INFO_OFFSET),
> +		.modified = 0,
> +	},
> +	IIO_CHAN_SOFT_TIMESTAMP(1)
> +};
> +
>  static const struct st_sensors st_press_sensors[] = {
>  	{
>  		.wai = ST_PRESS_LPS331AP_WAI_EXP,
> @@ -148,6 +197,41 @@ static const struct st_sensors st_press_sensors[] = {
>  		.multi_read_bit = ST_PRESS_LPS331AP_MULTIREAD_BIT,
>  		.bootime = 2,
>  	},
> +	{
> +		.wai = ST_PRESS_LPS001WP_WAI_EXP,
> +		.sensors_supported = {
> +			[0] = LPS001WP_PRESS_DEV_NAME,
> +		},
> +		.ch = (struct iio_chan_spec *)st_press_lps001wp_channels,
> +		.num_ch = ARRAY_SIZE(st_press_lps001wp_channels),
> +		.odr = {
> +			.addr = ST_PRESS_LPS001WP_ODR_ADDR,
> +			.mask = ST_PRESS_LPS001WP_ODR_MASK,
> +			.odr_avl = {
> +				{ 1, ST_PRESS_LPS001WP_ODR_AVL_1HZ_VAL, },
> +				{ 7, ST_PRESS_LPS001WP_ODR_AVL_7HZ_VAL, },
> +				{ 13, ST_PRESS_LPS001WP_ODR_AVL_13HZ_VAL, },
> +			},
> +		},
> +		.pw = {
> +			.addr = ST_PRESS_LPS001WP_PW_ADDR,
> +			.mask = ST_PRESS_LPS001WP_PW_MASK,
> +			.value_on = ST_SENSORS_DEFAULT_POWER_ON_VALUE,
> +			.value_off = ST_SENSORS_DEFAULT_POWER_OFF_VALUE,
> +		},
> +		.fs = {
> +			.addr = 0,
> +		},
> +		.bdu = {
> +			.addr = ST_PRESS_LPS001WP_BDU_ADDR,
> +			.mask = ST_PRESS_LPS001WP_BDU_MASK,
> +		},
> +		.drdy_irq = {
> +			.addr = 0,
> +		},
> +		.multi_read_bit = ST_PRESS_LPS001WP_MULTIREAD_BIT,
> +		.bootime = 2,
> +	},
>  };
>  
>  static int st_press_read_raw(struct iio_dev *indio_dev,
> diff --git a/drivers/iio/pressure/st_pressure_i2c.c b/drivers/iio/pressure/st_pressure_i2c.c
> index 08aac5e..51eab7f 100644
> --- a/drivers/iio/pressure/st_pressure_i2c.c
> +++ b/drivers/iio/pressure/st_pressure_i2c.c
> @@ -49,6 +49,7 @@ static int st_press_i2c_remove(struct i2c_client *client)
>  }
>  
>  static const struct i2c_device_id st_press_id_table[] = {
> +	{ LPS001WP_PRESS_DEV_NAME },
>  	{ LPS331AP_PRESS_DEV_NAME },
>  	{},
>  };
> 

  reply	other threads:[~2013-09-21 11:53 UTC|newest]

Thread overview: 75+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-09-16 16:02 [PATCH v4 00/20] iio: ST clean-ups and new sensor support Lee Jones
2013-09-16 16:02 ` Lee Jones
2013-09-16 16:02 ` [PATCH 01/20] ARM: ux500: Remove PrimeCell IDs from Nomadik I2C DT nodes Lee Jones
2013-09-16 16:02   ` Lee Jones
2013-09-16 16:02 ` [PATCH 02/20] ARM: ux500: Enable the LPS001WP Pressure & Temperature sensor from DT Lee Jones
2013-09-16 16:02   ` Lee Jones
2013-09-16 16:02 ` [PATCH 03/20] ARM: ux500: Enable the LSM303DLH Accelerator " Lee Jones
2013-09-16 16:02   ` Lee Jones
2013-09-16 16:02 ` [PATCH 04/20] ARM: ux500: Enable the LSM303DLH Magnetometer " Lee Jones
2013-09-16 16:02   ` Lee Jones
2013-09-16 16:02 ` [PATCH 05/20] ARM: ux500: Enable the L3G4200D Gyroscope " Lee Jones
2013-09-16 16:02   ` Lee Jones
2013-09-16 16:02 ` [PATCH 06/20] ARM: ux500: CONFIG: Enable ST's IIO Sensors by default Lee Jones
2013-09-16 16:02   ` Lee Jones
2013-09-16 16:02 ` [PATCH 07/20] Documentation: dt: iio: Add binding for LPS001WP Lee Jones
2013-09-16 16:02   ` Lee Jones
2013-09-16 16:02   ` Lee Jones
2013-10-01 21:09   ` Jonathan Cameron
2013-10-01 21:09     ` Jonathan Cameron
2013-10-01 21:09     ` Jonathan Cameron
2013-10-01 21:13     ` Jonathan Cameron
2013-10-01 21:13       ` Jonathan Cameron
2013-10-01 21:13       ` Jonathan Cameron
2013-09-16 16:02 ` [PATCH 08/20] Documentation: dt: iio: Add binding for LSM303DLH - Accel Lee Jones
2013-09-16 16:02   ` Lee Jones
2013-09-16 16:02   ` Lee Jones
2013-09-16 16:02 ` [PATCH 09/20] Documentation: dt: iio: Add binding for L3G4200D Lee Jones
2013-09-16 16:02   ` Lee Jones
2013-09-16 16:02 ` [PATCH 10/20] Documentation: dt: iio: Add binding for LSM303DLH - Magn Lee Jones
2013-09-16 16:02   ` Lee Jones
2013-09-16 16:02   ` Lee Jones
2013-09-16 16:02 ` [PATCH 11/20] iio: sensors-core: st: Support sensors which don't have a Data Ready pin Lee Jones
2013-09-16 16:02   ` Lee Jones
2013-09-21 12:51   ` Jonathan Cameron
2013-09-21 12:51     ` Jonathan Cameron
2013-09-21 13:07     ` Jonathan Cameron
2013-09-21 13:07       ` Jonathan Cameron
2013-09-16 16:02 ` [PATCH 12/20] iio: sensors-core: st: Clean-up error handling in st_sensors_init_sensor() Lee Jones
2013-09-16 16:02   ` Lee Jones
2013-09-21 12:51   ` Jonathan Cameron
2013-09-21 12:51     ` Jonathan Cameron
2013-09-16 16:02 ` [PATCH 13/20] iio: sensors-core: st: Clean-up error handling in st_sensors_read_axis_data() Lee Jones
2013-09-16 16:02   ` Lee Jones
2013-09-21 12:52   ` Jonathan Cameron
2013-09-21 12:52     ` Jonathan Cameron
2013-09-16 16:02 ` [PATCH 14/20] iio: pressure-core: st: Clean-up probe() function Lee Jones
2013-09-16 16:02   ` Lee Jones
2013-09-21 12:52   ` Jonathan Cameron
2013-09-21 12:52     ` Jonathan Cameron
2013-09-16 16:02 ` [PATCH 15/20] iio: pressure: st: Add support for new LPS001WP pressure sensor Lee Jones
2013-09-16 16:02   ` Lee Jones
2013-09-21 12:53   ` Jonathan Cameron [this message]
2013-09-21 12:53     ` Jonathan Cameron
2013-09-16 16:02 ` [PATCH 16/20] iio: pressure-core: st: Provide support for the Vdd power supply Lee Jones
2013-09-16 16:02   ` Lee Jones
2013-09-21 13:03   ` Jonathan Cameron
2013-09-21 13:03     ` Jonathan Cameron
2013-09-23 19:18   ` Jonathan Cameron
2013-09-23 19:18     ` Jonathan Cameron
2013-09-16 16:02 ` [PATCH 17/20] iio: pressure-core: st: Provide support for the Vdd_IO " Lee Jones
2013-09-16 16:02   ` Lee Jones
2013-09-23 19:19   ` Jonathan Cameron
2013-09-23 19:19     ` Jonathan Cameron
2013-09-16 16:02 ` [PATCH 18/20] iio: accel-core: st: Clean up error handling in probe() Lee Jones
2013-09-16 16:02   ` Lee Jones
2013-09-21 12:56   ` Jonathan Cameron
2013-09-21 12:56     ` Jonathan Cameron
2013-09-16 16:02 ` [PATCH 19/20] iio: gyro-core: " Lee Jones
2013-09-16 16:02   ` Lee Jones
2013-09-21 12:57   ` Jonathan Cameron
2013-09-21 12:57     ` Jonathan Cameron
2013-09-16 16:02 ` [PATCH 20/20] iio: magn-core: " Lee Jones
2013-09-16 16:02   ` Lee Jones
2013-09-21 12:57   ` Jonathan Cameron
2013-09-21 12:57     ` Jonathan Cameron

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=523D96E3.40107@kernel.org \
    --to=jic23@kernel.org \
    --cc=arnd@arndb.de \
    --cc=denis.ciocca@st.com \
    --cc=jic23@cam.ac.uk \
    --cc=lee.jones@linaro.org \
    --cc=linus.walleij@linaro.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-iio@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.