diff options
| author | 2019-04-04 22:25:29 +0200 | |
|---|---|---|
| committer | 2019-04-04 22:25:29 +0200 | |
| commit | 932f98922f6fca9f8c45274346b49058dd50d51a (patch) | |
| tree | 75635c62cfbaa0397d7169a69e132c0a2a235ade /include/linux | |
| parent | staging: media: tegra-vde: add proper SPDX identifiers on file that did not have it. (diff) | |
| parent | iio: ad_sigma_delta: Properly handle SPI bus locking vs CS assertion (diff) | |
Merge tag 'iio-for-5.2a-2' of git://git.kernel.org/pub/scm/linux/kernel/git/jic23/iio into staging-next
Jonathan writes:
First set of new device support, features and fixes for IIO in the 5.2 cycle
Staging graduations
* ad7780
- Move this ADC driver out of staging. Included adding some new features
along the way (see below). Also added DT bindings.
New device support
* adis16480
- Support the ADIS16495 and ADIS16497 IMU devices making
heavy use of refactoring of various aspects of the driver in precursor
patches.
* lsm6dsx
- Support for the ASM330LHH 6-axis (accelerometer + gyro) sensor.
- Support for the LSM6DS0X
* matbotix mb1232
- New driver for this ultrasound ranging device family. Including bindings.
- Supports mb1202, mb1212, mb1222, mb1232, mb1242, mb7040 and mb7137.
* max31856
- New driver for this thermocouple temperature sensor.
* meson saradc
- Support the Meson-G12A (ID addition only).
* stmpe-adc
- New driver supporting generic ADC alongside touchscreen support which
previously existed. Includes DT bindings.
* vcnl4000
- Support for the vcln4040 proximity and light sensor, including adding
DT bindings for this and parts previously supported.
Features
* core
- Allow reading of mount matrices from ACPI in addition to DT.
- Common binding for theromcouple types.
* ad5933
- Add ABI docs as there are a few 'unsual' elements about this
device - perhaps because it's our only impedance analyser.
* ad7780
- Add gain and filter gpio support + readback of current gain and filter.
* adis16480
- Allow selection fo the dataready pin to be used.
- Device tree ID table and binding documentation.
- Support external clock modes, including new bindings.
* bma180
- Mount matrix support.
* bmc150
- Mount matrix support.
* bmg160
- Mount matrix support.
- DT id table and bindings doc.
* bmp280
- Put calibration data into the entropy pool.
* hmc5843
- Mount matrix support.
* itg3200
- Mount matrix support.
* kxcjk1013
- Device tree id table, and binding docs.
* lpc32xx
- Add scale when regulator specified including DT docs for regulator.
* pms7003
- Add device IDs for all supported parts to driver and binding.
* stm32-dfsdm
- Enable hw consumer support, scan mode control and a complex set of
triggered buffer modes.
- Power management.
* stm32-lptimer-counter
- power management.
- Document the pinctrl sleep state binding.
* ti-ads7950
- GPIO pin support.
Cleanups, minor fixes
* core
- Use bitmap_zalloc to make it explicit that is what we are doing.
- Tidy up all the Kconfig files (which had slowly gotten messy)
- Fix a forwards definition missing issue in iio/driver.h
* ad sigma delta core
- Improve handling of SPI bus locking vs CS assertion. This has been
wrong a long time so not rushing this in.
* ad5064
- Mlock to local lock.
* ad5933 (staging cleanup)
- Multiline comment fixes.
- Include ordering.
- SPDX.
- Tidy up Kconfig help which was a bit missleading.
- Change some non standard attributes to ABI defined ones.
* ad7124
- White space fix.
* ad7192
- White space.
- Use DT clock binding.
- Improve error reporting.
- Platform data to DT conversion.
- Use read_avail callback, mostly to avoid the endless series of
patches from new contributors trying to falsely put spaces around
the negative sign.
* ad7280a
- Add brackets to macros to avoid potential precedence isseus.
- Add temp vars for event codes to reduce indent and improved readability.
- Clean out som CamelCase notation.
- White space.
* ad7606
- Fix broken file naming in MAINTAINERS.
* ad7780
- Missing switch defaults to supress warnings and harden the code slightly.
- Set pattern masks more directly.
- Add ID values and masks for all supported chips.
- SPDX + add Renato as a copyright holder as he has done a lot of work on
this driver.
- Add brackets to macros to avoid potential precedence issues.
* ad7923
- White space fixes.
- Use BIT macro to improve readability.
- Add brackets to macros to avoid potential precedence issues.
- Tidy up a null comparisom.
* ad9523
- Fix a typo in naming of variables.
* adis16400
- Combine trigger file into main code as no advantage in separate files.
Rename core file to just adis16400.
- Squash the header into the c file now there is only one file.
- Generalize burst mode to support new variants.
* ak8975
- Local variable to improve readability around mount matrix support.
* as3935
- Avoid potential race by ensuring remove does exact opposite of
probe rather than a slightly different order.
* cross_ec
- Drop some unnecessary includes.
- Fix some warning and the slightly 'unusual' code.
- Add some docs for non obvious function.
- SPDX
* hmc5843
- Potential unhandled error case.
* iio trigger core
- Print an error if there is no available irq due to max consumers per
trigger being set to low.
* iio loop trigger
- Drop an unlikely on IS_ERR as IS_ERR already has the annotation.
* ingenic-adc
- Drop a redundant dev_err call as devm_ioremap_resource reports the same
internally.
* lmp91000
- Drop some unncessary parentheses and white space tidy up.
- Invert and if statement to improve readability.
- Fix a wrong error message.
* lpc32xx
- Header sorting + drop some unused ones.
* mma8542
- Mark a switch fallthrough.
* mpu6050
- Add a local variable to improve code readability around mount matrix
support.
* mxs-lradc-adc
- Handle devm_iio_trigger_alloc failure.
* sps30
- Fix up a kernel version in the ABI docs.
* srf04
- DT binding doc converted to yaml.
* ssp_sensors
- Supress a clang build warning due to lack of visibility of conditional
within a iio_push_to_buffers_with_timestamp. (reasonable false warning!)
* st_accel
- Drop pointless less than 0 comparisom of unsigned int.
* stm32-dfsdm
- Improve accuracy of spi_master_frequency calculation.
- Improve calculation fo sampling frequency.
- Rework various internals to simplify adding triggered buffer support.
- Claim direct mode to avoid racing around read_raw and being in buffered
mode.
* stmpe
- Fix a clang false positive warning.
* ti-ads7950
- Use local lock rather than using the core mlock when not locking around
the device mode.
* vcnl4000
- Use word writes instead of byte writes. It seems byte writes are fine
for some parts (undocument) but not others that the driver will shortly
support.
Other
* mailmap
- Add email address change for Sean Nyekjaer. Update in relevant drivers
* tag 'iio-for-5.2a-2' of git://git.kernel.org/pub/scm/linux/kernel/git/jic23/iio: (129 commits)
iio: ad_sigma_delta: Properly handle SPI bus locking vs CS assertion
iio: adc: stm32-dfsdm: add PM support
iio: adc: stm32-dfsdm: improve sampling frequency accuracy
staging: iio: adc: ad7280a: Tab alignment
MAINTAINERS: Fix the link to ad7606 dt-bindings
iio:temperature: Add MAX31856 thermocouple support
iio:temperature:max31856:Add device tree bind info
dt-bindings: iio/temperature: Add thermocouple types (and doc)
devantech-srf04.yaml: transform DT binding to YAML
iio: frequency: ad9523: Fix typo in ad9523_platform_data
iio: Make possible to include driver.h first
dt-bindings: iio: add Bosch BMG160 gyroscope sensor
iio: gyro: bmg160: add device tree compatibility table
staging: iio: adc: ad7192: Use read_avail for available attributes
dt-bindings: iio: light: add vcnl4040 devicetree bindings
iio: light: vcnl4000 add support for the VCNL4040 proximity and light sensor
dt-bindings: iio: light: add vcnl4000 devicetree bindings
iio: light: vcnl4000 add devicetree hooks
iio: light: vcnl4000 use word writes instead of byte writes
iio: adc: stm32-dfsdm: claim direct mode for raw read and settings
...
Diffstat (limited to 'include/linux')
| -rw-r--r-- | include/linux/iio/adc/ad_sigma_delta.h | 1 | ||||
| -rw-r--r-- | include/linux/iio/driver.h | 1 | ||||
| -rw-r--r-- | include/linux/iio/frequency/ad9523.h | 8 | ||||
| -rw-r--r-- | include/linux/iio/gyro/itg3200.h | 1 | ||||
| -rw-r--r-- | include/linux/iio/iio.h | 4 | ||||
| -rw-r--r-- | include/linux/iio/imu/adis.h | 14 |
6 files changed, 23 insertions, 6 deletions
diff --git a/include/linux/iio/adc/ad_sigma_delta.h b/include/linux/iio/adc/ad_sigma_delta.h index 7e84351fa2c0..6e9fb1932dde 100644 --- a/include/linux/iio/adc/ad_sigma_delta.h +++ b/include/linux/iio/adc/ad_sigma_delta.h @@ -69,6 +69,7 @@ struct ad_sigma_delta { bool irq_dis; bool bus_locked; + bool keep_cs_asserted; uint8_t comm; diff --git a/include/linux/iio/driver.h b/include/linux/iio/driver.h index 7dfb10ee2669..f54a7bcdefe3 100644 --- a/include/linux/iio/driver.h +++ b/include/linux/iio/driver.h @@ -11,6 +11,7 @@ #ifndef _IIO_INKERN_H_ #define _IIO_INKERN_H_ +struct iio_dev; struct iio_map; /** diff --git a/include/linux/iio/frequency/ad9523.h b/include/linux/iio/frequency/ad9523.h index 12ce3ee427fd..621b93c0bcf9 100644 --- a/include/linux/iio/frequency/ad9523.h +++ b/include/linux/iio/frequency/ad9523.h @@ -129,8 +129,8 @@ enum cpole1_capacitor { * @pll2_ndiv_b_cnt: PLL2 Feedback N-divider, B Counter, range 0..63. * @pll2_freq_doubler_en: PLL2 frequency doubler enable. * @pll2_r2_div: PLL2 R2 divider, range 0..31. - * @pll2_vco_diff_m1: VCO1 divider, range 3..5. - * @pll2_vco_diff_m2: VCO2 divider, range 3..5. + * @pll2_vco_div_m1: VCO1 divider, range 3..5. + * @pll2_vco_div_m2: VCO2 divider, range 3..5. * @rpole2: PLL2 loop filter Rpole resistor value. * @rzero: PLL2 loop filter Rzero resistor value. * @cpole1: PLL2 loop filter Cpole capacitor value. @@ -176,8 +176,8 @@ struct ad9523_platform_data { unsigned char pll2_ndiv_b_cnt; bool pll2_freq_doubler_en; unsigned char pll2_r2_div; - unsigned char pll2_vco_diff_m1; /* 3..5 */ - unsigned char pll2_vco_diff_m2; /* 3..5 */ + unsigned char pll2_vco_div_m1; /* 3..5 */ + unsigned char pll2_vco_div_m2; /* 3..5 */ /* Loop Filter PLL2 */ enum rpole2_resistor rpole2; diff --git a/include/linux/iio/gyro/itg3200.h b/include/linux/iio/gyro/itg3200.h index 2a820850f284..0a30fddccfb3 100644 --- a/include/linux/iio/gyro/itg3200.h +++ b/include/linux/iio/gyro/itg3200.h @@ -104,6 +104,7 @@ struct itg3200 { struct i2c_client *i2c; struct iio_trigger *trig; + struct iio_mount_matrix orientation; }; enum ITG3200_SCAN_INDEX { diff --git a/include/linux/iio/iio.h b/include/linux/iio/iio.h index a74cb177dc6f..bb10c1bee301 100644 --- a/include/linux/iio/iio.h +++ b/include/linux/iio/iio.h @@ -130,8 +130,8 @@ struct iio_mount_matrix { ssize_t iio_show_mount_matrix(struct iio_dev *indio_dev, uintptr_t priv, const struct iio_chan_spec *chan, char *buf); -int of_iio_read_mount_matrix(const struct device *dev, const char *propname, - struct iio_mount_matrix *matrix); +int iio_read_mount_matrix(struct device *dev, const char *propname, + struct iio_mount_matrix *matrix); typedef const struct iio_mount_matrix * (iio_get_mount_matrix_t)(const struct iio_dev *indio_dev, diff --git a/include/linux/iio/imu/adis.h b/include/linux/iio/imu/adis.h index 360da7d18a3d..469a493f7ae0 100644 --- a/include/linux/iio/imu/adis.h +++ b/include/linux/iio/imu/adis.h @@ -21,6 +21,7 @@ #define ADIS_REG_PAGE_ID 0x00 struct adis; +struct adis_burst; /** * struct adis_data - ADIS chip variant specific data @@ -57,6 +58,7 @@ struct adis { struct iio_trigger *trig; const struct adis_data *data; + struct adis_burst *burst; struct mutex txrx_lock; struct spi_message msg; @@ -232,6 +234,18 @@ int adis_single_conversion(struct iio_dev *indio_dev, #ifdef CONFIG_IIO_ADIS_LIB_BUFFER +/** + * struct adis_burst - ADIS data for burst transfers + * @en burst mode enabled + * @reg_cmd register command that triggers burst + * @extra_len extra length to account in the SPI RX buffer + */ +struct adis_burst { + bool en; + unsigned int reg_cmd; + unsigned int extra_len; +}; + int adis_setup_buffer_and_trigger(struct adis *adis, struct iio_dev *indio_dev, irqreturn_t (*trigger_handler)(int, void *)); void adis_cleanup_buffer_and_trigger(struct adis *adis, |
