30 Sep, 2020

1 commit

  • For some embedded systems, a workflow involving external kernel modules
    that implement IIO devices is more practical than working with in-tree
    sources.

    Kconfig symbols without any titles do not show up in menuconfig, and as
    such are more difficult to configure granularly, as they need to be
    selected by potentially unused/un-needed drivers.

    Albeit, the IIO_TRIGGERED_EVENT is used by a single mainline driver, this
    could allow for some out-of-tree drivers to use this kmod.

    This change adds a title to the IIO_TRIGGERED_EVENT Kconfig symbol.

    Signed-off-by: Alexandru Ardelean
    Link: https://lore.kernel.org/r/20200924111758.196367-3-alexandru.ardelean@analog.com
    Signed-off-by: Jonathan Cameron

    Alexandru Ardelean
     

27 Mar, 2020

1 commit

  • This patch adds support for the Azoteq IQS624 and IQS625 angular position
    sensors, capable of reporting the angle of a rotating shaft down to 1 and
    10 degrees of accuracy, respectively.

    This patch also introduces a home for linear and angular position sensors.
    Unlike resolvers, they are typically contactless and use the Hall effect.

    Signed-off-by: Jeff LaBundy
    Reviewed-by: Jonathan Cameron
    Signed-off-by: Lee Jones

    Jeff LaBundy
     

01 Jul, 2019

1 commit

  • …iio into staging-next

    Jonathan writes:

    Second set of IIO device support, features, cleanups and minor fixes for 5.3.

    A few bits for the counters subsystem mixed in here as well.
    There are some late breaking fixes as well, which aren't so urgent
    they can't wait for the merge window.

    New Device Support
    * adf4371
    - New driver + bindings.
    - Support the adf4372 PLL. Mostly ID and bindings.
    * ad8366 (note includes rework of driver needed to allow support for these).
    - Support the ADL5240 variable gain amplifier (VGA).
    - Support the ADA4961 digital gain amplifier (DGA).
    * dps310
    - New driver, in several parts from different authors for this temp
    and pressure sensor.
    - Includes errata workaround for a temperature reading issue.
    * stk3310
    - Support the stk3335, mostly ID.

    Features and cleanups
    * core
    - drop error handling on debugfs registration.
    - harden by making sure we don't overrun iio_chan_info_postfix.
    * docs
    - convert remaining docs to rst. At somepoint we'll fit these few
    into the main IIO docs.
    - improve sampling_frequency_available docs but explaining the
    range form.
    * ad_sigma_delta
    - Drop a pointless goto.
    * ad2s1210
    - Drop pointless platform data null check seeing as we don't actually
    use platform data anymore.
    * ad7124
    - Relax limitation on channel numbers to allow pseudo different channels.
    - Support control of whether the input is buffered via DT.
    - Use dynamic allocation for channel configuration to make it easier
    to support new devices.
    - YAML binding conversion.
    * ad7150
    - Comment tidy up.
    - Consistent and simple if (ret) handling of i2c errors.
    - FIELD_GET and GENMASK.
    - Ternary rather than !!(condition) for readability.
    - Use macros to avoid repetition of channel definitions.
    * ad7606
    - Add software channel config (rather that pin controlled)
    - Refactor to simplify addition of new part in future.
    * ad7746
    - of_deivce_id table.
    * ad7780
    - MAINTAINERS entry
    - YAML DT bindings.
    * ad8366
    - Stop using core mlock in favour of well scoped local lock.
    - SPDX + copyright date update.
    * ad9834
    - of_device_id table
    * adf4371
    - Add support for output stage muting before lock on has occured.
    * adis library
    - MAINTAINERS entry to reflect that this now Alexandru's problem ;)
    * adis162xx:
    - Fix a slightly incorrect set of comments and print statements on
    minimum supported voltage.
    * adis16203
    - of_device_id table.
    * adis16240
    - Add of_device_id table (in two parts as first patch only used it for
    MODULE_DEVICE_TABLE.)
    * adt7316-spi
    - of_device_id table
    * adxl372
    - YAML DT binding conversion.
    - Cleanup use of buffer callback functions (precursor to core rework).
    * bh1710
    - Simplify getting the i2c adapter from the client.
    * dht11
    - Mote to newer GPIO consumer interface.
    * kxcjk-1013.c
    - Add binding for sensor in display of some ultrabooks after userspace
    tools updated for it not be a problem to report two similar sensors.
    * imx7d
    - drop unused variables.
    - white space
    - define instead of variable for clock frequency that is fixed.
    - drop pointless error message.
    * messon_saradc
    - SPDX
    * sps30
    - MAINTAINERS entry
    - YAML binding conversion.
    * st_accel
    - Tidy up ordering in various buffer related callbacks. This is
    part of a long running effort to simplify the core code.
    * stm32-dfsdm:
    - Manage the resolution cleanly in triggerd modes.
    - Add fast mode support which allows more flexible filter choices.
    - Add a comment on the reason for a 16 bit record when technically
    not 'required'.
    * st_lsm6dsx
    - Embed device name in the sensor_settings struct as i3c doesn't
    have a convenient name field to use for this.
    * xilinx-adc
    - Relax constraints on supported platforms to reflect that this
    can used with FPGAs on PCIe cards and hence many architectures.
    * counters/ftm-quaddec
    - Fix some formatting io MODULE_AUTHOR
    - MAINTAINERS entry

    Fixes
    * tools
    - fix incorrect handling of 32 bit channels.
    * sca3000
    - Potential endian bug that is unlikely to bite anyone (be64 host
    seems unlikely for this old part).
    * stm32-adc
    - Add vdda-supply. On some boards it needs to be turned on to supply
    the ADC. DT bindings included.
    * stm32-dfsdm
    - Fix output resolution to work with filter orders other than 3.
    - Fix output datatype as it's signed and previously claimed not to be.

    * tag 'iio-for-5.3b' of git://git.kernel.org/pub/scm/linux/kernel/git/jic23/iio: (68 commits)
    iio: iio-utils: Fix possible incorrect mask calculation
    iio: frequency: adf4371: Add support for output stage mute
    dt-bindings: iio: frequency: Add ADF4372 PLL documentation
    iio: frequency: adf4371: Add support for ADF4372 PLL
    dt-bindings: iio: adc: Add buffered input property
    Convert AD7124 bindings documentation to YAML format.
    iio: adc: ad7124: Shift to dynamic allocation for channel configuration
    iio: adc: ad7124: Add buffered input support
    iio: adc: ad7124: Remove input number limitation
    MAINTAINERS: add ADIS IMU driver library entry
    iio: adis162xx: fix low-power docs & reports
    counter/ftm-quaddec: Add missing '>' in MODULE_AUTHOR
    iio: core: no need to check return value of debugfs_create functions
    docs: iio: convert to ReST
    iio: adc: stm32-adc: add missing vdda-supply
    dt-bindings: iio: adc: stm32: add missing vdda supply
    iio: adc: stm32-dfsdm: add comment for 16 bits record
    iio: adc: stm32-dfsdm: add fast mode support
    iio: adc: stm32-dfsdm: manage data resolution in trigger mode
    iio: adc: stm32-dfsdm: fix data type
    ...

    Greg Kroah-Hartman
     

22 Jun, 2019

1 commit

  • Rename the iio documentation files to ReST, add an
    index for them and adjust in order to produce a nice html
    output via the Sphinx build system.

    At its new index.rst, let's add a :orphan: while this is not linked to
    the main index.rst file, in order to avoid build warnings.

    Signed-off-by: Mauro Carvalho Chehab
    Signed-off-by: Jonathan Cameron

    Mauro Carvalho Chehab
     

21 May, 2019

1 commit


08 May, 2019

1 commit

  • Pull staging / IIO driver updates from Greg KH:
    "Here is the big staging and iio driver update for 5.2-rc1.

    Lots of tiny fixes all over the staging and IIO driver trees here,
    along with some new IIO drivers.

    The "counter" subsystem was added in here as well, as it is needed by
    the IIO drivers and subsystem.

    Also we ended up deleting two drivers, making this pull request remove
    a few hundred thousand lines of code, always a nice thing to see. Both
    of the drivers removed have been replaced with "real" drivers in their
    various subsystem directories, and they will be coming to you from
    those locations during this merge window.

    There are some core vt/selection changes in here, that was due to some
    cleanups needed for the speakup fixes. Those have all been acked by
    the various subsystem maintainers (i.e. me), so those are ok.

    We also added a few new drivers, for some odd hardware, giving new
    developers plenty to work on with basic coding style cleanups to come
    in the near future.

    Other than that, nothing unusual here.

    All of these have been in linux-next for a while with no reported
    issues, other than an odd gcc warning for one of the new drivers that
    should be fixed up soon"

    [ I fixed up the warning myself - Linus ]

    * tag 'staging-5.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging: (663 commits)
    staging: kpc2000: kpc_spi: Fix build error for {read,write}q
    Staging: rtl8192e: Remove extra space before break statement
    Staging: rtl8192u: ieee80211: Fix if-else indentation warning
    Staging: rtl8192u: ieee80211: Fix indentation errors by removing extra spaces
    staging: most: cdev: fix chrdev_region leak in mod_exit
    staging: wlan-ng: Fix improper SPDX comment style
    staging: rtl8192u: ieee80211: Resolve ERROR reported by checkpatch
    staging: vc04_services: bcm2835-camera: Compress two lines into one line
    staging: rtl8723bs: core: Use !x in place of NULL comparison.
    staging: rtl8723bs: core: Prefer using the BIT Macro.
    staging: fieldbus: anybus-s: fix wait_for_completion_timeout return handling
    staging: kpc2000: fix up build problems with readq()
    staging: rtlwifi: move remaining phydm .h files
    staging: rtlwifi: strip down phydm .h files
    staging: rtlwifi: delete the staging driver
    staging: fieldbus: anybus-s: rename bus id field to avoid confusion
    staging: fieldbus: anybus-s: keep device bus id in bus endianness
    Staging: sm750fb: Change *array into *const array
    staging: rtl8192u: ieee80211: Fix spelling mistake
    staging: rtl8192u: ieee80211: Replace bit shifting with BIT macro
    ...

    Linus Torvalds
     

26 Apr, 2019

1 commit


19 Apr, 2019

1 commit

  • Make the anon_inodes facility unconditional so that it can be used by core
    VFS code and pidfd code.

    Signed-off-by: David Howells
    Signed-off-by: Al Viro
    [christian@brauner.io: adapt commit message to mention pidfds]
    Signed-off-by: Christian Brauner

    David Howells
     

05 Apr, 2019

1 commit


20 May, 2018

1 commit


29 Apr, 2018

1 commit

  • If an ADC channel measures the midpoint of a voltage divider, the
    interesting voltage is often the voltage over the full resistance.
    E.g. if the full voltage is too big for the ADC to handle.
    Likewise, if an ADC channel measures the voltage across a shunt
    resistor, with or without amplification, the interesting value is
    often the current through the resistor.

    This driver solves these problems by allowing to linearly scale a channel
    and/or by allowing changes to the type of the channel.

    Signed-off-by: Peter Rosin
    Signed-off-by: Jonathan Cameron

    Peter Rosin
     

03 Jun, 2017

1 commit

  • When a multiplexer changes how an iio device behaves (for example
    by feeding different signals to an ADC), this driver can be used
    to create one virtual iio channel for each multiplexer state.

    Depends on the generic multiplexer subsystem.

    Cache any ext_info values from the parent iio channel, creating a private
    copy of the ext_info attributes for each multiplexer state/channel.

    Reviewed-by: Jonathan Cameron
    Signed-off-by: Peter Rosin
    Signed-off-by: Greg Kroah-Hartman

    Peter Rosin
     

02 Oct, 2016

1 commit

  • The ACCES 104-QUAD-8 is a general purpose quadrature encoder
    counter/interface board. The 104-QUAD-8 is capable of monitoring the
    outputs of eight encoders via four on-board LSI/CSI LS7266R1 24-bit
    dual-axis quadrature counter chips. Core functions handled by the
    LS7266R1, such as direction and total count, are available.

    Performing a write to a counter's IIO_CHAN_INFO_RAW sets the counter and
    also clears the counter's respective error flag. Although the counters
    have a 25-bit range, only the lower 24 bits may be set, either directly
    or via a counter's preset attribute. Interrupts are not supported by
    this driver.

    This driver adds IIO support for the ACCES 104-QUAD-8 and ACCES
    104-QUAD-4. The base port addresses for the devices may be configured
    via the base array module parameter.

    Signed-off-by: William Breathitt Gray
    Signed-off-by: Jonathan Cameron

    William Breathitt Gray
     

28 Sep, 2016

1 commit


04 May, 2016

1 commit


12 Dec, 2015

1 commit

  • MAX30100 is an heart rate and pulse oximeter sensor that works using
    two LEDS of different wavelengths, and detecting the light reflected
    back.

    This patchset adds support for both IR and RED LED channels which can
    be processed in userspace to determine heart rate and blood oxygen
    levels.

    Signed-off-by: Matt Ranostay
    Signed-off-by: Jonathan Cameron

    Matt Ranostay
     

04 Dec, 2015

2 commits

  • A software trigger associates an IIO device trigger with a software
    interrupt source (e.g: timer, sysfs). This patch adds the generic
    infrastructure for handling software triggers.

    Software interrupts sources are kept in a iio_trigger_types_list and
    registered separately when the associated kernel module is loaded.

    Software triggers can be created directly from drivers or from user
    space via configfs interface.

    To sum up, this dynamically creates "triggers" group to be found under
    /config/iio/triggers and offers the possibility of dynamically
    creating trigger types groups. The first supported trigger type is
    "hrtimer" found under /config/iio/triggers/hrtimer.

    Signed-off-by: Daniel Baluta
    Signed-off-by: Jonathan Cameron

    Daniel Baluta
     
  • This patch creates the IIO configfs root group. The group
    will appear under /iio/, usually /config/iio.

    We introduce configfs support in IIO in order to be able to easily
    create IIO objects from userspace. The first supported IIO objects
    are triggers introduced with next patches.

    Signed-off-by: Daniel Baluta
    Tested-by: Matt Ranostay
    Signed-off-by: Jonathan Cameron

    Daniel Baluta
     

25 Oct, 2015

1 commit

  • This patch moves the reference IIO dummy driver from drivers/staging/iio
    into a separate folder, drivers/iio/dummy and adds the proper Kconfig
    and Makefile for it.

    A new config menu entry called IIO dummy driver has also been added
    in the Industrial I/O support menu, corresponding to this driver.

    Signed-off-by: Cristina Opriceana
    Signed-off-by: Jonathan Cameron

    Cristina Opriceana
     

01 Oct, 2015

1 commit

  • Add support for Microchip digital potentiometers and rheostats
    MCP4531, MCP4532, MCP4551, MCP4552
    MCP4631, MCP4632, MCP4651, MCP4652

    DEVICE Wipers Steps Resistor Opts (kOhm) i2c address
    MCP4531 1 129 5, 10, 50, 100 010111x
    MCP4532 1 129 5, 10, 50, 100 01011xx
    MCP4551 1 257 5, 10, 50, 100 010111x
    MCP4552 1 257 5, 10, 50, 100 01011xx
    MCP4631 2 129 5, 10, 50, 100 0101xxx
    MCP4632 2 129 5, 10, 50, 100 01011xx
    MCP4651 2 257 5, 10, 50, 100 0101xxx
    MCP4652 2 257 5, 10, 50, 100 01011xx

    Datasheet: http://www.microchip.com/downloads/en/DeviceDoc/22096b.pdf

    Signed-off-by: Peter Rosin
    Signed-off-by: Jonathan Cameron

    Peter Rosin
     

24 Sep, 2015

1 commit


28 Aug, 2015

1 commit

  • Support triggered events.

    This is useful for chips that don't have their own interrupt sources.
    It allows to use generic/standalone iio triggers for those drivers.

    Signed-off-by: Vladimir Barinov
    Signed-off-by: Jonathan Cameron

    Vladimir Barinov
     

16 Aug, 2015

1 commit

  • For generic IIO trigger implementations we already have a sub-directory,
    but the generic buffer implementations currently reside in the IIO
    top-level directory. The main reason is that things have historically grown
    into this form.

    With more generic buffer implementations on its way now is the perfect time
    to clean this up and introduce a sub-directory for generic buffer
    implementations to avoid too much clutter in the top-level directory.

    Signed-off-by: Lars-Peter Clausen
    Signed-off-by: Jonathan Cameron

    Lars-Peter Clausen
     

15 Aug, 2015

1 commit

  • Currently the IIO callback buffer implementation is directly built into the
    IIO core module when enabled. Given that the callback buffer module is
    standalone functionallity there is really no reason to do this. So move it
    to its own module.

    Also rename the source to follow the standard IIO module naming convention
    as well as add a license notice to the file.

    Signed-off-by: Lars-Peter Clausen
    Signed-off-by: Jonathan Cameron

    Lars-Peter Clausen
     

20 Feb, 2015

1 commit

  • Pull kconfig updates from Michal Marek:
    "Yann E Morin was supposed to take over kconfig maintainership, but
    this hasn't happened. So I'm sending a few kconfig patches that I
    collected:

    - Fix for missing va_end in kconfig
    - merge_config.sh displays used if given too few arguments
    - s/boolean/bool/ in Kconfig files for consistency, with the plan to
    only support bool in the future"

    * 'kconfig' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild:
    kconfig: use va_end to match corresponding va_start
    merge_config.sh: Display usage if given too few arguments
    kconfig: use bool instead of boolean for type definition attributes

    Linus Torvalds
     

26 Jan, 2015

1 commit


07 Jan, 2015

1 commit


10 May, 2014

1 commit

  • Without ANON_INODES, we get this build error:

    drivers/built-in.o: In function `iio_event_getfd':
    :(.text+0x14bf18): undefined reference to `anon_inode_getfd'

    All other users explicitly select this symbol, so we should
    do the same thing here.

    Signed-off-by: Arnd Bergmann
    Cc: Jonathan Cameron
    Cc: linux-iio@vger.kernel.org
    Signed-off-by: Jonathan Cameron

    Arnd Bergmann
     

17 Mar, 2014

1 commit


04 Dec, 2013

2 commits


13 Sep, 2013

1 commit


17 Aug, 2013

1 commit

  • the TI TMP006 is a non-contact temperature sensor with I2C interface;
    it measures the surface temperature of a distance object using a
    thermopile to absorb IR energy emitted from the object

    the sensor has two channels: IR sensor voltage (16-bit) and reference
    temperature of the chip (14-bit); datasheet is here:
    http://www.ti.com/lit/ds/symlink/tmp006.pdf

    v2 (thanks to Grygorii Strashko, Lars-Peter Clausen, Jonathan Cameron
    for review comments):
    * power down device on driver remove
    * use sign_extend32()
    * style cleanup
    * add comments what channel raw LSBs mean
    * spelling of thermopile

    Signed-off-by: Peter Meerwald
    Cc: Grygorii Strashko
    Cc: Lars-Peter Clausen
    Cc: Jonathan Cameron
    Cc: LM Sensors
    Signed-off-by: Jonathan Cameron

    Peter Meerwald
     

05 Aug, 2013

1 commit

  • This reverts commit 98a5e9e99d05e9b6a14778b85631b55e8e349990.

    IIO, like the rest of the kernel, should rely on dynamic debugging, not
    have a special config option for it. That way, no user has to rebuild
    their kernel to have debug messages, which is a good thing, let's not
    revert back to the bad old days of the 2000's.

    Cc: Otavio Salvador
    Cc: Jonathan Cameron
    Signed-off-by: Greg Kroah-Hartman

    Greg Kroah-Hartman
     

04 Aug, 2013

3 commits


06 Jun, 2013

1 commit


23 May, 2013

1 commit


20 Nov, 2012

1 commit