diff options
| author | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2014-11-05 14:42:48 -0500 |
|---|---|---|
| committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2014-11-05 14:42:48 -0500 |
| commit | be61a0d78449f53519905640ac3a9f24c197cbaf (patch) | |
| tree | 216a7655e2d6dc8f751214aa93a4863a27954a98 /drivers/iio/accel | |
| parent | 7be921a226dcbbbd8fb6f5d63bea4856b3a11624 (diff) | |
| parent | 4e4cd14e7cbead5ca20465f4a7ce973d42434a2f (diff) | |
Merge tag 'iio-for-3.19a' of git://git.kernel.org/pub/scm/linux/kernel/git/jic23/iio into staging-next
Jonathan writes:
First round of new drivers, features and cleanups for IIO in the 3.19 cycle.
New drivers / supported parts
* rockchip - rk3066-tsadc variant
* si7020 humidity and temperature sensor
* mcp320x - add mcp3001, mcp3002, mcp3004, mcp3008, mcp3201, mcp3202
* bmp280 pressure and temperature sensor
* Qualcomm SPMI PMIC current ADC driver
* Exynos_adc - support exynos7
New features
* vf610-adc - add temperature sensor support
* Documentation of current attributes, scaled pressure, offset and
scaled humidity, RGBC intensity gain factor and scale applied to
differential voltage channels.
* Bring iio_event_monitor up to date with newer modifiers.
* Add of_xlate function to allow for complex channel mappings from the
device tree.
* Add -g parameter to generic_buffer example to allow for devices with
directly fed (no trigger) buffers.
* Move exynos driver over to syscon for PMU register access.
Cleanups, fixes for new drivers
* lis3l02dq drop an unneeded else.
* st sensors - renam st_sensors to st_sensor_settings (for clarity)
* st sensors - drop an unused parameter from all the probe utility
functions.
* vf610 better error handling and tidy up.
* si7020 - cleanups following merge
* as3935 - drop some unnecessary semicolons.
* bmp280 - fix the pressure calculation.
Diffstat (limited to 'drivers/iio/accel')
| -rw-r--r-- | drivers/iio/accel/st_accel.h | 3 | ||||
| -rw-r--r-- | drivers/iio/accel/st_accel_core.c | 22 | ||||
| -rw-r--r-- | drivers/iio/accel/st_accel_i2c.c | 3 | ||||
| -rw-r--r-- | drivers/iio/accel/st_accel_spi.c | 3 |
4 files changed, 14 insertions, 17 deletions
diff --git a/drivers/iio/accel/st_accel.h b/drivers/iio/accel/st_accel.h index c3877630b2e4..fa9646034305 100644 --- a/drivers/iio/accel/st_accel.h +++ b/drivers/iio/accel/st_accel.h | |||
| @@ -33,8 +33,7 @@ static const struct st_sensors_platform_data default_accel_pdata = { | |||
| 33 | .drdy_int_pin = 1, | 33 | .drdy_int_pin = 1, |
| 34 | }; | 34 | }; |
| 35 | 35 | ||
| 36 | int st_accel_common_probe(struct iio_dev *indio_dev, | 36 | int st_accel_common_probe(struct iio_dev *indio_dev); |
| 37 | struct st_sensors_platform_data *pdata); | ||
| 38 | void st_accel_common_remove(struct iio_dev *indio_dev); | 37 | void st_accel_common_remove(struct iio_dev *indio_dev); |
| 39 | 38 | ||
| 40 | #ifdef CONFIG_IIO_BUFFER | 39 | #ifdef CONFIG_IIO_BUFFER |
diff --git a/drivers/iio/accel/st_accel_core.c b/drivers/iio/accel/st_accel_core.c index 087864854c61..53f32629283a 100644 --- a/drivers/iio/accel/st_accel_core.c +++ b/drivers/iio/accel/st_accel_core.c | |||
| @@ -161,7 +161,7 @@ static const struct iio_chan_spec st_accel_16bit_channels[] = { | |||
| 161 | IIO_CHAN_SOFT_TIMESTAMP(3) | 161 | IIO_CHAN_SOFT_TIMESTAMP(3) |
| 162 | }; | 162 | }; |
| 163 | 163 | ||
| 164 | static const struct st_sensors st_accel_sensors[] = { | 164 | static const struct st_sensor_settings st_accel_sensors_settings[] = { |
| 165 | { | 165 | { |
| 166 | .wai = ST_ACCEL_1_WAI_EXP, | 166 | .wai = ST_ACCEL_1_WAI_EXP, |
| 167 | .sensors_supported = { | 167 | .sensors_supported = { |
| @@ -457,8 +457,7 @@ static const struct iio_trigger_ops st_accel_trigger_ops = { | |||
| 457 | #define ST_ACCEL_TRIGGER_OPS NULL | 457 | #define ST_ACCEL_TRIGGER_OPS NULL |
| 458 | #endif | 458 | #endif |
| 459 | 459 | ||
| 460 | int st_accel_common_probe(struct iio_dev *indio_dev, | 460 | int st_accel_common_probe(struct iio_dev *indio_dev) |
| 461 | struct st_sensors_platform_data *plat_data) | ||
| 462 | { | 461 | { |
| 463 | struct st_sensor_data *adata = iio_priv(indio_dev); | 462 | struct st_sensor_data *adata = iio_priv(indio_dev); |
| 464 | int irq = adata->get_irq_data_ready(indio_dev); | 463 | int irq = adata->get_irq_data_ready(indio_dev); |
| @@ -470,24 +469,25 @@ int st_accel_common_probe(struct iio_dev *indio_dev, | |||
| 470 | st_sensors_power_enable(indio_dev); | 469 | st_sensors_power_enable(indio_dev); |
| 471 | 470 | ||
| 472 | err = st_sensors_check_device_support(indio_dev, | 471 | err = st_sensors_check_device_support(indio_dev, |
| 473 | ARRAY_SIZE(st_accel_sensors), st_accel_sensors); | 472 | ARRAY_SIZE(st_accel_sensors_settings), |
| 473 | st_accel_sensors_settings); | ||
| 474 | if (err < 0) | 474 | if (err < 0) |
| 475 | return err; | 475 | return err; |
| 476 | 476 | ||
| 477 | adata->num_data_channels = ST_ACCEL_NUMBER_DATA_CHANNELS; | 477 | adata->num_data_channels = ST_ACCEL_NUMBER_DATA_CHANNELS; |
| 478 | adata->multiread_bit = adata->sensor->multi_read_bit; | 478 | adata->multiread_bit = adata->sensor_settings->multi_read_bit; |
| 479 | indio_dev->channels = adata->sensor->ch; | 479 | indio_dev->channels = adata->sensor_settings->ch; |
| 480 | indio_dev->num_channels = ST_SENSORS_NUMBER_ALL_CHANNELS; | 480 | indio_dev->num_channels = ST_SENSORS_NUMBER_ALL_CHANNELS; |
| 481 | 481 | ||
| 482 | adata->current_fullscale = (struct st_sensor_fullscale_avl *) | 482 | adata->current_fullscale = (struct st_sensor_fullscale_avl *) |
| 483 | &adata->sensor->fs.fs_avl[0]; | 483 | &adata->sensor_settings->fs.fs_avl[0]; |
| 484 | adata->odr = adata->sensor->odr.odr_avl[0].hz; | 484 | adata->odr = adata->sensor_settings->odr.odr_avl[0].hz; |
| 485 | 485 | ||
| 486 | if (!plat_data) | 486 | if (!adata->dev->platform_data) |
| 487 | plat_data = | 487 | adata->dev->platform_data = |
| 488 | (struct st_sensors_platform_data *)&default_accel_pdata; | 488 | (struct st_sensors_platform_data *)&default_accel_pdata; |
| 489 | 489 | ||
| 490 | err = st_sensors_init_sensor(indio_dev, plat_data); | 490 | err = st_sensors_init_sensor(indio_dev, adata->dev->platform_data); |
| 491 | if (err < 0) | 491 | if (err < 0) |
| 492 | return err; | 492 | return err; |
| 493 | 493 | ||
diff --git a/drivers/iio/accel/st_accel_i2c.c b/drivers/iio/accel/st_accel_i2c.c index 7164aeff3ab1..c7246bdd30b9 100644 --- a/drivers/iio/accel/st_accel_i2c.c +++ b/drivers/iio/accel/st_accel_i2c.c | |||
| @@ -79,12 +79,11 @@ static int st_accel_i2c_probe(struct i2c_client *client, | |||
| 79 | return -ENOMEM; | 79 | return -ENOMEM; |
| 80 | 80 | ||
| 81 | adata = iio_priv(indio_dev); | 81 | adata = iio_priv(indio_dev); |
| 82 | adata->dev = &client->dev; | ||
| 83 | st_sensors_of_i2c_probe(client, st_accel_of_match); | 82 | st_sensors_of_i2c_probe(client, st_accel_of_match); |
| 84 | 83 | ||
| 85 | st_sensors_i2c_configure(indio_dev, client, adata); | 84 | st_sensors_i2c_configure(indio_dev, client, adata); |
| 86 | 85 | ||
| 87 | err = st_accel_common_probe(indio_dev, client->dev.platform_data); | 86 | err = st_accel_common_probe(indio_dev); |
| 88 | if (err < 0) | 87 | if (err < 0) |
| 89 | return err; | 88 | return err; |
| 90 | 89 | ||
diff --git a/drivers/iio/accel/st_accel_spi.c b/drivers/iio/accel/st_accel_spi.c index 195639646e34..12ec29389e4b 100644 --- a/drivers/iio/accel/st_accel_spi.c +++ b/drivers/iio/accel/st_accel_spi.c | |||
| @@ -29,11 +29,10 @@ static int st_accel_spi_probe(struct spi_device *spi) | |||
| 29 | return -ENOMEM; | 29 | return -ENOMEM; |
| 30 | 30 | ||
| 31 | adata = iio_priv(indio_dev); | 31 | adata = iio_priv(indio_dev); |
| 32 | adata->dev = &spi->dev; | ||
| 33 | 32 | ||
| 34 | st_sensors_spi_configure(indio_dev, spi, adata); | 33 | st_sensors_spi_configure(indio_dev, spi, adata); |
| 35 | 34 | ||
| 36 | err = st_accel_common_probe(indio_dev, spi->dev.platform_data); | 35 | err = st_accel_common_probe(indio_dev); |
| 37 | if (err < 0) | 36 | if (err < 0) |
| 38 | return err; | 37 | return err; |
| 39 | 38 | ||
