mirror of
https://github.com/torvalds/linux
synced 2024-11-05 18:23:50 +00:00
b029ffafe8
Add support for CMA3000 Tri-axis accelerometer, which supports Motion detect, Measurement and Free fall modes. CMA3000 supports both I2C/SPI bus for communication, currently the driver supports I2C based communication. Signed-off-by: Hemanth V <hemanthv@ti.com> Reviewed-by: Jonathan Cameron <jic23@cam.ac.uk> Reviewed-by: Sergio Aguirre <saaguirre@ti.com> Reviewed-by: Shubhrajyoti <Shubhrajyoti@ti.com> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
115 lines
2.8 KiB
Text
115 lines
2.8 KiB
Text
Kernel driver for CMA3000-D0x
|
|
============================
|
|
|
|
Supported chips:
|
|
* VTI CMA3000-D0x
|
|
Datasheet:
|
|
CMA3000-D0X Product Family Specification 8281000A.02.pdf
|
|
<http://www.vti.fi/en/>
|
|
|
|
Author: Hemanth V <hemanthv@ti.com>
|
|
|
|
|
|
Description
|
|
-----------
|
|
CMA3000 Tri-axis accelerometer supports Motion detect, Measurement and
|
|
Free fall modes.
|
|
|
|
Motion Detect Mode: Its the low power mode where interrupts are generated only
|
|
when motion exceeds the defined thresholds.
|
|
|
|
Measurement Mode: This mode is used to read the acceleration data on X,Y,Z
|
|
axis and supports 400, 100, 40 Hz sample frequency.
|
|
|
|
Free fall Mode: This mode is intended to save system resources.
|
|
|
|
Threshold values: Chip supports defining threshold values for above modes
|
|
which includes time and g value. Refer product specifications for more details.
|
|
|
|
CMA3000 chip supports mutually exclusive I2C and SPI interfaces for
|
|
communication, currently the driver supports I2C based communication only.
|
|
Initial configuration for bus mode is set in non volatile memory and can later
|
|
be modified through bus interface command.
|
|
|
|
Driver reports acceleration data through input subsystem. It generates ABS_MISC
|
|
event with value 1 when free fall is detected.
|
|
|
|
Platform data need to be configured for initial default values.
|
|
|
|
Platform Data
|
|
-------------
|
|
fuzz_x: Noise on X Axis
|
|
|
|
fuzz_y: Noise on Y Axis
|
|
|
|
fuzz_z: Noise on Z Axis
|
|
|
|
g_range: G range in milli g i.e 2000 or 8000
|
|
|
|
mode: Default Operating mode
|
|
|
|
mdthr: Motion detect g range threshold value
|
|
|
|
mdfftmr: Motion detect and free fall time threshold value
|
|
|
|
ffthr: Free fall g range threshold value
|
|
|
|
Input Interface
|
|
--------------
|
|
Input driver version is 1.0.0
|
|
Input device ID: bus 0x18 vendor 0x0 product 0x0 version 0x0
|
|
Input device name: "cma3000-accelerometer"
|
|
Supported events:
|
|
Event type 0 (Sync)
|
|
Event type 3 (Absolute)
|
|
Event code 0 (X)
|
|
Value 47
|
|
Min -8000
|
|
Max 8000
|
|
Fuzz 200
|
|
Event code 1 (Y)
|
|
Value -28
|
|
Min -8000
|
|
Max 8000
|
|
Fuzz 200
|
|
Event code 2 (Z)
|
|
Value 905
|
|
Min -8000
|
|
Max 8000
|
|
Fuzz 200
|
|
Event code 40 (Misc)
|
|
Value 0
|
|
Min 0
|
|
Max 1
|
|
Event type 4 (Misc)
|
|
|
|
|
|
Register/Platform parameters Description
|
|
----------------------------------------
|
|
|
|
mode:
|
|
0: power down mode
|
|
1: 100 Hz Measurement mode
|
|
2: 400 Hz Measurement mode
|
|
3: 40 Hz Measurement mode
|
|
4: Motion Detect mode (default)
|
|
5: 100 Hz Free fall mode
|
|
6: 40 Hz Free fall mode
|
|
7: Power off mode
|
|
|
|
grange:
|
|
2000: 2000 mg or 2G Range
|
|
8000: 8000 mg or 8G Range
|
|
|
|
mdthr:
|
|
X: X * 71mg (8G Range)
|
|
X: X * 18mg (2G Range)
|
|
|
|
mdfftmr:
|
|
X: (X & 0x70) * 100 ms (MDTMR)
|
|
(X & 0x0F) * 2.5 ms (FFTMR 400 Hz)
|
|
(X & 0x0F) * 10 ms (FFTMR 100 Hz)
|
|
|
|
ffthr:
|
|
X: (X >> 2) * 18mg (2G Range)
|
|
X: (X & 0x0F) * 71 mg (8G Range)
|