Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 74eb9c06 authored by Greg Kroah-Hartman's avatar Greg Kroah-Hartman
Browse files

Merge tag 'iio-for-5.4b-take3' of...

Merge tag 'iio-for-5.4b-take3' of git://git.kernel.org/pub/scm/linux/kernel/git/jic23/iio into staging-next

Jonathan writes:

Second set of new device support, cleanups and features for IIO in the 5.4 cycle

Revised pull request to fix up a missing Signed-off-by and roll in
a fix in the lsm9ds1 support after I broke it when applying.
Revised again because the fix changed a hash meaning a fix
that previously followed it now had the wrong fixes tag.

A few fixes in here that could have gone a faster path but aren't quite
worth the rush for 5.3.

New device support
* ad7606
  - Support the ad7606b which adds a software controlled mode alongside
    the pin controlled only approach of the ad7606. Including dt-bindings.
* lsm6dsx
  - Add support for the gyro and accelerometer part of the lsm9ds1 which is
    a compound device also including a magnetometer (st_sensors driver).
    Includes bindings and precursor rework of the driver.

Features
* ad7192
  - Add support for low pass filter control.
  - DT binding docs.

Cleanups and minor fixes
* MAINTAINERS
  - Fix a typo in a path.
  - Add entry for ad7606
* ad5380
  - Fix a failure to dereference a pointer before atempting to assign the
    value.
* ad7192
  - Drop platform data as not used in mainline and we now have full DT bindings.
* ad7606
  - YAML conversion for dt-bindings.
* adis16240
  - Rework write_raw to make it more readable using GENMASK.
* adis16460
  - Fix and issue with an unsigned variable holding potential negatives.
* cros_ec
  - Fix missing default of calibration vector so that we get 'something'
    before calibration is complete on a given axis.
* hid-sensors
  - Use int_pow instead of opencoding.
* isl29501
  - rename dt-binding docs to include renesas inline with other renesas parts
    and general current convention.
* kxcjk1013
  - Improve comments on the 'unusual' ACPI ids used to identify which sensor
    is which in certain laptops.
* lsm6dsx
  - Add one bit to the fifo status masks for a number of parts.
  - Drop a reserved entry from the sensitivity values to tidy up interface.
  - Use core conversion macro from G to m/s^2 for lsm9ds1 to make it easier
    to relate to the datasheet and consistent with other parts supported.
* max1027
  - Use device managed APIs to avoid manual error handling and cleanup.
* rfd77402
  - Typo in Kconfig help.
* sc27xx
  - Switch to polling mode from interrupts as interrupt handling typically
    to slow for very short sleeps.
* st-sensors
  - Fix some missing selects for regmap.
* tools
  - Add a .gitignore containing the binary outputs.

* tag 'iio-for-5.4b-take3' of git://git.kernel.org/pub/scm/linux/kernel/git/jic23/iio: (27 commits)
  iio: imu: st_lsm6dsx: rely on IIO_G_TO_M_S_2 for gain definition for LSM9DS1
  iio: imu: st_lsm6dsx: remove invalid gain value for LSM9DS1
  iio: cros_ec: set calibscale for 3d MEMS to unit vector
  iio: dac: ad5380: fix incorrect assignment to val
  iio: imu: st_lsm6dsx: Fix FIFO diff mask for tagged fifo
  dt-bindings: iio: imu: st_lsm6dsx: add lsm9ds1 device bindings
  iio: imu: st_lsm6dsx: add support for accel/gyro unit of lsm9ds1
  iio: imu: st_lsm6dsx: move register definitions to sensor_settings struct
  iio: imu: st_lsm6dsx: introduce update_fifo function pointer
  dt-bindings: iio: light: isl29501: Rename bindings documentation file
  Kconfig: Fix the reference to the RFD77402 ToF sensor in the 'help' section
  iio: st_sensors: Fix build error
  dt-bindings: iio: adc: Add AD7606B ADC documentation
  dt-bindings: iio: adc: Migrate AD7606 documentation to yaml
  MAINTAINERS: Add Beniamin Bia for AD7606 driver
  iio: adc: ad7606: Add support for AD7606B ADC
  tools: iio: add .gitignore
  iio: adc: sc27xx: Change to polling mode to read data
  iio: hid-sensor-attributes: Convert to use int_pow()
  iio: adc: max1027: Use device-managed APIs
  ...
parents dfa5b30b 6fa02948
Loading
Loading
Loading
Loading
+121 −0
Original line number Diff line number Diff line
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
# Copyright 2019 Analog Devices Inc.
%YAML 1.2
---
$id: http://devicetree.org/schemas/bindings/iio/adc/adi,ad7192.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Analog Devices AD7192 ADC device driver

maintainers:
  - Michael Hennerich <michael.hennerich@analog.com>

description: |
  Bindings for the Analog Devices AD7192 ADC device. Datasheet can be
  found here:
  https://www.analog.com/media/en/technical-documentation/data-sheets/AD7192.pdf

properties:
  compatible:
    enum:
      - adi,ad7190
      - adi,ad7192
      - adi,ad7193
      - adi,ad7195

  reg:
    maxItems: 1

  spi-cpol: true

  spi-cpha: true

  clocks:
    maxItems: 1
    description: phandle to the master clock (mclk)

  clock-names:
    items:
      - const: mclk

  interrupts:
    maxItems: 1

  dvdd-supply:
    description: DVdd voltage supply
    items:
      - const: dvdd

  avdd-supply:
    description: AVdd voltage supply
    items:
      - const: avdd

  adi,rejection-60-Hz-enable:
    description: |
      This bit enables a notch at 60 Hz when the first notch of the sinc
      filter is at 50 Hz. When REJ60 is set, a filter notch is placed at
      60 Hz when the sinc filter first notch is at 50 Hz. This allows
      simultaneous 50 Hz/ 60 Hz rejection.
    type: boolean

  adi,refin2-pins-enable:
    description: |
      External reference applied between the P1/REFIN2(+) and P0/REFIN2(−) pins.
    type: boolean

  adi,buffer-enable:
    description: |
      Enables the buffer on the analog inputs. If cleared, the analog inputs
      are unbuffered, lowering the power consumption of the device. If this
      bit is set, the analog inputs are buffered, allowing the user to place
      source impedances on the front end without contributing gain errors to
      the system.
    type: boolean

  adi,burnout-currents-enable:
    description: |
      When this bit is set to 1, the 500 nA current sources in the signal
      path are enabled. When BURN = 0, the burnout currents are disabled.
      The burnout currents can be enabled only when the buffer is active
      and when chop is disabled.
    type: boolean

  bipolar:
    description: see Documentation/devicetree/bindings/iio/adc/adc.txt
    type: boolean

required:
  - compatible
  - reg
  - clocks
  - clock-names
  - interrupts
  - dvdd-supply
  - avdd-supply
  - spi-cpol
  - spi-cpha

examples:
  - |
    spi0 {
      adc@0 {
        compatible = "adi,ad7192";
        reg = <0>;
        spi-max-frequency = <1000000>;
        spi-cpol;
        spi-cpha;
        clocks = <&ad7192_mclk>;
        clock-names = "mclk";
        #interrupt-cells = <2>;
        interrupts = <25 0x2>;
        interrupt-parent = <&gpio>;
        dvdd-supply = <&dvdd>;
        avdd-supply = <&avdd>;

        adi,refin2-pins-enable;
        adi,rejection-60-Hz-enable;
        adi,buffer-enable;
        adi,burnout-currents-enable;
        };
    };
+0 −66
Original line number Diff line number Diff line
Analog Devices AD7606 Simultaneous Sampling ADC

Required properties for the AD7606:

- compatible: Must be one of
	* "adi,ad7605-4"
	* "adi,ad7606-8"
	* "adi,ad7606-6"
	* "adi,ad7606-4"
	* "adi,ad7616"
- reg: SPI chip select number for the device
- spi-max-frequency: Max SPI frequency to use
	see: Documentation/devicetree/bindings/spi/spi-bus.txt
- spi-cpha: See Documentation/devicetree/bindings/spi/spi-bus.txt
- avcc-supply: phandle to the Avcc power supply
- interrupts: IRQ line for the ADC
	see: Documentation/devicetree/bindings/interrupt-controller/interrupts.txt
- adi,conversion-start-gpios: must be the device tree identifier of the CONVST pin.
		  This logic input is used to initiate conversions on the analog
		  input channels. As the line is active high, it should be marked
		  GPIO_ACTIVE_HIGH.

Optional properties:

- reset-gpios: must be the device tree identifier of the RESET pin. If specified,
	       it will be asserted during driver probe. As the line is active high,
	       it should be marked GPIO_ACTIVE_HIGH.
- standby-gpios: must be the device tree identifier of the STBY pin. This pin is used
		to place the AD7606 into one of two power-down modes, Standby mode or
		Shutdown mode. As the line is active low, it should be marked
		GPIO_ACTIVE_LOW.
- adi,first-data-gpios: must be the device tree identifier of the FRSTDATA pin.
		    The FRSTDATA output indicates when the first channel, V1, is
		    being read back on either the parallel, byte or serial interface.
		    As the line is active high, it should be marked GPIO_ACTIVE_HIGH.
- adi,range-gpios: must be the device tree identifier of the RANGE pin. The polarity on
	      this pin determines the input range of the analog input channels. If
	      this pin is tied to a logic high, the analog input range is ±10V for
	      all channels. If this pin is tied to a logic low, the analog input range
	      is ±5V for all channels. As the line is active high, it should be marked
	      GPIO_ACTIVE_HIGH.
- adi,oversampling-ratio-gpios: must be the device tree identifier of the over-sampling
				mode pins. As the line is active high, it should be marked
				GPIO_ACTIVE_HIGH.

Example:

	adc@0 {
		compatible = "adi,ad7606-8";
		reg = <0>;
		spi-max-frequency = <1000000>;
		spi-cpol;

		avcc-supply = <&adc_vref>;

		interrupts = <25 IRQ_TYPE_EDGE_FALLING>;
		interrupt-parent = <&gpio>;

		adi,conversion-start-gpios = <&gpio 17 GPIO_ACTIVE_HIGH>;
		reset-gpios = <&gpio 27 GPIO_ACTIVE_HIGH>;
		adi,first-data-gpios = <&gpio 22 GPIO_ACTIVE_HIGH>;
		adi,oversampling-ratio-gpios = <&gpio 18 GPIO_ACTIVE_HIGH
						&gpio 23 GPIO_ACTIVE_HIGH
						&gpio 26 GPIO_ACTIVE_HIGH>;
		standby-gpios = <&gpio 24 GPIO_ACTIVE_LOW>;
	};
+138 −0
Original line number Diff line number Diff line
# SPDX-License-Identifier: GPL-2.0
%YAML 1.2
---
$id: http://devicetree.org/schemas/iio/adc/adi,ad7606.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Analog Devices AD7606 Simultaneous Sampling ADC

maintainers:
  - Beniamin Bia <beniamin.bia@analog.com>
  - Stefan Popa <stefan.popa@analog.com>

description: |
  Analog Devices AD7606 Simultaneous Sampling ADC
  https://www.analog.com/media/en/technical-documentation/data-sheets/ad7606_7606-6_7606-4.pdf
  https://www.analog.com/media/en/technical-documentation/data-sheets/AD7606B.pdf
  https://www.analog.com/media/en/technical-documentation/data-sheets/AD7616.pdf

properties:
  compatible:
    enum:
      - adi,ad7605-4
      - adi,ad7606-8
      - adi,ad7606-6
      - adi,ad7606-4
      - adi,ad7606b
      - adi,ad7616

  reg:
    maxItems: 1

  spi-cpha: true

  avcc-supply:
    description:
      Phandle to the Avcc power supply
    maxItems: 1

  interrupts:
    maxItems: 1

  adi,conversion-start-gpios:
    description:
      Must be the device tree identifier of the CONVST pin.
      This logic input is used to initiate conversions on the analog
      input channels. As the line is active high, it should be marked
      GPIO_ACTIVE_HIGH.
    maxItems: 1

  reset-gpios:
    description:
      Must be the device tree identifier of the RESET pin. If specified,
      it will be asserted during driver probe. As the line is active high,
      it should be marked GPIO_ACTIVE_HIGH.
    maxItems: 1

  standby-gpios:
    description:
       Must be the device tree identifier of the STBY pin. This pin is used
       to place the AD7606 into one of two power-down modes, Standby mode or
       Shutdown mode. As the line is active low, it should be marked
       GPIO_ACTIVE_LOW.
    maxItems: 1

  adi,first-data-gpios:
    description:
      Must be the device tree identifier of the FRSTDATA pin.
      The FRSTDATA output indicates when the first channel, V1, is
      being read back on either the parallel, byte or serial interface.
      As the line is active high, it should be marked GPIO_ACTIVE_HIGH.
    maxItems: 1

  adi,range-gpios:
    description:
      Must be the device tree identifier of the RANGE pin. The polarity on
      this pin determines the input range of the analog input channels. If
      this pin is tied to a logic high, the analog input range is ±10V for
      all channels. If this pin is tied to a logic low, the analog input range
      is ±5V for all channels. As the line is active high, it should be marked
      GPIO_ACTIVE_HIGH.
    maxItems: 1

  adi,oversampling-ratio-gpios:
    description:
      Must be the device tree identifier of the over-sampling
      mode pins. As the line is active high, it should be marked
      GPIO_ACTIVE_HIGH.
    maxItems: 1

  adi,sw-mode:
    description:
      Software mode of operation, so far available only for ad7616 and ad7606b.
      It is enabled when all three oversampling mode pins are connected to
      high level. The device is configured by the corresponding registers. If the
      adi,oversampling-ratio-gpios property is defined, then the driver will set the
      oversampling gpios to high. Otherwise, it is assumed that the pins are hardwired
      to VDD.
    type: boolean

required:
  - compatible
  - reg
  - spi-cpha
  - avcc-supply
  - interrupts
  - adi,conversion-start-gpios

examples:
  - |
    #include <dt-bindings/gpio/gpio.h>
    #include <dt-bindings/interrupt-controller/irq.h>
    spi0 {
        #address-cells = <1>;
        #size-cells = <0>;

        adc@0 {
                compatible = "adi,ad7606-8";
                reg = <0>;
                spi-max-frequency = <1000000>;
                spi-cpol;
                spi-cpha;

                avcc-supply = <&adc_vref>;

                interrupts = <25 IRQ_TYPE_EDGE_FALLING>;
                interrupt-parent = <&gpio>;

                adi,conversion-start-gpios = <&gpio 17 GPIO_ACTIVE_HIGH>;
                reset-gpios = <&gpio 27 GPIO_ACTIVE_HIGH>;
                adi,first-data-gpios = <&gpio 22 GPIO_ACTIVE_HIGH>;
                adi,oversampling-ratio-gpios = <&gpio 18 GPIO_ACTIVE_HIGH
                                                &gpio 23 GPIO_ACTIVE_HIGH
                                                &gpio 26 GPIO_ACTIVE_HIGH>;
                standby-gpios = <&gpio 24 GPIO_ACTIVE_LOW>;
                adi,sw-mode;
        };
    };
...
+1 −0
Original line number Diff line number Diff line
@@ -13,6 +13,7 @@ Required properties:
  "st,lsm6dsr"
  "st,lsm6ds3tr-c"
  "st,ism330dhcx"
  "st,lsm9ds1-imu"
- reg: i2c address of the sensor / spi cs line

Optional properties:
Loading