1. 02 4月, 2017 1 次提交
  2. 01 4月, 2017 2 次提交
    • R
      iio: Aspeed ADC · 57380323
      Rick Altherr 提交于
      Aspeed BMC SoCs include a 16 channel, 10-bit ADC. Low and high threshold
      interrupts are supported by the hardware but are not currently implemented.
      Signed-off-by: NRick Altherr <raltherr@google.com>
      Tested-by: NXo Wang <xow@google.com>
      Reviewed-by: NJoel Stanley <joel@jms.id.au>
      Signed-off-by: NJonathan Cameron <jic23@kernel.org>
      57380323
    • S
      iio: adc: hx711: constify attribute_group structures · 4214dc18
      simran singhal 提交于
      Check for attribute_group structures that are only stored in the
      attrs filed of iio_info structure. As the attrs field of iio_info
      structures is constant, so these attribute_group structures can also be
      declared constant.
      Done using coccinelle:
      
      @r1 disable optional_qualifier @
      identifier i;
      position p;
      @@
      static struct attribute_group i@p = {...};
      
      @ok1@
      identifier r1.i;
      position p;
      struct iio_info x;
      @@
      x.attrs=&i@p;
      
      @bad@
      position p!={r1.p,ok1.p};
      identifier r1.i;
      @@
      i@p
      
      @depends on !bad disable optional_qualifier@
      identifier r1.i;
      @@
      static
      +const
      struct attribute_group i={...};
      
      @depends on !bad disable optional_qualifier@
      identifier r1.i;
      @@
      +const
      struct attribute_group i;
      
      File size before:
         text	   data	    bss	    dec	    hex	filename
         3042	    480	      0	   3522	    dc2	drivers/iio/adc/hx711.o
      
      File size after:
         text	   data	    bss	    dec	    hex	filename
         3098	    416	      0	   3514	    dba	drivers/iio/adc/hx711.o
      Signed-off-by: Nsimran singhal <singhalsimran0@gmail.com>
      Signed-off-by: NJonathan Cameron <jic23@kernel.org>
      4214dc18
  3. 31 3月, 2017 2 次提交
    • T
      iio: adc: cpcap: Add minimal support for CPCAP PMIC ADC · 25ec2496
      Tony Lindgren 提交于
      On Motorola phones like droid 4 there is a custom CPCAP PMIC. This PMIC
      has ADCs that are used for battery charging and USB PHY VBUS and ID pin
      detection.
      
      Unfortunately the only documentation for this ADC seems to be the
      Motorola mapphone Linux kernel tree. I have tested that reading raw and
      scaled values works, but I have not used the timed sampling that the ADC
      seems to support.
      
      Let's add a minimal support for it so we can eventually provide IIO
      channels for the related battery charging and USB PHY drivers.
      
      Cc: devicetree@vger.kernel.org
      Cc: Marcel Partap <mpartap@gmx.net>
      Cc: Michael Scott <michael.scott@linaro.org>
      Cc: Sebastian Reichel <sre@kernel.org>
      Signed-off-by: NTony Lindgren <tony@atomide.com>
      Acked-by: NRob Herring <robh@kernel.org>
      Signed-off-by: NJonathan Cameron <jic23@kernel.org>
      25ec2496
    • A
      iio: adc: replace comma with a semicolon · bb4787f5
      Arushi Singhal 提交于
      Replace a comma between expression statements by a semicolon. This
      changes the semantics of the code, but given the current indentation
      appears to be what is intended.
      A simplified version of the Coccinelle semantic patch that performs this
      transformation is as follows:
      
      // <smpl>
      @r@
      expression e1,e2;
      @@
      
       e1
      -,
      +;
       e2;
      // </smpl>
      Signed-off-by: NArushi Singhal <arushisinghal19971997@gmail.com>
      Signed-off-by: NJonathan Cameron <jic23@kernel.org>
      bb4787f5
  4. 30 3月, 2017 2 次提交
    • S
      iio: adc: ad799x: constify attribute_group structures · 612dc0e2
      simran singhal 提交于
      Check for attribute_group structures that are only stored in the
      event_attrs filed of iio_info structure. As the event_attrs field of
      iio_info structures is constant, so these attribute_group structures can
      also be declared constant.
      Done using coccinelle:
      
      @r1 disable optional_qualifier @
      identifier i;
      position p;
      @@
      static struct attribute_group i@p = {...};
      
      @ok1@
      identifier r1.i;
      position p;
      struct iio_info x;
      @@
      x.event_attrs=&i@p;
      
      @bad@
      position p!={r1.p,ok1.p};
      identifier r1.i;
      @@
      i@p
      
      @depends on !bad disable optional_qualifier@
      identifier r1.i;
      @@
      static
      +const
      struct attribute_group i={...};
      
      @depends on !bad disable optional_qualifier@
      identifier r1.i;
      @@
      +const
      struct attribute_group i;
      
      File size before:
         text    data     bss     dec     hex filename
        26051     464       0   26515    6793 drivers/iio/adc/ad799x.o
      
      File size after:
         text	   data	    bss	    dec	    hex	filename
        26115	    400	      0	  26515	   6793	drivers/iio/adc/ad799x.o
      Signed-off-by: Nsimran singhal <singhalsimran0@gmail.com>
      Signed-off-by: NJonathan Cameron <jic23@kernel.org>
      612dc0e2
    • S
      iio: adc: max1363: constify attribute_group structures · c94645b1
      simran singhal 提交于
      Check for attribute_group structures that are only stored in the
      event_attrs filed of iio_info structure. As the event_attrs field of
      iio_info structures is constant, so these attribute_group structures can
      also be declared constant. Done using coccinelle:
      
      @r1 disable optional_qualifier @
      identifier i;
      position p;
      @@
      static struct attribute_group i@p = {...};
      
      @ok1@
      identifier r1.i;
      position p;
      struct iio_info x;
      @@
      x.event_attrs=&i@p;
      
      @bad@
      position p!={r1.p,ok1.p};
      identifier r1.i;
      @@
      i@p
      
      @depends on !bad disable optional_qualifier@
      identifier r1.i;
      @@
      static
      +const
      struct attribute_group i={...};
      
      @depends on !bad disable optional_qualifier@
      identifier r1.i;
      @@
      +const
      struct attribute_group i;
      
      File size before:
         text    data     bss     dec     hex filename
        36951     448       0   37399    9217 drivers/iio/adc/max1363.o
      
      File size after:
         text	   data	    bss	    dec	    hex	filename
        37015	    384	      0	  37399	   9217	drivers/iio/adc/max1363.o
      Signed-off-by: Nsimran singhal <singhalsimran0@gmail.com>
      Signed-off-by: NJonathan Cameron <jic23@kernel.org>
      c94645b1
  5. 25 3月, 2017 1 次提交
  6. 19 3月, 2017 2 次提交
  7. 16 3月, 2017 1 次提交
  8. 09 3月, 2017 2 次提交
    • Q
      iio: adc: add support for Allwinner SoCs ADC · d1caa990
      Quentin Schulz 提交于
      The Allwinner SoCs all have an ADC that can also act as a touchscreen
      controller and a thermal sensor. This patch adds the ADC driver which is
      based on the MFD for the same SoCs ADC.
      
      This also registers the thermal adc channel in the iio map array so
      iio_hwmon could use it without modifying the Device Tree. This registers
      the driver in the thermal framework.
      
      The thermal sensor requires the IP to be in touchscreen mode to return
      correct values. Therefore, if the user is continuously reading the ADC
      channel(s), the thermal framework in which the thermal sensor is
      registered will switch the IP in touchscreen mode to get a temperature
      value and requires a delay of 100ms (because of the mode switching),
      then the ADC will switch back to ADC mode and requires also a delay of
      100ms. If the ADC readings are critical to user and the SoC temperature
      is not, this driver is capable of not registering the thermal sensor in
      the thermal framework and thus, "quicken" the ADC readings.
      
      This driver probes on three different platform_device_id to take into
      account slight differences (registers bit and temperature computation)
      between Allwinner SoCs ADCs.
      Signed-off-by: NQuentin Schulz <quentin.schulz@free-electrons.com>
      Acked-by: NMaxime Ripard <maxime.ripard@free-electrons.com>
      Acked-by: NJonathan Cameron <jic23@kernel.org>
      Acked-for-MFD-by: NLee Jones <lee.jones@linaro.org>
      Signed-off-by: NJonathan Cameron <jic23@kernel.org>
      d1caa990
    • W
      iio: adc: max11100: remove .owner field for driver · db233ef8
      Wei Yongjun 提交于
      Remove .owner field if calls are used which set it automatically.
      
      Generated by: scripts/coccinelle/api/platform_no_drv_owner.cocci
      Signed-off-by: NWei Yongjun <weiyongjun1@huawei.com>
      Signed-off-by: NJonathan Cameron <jic23@kernel.org>
      db233ef8
  9. 26 2月, 2017 1 次提交
  10. 19 2月, 2017 3 次提交
  11. 11 2月, 2017 2 次提交
    • J
      staging:iio:adc:lpc32xx Move out of staging. · 0097e20e
      Jonathan Cameron 提交于
      There are a few more little cleanups that could be done on this driver, but
      I don't think any are sufficient to justify not moving it out of staging.
      
      It's a very simple driver (presumably for a simple part) so not much that can
      go wrong.  I think it was only ever in staging because that's where IIO was
      as a whole at the time and then we forgot about it!
      Signed-off-by: NJonathan Cameron <jic23@kernel.org>
      Cc: Roland Stigge <stigge@antcom.de>
      Signed-off-by: NJonathan Cameron <jic23@kernel.org>
      0097e20e
    • J
      staging:iio:adc:spear Move out of staging. · af8f651b
      Jonathan Cameron 提交于
      There are some unanswered questions due to disagreements between the code
      and various datasheets (including between different datasheets for the same
      part).
      
      I don't think that is necessarily a reason to keep it in staging however.
      I'm partly posting this patch inorder to reignite debate and with a bit
      of luck find someone who has one of these to test!
      Signed-off-by: NJonathan Cameron <jic23@kernel.org>
      af8f651b
  12. 05 2月, 2017 1 次提交
    • A
      iio: adc: handle unknow of_device_id data · 17fa2dcb
      Arnd Bergmann 提交于
      If we get an unknown 'childmode' value, a number of variables are not
      initialized properly:
      
      drivers/iio/adc/rcar-gyroadc.c: In function 'rcar_gyroadc_probe':
      drivers/iio/adc/rcar-gyroadc.c:390:5: error: 'num_channels' may be used uninitialized in this function [-Werror=maybe-uninitialized]
      drivers/iio/adc/rcar-gyroadc.c:426:22: error: 'sample_width' may be used uninitialized in this function [-Werror=maybe-uninitialized]
      drivers/iio/adc/rcar-gyroadc.c:428:23: error: 'channels' may be used uninitialized in this function [-Werror=maybe-uninitialized]
      
      The driver is currently correct, but handling this properly is more robust
      for possible modifications.
      
      There is also a false-positive warning about adcmode being possibly uninitialized,
      but that cannot happen as we also check the 'first' flag:
      
      drivers/iio/adc/rcar-gyroadc.c:398:26: error: 'adcmode' may be used uninitialized in this function [-Werror=maybe-uninitialized]
      
      This adds an initialization for 'adcmode' and bails out for any unknown childmode.
      
      Fixes: 059c53b3 ("iio: adc: Add Renesas GyroADC driver")
      Signed-off-by: NArnd Bergmann <arnd@arndb.de>
      Acked-by: NMarek Vasut <marek.vasut@gmail.com>
      Signed-off-by: NJonathan Cameron <jic23@kernel.org>
      17fa2dcb
  13. 02 2月, 2017 1 次提交
  14. 01 2月, 2017 1 次提交
  15. 31 1月, 2017 1 次提交
  16. 29 1月, 2017 4 次提交
  17. 28 1月, 2017 3 次提交
    • W
      iio: stx104: Utilize devm_ functions in driver probe callback · b2d226ca
      William Breathitt Gray 提交于
      The devm_ resource manager functions allow memory to be automatically
      released when a device is unbound. This patch takes advantage of the
      resource manager functions and replaces the gpiochip_add_data call and
      iio_device_register call with the devm_gpiochip_add_data call and
      devm_iio_device_register call respectively. In addition, the
      stx104_remove function has been removed as no longer necessary due to
      the use of the relevant devm_ resource manager functions.
      Signed-off-by: NWilliam Breathitt Gray <vilhelm.gray@gmail.com>
      Signed-off-by: NJonathan Cameron <jic23@kernel.org>
      b2d226ca
    • M
      iio: adc: add a driver for the SAR ADC found in Amlogic Meson SoCs · 3adbf342
      Martin Blumenstingl 提交于
      This adds support for the SAR (Successive Approximation Register) ADC
      on the Amlogic Meson SoCs.
      
      The code is based on the public S805 (Meson8b) and S905 (GXBB)
      datasheets (see [0] and [1]), as well as by reading (various versions
      of) the vendor driver and by inspecting the registers on the vendor
      kernels of my testing-hardware.
      
      Currently the GXBB, GXL and GXM SoCs are supported. GXBB hardware has
      10-bit ADC resolution, while GXL and GXM have 12-bit ADC resolution.
      The code was written to support older SoCs (Meson8 and Meson8b) as well,
      but due to lack of actual testing-hardware no of_device_id was added for
      these.
      
      Two "features" from the vendor driver are currently missing:
      - the vendor driver uses channel #7 for calibration (this improves the
        accuracy of the results - in my tests the results were less than 3%
        off without calibration compared to the vendor driver). Adding support
        for this should be easy, but is not required for most applications.
      - channel #6 is connected to the SoCs internal temperature sensor.
        Adding support for this is probably not so easy since (based on the
        u-boot sources) most SoC versions are using different registers and
        algorithms for the conversion from "ADC value" to temperature.
      
      Supported by the hardware but currently not supported by the driver:
      - reading multiple channels at the same time (the hardware has a FIFO
        buffer which stores multiple results)
      - continuous sampling (this would require a way to enable this
        individually because otherwise the ADC would be drawing power
        constantly)
      - interrupt support (similar to the vendor driver this new driver is
        polling the results. It is unclear if the IRQ-mode is supported on
        older (Meson6 or Meson8) hardware as well or if there are any errata)
      
      [0]
      http://dn.odroid.com/S805/Datasheet/S805_Datasheet%20V0.8%2020150126.pdf
      [1] http://dn.odroid.com/S905/DataSheet/S905_Public_Datasheet_V1.1.4.pdfSigned-off-by: NMartin Blumenstingl <martin.blumenstingl@googlemail.com>
      Tested-by: NNeil Armstrong <narmstrong@baylibre.com>
      Signed-off-by: NJonathan Cameron <jic23@kernel.org>
      3adbf342
    • M
      iio: adc: Add Renesas GyroADC driver · 059c53b3
      Marek Vasut 提交于
      Add IIO driver for the Renesas RCar GyroADC block. This block is a
      simple 4/8-channel ADC which samples 12/15/24 bits of data every
      cycle from all channels.
      Signed-off-by: NMarek Vasut <marek.vasut+renesas@gmail.com>
      Cc: Geert Uytterhoeven <geert+renesas@glider.be>
      Cc: Simon Horman <horms+renesas@verge.net.au>
      Cc: Jonathan Cameron <jic23@kernel.org>
      Cc: linux-renesas-soc@vger.kernel.org
      Cc: Wolfram Sang <wsa@the-dreams.de>
      Signed-off-by: NJonathan Cameron <jic23@kernel.org>
      059c53b3
  18. 22 1月, 2017 3 次提交
  19. 21 1月, 2017 2 次提交
  20. 15 1月, 2017 2 次提交
  21. 11 1月, 2017 3 次提交