From: Jonathan Cameron <jic23@kernel.org>
To: Denis CIOCCA <denis.ciocca@st.com>, linux-iio@vger.kernel.org
Cc: lee.jones@linaro.org
Subject: Re: [PATCH] iio:pressure: Add support for LPS25H pressure sensor
Date: Sat, 22 Feb 2014 13:09:35 +0000 [thread overview]
Message-ID: <5308A18F.9010409@kernel.org> (raw)
In-Reply-To: <1392918567-2195-1-git-send-email-denis.ciocca@st.com>
On 20/02/14 17:49, Denis CIOCCA wrote:
> This patch adds support for the new barometer sensor: LPS25H.
>
> Signed-off-by: Denis Ciocca <denis.ciocca@st.com>
Looks like a straight forward support addition.
Applied to the togreg branch of iio.git
Thanks,
Jonathan
> ---
> drivers/iio/pressure/Kconfig | 2 +-
> drivers/iio/pressure/st_pressure.h | 1 +
> drivers/iio/pressure/st_pressure_core.c | 87 ++++++++++++++++++++++++++++++---
> drivers/iio/pressure/st_pressure_i2c.c | 1 +
> drivers/iio/pressure/st_pressure_spi.c | 1 +
> 5 files changed, 84 insertions(+), 8 deletions(-)
>
> diff --git a/drivers/iio/pressure/Kconfig b/drivers/iio/pressure/Kconfig
> index a8b9cae..9949533 100644
> --- a/drivers/iio/pressure/Kconfig
> +++ b/drivers/iio/pressure/Kconfig
> @@ -26,7 +26,7 @@ config IIO_ST_PRESS
> select IIO_TRIGGERED_BUFFER if (IIO_BUFFER)
> help
> Say yes here to build support for STMicroelectronics pressure
> - sensors: LPS001WP, LPS331AP.
> + sensors: LPS001WP, LPS25H, LPS331AP.
>
> This driver can also be built as a module. If so, these modules
> will be created:
> diff --git a/drivers/iio/pressure/st_pressure.h b/drivers/iio/pressure/st_pressure.h
> index 049c21a..242943c 100644
> --- a/drivers/iio/pressure/st_pressure.h
> +++ b/drivers/iio/pressure/st_pressure.h
> @@ -15,6 +15,7 @@
> #include <linux/iio/common/st_sensors.h>
>
> #define LPS001WP_PRESS_DEV_NAME "lps001wp"
> +#define LPS25H_PRESS_DEV_NAME "lps25h"
> #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 58083f9..7418768 100644
> --- a/drivers/iio/pressure/st_pressure_core.c
> +++ b/drivers/iio/pressure/st_pressure_core.c
> @@ -40,6 +40,9 @@
> /* FULLSCALE */
> #define ST_PRESS_FS_AVL_1260MB 1260
>
> +#define ST_PRESS_1_OUT_XL_ADDR 0x28
> +#define ST_TEMP_1_OUT_L_ADDR 0x2b
> +
> /* CUSTOM VALUES FOR LPS331AP SENSOR */
> #define ST_PRESS_LPS331AP_WAI_EXP 0xbb
> #define ST_PRESS_LPS331AP_ODR_ADDR 0x20
> @@ -62,8 +65,6 @@
> #define ST_PRESS_LPS331AP_DRDY_IRQ_INT2_MASK 0x20
> #define ST_PRESS_LPS331AP_MULTIREAD_BIT true
> #define ST_PRESS_LPS331AP_TEMP_OFFSET 42500
> -#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
> @@ -80,11 +81,36 @@
> #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[] = {
> +/* CUSTOM VALUES FOR LPS25H SENSOR */
> +#define ST_PRESS_LPS25H_WAI_EXP 0xbd
> +#define ST_PRESS_LPS25H_ODR_ADDR 0x20
> +#define ST_PRESS_LPS25H_ODR_MASK 0x70
> +#define ST_PRESS_LPS25H_ODR_AVL_1HZ_VAL 0x01
> +#define ST_PRESS_LPS25H_ODR_AVL_7HZ_VAL 0x02
> +#define ST_PRESS_LPS25H_ODR_AVL_13HZ_VAL 0x03
> +#define ST_PRESS_LPS25H_ODR_AVL_25HZ_VAL 0x04
> +#define ST_PRESS_LPS25H_PW_ADDR 0x20
> +#define ST_PRESS_LPS25H_PW_MASK 0x80
> +#define ST_PRESS_LPS25H_FS_ADDR 0x00
> +#define ST_PRESS_LPS25H_FS_MASK 0x00
> +#define ST_PRESS_LPS25H_FS_AVL_1260_VAL 0x00
> +#define ST_PRESS_LPS25H_FS_AVL_1260_GAIN ST_PRESS_KPASCAL_NANO_SCALE
> +#define ST_PRESS_LPS25H_FS_AVL_TEMP_GAIN ST_PRESS_CELSIUS_NANO_SCALE
> +#define ST_PRESS_LPS25H_BDU_ADDR 0x20
> +#define ST_PRESS_LPS25H_BDU_MASK 0x04
> +#define ST_PRESS_LPS25H_DRDY_IRQ_ADDR 0x23
> +#define ST_PRESS_LPS25H_DRDY_IRQ_INT1_MASK 0x01
> +#define ST_PRESS_LPS25H_DRDY_IRQ_INT2_MASK 0x10
> +#define ST_PRESS_LPS25H_MULTIREAD_BIT true
> +#define ST_PRESS_LPS25H_TEMP_OFFSET 42500
> +#define ST_PRESS_LPS25H_OUT_XL_ADDR 0x28
> +#define ST_TEMP_LPS25H_OUT_L_ADDR 0x2b
> +
> +static const struct iio_chan_spec st_press_1_channels[] = {
> {
> .type = IIO_PRESSURE,
> .channel2 = IIO_NO_MOD,
> - .address = ST_PRESS_LPS331AP_OUT_XL_ADDR,
> + .address = ST_PRESS_1_OUT_XL_ADDR,
> .scan_index = ST_SENSORS_SCAN_X,
> .scan_type = {
> .sign = 'u',
> @@ -99,7 +125,7 @@ static const struct iio_chan_spec st_press_lps331ap_channels[] = {
> {
> .type = IIO_TEMP,
> .channel2 = IIO_NO_MOD,
> - .address = ST_TEMP_LPS331AP_OUT_L_ADDR,
> + .address = ST_TEMP_1_OUT_L_ADDR,
> .scan_index = -1,
> .scan_type = {
> .sign = 'u',
> @@ -156,8 +182,8 @@ static const struct st_sensors st_press_sensors[] = {
> .sensors_supported = {
> [0] = LPS331AP_PRESS_DEV_NAME,
> },
> - .ch = (struct iio_chan_spec *)st_press_lps331ap_channels,
> - .num_ch = ARRAY_SIZE(st_press_lps331ap_channels),
> + .ch = (struct iio_chan_spec *)st_press_1_channels,
> + .num_ch = ARRAY_SIZE(st_press_1_channels),
> .odr = {
> .addr = ST_PRESS_LPS331AP_ODR_ADDR,
> .mask = ST_PRESS_LPS331AP_ODR_MASK,
> @@ -233,6 +259,53 @@ static const struct st_sensors st_press_sensors[] = {
> .multi_read_bit = ST_PRESS_LPS001WP_MULTIREAD_BIT,
> .bootime = 2,
> },
> + {
> + .wai = ST_PRESS_LPS25H_WAI_EXP,
> + .sensors_supported = {
> + [0] = LPS25H_PRESS_DEV_NAME,
> + },
> + .ch = (struct iio_chan_spec *)st_press_1_channels,
> + .num_ch = ARRAY_SIZE(st_press_1_channels),
> + .odr = {
> + .addr = ST_PRESS_LPS25H_ODR_ADDR,
> + .mask = ST_PRESS_LPS25H_ODR_MASK,
> + .odr_avl = {
> + { 1, ST_PRESS_LPS25H_ODR_AVL_1HZ_VAL, },
> + { 7, ST_PRESS_LPS25H_ODR_AVL_7HZ_VAL, },
> + { 13, ST_PRESS_LPS25H_ODR_AVL_13HZ_VAL, },
> + { 25, ST_PRESS_LPS25H_ODR_AVL_25HZ_VAL, },
> + },
> + },
> + .pw = {
> + .addr = ST_PRESS_LPS25H_PW_ADDR,
> + .mask = ST_PRESS_LPS25H_PW_MASK,
> + .value_on = ST_SENSORS_DEFAULT_POWER_ON_VALUE,
> + .value_off = ST_SENSORS_DEFAULT_POWER_OFF_VALUE,
> + },
> + .fs = {
> + .addr = ST_PRESS_LPS25H_FS_ADDR,
> + .mask = ST_PRESS_LPS25H_FS_MASK,
> + .fs_avl = {
> + [0] = {
> + .num = ST_PRESS_FS_AVL_1260MB,
> + .value = ST_PRESS_LPS25H_FS_AVL_1260_VAL,
> + .gain = ST_PRESS_LPS25H_FS_AVL_1260_GAIN,
> + .gain2 = ST_PRESS_LPS25H_FS_AVL_TEMP_GAIN,
> + },
> + },
> + },
> + .bdu = {
> + .addr = ST_PRESS_LPS25H_BDU_ADDR,
> + .mask = ST_PRESS_LPS25H_BDU_MASK,
> + },
> + .drdy_irq = {
> + .addr = ST_PRESS_LPS25H_DRDY_IRQ_ADDR,
> + .mask_int1 = ST_PRESS_LPS25H_DRDY_IRQ_INT1_MASK,
> + .mask_int2 = ST_PRESS_LPS25H_DRDY_IRQ_INT2_MASK,
> + },
> + .multi_read_bit = ST_PRESS_LPS25H_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 51eab7f..3cd73e3 100644
> --- a/drivers/iio/pressure/st_pressure_i2c.c
> +++ b/drivers/iio/pressure/st_pressure_i2c.c
> @@ -50,6 +50,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 },
> + { LPS25H_PRESS_DEV_NAME },
> { LPS331AP_PRESS_DEV_NAME },
> {},
> };
> diff --git a/drivers/iio/pressure/st_pressure_spi.c b/drivers/iio/pressure/st_pressure_spi.c
> index 27322af..f45d430 100644
> --- a/drivers/iio/pressure/st_pressure_spi.c
> +++ b/drivers/iio/pressure/st_pressure_spi.c
> @@ -49,6 +49,7 @@ static int st_press_spi_remove(struct spi_device *spi)
>
> static const struct spi_device_id st_press_id_table[] = {
> { LPS001WP_PRESS_DEV_NAME },
> + { LPS25H_PRESS_DEV_NAME },
> { LPS331AP_PRESS_DEV_NAME },
> {},
> };
>
prev parent reply other threads:[~2014-02-22 13:08 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-02-20 17:49 [PATCH] iio:pressure: Add support for LPS25H pressure sensor Denis CIOCCA
2014-02-22 13:09 ` Jonathan Cameron [this message]
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=5308A18F.9010409@kernel.org \
--to=jic23@kernel.org \
--cc=denis.ciocca@st.com \
--cc=lee.jones@linaro.org \
--cc=linux-iio@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.