History log of /openbmc/linux/drivers/iio/adc/mcp320x.c (Results 151 – 175 of 344)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
# 58f2c391 16-Oct-2017 Greg Kroah-Hartman <gregkh@linuxfoundation.org>

Merge 4.14-rc5 into char-misc-next

We need the fixes in here to resolve merge issues and for testing.

Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>


# c9a934b0 15-Oct-2017 Greg Kroah-Hartman <gregkh@linuxfoundation.org>

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

Jonathan writes:

Second set of IIO new device support, features and cleanup for 4.15

New devi

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

Jonathan writes:

Second set of IIO new device support, features and cleanup for 4.15

New device support
* cros_ec_accel_legacy
- New driver for this older chromebook accelerometer.
* ds4422 dac driver
- New driver and bindings for the Maxim ds4422 and ds4424 I2C DACs.
* kxcjk1013
- Support the KXTF9 accelerometers.
* mcp320x
- support mcp3550, mcp3551, mcp3553 21 bit ADCs.
* rfd77402
- new driver for this laser range finder.
* st-sensors-accel
- add support for the LIS2DW12 accelerometer with bindings
- add support for the LIS3DHH accelerometer with bindings

New features
* core
- Drop a duplicate forward declaration in iio.h
* Docs
- add a clarification of the meaning of IIO_DISTANCE to reflect
existing use in various range finding devices.
* st-sensors
- add a register mask for the status register to correctly support
2 channel devices.
- decouple the irq1 and irq2 configuration parameters.
- do not always write the enable_axis register as some newer devices
are always on and don't support such configuration.
- split open-drain control for irq1 and irq2
- make sampling frequency control optional as non all hardware
supports it.
* st-sensors-gyro
- support 3 wire SPI mode
* st-sensors-magn
- support 3 wire SPI mode
* st-sensors-pressure
- support 3 wire SPI mode.

Cleanups and fixes
* ad7192
- expand the buffer lock to cover device state protection rather than
using core mlock to provide the state protection.
* ade7753
- expand the buffer lock to cover device state protection as well
rather than having an additional lock.
* dummy-evgen
- Use the new irq_sim infrastructure rather than having our
own local version of the same thing.
* hid-sensor-trigger
- avoid touching sensors ever if user hasn't requested it. This
is a work around for one reported issue where turning a sensor
off wasn't sufficient to make it actually switch off. As we
have only one report from what looks like buggy hardware we
are sending this upstream the slow way.
* ina2xx
- Adhere to the published ABI docs and use Ohms instead of
microohms. We don't think that anyone will notice this ABI fix
but are sending it the slow route to reduce fallout if someone
does!
* kxcjk1013 - refactors to support the KXTF9 being added.
- Refactor ODR support.
- Fix INT_CTRL/INT_SRC1 bit names to match the register name.
- Extract code for reporting motion events as this isn't present
on some parts to be supported.
- Make the sysfs sampling_frequency_available stuff not a fixed
string so as to allow for it to be chip type dependent.
- Make the sampling frequency_available per type to match
the sampling_frequency attributes.
* lsm6dsx - rework prior to new device support.
- express the max fifo depth in 'scans' rather than bytes.
- split control of the fifo mode fifo output data rate.
- move decimator registers into the sensor_settings structure
as this will make it easier to support devices that don't have
this function.
- add a fifo ops datastructure to allow for inter-part variations.
* max30100
- fix i2c chip address in dt example
* max30102
- use correct binding name for max30102 in example
* mma8452
- Rename read/write event value callbacks to be more generic
reflecting what they actually do now.
* rcar-gyroadc
- pointer case to fix warnings when moving to 64 bit as this IP is
present on new 64 bit SOCs
- enable compile-testing to improve build coverage on this driver.
- use the of_device_get_match_data helper instead of open coding
* sun4i-gpadc-iio
- Register in the thermal framework after pm. Otherwise the IP is not
enabled.
- Don't fail probing if no thermal DT node is present.
* tsl2x7x
- renaming tsl2x7x_settings to settings to avoid excessive line
lengths.
- Use IIO core to generate the integration_time sysfs attributes
rather than hand rolling.
* vf6180
- Move the range check on integration time to the setter function.
- Refactor the code around integration time to be clearer including
caching current integration time avoiding unnecessary chip reads.
- cleanup the als_gain lookup avoiding reading registers on chip.
- use rounded matching rather than precise values for als_gain
lookup.
- Correct the ALS scale when non-default gain or integration time
is used.

show more ...


# 6edcf572 14-Oct-2017 Ingo Molnar <mingo@kernel.org>

Merge branch 'core/urgent' into x86/asm, to pick up dependency

Signed-off-by: Ingo Molnar <mingo@kernel.org>


# 69f658e3 13-Oct-2017 Rafael J. Wysocki <rafael.j.wysocki@intel.com>

Merge branch 'pm-domains' into pm-opp


# 36452b8b 12-Oct-2017 Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>

Merge tag 'v4.14-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux into fbdev-for-next

Linux 4.14-rc4


# 331b57d1 12-Oct-2017 Thomas Gleixner <tglx@linutronix.de>

Merge branch 'irq/urgent' into x86/apic

Pick up core changes which affect the vector rework.


# 8af4b3d7 11-Oct-2017 Rafael J. Wysocki <rafael.j.wysocki@intel.com>

Merge branch 'acpi-pm' into pm-sleep


# af1a34f2 10-Oct-2017 Ingo Molnar <mingo@kernel.org>

Merge branch 'locking/urgent' into locking/core, to pick up fixes

Signed-off-by: Ingo Molnar <mingo@kernel.org>


# 151aeab7 10-Oct-2017 Ingo Molnar <mingo@kernel.org>

Merge branch 'sched/urgent' into sched/core, to pick up fixes

Signed-off-by: Ingo Molnar <mingo@kernel.org>


Revision tags: v4.13.5
# c1375d67 09-Sep-2017 Lukas Wunner <lukas@wunner.de>

iio: adc: mcp320x: Add support for mcp3550/1/3

These ADCs are marketed as single-channel 22 bit delta-sigma ADCs, but
in reality their resolution is 21 bit with an overrange or underrange
of 12% bey

iio: adc: mcp320x: Add support for mcp3550/1/3

These ADCs are marketed as single-channel 22 bit delta-sigma ADCs, but
in reality their resolution is 21 bit with an overrange or underrange
of 12% beyond Vref. In other words, "full scale" means +/- 2^20.

This driver does not explicitly signal back to the user when an
overrange or underrange occurs, but the user can detect it by comparing
the raw value to +/- 2^20 (or the scaled value to Vref).

The chips feature an extended temperature range and high accuracy,
low noise characteristics, but their conversion times are slow with
up to 80 ms +/- 2% (on the MCP3550-50).

Hence, unlike the other ADCs supported by the driver, conversion does
not take place in realtime upon lowering CS. Instead, CS is asserted
for 8 usec to start the conversion. After waiting for the duration of
the conversion, the result can be fetched. While waiting, control of
the bus is ceased so it may be used by a different device.

After the result has been fetched and 10 us have passed, the chip goes
into shutdown and an additional power-up delay of 144 clock periods is
then required to wake the analog circuitry upon the next conversion
(footnote below table 4-1, page 16 in the spec).

Optionally, the chips can be used in so-called "continuous conversion
mode": Conversions then take place continuously and the last result may
be fetched at any time without observing a delay. The mode is enabled
by permanently driving CS low, e.g. by wiring it to ground. The driver
only supports "single conversion mode" for now but should be adaptable
to "continuous conversion mode" with moderate effort.

The chips clock out a 3 byte word, unlike the other ADCs supported by
the driver which all have a lower resolution than 16 bit and thus make
do with 2 bytes. Calculate the word length on probe by rounding up the
resolution to full bytes. Crucially, if the clock idles low, the
transfer is preceded by a useless Data Ready bit which increases its
length from 24 bit to 25 bit = 4 bytes (section 5.5 in the spec).
Autosense this based on the SPI slave's configuration.

Cc: Mathias Duckeck <m.duckeck@kunbus.de>
Signed-off-by: Lukas Wunner <lukas@wunner.de>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>

show more ...


# 545633f6 09-Oct-2017 Takashi Iwai <tiwai@suse.de>

Merge branch 'for-linus' into for-next


# 4fcae770 09-Oct-2017 Greg Kroah-Hartman <gregkh@linuxfoundation.org>

Merge 4.14-rc4 into usb-next

This merges in the USB fixes that we need here.

Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>


# 9424e8b1 09-Oct-2017 Greg Kroah-Hartman <gregkh@linuxfoundation.org>

Merge 4.14-rc4 into tty-next

We want the tty/serial fixes in here as well.

Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>


# 1236d6bb 09-Oct-2017 Greg Kroah-Hartman <gregkh@linuxfoundation.org>

Merge 4.14-rc4 into staging-next

We want the staging/iio fixes in here as well to handle merge issues.

Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>


# 753d179a 06-Oct-2017 Johannes Berg <johannes.berg@intel.com>

Merge remote-tracking branch 'net-next/master' into mac80211-next

Merging this brings in the timer_setup() change, which allows
me to apply Kees's mac80211 changes for it.

Signed-off-by: Johannes B

Merge remote-tracking branch 'net-next/master' into mac80211-next

Merging this brings in the timer_setup() change, which allows
me to apply Kees's mac80211 changes for it.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>

show more ...


# 53954cf8 05-Oct-2017 David S. Miller <davem@davemloft.net>

Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net

Just simple overlapping changes.

Signed-off-by: David S. Miller <davem@davemloft.net>


# 26eafeaa 05-Oct-2017 Thomas Gleixner <tglx@linutronix.de>

Merge branch 'linus' into timers/core

Pick up upstream changes to get the prerequisites for the timer changes.


# 08bbc4fc 03-Oct-2017 Linus Torvalds <torvalds@linux-foundation.org>

Merge tag 'staging-4.14-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging

Pull staging/IIO fixes from Greg KH:
"Here are some small staging/IIO driver fixes for 4.14-rc4

Most

Merge tag 'staging-4.14-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging

Pull staging/IIO fixes from Greg KH:
"Here are some small staging/IIO driver fixes for 4.14-rc4

Most of these have been in my tree for a while due to travels, sorry
for the delay. They resolve a number of small issues reported by
people, mostly for the iio drivers. Nothing major in here, full
details are in the shortlog.

All have been linux-next for a few weeks with no reported issues"

* tag 'staging-4.14-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging: (23 commits)
staging: iio: ad7192: Fix - use the dedicated reset function avoiding dma from stack.
iio: core: Return error for failed read_reg
iio: ad7793: Fix the serial interface reset
iio: ad_sigma_delta: Implement a dedicated reset function
IIO: BME280: Updates to Humidity readings need ctrl_reg write!
iio: adc: mcp320x: Fix readout of negative voltages
iio: adc: mcp320x: Fix oops on module unload
iio: adc: stm32: fix bad error check on max_channels
iio: trigger: stm32-timer: fix a corner case to write preset
iio: trigger: stm32-timer: preset shouldn't be buffered
iio: adc: twl4030: Return an error if we can not enable the vusb3v1 regulator in 'twl4030_madc_probe()'
iio: adc: twl4030: Disable the vusb3v1 rugulator in the error handling path of 'twl4030_madc_probe()'
iio: adc: twl4030: Fix an error handling path in 'twl4030_madc_probe()'
staging: rtl8723bs: avoid null pointer dereference on pmlmepriv
staging: rtl8723bs: add missing range check on id
staging: vchiq_2835_arm: Fix NULL ptr dereference in free_pagelist
staging: speakup: fix speakup-r empty line lockup
staging: pi433: Move limit check to switch default to kill warning
staging: r8822be: fix null pointer dereferences with a null driver_adapter
staging: mt29f_spinand: Enable the read ECC before program the page
...

show more ...


# 069f0e0c 25-Sep-2017 Greg Kroah-Hartman <gregkh@linuxfoundation.org>

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

Jonathan writes:

Round one of new device support, features and cleanup for IIO in the 4.15 cyc

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

Jonathan writes:

Round one of new device support, features and cleanup for IIO in the 4.15 cycle.

Note there is a misc driver drop in here given we have support
in IIO and the feeling is no one will care.

A large part of this series is a boiler plate removal series avoiding
the need to explicitly provide THIS_MODULE in various locations.
It's very dull but touches all drivers.

New device support
* ad5446
- add ids to support compatible parts DAC081S101, DAC101S101,
DAC121S101.
- add the dac7512 id and drop the misc driver as feeling is no
one is using it (was introduced for a board that is long obsolete)
* mt6577
- add bindings for mt2712 which is fully compatible with other
supported parts.
* st_pressure
- add support for LPS33HW and LPS35HW with bindings (ids mostly).

New features
* ccs811
- Add support for the data ready trigger.
* mma8452
- remove artifical restriction on supporting multiple event types
at the same time.
* tcs3472
- support out of threshold events

Core and tree wide cleanup
* Use macro magic to remove the need to provide THIS_MODULE as part of
struct iio_info or struct iio_trigger_ops. This is similar to
work done in a number of other subsystems (e.g. i2c, spi).

All drivers are fixed and then the fields in these structures are
removed.

This will cause build failures for out of tree drivers and any
new drivers that cross with this work going into the kernel.

Note mostly done with a coccinelle patch, included in the series
on the mailing list but not merged as the fields no longer exist
in the structures so the any hold outs will cause a build failure.

Cleanups
* ads1015
- avoid writing config register when it doesn't change.
- add 10% to conversion wait time as it seems it is sometimes
a little small.
* ade7753
- replace use of core mlock with a local lock. This is part of a
long term effort to make the use of mlock opaque and single
purpose.
* ade7759
- expand the use of buf_lock to cover previous mlock cases. This
is a slightly nicer solution to the same issue as in ade7753.
* cros_ec
- drop an unused variable
* inv_mpu6050
- add a missing break in a switch for consistency - not actual
bug,
- make some local arrays static to save on object code size.
* max5481
- drop manual setting of the spi module owner as handled by the
spi core.
* max5487
- drop manual setting of the spi module owner as handled by the
spi core.
* max9611
- drop explicit setting of the i2c module owner as handled by
the i2c core.
* mcp320x
- speed up reads on single channel devices,
- drop unused of_device_id data elements,
- document the struct mcp320x,
- improve binding docs to reflect restrictions on spi setup and
to make it explicit that the reference regulator is needed.
* mma8452
- symbolic to octal permissions,
- unsigned to unsigned int.
* st_lsm6dsx
- avoid setting odr values multiple times,
- drop config of LIR as it is only ever set to the existing
defaults,
- drop rounding configuration as it only ever matches the defaults.
* ti-ads8688
- drop manual setting of the spi module owner as handled by the
spi core.
* tsl2x7x
- constify the i2c_device_id,
- cleanup limit checks to avoid static checker warnings (and generally
have nicer code).

show more ...


# b2e31206 25-Sep-2017 Greg Kroah-Hartman <gregkh@linuxfoundation.org>

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

Jonathan writes:

First round of IIO fixes for the 4.14 cycle

Note this includes fixes

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

Jonathan writes:

First round of IIO fixes for the 4.14 cycle

Note this includes fixes from recent merge window. As such the tree
is based on top of a prior staging/staging-next tree.

* iio core
- return and error for a failed read_reg debugfs call rather than
eating the error.
* ad7192
- Use the dedicated reset function in the ad_sigma_delta library
instead of an spi transfer with the data on the stack which
could cause problems with DMA.
* ad7793
- Implement a dedicate reset function in the ad_sigma_delta library
and use it to correctly reset this part.
* bme280
- ctrl_reg write must occur after any register writes
for updates to take effect.
* mcp320x
- negative voltage readout was broken.
- Fix an oops on module unload due to spi_set_drvdata not being called
in probe.
* st_magn
- Fix the data ready line configuration for the lis3mdl. It is not
configurable so the st_magn core was assuming it didn't exist
and so wasn't consuming interrupts resulting in an unhandled
interrupt.
* stm32-adc
- off by one error on max channels checking.
* stm32-timer
- preset should not be buffered - reorganising register writes avoids
this.
- fix a corner case in which write preset goes wrong when a timer is
used first as a trigger then as a counter with preset. Odd case but
you never know.
* ti-ads1015
- Fix setting of comparator polarity by fixing bitfield definition.
* twl4030
- Error path handling fix to cleanup in event of regulator
registration failure.
- Disable the vusb3v1 regulator correctly in error handling
- Don't paper over a regulator enable failure.

show more ...


Revision tags: v4.13
# e6f47943 22-Aug-2017 Lukas Wunner <lukas@wunner.de>

iio: adc: mcp320x: Fix readout of negative voltages

Commit f686a36b4b79 ("iio: adc: mcp320x: Add support for mcp3301")
returns a signed voltage from mcp320x_adc_conversion() but neglects that
the ca

iio: adc: mcp320x: Fix readout of negative voltages

Commit f686a36b4b79 ("iio: adc: mcp320x: Add support for mcp3301")
returns a signed voltage from mcp320x_adc_conversion() but neglects that
the caller interprets a negative return value as failure. Only mcp3301
(and the upcoming mcp3550/1/3) is affected as the other chips are
incapable of measuring negative voltages.

Fix and while at it, add mcp3301 to the list of supported chips at the
top of the file.

Fixes: f686a36b4b79 ("iio: adc: mcp320x: Add support for mcp3301")
Cc: Andrea Galbusera <gizero@gmail.com>
Signed-off-by: Lukas Wunner <lukas@wunner.de>
Cc: <Stable@vger.kernel.org>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>

show more ...


# 0964e409 22-Aug-2017 Lukas Wunner <lukas@wunner.de>

iio: adc: mcp320x: Fix oops on module unload

The driver calls spi_get_drvdata() in its ->remove hook even though it
has never called spi_set_drvdata(). Stack trace for posterity:

Unable to handle

iio: adc: mcp320x: Fix oops on module unload

The driver calls spi_get_drvdata() in its ->remove hook even though it
has never called spi_set_drvdata(). Stack trace for posterity:

Unable to handle kernel NULL pointer dereference at virtual address 00000220
Internal error: Oops: 5 [#1] SMP ARM
[<8072f564>] (mutex_lock) from [<7f1400d0>] (iio_device_unregister+0x24/0x7c [industrialio])
[<7f1400d0>] (iio_device_unregister [industrialio]) from [<7f15e020>] (mcp320x_remove+0x20/0x30 [mcp320x])
[<7f15e020>] (mcp320x_remove [mcp320x]) from [<8055a8cc>] (spi_drv_remove+0x2c/0x44)
[<8055a8cc>] (spi_drv_remove) from [<805087bc>] (__device_release_driver+0x98/0x134)
[<805087bc>] (__device_release_driver) from [<80509180>] (driver_detach+0xdc/0xe0)
[<80509180>] (driver_detach) from [<8050823c>] (bus_remove_driver+0x5c/0xb0)
[<8050823c>] (bus_remove_driver) from [<80509ab0>] (driver_unregister+0x38/0x58)
[<80509ab0>] (driver_unregister) from [<7f15e69c>] (mcp320x_driver_exit+0x14/0x1c [mcp320x])
[<7f15e69c>] (mcp320x_driver_exit [mcp320x]) from [<801a78d0>] (SyS_delete_module+0x184/0x1d0)
[<801a78d0>] (SyS_delete_module) from [<80108100>] (ret_fast_syscall+0x0/0x1c)

Fixes: f5ce4a7a9291 ("iio: adc: add driver for MCP3204/08 12-bit ADC")
Cc: Oskar Andero <oskar.andero@gmail.com>
Signed-off-by: Lukas Wunner <lukas@wunner.de>
Cc: <Stable@vger.kernel.org>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>

show more ...


# 9c84c910 09-Sep-2017 Lukas Wunner <lukas@wunner.de>

iio: adc: mcp320x: Document struct mcp320x

Signed-off-by: Lukas Wunner <lukas@wunner.de>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>


# 35ed9fbf 09-Sep-2017 Lukas Wunner <lukas@wunner.de>

iio: adc: mcp320x: Drop unnecessary of_device_id attributes

The driver sets a .data pointer for each .compatible string but never
calls of_device_get_match_data(). Instead, ADC properties are looke

iio: adc: mcp320x: Drop unnecessary of_device_id attributes

The driver sets a .data pointer for each .compatible string but never
calls of_device_get_match_data(). Instead, ADC properties are looked up
with spi_get_device_id(). The .data pointer is therefore unnecessary,
so drop it.

Signed-off-by: Lukas Wunner <lukas@wunner.de>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>

show more ...


# ea910318 09-Sep-2017 Lukas Wunner <lukas@wunner.de>

iio: adc: mcp320x: Speed up readout of single-channel ADCs

Single-channel converters such as mcp3001, mcp3201, mcp3301 and the
upcoming mcp3550/1/3 lack a MOSI pin, so there's no need to call
mcp320

iio: adc: mcp320x: Speed up readout of single-channel ADCs

Single-channel converters such as mcp3001, mcp3201, mcp3301 and the
upcoming mcp3550/1/3 lack a MOSI pin, so there's no need to call
mcp320x_channel_to_tx_data() for them.

Moreover, instead of calling spi_read() for these converters, which
generates an spi_message and spi_transfer on the stack on every readout,
it's more efficient to use the spi_message and spi_transfer[] included
in struct mcp320x (as we do for multi-channel ADCs), but initialize the
spi_message only with the receive transfer.

Signed-off-by: Lukas Wunner <lukas@wunner.de>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>

show more ...


12345678910>>...14