tree 3dd81a7c4690da4f19b5f0616a60f0a9dfaec809
parent caf382fe31b7327a1e4449f1c05c0cc7fb5b90be
parent 2017cff24cc08b145bff7256dd6b0ef99e7e8a01
author Greg Kroah-Hartman <gregkh@linuxfoundation.org> 1411165281 -0700
committer Greg Kroah-Hartman <gregkh@linuxfoundation.org> 1411165281 -0700
mergetag object 2017cff24cc08b145bff7256dd6b0ef99e7e8a01
 type commit
 tag iio-for-3.18b
 tagger Jonathan Cameron <jic23@kernel.org> 1410897125 +0100
 
 Second round of new IIO drivers, features and cleanups for the 3.18 cycle.
 
 New drivers and part support
 * Bosch bmg160 Gyroscope driver
 * Dyna-Image al3320a ambient light sensor driver
 * Bosh bmi055 gyroscope part driver (accelerometer part supported by bmc150)
 * isl29018 - add support for isl29023 and isl29035
 * kxcjk-1013 - add support for kxcj9-1008 and kxtj2-1009
 * bmc150 - additional part support (BMI055 accelerometer part, BMA255,
   BMA222E, BMA250E and BMA280).  Different resolutions but otherwise similar
   parts.
 * bma180 - add BMA250 (note different from the BMA250E support above despite
   the naming).  A lot of driver reworking lead up to this - described below.
 
 New features
 * kxcjk1013 - add threshold event support.
 * rockchip - document DT bindings.
 * isl29018 - ACPI support
 * bma180 - enable use without IRQ
 
 Cleanups
 * Tree wide - drop owner field assignment if using the module_platform_driver
   helper as that assigns it anyway.
 * kxcjk1013 - drop a redundant assignment of the current range and fix a
   a defined but not used warning.
 * inv_mpu6050 - Remove an unnecessary cast form a void pointer.
 * rockchip - drop and unused variable.
 * at91_adc - make a local function static.
 * st-sensors-core - correctly handle an error in setting in
   st_sensors_set_drdy_int_pin
 * isl29018 - typo fix
 * bmc150 - fix incorrect scale value for 16G range (Driver new this cycle)
 * bmc150 - fix issues when CONFIG_PM_RUNTIME not set (Driver new this cycle)
 * ad7606 - line length tidy up.
 * bmg160 - set power state only if PM_RUNTIME is defined.
 * ak8975 - fix some unnecessary casting between char * and const char *
 * bma180 - prefix remaining bits and bobs with bma180_ and ensure consistent.
          - use a bool instead of an int for state (as its either on or off).
          - expose the temperature channel
          - statically allocate buffers to avoid need for update_scan_mode
            callback.
          - refactor to allow futher chip variants including support for part
            specific config and disable code + different resolutions.
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v2
 
 iQIcBAABAgAGBQJUGJipAAoJEFSFNJnE9BaIPMUP/38mZ3zua6Tupx74APGwjiNm
 wWWve38LdWKM4tzkrI9DycdfZbrNyiAs570kpSvp4CT2hQfQ8aYcFSA85xyPuFtl
 0f3x5qp1pM28Bv4yYgNqf/QnZ1QK8P3cRTv59uiII6Z3MKVhIpvG+P+svMEaKjqD
 +u+MQnevQ5C8ejykOV/YKcrFwdq5/IcJojwC8ga50GZBE3CmGGmkEi8lGdWSgn8E
 EUv6lRSjGeYcJgWDged1cTA0yLJ3yu7/10OkJwRhvQEmthfUsgNYT2zIJYn966S5
 5xSG40Aa/V+FUATBmreW8dcFH2fYSdZjsLdtbyX4X+OeMtK7eNsSr0Ikkm9YpNsE
 1QAQeREE9LbimIdwGBMkpakiS/NAEYo/8jvUk896BBkCpnTHUg8lMn0NztYCAkvT
 Q+zGAv+/axvCAQ7hxSTyFdd4+wVbsXthDxY/8NosAGTfeQE+5iG5Jtr39qxJ1NEj
 ua3qSFPQLcACCjMkF6MONo0i+fuUJOSiovUmDupKm+aaiXQl5m7TZMxrvQ8LOYH7
 NJyragLrDPOxT8C2T3PJ0jQM/dNAkh8v4JK7i9ysz8RtgB+i0CoZTM+8JjWUfv1D
 VQhizA8Nn1WnW2RnIrap9y3I8JC0Pb0GzbvWG4ItF0uR/UIkCbahMzIQcf1XARJU
 Rc7Oq7icbZdPs233Jlsx
 =fazl
 -----END PGP SIGNATURE-----

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

Jonathan writes:

Second round of new IIO drivers, features and cleanups for the 3.18 cycle.

New drivers and part support
* Bosch bmg160 Gyroscope driver
* Dyna-Image al3320a ambient light sensor driver
* Bosh bmi055 gyroscope part driver (accelerometer part supported by bmc150)
* isl29018 - add support for isl29023 and isl29035
* kxcjk-1013 - add support for kxcj9-1008 and kxtj2-1009
* bmc150 - additional part support (BMI055 accelerometer part, BMA255,
  BMA222E, BMA250E and BMA280).  Different resolutions but otherwise similar
  parts.
* bma180 - add BMA250 (note different from the BMA250E support above despite
  the naming).  A lot of driver reworking lead up to this - described below.

New features
* kxcjk1013 - add threshold event support.
* rockchip - document DT bindings.
* isl29018 - ACPI support
* bma180 - enable use without IRQ

Cleanups
* Tree wide - drop owner field assignment if using the module_platform_driver
  helper as that assigns it anyway.
* kxcjk1013 - drop a redundant assignment of the current range and fix a
  a defined but not used warning.
* inv_mpu6050 - Remove an unnecessary cast form a void pointer.
* rockchip - drop and unused variable.
* at91_adc - make a local function static.
* st-sensors-core - correctly handle an error in setting in
  st_sensors_set_drdy_int_pin
* isl29018 - typo fix
* bmc150 - fix incorrect scale value for 16G range (Driver new this cycle)
* bmc150 - fix issues when CONFIG_PM_RUNTIME not set (Driver new this cycle)
* ad7606 - line length tidy up.
* bmg160 - set power state only if PM_RUNTIME is defined.
* ak8975 - fix some unnecessary casting between char * and const char *
* bma180 - prefix remaining bits and bobs with bma180_ and ensure consistent.
         - use a bool instead of an int for state (as its either on or off).
         - expose the temperature channel
         - statically allocate buffers to avoid need for update_scan_mode
           callback.
         - refactor to allow futher chip variants including support for part
           specific config and disable code + different resolutions.
