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/magnetometer | |
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/magnetometer')
-rw-r--r-- | drivers/iio/magnetometer/st_magn.h | 3 | ||||
-rw-r--r-- | drivers/iio/magnetometer/st_magn_core.c | 18 | ||||
-rw-r--r-- | drivers/iio/magnetometer/st_magn_i2c.c | 3 | ||||
-rw-r--r-- | drivers/iio/magnetometer/st_magn_spi.c | 3 |
4 files changed, 12 insertions, 15 deletions
diff --git a/drivers/iio/magnetometer/st_magn.h b/drivers/iio/magnetometer/st_magn.h index 694e33e0fb72..7e81d00ef0c3 100644 --- a/drivers/iio/magnetometer/st_magn.h +++ b/drivers/iio/magnetometer/st_magn.h | |||
@@ -18,8 +18,7 @@ | |||
18 | #define LSM303DLM_MAGN_DEV_NAME "lsm303dlm_magn" | 18 | #define LSM303DLM_MAGN_DEV_NAME "lsm303dlm_magn" |
19 | #define LIS3MDL_MAGN_DEV_NAME "lis3mdl" | 19 | #define LIS3MDL_MAGN_DEV_NAME "lis3mdl" |
20 | 20 | ||
21 | int st_magn_common_probe(struct iio_dev *indio_dev, | 21 | int st_magn_common_probe(struct iio_dev *indio_dev); |
22 | struct st_sensors_platform_data *pdata); | ||
23 | void st_magn_common_remove(struct iio_dev *indio_dev); | 22 | void st_magn_common_remove(struct iio_dev *indio_dev); |
24 | 23 | ||
25 | #ifdef CONFIG_IIO_BUFFER | 24 | #ifdef CONFIG_IIO_BUFFER |
diff --git a/drivers/iio/magnetometer/st_magn_core.c b/drivers/iio/magnetometer/st_magn_core.c index 68cae86dbd29..8ade473f99fe 100644 --- a/drivers/iio/magnetometer/st_magn_core.c +++ b/drivers/iio/magnetometer/st_magn_core.c | |||
@@ -149,7 +149,7 @@ static const struct iio_chan_spec st_magn_2_16bit_channels[] = { | |||
149 | IIO_CHAN_SOFT_TIMESTAMP(3) | 149 | IIO_CHAN_SOFT_TIMESTAMP(3) |
150 | }; | 150 | }; |
151 | 151 | ||
152 | static const struct st_sensors st_magn_sensors[] = { | 152 | static const struct st_sensor_settings st_magn_sensors_settings[] = { |
153 | { | 153 | { |
154 | .wai = ST_MAGN_1_WAI_EXP, | 154 | .wai = ST_MAGN_1_WAI_EXP, |
155 | .sensors_supported = { | 155 | .sensors_supported = { |
@@ -361,8 +361,7 @@ static const struct iio_info magn_info = { | |||
361 | .write_raw = &st_magn_write_raw, | 361 | .write_raw = &st_magn_write_raw, |
362 | }; | 362 | }; |
363 | 363 | ||
364 | int st_magn_common_probe(struct iio_dev *indio_dev, | 364 | int st_magn_common_probe(struct iio_dev *indio_dev) |
365 | struct st_sensors_platform_data *pdata) | ||
366 | { | 365 | { |
367 | struct st_sensor_data *mdata = iio_priv(indio_dev); | 366 | struct st_sensor_data *mdata = iio_priv(indio_dev); |
368 | int irq = mdata->get_irq_data_ready(indio_dev); | 367 | int irq = mdata->get_irq_data_ready(indio_dev); |
@@ -374,20 +373,21 @@ int st_magn_common_probe(struct iio_dev *indio_dev, | |||
374 | st_sensors_power_enable(indio_dev); | 373 | st_sensors_power_enable(indio_dev); |
375 | 374 | ||
376 | err = st_sensors_check_device_support(indio_dev, | 375 | err = st_sensors_check_device_support(indio_dev, |
377 | ARRAY_SIZE(st_magn_sensors), st_magn_sensors); | 376 | ARRAY_SIZE(st_magn_sensors_settings), |
377 | st_magn_sensors_settings); | ||
378 | if (err < 0) | 378 | if (err < 0) |
379 | return err; | 379 | return err; |
380 | 380 | ||
381 | mdata->num_data_channels = ST_MAGN_NUMBER_DATA_CHANNELS; | 381 | mdata->num_data_channels = ST_MAGN_NUMBER_DATA_CHANNELS; |
382 | mdata->multiread_bit = mdata->sensor->multi_read_bit; | 382 | mdata->multiread_bit = mdata->sensor_settings->multi_read_bit; |
383 | indio_dev->channels = mdata->sensor->ch; | 383 | indio_dev->channels = mdata->sensor_settings->ch; |
384 | indio_dev->num_channels = ST_SENSORS_NUMBER_ALL_CHANNELS; | 384 | indio_dev->num_channels = ST_SENSORS_NUMBER_ALL_CHANNELS; |
385 | 385 | ||
386 | mdata->current_fullscale = (struct st_sensor_fullscale_avl *) | 386 | mdata->current_fullscale = (struct st_sensor_fullscale_avl *) |
387 | &mdata->sensor->fs.fs_avl[0]; | 387 | &mdata->sensor_settings->fs.fs_avl[0]; |
388 | mdata->odr = mdata->sensor->odr.odr_avl[0].hz; | 388 | mdata->odr = mdata->sensor_settings->odr.odr_avl[0].hz; |
389 | 389 | ||
390 | err = st_sensors_init_sensor(indio_dev, pdata); | 390 | err = st_sensors_init_sensor(indio_dev, NULL); |
391 | if (err < 0) | 391 | if (err < 0) |
392 | return err; | 392 | return err; |
393 | 393 | ||
diff --git a/drivers/iio/magnetometer/st_magn_i2c.c b/drivers/iio/magnetometer/st_magn_i2c.c index 689250058442..92e5c15452a3 100644 --- a/drivers/iio/magnetometer/st_magn_i2c.c +++ b/drivers/iio/magnetometer/st_magn_i2c.c | |||
@@ -51,12 +51,11 @@ static int st_magn_i2c_probe(struct i2c_client *client, | |||
51 | return -ENOMEM; | 51 | return -ENOMEM; |
52 | 52 | ||
53 | mdata = iio_priv(indio_dev); | 53 | mdata = iio_priv(indio_dev); |
54 | mdata->dev = &client->dev; | ||
55 | st_sensors_of_i2c_probe(client, st_magn_of_match); | 54 | st_sensors_of_i2c_probe(client, st_magn_of_match); |
56 | 55 | ||
57 | st_sensors_i2c_configure(indio_dev, client, mdata); | 56 | st_sensors_i2c_configure(indio_dev, client, mdata); |
58 | 57 | ||
59 | err = st_magn_common_probe(indio_dev, NULL); | 58 | err = st_magn_common_probe(indio_dev); |
60 | if (err < 0) | 59 | if (err < 0) |
61 | return err; | 60 | return err; |
62 | 61 | ||
diff --git a/drivers/iio/magnetometer/st_magn_spi.c b/drivers/iio/magnetometer/st_magn_spi.c index a6143ea51dfc..7adacf160146 100644 --- a/drivers/iio/magnetometer/st_magn_spi.c +++ b/drivers/iio/magnetometer/st_magn_spi.c | |||
@@ -29,11 +29,10 @@ static int st_magn_spi_probe(struct spi_device *spi) | |||
29 | return -ENOMEM; | 29 | return -ENOMEM; |
30 | 30 | ||
31 | mdata = iio_priv(indio_dev); | 31 | mdata = iio_priv(indio_dev); |
32 | mdata->dev = &spi->dev; | ||
33 | 32 | ||
34 | st_sensors_spi_configure(indio_dev, spi, mdata); | 33 | st_sensors_spi_configure(indio_dev, spi, mdata); |
35 | 34 | ||
36 | err = st_magn_common_probe(indio_dev, NULL); | 35 | err = st_magn_common_probe(indio_dev); |
37 | if (err < 0) | 36 | if (err < 0) |
38 | return err; | 37 | return err; |
39 | 38 | ||