Merge tag 'iio-for-3.16a' of git://git.kernel.org/pub/scm/linux/kernel/git/jic23...
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 26 Apr 2014 15:12:25 +0000 (08:12 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 26 Apr 2014 15:12:25 +0000 (08:12 -0700)
Jonathan writes:

First round of IIO new driver, functionality and cleanups for the 3.16 cycle.

New device support
* AS3935 Lightning Sensor
* MCP3426/7/8 support added to the existing MCP3422 ADC driver
* AK8963 support in the AK8975 driver
* MPU6500 support in the MPU6050 driver (the functionality that is different
  is mostly not supported yet in either part).

Staging Graduations
* AD799x ADC

New functionality
* ACPI enumeration for the ak8975 driver

Cleanup / tweaks
* Use snprintf as a matter of good practice in a few additional places.
* Document *_mean_raw attributes.  These have been there a while, but were
  undocumented.
* Add an in kernel interface to get the mean values.
* Bug in the length of the event info mask that by coincidence wasn't yet
  actually causing any problems.
* itg3000 drop an unreachable return statement.
* spear_adc cleanups (heading for a staging graduation but a few more
  issues showed up in the review of these patches).
* Exynos ADC dependencies changed so it is only built when Exynos is present
  or COMPILE_TEST and OF are set.
* tsl2583 cleanups.
* Some cut and paste typos in the comments of various drivers still in staging.
* Couple of minor improvements to the ST sensor drivers.

1  2 
Documentation/devicetree/bindings/vendor-prefixes.txt
drivers/iio/adc/Kconfig
drivers/iio/adc/Makefile
drivers/staging/iio/addac/adt7316.c

index abc308083acb204c7625c5d53ed58d546c65f755,2025cee4b6b29a5fd8019beec41f45a01252dc3e..7e88bc6195653ac148c3e93ade52cce9ace87619
@@@ -3,7 -3,6 +3,7 @@@ Device tree binding vendor prefix regis
  This isn't an exhaustive list, but you should add new prefixes to it before
  using them to avoid name-space collisions.
  
 +abilis        Abilis Systems
  active-semi   Active-Semi International Inc
  ad    Avionic Design GmbH
  adi   Analog Devices, Inc.
@@@ -12,18 -11,15 +12,19 @@@ ak Asahi Kasei Corp
  allwinner     Allwinner Technology Co., Ltd.
  altr  Altera Corp.
  amcc  Applied Micro Circuits Corporation (APM, formally AMCC)
 +amd   Advanced Micro Devices (AMD), Inc.
+ ams   AMS AG
  amstaos       AMS-Taos Inc.
  apm   Applied Micro Circuits Corporation (APM)
  arm   ARM Ltd.
 +armadeus      ARMadeus Systems SARL
  atmel Atmel Corporation
  auo   AU Optronics Corporation
  avago Avago Technologies
  bosch Bosch Sensortec GmbH
  brcm  Broadcom Corporation
 +buffalo       Buffalo, Inc.
 +calxeda       Calxeda
  capella       Capella Microsystems, Inc
  cavium        Cavium, Inc.
  cdns  Cadence Design Systems Inc.
@@@ -31,45 -27,29 +32,45 @@@ chrp       Common Hardware Reference Platfor
  chunghwa      Chunghwa Picture Tubes Ltd.
  cirrus        Cirrus Logic, Inc.
  cortina       Cortina Systems, Inc.
 +crystalfontz  Crystalfontz America, Inc.
  dallas        Maxim Integrated Products (formerly Dallas Semiconductor)
  davicom       DAVICOM Semiconductor, Inc.
  denx  Denx Software Engineering
 +digi  Digi International Inc.
 +dlink D-Link Corporation
 +dmo   Data Modul AG
 +ebv   EBV Elektronik
  edt   Emerging Display Technologies
  emmicro       EM Microelectronic
  epfl  Ecole Polytechnique Fédérale de Lausanne
  epson Seiko Epson Corp.
  est   ESTeem Wireless Modems
 +eukrea  Eukréa Electromatique
 +excito        Excito
  fsl   Freescale Semiconductor
  GEFanuc       GE Fanuc Intelligent Platforms Embedded Systems, Inc.
  gef   GE Fanuc Intelligent Platforms Embedded Systems, Inc.
 +globalscale   Globalscale Technologies, Inc.
  gmt   Global Mixed-mode Technology, Inc.
 +google        Google, Inc.
  gumstix       Gumstix, Inc.
  haoyu Haoyu Microelectronic Co. Ltd.
  hisilicon     Hisilicon Limited.
  honeywell     Honeywell
  hp    Hewlett Packard
 +i2se  I2SE GmbH
  ibm   International Business Machines (IBM)
  idt   Integrated Device Technologies, Inc.
 +iom   Iomega Corporation
  img   Imagination Technologies Ltd.
 +intel Intel Corporation
  intercontrol  Inter Control Group
 +isee  ISEE 2007 S.L.
  isl   Intersil
  karo  Ka-Ro electronics GmbH
 +keymile       Keymile GmbH
 +lacie LaCie
 +lantiq        Lantiq Semiconductor
  lg    LG Corporation
  linux Linux-specific binding
  lsi   LSI Corp. (LSI Logic)
@@@ -77,61 -57,42 +78,61 @@@ marvell    Marvell Technology Group Ltd
  maxim Maxim Integrated Products
  microchip     Microchip Technology Inc.
  mosaixtech    Mosaix Technologies, Inc.
 +moxa  Moxa
 +mpl   MPL AG
 +mxicy Macronix International Co., Ltd.
  national      National Semiconductor
  neonode               Neonode Inc.
 +netgear       NETGEAR
 +newhaven      Newhaven Display International
  nintendo      Nintendo
 +nokia Nokia
  nvidia        NVIDIA
  nxp   NXP Semiconductors
  onnn  ON Semiconductor Corp.
 +opencores     OpenCores.org
  panasonic     Panasonic Corporation
  phytec        PHYTEC Messtechnik GmbH
  picochip      Picochip Ltd
 +plathome      Plat'Home Co., Ltd.
  powervr       PowerVR (deprecated, use img)
  qca   Qualcomm Atheros, Inc.
  qcom  Qualcomm Technologies, Inc
 +qnap  QNAP Systems, Inc.
 +raidsonic     RaidSonic Technology GmbH
  ralink        Mediatek/Ralink Technology Corp.
  ramtron       Ramtron International
  realtek Realtek Semiconductor Corp.
  renesas       Renesas Electronics Corporation
 +ricoh Ricoh Co. Ltd.
  rockchip      Fuzhou Rockchip Electronics Co., Ltd
  samsung       Samsung Semiconductor
  sbs   Smart Battery System
  schindler     Schindler
 +seagate       Seagate Technology PLC
  sil   Silicon Image
  silabs        Silicon Laboratories
  simtek
 +sii   Seiko Instruments, Inc.
  sirf  SiRF Technology, Inc.
 +smsc  Standard Microsystems Corporation
  snps  Synopsys, Inc.
  spansion      Spansion Inc.
  st    STMicroelectronics
  ste   ST-Ericsson
  stericsson    ST-Ericsson
 +synology      Synology, Inc.
  ti    Texas Instruments
  tlm   Trusted Logic Mobility
  toshiba       Toshiba Corporation
  toumaz        Toumaz
 +usi   Universal Scientifc Industrial Co., Ltd.
  v3    V3 Semiconductor
  via   VIA Technologies, Inc.
 +voipac        Voipac Technologies s.r.o.
  winbond Winbond Electronics corp.
  wlf   Wolfson Microelectronics
  wm    Wondermedia Technologies, Inc.
 +xes   Extreme Engineering Solutions (X-ES)
  xlnx  Xilinx
 +zyxel ZyXEL Communications Corp.
diff --combined drivers/iio/adc/Kconfig
index d86196cfe4b47091add5d756da6d3dbf7fded9eb,5572c5067c3c380c253fa037644ca1c91f2bc018..6cbf34a90c04b21fbb56cae6f711a3db386ef173
@@@ -96,6 -96,17 +96,17 @@@ config AD792
          To compile this driver as a module, choose M here: the
          module will be called ad7923.
  
+ config AD799X
+       tristate "Analog Devices AD799x ADC driver"
+       depends on I2C
+       select IIO_BUFFER
+       select IIO_TRIGGERED_BUFFER
+       help
+         Say yes here to build support for Analog Devices:
+         ad7991, ad7995, ad7999, ad7992, ad7993, ad7994, ad7997, ad7998
+         i2c analog to digital converters (ADC). Provides direct access
+         via sysfs.
  config AT91_ADC
        tristate "Atmel AT91 ADC"
        depends on ARCH_AT91
  
  config EXYNOS_ADC
        bool "Exynos ADC driver support"
-       depends on OF
+       depends on ARCH_EXYNOS || (OF && COMPILE_TEST)
        help
          Core support for the ADC block found in the Samsung EXYNOS series
          of SoCs for drivers such as the touchscreen and hwmon to use to share
@@@ -146,25 -157,16 +157,26 @@@ config MCP320
          called mcp320x.
  
  config MCP3422
-       tristate "Microchip Technology MCP3422/3/4 driver"
+       tristate "Microchip Technology MCP3422/3/4/6/7/8 driver"
        depends on I2C
        help
-         Say yes here to build support for Microchip Technology's MCP3422,
-         MCP3423 or MCP3424 analog to digital converters.
+         Say yes here to build support for Microchip Technology's
+         MCP3422, MCP3423, MCP3424, MCP3426, MCP3427 or MCP3428
+         analog to digital converters.
  
          This driver can also be built as a module. If so, the module will be
          called mcp3422.
  
 +config MEN_Z188_ADC
 +      tristate "MEN 16z188 ADC IP Core support"
 +      depends on MCB
 +      help
 +        Say yes here to enable support for the MEN 16z188 ADC IP-Core on a MCB
 +        carrier.
 +
 +        This driver can also be built as a module. If so, the module will be
 +        called men_z188_adc.
 +
  config NAU7802
        tristate "Nuvoton NAU7802 ADC driver"
        depends on I2C
@@@ -193,16 -195,6 +205,16 @@@ config TI_AM335X_AD
          Say yes here to build support for Texas Instruments ADC
          driver which is also a MFD client.
  
 +config TWL4030_MADC
 +      tristate "TWL4030 MADC (Monitoring A/D Converter)"
 +      depends on TWL4030_CORE
 +      help
 +      This driver provides support for Triton TWL4030-MADC. The
 +      driver supports both RT and SW conversion methods.
 +
 +      This driver can also be built as a module. If so, the module will be
 +      called twl4030-madc.
 +
  config TWL6030_GPADC
        tristate "TWL6030 GPADC (General Purpose A/D Converter) Support"
        depends on TWL4030_CORE
diff --combined drivers/iio/adc/Makefile
index ab346d88c68874e2ac06dc6f2911ef1ec6cf0f25,1e2fc8912825ca0a9d4931e61dd16e0c7f0702ea..9d60f2deaaaf276d8b6c0ee5134feb520f3dec9c
@@@ -11,17 -11,16 +11,18 @@@ obj-$(CONFIG_AD7476) += ad7476.
  obj-$(CONFIG_AD7791) += ad7791.o
  obj-$(CONFIG_AD7793) += ad7793.o
  obj-$(CONFIG_AD7887) += ad7887.o
+ obj-$(CONFIG_AD799X) += ad799x.o
  obj-$(CONFIG_AT91_ADC) += at91_adc.o
  obj-$(CONFIG_EXYNOS_ADC) += exynos_adc.o
  obj-$(CONFIG_LP8788_ADC) += lp8788_adc.o
  obj-$(CONFIG_MAX1363) += max1363.o
  obj-$(CONFIG_MCP320X) += mcp320x.o
  obj-$(CONFIG_MCP3422) += mcp3422.o
 +obj-$(CONFIG_MEN_Z188_ADC) += men_z188_adc.o
  obj-$(CONFIG_NAU7802) += nau7802.o
  obj-$(CONFIG_TI_ADC081C) += ti-adc081c.o
  obj-$(CONFIG_TI_AM335X_ADC) += ti_am335x_adc.o
 +obj-$(CONFIG_TWL4030_MADC) += twl4030-madc.o
  obj-$(CONFIG_TWL6030_GPADC) += twl6030-gpadc.o
  obj-$(CONFIG_VF610_ADC) += vf610_adc.o
  obj-$(CONFIG_VIPERBOARD_ADC) += viperboard_adc.o
index 9f0ebb329008c40a809101f17206c5b0e8acf544,6806d424e8d19b9d999b334b07319ece4390052e..5f1770e6f6c3211edf5b3b063857fadb6fdcbcaa
  #define ID_ADT75XX            0x10
  
  /*
-  * struct adt7316_chip_info - chip specifc information
+  * struct adt7316_chip_info - chip specific information
   */
  
  struct adt7316_chip_info {
        (ADT7316_TEMP_INT_MASK)
  
  /*
-  * struct adt7316_chip_info - chip specifc information
+  * struct adt7316_chip_info - chip specific information
   */
  
  struct adt7316_limit_regs {
@@@ -859,14 -859,11 +859,14 @@@ static ssize_t adt7316_show_DAC_update_
        else {
                switch (chip->dac_config & ADT7316_DA_EN_MODE_MASK) {
                case ADT7316_DA_EN_MODE_SINGLE:
 -                      return sprintf(buf, "0 - auto at any MSB DAC writing\n");
 +                      return sprintf(buf,
 +                              "0 - auto at any MSB DAC writing\n");
                case ADT7316_DA_EN_MODE_AB_CD:
 -                      return sprintf(buf, "1 - auto at MSB DAC AB and CD writing\n");
 +                      return sprintf(buf,
 +                              "1 - auto at MSB DAC AB and CD writing\n");
                case ADT7316_DA_EN_MODE_ABCD:
 -                      return sprintf(buf, "2 - auto at MSB DAC ABCD writing\n");
 +                      return sprintf(buf,
 +                              "2 - auto at MSB DAC ABCD writing\n");
                default: /* ADT7316_DA_EN_MODE_LDAC */
                        return sprintf(buf, "3 - manual\n");
                }
@@@ -1105,8 -1102,7 +1105,8 @@@ static ssize_t adt7316_store_DAC_intern
                        ldac_config = chip->ldac_config | ADT7316_DAC_IN_VREF;
        }
  
 -      ret = chip->bus.write(chip->bus.client, ADT7316_LDAC_CONFIG, ldac_config);
 +      ret = chip->bus.write(chip->bus.client, ADT7316_LDAC_CONFIG,
 +                      ldac_config);
        if (ret)
                return -EIO;
  
@@@ -1228,8 -1224,7 +1228,8 @@@ static ssize_t adt7316_show_ex_temp_AIN
        return adt7316_show_ad(chip, ADT7316_AD_SINGLE_CH_EX, buf);
  }
  
 -static IIO_DEVICE_ATTR(ex_temp_AIN1, S_IRUGO, adt7316_show_ex_temp_AIN1, NULL, 0);
 +static IIO_DEVICE_ATTR(ex_temp_AIN1, S_IRUGO, adt7316_show_ex_temp_AIN1,
 +              NULL, 0);
  static IIO_DEVICE_ATTR(ex_temp, S_IRUGO, adt7316_show_ex_temp_AIN1, NULL, 0);
  
  static ssize_t adt7316_show_AIN2(struct device *dev,
@@@ -1324,8 -1319,7 +1324,8 @@@ static ssize_t adt7316_store_in_temp_of
        struct iio_dev *dev_info = dev_to_iio_dev(dev);
        struct adt7316_chip_info *chip = iio_priv(dev_info);
  
 -      return adt7316_store_temp_offset(chip, ADT7316_IN_TEMP_OFFSET, buf, len);
 +      return adt7316_store_temp_offset(chip, ADT7316_IN_TEMP_OFFSET, buf,
 +                      len);
  }
  
  static IIO_DEVICE_ATTR(in_temp_offset, S_IRUGO | S_IWUSR,
@@@ -1350,8 -1344,7 +1350,8 @@@ static ssize_t adt7316_store_ex_temp_of
        struct iio_dev *dev_info = dev_to_iio_dev(dev);
        struct adt7316_chip_info *chip = iio_priv(dev_info);
  
 -      return adt7316_store_temp_offset(chip, ADT7316_EX_TEMP_OFFSET, buf, len);
 +      return adt7316_store_temp_offset(chip, ADT7316_EX_TEMP_OFFSET, buf,
 +                      len);
  }
  
  static IIO_DEVICE_ATTR(ex_temp_offset, S_IRUGO | S_IWUSR,