Commit 7c0bc65c authored by Greg Kroah-Hartman's avatar Greg Kroah-Hartman
Browse files

Merge tag 'iio-for-4.21a' of...

Merge tag 'iio-for-4.21a' of git://git.kernel.org/pub/scm/linux/kernel/git/jic23/iio into staging-testing

Jonathan writes:

First set of new device support, features and cleanups for IIO in the 4.21 cycle

Along with the headline feature of 5 new drivers, we have the
substantial addition of auxilliary sensor support on the lsm6sdx
parts for ST.  There has also been a good set of staging cleanup
in this period with more underway.

An ever increasing number of devices supported with just a new
ID which is a good sign that at least some manufacturers are
continuing to stabilise their interfaces.

New device support,
* ad7124
  - New driver supporting Analog Devices' ad7124-4 and ad7124-8 parts
    with the inevitable DT binding.
* ad7949
  - New driver supporting Analog Devices' ad7949, AD7682 and AD7689 ADCs.
* rm3100
  - New driver supporting PNIs RM3100 magnometer with bindings and
    vendor prefix.
* ti-dac7311
  - New driver supporting DAC7311, DAC6311 and DAC5311 TI DACs, with
    DT bindings.
* vcnl5035
  - New driver supporting the light sensor part of the VCNL4035, with
    DT bindings

Features,
* bindings
  - Add a generic ADC channel binding as we keep reinventing this
    wheel.
* adc128s052
  - Add IDs for additional pin compatible parts.
  - Add APCI ID seen on E3940 UP squared boards.
* ad_sigma_delta
  - Allow for custom data register overiding default.
* kxcjk1013
  - Add KIOX0009 ACPI ID as seen on the Acer One 10.
* lsm6dsx
  - Rework leading to...
  - External sensor support using the built in I2C master.
  - Initial support for a slave lis2mdl magnetometer.
* meson-saradc
  - Add temperature sensor support and bindings.
* st_magn
  - New ID for lsm9dsl_magn with bindings
  - New ID for lis3de accelerometer
* tpl0102
  - Add supprot for IIO_AVAIL_RANGE to report the range available
    from this device to userspace and in kernel users.

Cleanups and minor fixes
* tools
  - Allow outside specification of CFLAGS
* ad2s90
  - Handle and spi_read error.
  - Handle spi_setup failure
  - Drop a pointless assignment.
  - Prevent a potentail race by moving device registration to after
    all other setup.
  - Add missing scale attribute.
  - Add a sanity check on channel type before trying to read it.
* ad2s1210
  - Move to modern gpio descriptors.
  - Drop a gpioin flag which made no sense as far as we can tell.
  - Add dt table (bindings doc to follow when this is ready for
    moving out of staging).
* ad5933
  - Drop camel-case naming of ext_clk_hz.
  - White space fixes.
* ad7150
  - Local variable to shorten overly long line.
  - Alignment and line break fixes.
* ad7280a
  - Handle an error path that was previously ignored.
  - Use crc8.h to build the crc table replacing custom code.
  - Avoid unecessary cast.
  - Power down the device if an error happens in probe
  - Use devm routines to simplify probe and remove.
* ad7606
  - Alignment fixes.
* ad7780
  - This worked as long as by coincidence an uninitialized value
    was 0.  Lets not rely on that.
  - Ensure gain update is only used with the ad778x chips that
    actually support it.
  - Tidy up pattern mask generation.
  - Read regulator when scale is requested (which should be infrequent)
    as it might have changed from initialization.
* ad7816
  - Move to modern gpio descriptors
  - Don't use a busy_pin for ad7818 as there isn't one.
  - Ensure RD/WR and CONVST pins are outputs (previously they
    were brought up as inputs which doesn't seem to make any sense)
  - DT id table.
* adc128s052
  - SPDX
* adt7316
  - Alignment fix.
  - Fix data reading.  When using I2C the driver never actually
    used the value read.  This has been broken a very long time
    hence no rush to fix it now + the driver is undergoing a lot
    of cleanup.
  - Sanity check that the i2c read didn't fail to actually read
    anything.
* dpot-dac
  - Mark a switch full through with slightly different text so that
    gcc doesn't warn on it.
* gyro-adc
  - Fix a wrong file in the MAINTAINERS entry and add binding doc to the
    listed files.
* ina2xx
  - Add some early returns to clarify error paths in switch.
* lsm6dsx
  - MAINTAINERS entry.
* max11100
  - SPDX
* max9611
  - SPDX
* mcp4131
  - use of_device_get_match_data in preference to spi_get_device_id
    approach.
* rcar-adc
  - SPDX
* sc27xx
  - Add ADC conversion timeout support to avoid possible fault.
* ssp_sensors
  - Don't free managed resources manually.
* st-magn
  - Add a comment to avoid future confusion over when to use -magn
    postfix (on multi chip in package parts)
  - Add BDU register for LIS3MDL where it seems to have been missed.
* st-sensors
  - Minor spelling, grammar etc fixes.
* tpl0102
  - Use a pointer rather than an index of an array to improve conciseness.

* tag 'iio-for-4.21a' of git://git.kernel.org/pub/scm/linux/kernel/git/jic23/iio: (80 commits)
  Staging: iio: adt7316: Add an extra check for 'ret' equals to 0
  Staging: iio: adt7316: Fix i2c data reading, set the data field
  dt-bindings: iio: adc: Add docs for ad7124
  iio: adc: Add ad7124 support
  dt-bindings: iio: adc: Add common ADCs properties to a separate file
  iio: ad_sigma_delta: Allow to provide custom data register address
  staging: iio: ad7816: Add device tree table.
  iio: imu: st_lsm6dsx: add entry in MAINTAINERS file
  iio: potentiometer: mcp4131: use of_device_get_match_data()
  staging: iio: adc: ad7280a: use devm_* APIs
  staging: iio: adc: ad7280a: power down the device on error in probe
  dt-bindings: iio: imu: st_lsm6dsx: add support to i2c pullup resistors
  iio: imu: st_lsm6dsx: add hw FIFO support to i2c controller
  iio: imu: st_lsm6dsx: add st_lsm6dsx_push_tagged_data routine
  iio: imu: st_lsm6dsx: add i2c embedded controller support
  iio: imu: st_lsm6dsx: introduce st_lsm6dsx_sensor_set_enable routine
  iio: imu: st_lsm6dsx: introduce ST_LSM6DSX_ID_EXT sensor ids
  iio: imu: st_lsm6dsx: remove static from st_lsm6dsx_set_watermark
  iio: imu: st_lsm6dsx: reload trimming parameter at bootstrap
  iio: imu: st_lsm6dsx: introduce locked read/write utility routines
  ...
parents 0e2c8fb5 00426e99
Loading
Loading
Loading
Loading
+16 −0
Original line number Diff line number Diff line
* Analog Devices AD7949/AD7682/AD7689

Required properties:
 - compatible: Should be one of
	* "adi,ad7949"
	* "adi,ad7682"
	* "adi,ad7689"
 - reg: spi chip select number for the device
 - vref-supply: The regulator supply for ADC reference voltage

Example:
adc@0 {
	compatible = "adi,ad7949";
	reg = <0>;
	vref-supply = <&vdd_supply>;
};
+23 −0
Original line number Diff line number Diff line
Common ADCs properties

Optional properties for child nodes:
- bipolar : Boolean, if set the channel is used in bipolar mode.
- diff-channels : Differential channels muxed for this ADC. The first value
		specifies the positive input pin, the second value the negative
		input pin.

Example:
	adc@0 {
		compatible = "some,adc";
		...
		channel@0 {
			bipolar;
			diff-channels = <0 1>;
			...
		};

		channel@1 {
			diff-channels = <2 3>;
			...
		};
	};
+75 −0
Original line number Diff line number Diff line
Analog Devices AD7124 ADC device driver

Required properties for the AD7124:
	- compatible: Must be one of "adi,ad7124-4" or "adi,ad7124-8"
	- reg: SPI chip select number for the device
	- spi-max-frequency: Max SPI frequency to use
		see: Documentation/devicetree/bindings/spi/spi-bus.txt
	- clocks: phandle to the master clock (mclk)
		see: Documentation/devicetree/bindings/clock/clock-bindings.txt
	- clock-names: Must be "mclk".
	- interrupts: IRQ line for the ADC
		see: Documentation/devicetree/bindings/interrupt-controller/interrupts.txt

	  Required properties:
		* #address-cells: Must be 1.
		* #size-cells: Must be 0.

	  Subnode(s) represent the external channels which are connected to the ADC.
	  Each subnode represents one channel and has the following properties:
		Required properties:
			* reg: The channel number. It can have up to 4 channels on ad7124-4
			  and 8 channels on ad7124-8, numbered from 0 to 15.
			* diff-channels: see: Documentation/devicetree/bindings/iio/adc/adc.txt

		Optional properties:
			* bipolar: see: Documentation/devicetree/bindings/iio/adc/adc.txt
			* adi,reference-select: Select the reference source to use when
			  converting on the the specific channel. Valid values are:
			  0: REFIN1(+)/REFIN1(−).
			  1: REFIN2(+)/REFIN2(−).
			  3: AVDD
			  If this field is left empty, internal reference is selected.

Optional properties:
	- refin1-supply: refin1 supply can be used as reference for conversion.
	- refin2-supply: refin2 supply can be used as reference for conversion.
	- avdd-supply: avdd supply can be used as reference for conversion.

Example:
	adc@0 {
		compatible = "adi,ad7124-4";
		reg = <0>;
		spi-max-frequency = <5000000>;
		interrupts = <25 2>;
		interrupt-parent = <&gpio>;
		refin1-supply = <&adc_vref>;
		clocks = <&ad7124_mclk>;
		clock-names = "mclk";

		#address-cells = <1>;
		#size-cells = <0>;

		channel@0 {
			reg = <0>;
			diff-channels = <0 1>;
			adi,reference-select = <0>;
		};

		channel@1 {
			reg = <1>;
			bipolar;
			diff-channels = <2 3>;
			adi,reference-select = <0>;
		};

		channel@2 {
			reg = <2>;
			diff-channels = <4 5>;
		};

		channel@3 {
			reg = <3>;
			diff-channels = <6 7>;
		};
	};
+6 −0
Original line number Diff line number Diff line
@@ -22,6 +22,12 @@ Required properties:
- vref-supply:	the regulator supply for the ADC reference voltage
- #io-channel-cells: must be 1, see ../iio-bindings.txt

Optional properties:
- nvmem-cells:		phandle to the temperature_calib eFuse cells
- nvmem-cell-names:	if present (to enable the temperature sensor
			calibration) this must contain "temperature_calib"


Example:
	saradc: adc@8680 {
		compatible = "amlogic,meson-gxl-saradc", "amlogic,meson-saradc";
+8 −1
Original line number Diff line number Diff line
* Texas Instruments' ADC128S052, ADC122S021 and ADC124S021 ADC chip

Required properties:
 - compatible: Should be "ti,adc128s052", "ti,adc122s021" or "ti,adc124s021"
 - compatible: Should be one of:
   - "ti,adc128s052"
   - "ti,adc122s021"
   - "ti,adc122s051"
   - "ti,adc122s101"
   - "ti,adc124s021"
   - "ti,adc124s051"
   - "ti,adc124s101"
 - reg: spi chip select number for the device
 - vref-supply: The regulator supply for ADC reference voltage

Loading