summaryrefslogtreecommitdiff
path: root/include/linux
diff options
context:
space:
mode:
authorVlad Dogaru <vlad.dogaru@intel.com>2015-04-12 20:09:19 +0300
committerJonathan Cameron <jic23@kernel.org>2015-04-18 20:11:52 +0100
commit59bd0427c01cf0172055a1b99457bee6fd75d865 (patch)
tree85842329c0b6cdecfbb4ebf7f8752df71583df0a /include/linux
parent6069f47f08ea670e28ae709c645e308e98636d6c (diff)
iio: sx9500: optimize power usage
In the interest of lowering power usage, we only activate the proximity channels and interrupts that we are currently using. For raw reads, we activate the corresponding channel and the data ready interrupt and wait for the interrupt to trigger. If no interrupt is available, we wait for the documented scan period, as specified in the datasheet. The following types of usage patterns may overlap: * raw proximity reads (need a single data ready interrupt) * trigger usage (needs data ready interrupts as long as active) * proximity events (need near/far interrupts) * triggered buffer reads (don't need any interrupts, but are usually coupled with our own trigger. To mitigate all possible patterns, we implement usage counting for all the resources used: data ready interrupts, near/far interrupts and individual channels. The device enters sleep mode as documented in the data sheet when its buffer, trigger and events are disabled, and no raw reads are currently running. Because of this new usage pattern, it is important that we give the device a chance to perform an initial compensation for all its channels at probe time. Signed-off-by: Vlad Dogaru <vlad.dogaru@intel.com> Signed-off-by: Jonathan Cameron <jic23@kernel.org>
Diffstat (limited to 'include/linux')
0 files changed, 0 insertions, 0 deletions