forked from Minki/linux
116 lines
2.8 KiB
Plaintext
116 lines
2.8 KiB
Plaintext
|
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)
|