Commit 4463c3e7 authored by Greg Kroah-Hartman's avatar Greg Kroah-Hartman
Browse files

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

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

Jonathan writes:

First round of new device support, features and cleanups for IIO in the 4.11 cycle.

It's shaping to be another fairly busy cycle. Lots more on the way!

New device support
* ads7950
  - new driver supporting ads7950, ads7951, ads7952, ads7953, ads7954,
  ads7955, ads7956, ads7957, ads7958, ads7959, ads7960, and ads7961 ADCs.
* cm3605
  - New driver for this light sensor and proximity sensor  which is an
  analog part with some additional digital controls.
* hx711
  - New driver.

Core new stuff
* Gravity sensor type.  This is a processed datastream in which the device
will try to work out which way is down.
* Split the buffer.h file into two parts. One provides the interface to 'use'
a buffer, the second provides the internals of the buffer functionality as
needed by implementations of buffers.
  - Move documentation inline so as to allow use of private: tag when
  generating documentation.
  - Add some utility functions for the few things that are directly done
  with the buffers.
  - Stop exporting functions that no-one uses outside of the core code.
  - Push docs down by the code in the c file where they should have always
  been.
  - Fix typo in kernel-doc for buffer.
  - push down some includes that were previously happening implicitly.
  - stop enabling the timestamp of the dummy device.

Features and cleanups
* ad5592r
  - ACPI support
* ad5593r
  -ACPI support.
* ad5933
  - Fix a false comment about size of a particular register.
* ad7150
  - replace S_IRUGO | S_IWUSR with 0644.  I'm not that keen on these patches
  in general, but as it was nicely presented I took this one anyway. As a
  general rule will only take these as part of a larger driver cleanup.
  - don't eat an error but rather reutnr it in the write_event_config callback.
* ad7606
  - replace non standard range attibute with _scale
* ade7753
  - use usleep_range for short sleeps
* ade7754
  - use usleep_range for short sleeps
* ade7758
  - use usleep_range for short sleeps
* ade7759
  - use usleep_range for short sleeps
* ade7854
  - use usleep_range for short sleeps
* adis16201
  - fix description
* adis16203
  - fix description
  - fix copyright year
* adis16209
  - fix description
* adt7316
  - Add braces to arms of if else statement (for consistency)
  - Alignment fixes.
* axp288
  - Fix up an issue with accidental overwrites of data.
* bmi160
  - add deivce tables for i2c and spi to support correctly identifying the
  full dt name (including manufacturer).
  - device tree binding.
* bmp280
  - use usleep_range for short sleeps.
* cm3232
  - return error from cm3232_reg_init rather than eating it if the last write
  fails.
* dummy driver
  - remove a semicolor found at end of a function defintition.
* exynos-adc
  - use usleep_range for short sleeps.
* hid-sensor (accel)
  - Add timestamp support.  The hardware can provide timestamps so lets support
  them. If not fall back to timestamps estimated in kernel.
* hid-sensor (light)
  - Add a duplicate ID for the light channels so as to keep existing interface
  whilst also using the more standard IIO interface.
* hts221
  - acpi probing
* imx25-gcq
  - Add a macro call to allow this driver to be automatically loaded.
* isl29028
  - reorganise code to avoid deep nesting of if statements.
  - move chip test and default regs into a function suitable or sharing with
  power management code.
  - tidy up some code alignment.
* lidar-lite-v3
  - introduce compatible strings that make it clear Garmin have consideral
  friends.
* mma8452
  - avoid returning signed value when unsigned is appropriate
* spmi-vadc
  - Update function for generic voltage conversion to take into account that
  different channels on this device should be handled differently.
  - Rework code to allow per channel voltage scaling and support the standard
  options for this hardware.
  - Fixup three minor issues with the above patches for this part. These all
  effect test builds rather than the native builds for the part, but good to
  clean them up anyway.
* st_sensors
  - support device matching from the ACPI DST tables.
  - acpi based probing for accelerometers
  - acpi based probing for pressure sensors
  - Allow pressure sensors to read negative values.
  - Export sampling frequency for lps25h and lps331ap.
  - Add support for the old DT bindings from the period when these deivces
  were often supported through windows.

Docs fixup:
* typo in sysfs-bus-iio
parents 1fac9c5a e30eca0e
Loading
Loading
Loading
Loading
+11 −1
Original line number Diff line number Diff line
@@ -170,6 +170,16 @@ Description:
		Has all of the equivalent parameters as per voltageY. Units
		after application of scale and offset are m/s^2.

What:		/sys/bus/iio/devices/iio:deviceX/in_gravity_x_raw
What:		/sys/bus/iio/devices/iio:deviceX/in_gravity_y_raw
What:		/sys/bus/iio/devices/iio:deviceX/in_gravity_z_raw
KernelVersion:	4.11
Contact:	linux-iio@vger.kernel.org
Description:
		Gravity in direction x, y or z (may be arbitrarily assigned
		but should match other such assignments on device).
		Units after application of scale and offset are m/s^2.

What:		/sys/bus/iio/devices/iio:deviceX/in_anglvel_x_raw
What:		/sys/bus/iio/devices/iio:deviceX/in_anglvel_y_raw
What:		/sys/bus/iio/devices/iio:deviceX/in_anglvel_z_raw
@@ -805,7 +815,7 @@ Description:
		attribute. E.g. if in_voltage0_raw_thresh_rising_value is set to 1200
		and in_voltage0_raw_thresh_rising_hysteresis is set to 50. The event
		will get activated once in_voltage0_raw goes above 1200 and will become
		deactived again once the value falls below 1150.
		deactivated again once the value falls below 1150.

What:		/sys/.../events/in_accel_x_raw_roc_rising_value
What:		/sys/.../events/in_accel_x_raw_roc_falling_value
+1 −1
Original line number Diff line number Diff line
@@ -5,7 +5,7 @@ that apply in on the generic device (independent from the bus).


Required properties for the SPI bindings:
 - compatible: 		should be set to "st,lis3lv02d_spi"
 - compatible: 		should be set to "st,lis3lv02d-spi"
 - reg:			the chipselect index
 - spi-max-frequency:	maximal bus speed, should be set to 1000000 unless
			constrained by external circuitry
+18 −0
Original line number Diff line number Diff line
* AVIA HX711 ADC chip for weight cells
  Bit-banging driver

Required properties:
 - compatible:	Should be "avia,hx711"
 - sck-gpios:	Definition of the GPIO for the clock
 - dout-gpios:	Definition of the GPIO for data-out
		See Documentation/devicetree/bindings/gpio/gpio.txt
 - avdd-supply:	Definition of the regulator used as analog supply

Example:
weight@0 {
	compatible = "avia,hx711";
	sck-gpios = <&gpio3 10 GPIO_ACTIVE_HIGH>;
	dout-gpios = <&gpio0 7 GPIO_ACTIVE_HIGH>;
	avdd-suppy = <&avdd>;
};
+36 −0
Original line number Diff line number Diff line
Bosch BMI160 - Inertial Measurement Unit with Accelerometer, Gyroscope
and externally connectable Magnetometer

https://www.bosch-sensortec.com/bst/products/all_products/bmi160

Required properties:
 - compatible : should be "bosch,bmi160"
 - reg : the I2C address or SPI chip select number of the sensor
 - spi-max-frequency : set maximum clock frequency (only for SPI)

Optional properties:
 - interrupt-parent : should be the phandle of the interrupt controller
 - interrupts : interrupt mapping for IRQ, must be IRQ_TYPE_LEVEL_LOW
 - interrupt-names : set to "INT1" if INT1 pin should be used as interrupt
   input, set to "INT2" if INT2 pin should be used instead

Examples:

bmi160@68 {
	compatible = "bosch,bmi160";
	reg = <0x68>;

	interrupt-parent = <&gpio4>;
	interrupts = <12 IRQ_TYPE_LEVEL_LOW>;
	interrupt-names = "INT1";
};

bmi160@0 {
	compatible = "bosch,bmi160";
	reg = <0>;
	spi-max-frequency = <10000000>;

	interrupt-parent = <&gpio2>;
	interrupts = <12 IRQ_TYPE_LEVEL_LOW>;
	interrupt-names = "INT2";
};
+41 −0
Original line number Diff line number Diff line
Capella Microsystems CM3605
Ambient Light and Short Distance Proximity Sensor

The CM3605 is an entirely analog part which however require quite a bit of
software logic to interface a host operating system.

This ALS and proximity sensor was one of the very first deployed in mobile
handsets, notably it is used in the very first Nexus One Android phone from
2010.

Required properties:
- compatible: must be: "capella,cm3605"
- aset-gpios: GPIO line controlling the ASET line (drive low
  to activate the ALS, should be flagged GPIO_ACTIVE_LOW)
- interrupts: the IRQ line (such as a GPIO) that is connected to
  the POUT (proximity sensor out) line. The edge detection must
  be set to IRQ_TYPE_EDGE_BOTH so as to detect movements toward
  and away from the proximity sensor.
- io-channels: the ADC channel used for converting the voltage from
  AOUT to a digital representation.
- io-channel-names: must be "aout"

Optional properties:
- vdd-supply: regulator supplying VDD power to the component.
- capella,aset-resistance-ohms: the sensitivity calibration resistance,
  in Ohms. Valid values are: 50000, 100000, 300000 and 600000,
  as these are the resistance values that we are supplied with
  calibration curves for. If not supplied, 100 kOhm will be assumed
  but it is strongly recommended to supply this.

Example:

cm3605 {
	compatible = "capella,cm3605";
	vdd-supply = <&foo_reg>;
	aset-gpios = <&foo_gpio 1 GPIO_ACTIVE_LOW>;
	capella,aset-resistance-ohms = <100000>;
	interrupts = <1 IRQ_TYPE_EDGE_BOTH>;
	io-channels = <&adc 0x01>;
	io-channel-names = "aout";
};
Loading