xref: /OK3568_Linux_fs/kernel/Documentation/input/devices/cma3000_d0x.rst (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593SmuzhiyunCMA3000-D0x Accelerometer
2*4882a593Smuzhiyun=========================
3*4882a593Smuzhiyun
4*4882a593SmuzhiyunSupported chips:
5*4882a593Smuzhiyun* VTI CMA3000-D0x
6*4882a593Smuzhiyun
7*4882a593SmuzhiyunDatasheet:
8*4882a593Smuzhiyun  CMA3000-D0X Product Family Specification 8281000A.02.pdf
9*4882a593Smuzhiyun  <http://www.vti.fi/en/>
10*4882a593Smuzhiyun
11*4882a593Smuzhiyun:Author: Hemanth V <hemanthv@ti.com>
12*4882a593Smuzhiyun
13*4882a593Smuzhiyun
14*4882a593SmuzhiyunDescription
15*4882a593Smuzhiyun-----------
16*4882a593Smuzhiyun
17*4882a593SmuzhiyunCMA3000 Tri-axis accelerometer supports Motion detect, Measurement and
18*4882a593SmuzhiyunFree fall modes.
19*4882a593Smuzhiyun
20*4882a593SmuzhiyunMotion Detect Mode:
21*4882a593Smuzhiyun    Its the low power mode where interrupts are generated only
22*4882a593Smuzhiyun    when motion exceeds the defined thresholds.
23*4882a593Smuzhiyun
24*4882a593SmuzhiyunMeasurement Mode:
25*4882a593Smuzhiyun    This mode is used to read the acceleration data on X,Y,Z
26*4882a593Smuzhiyun    axis and supports 400, 100, 40 Hz sample frequency.
27*4882a593Smuzhiyun
28*4882a593SmuzhiyunFree fall Mode:
29*4882a593Smuzhiyun    This mode is intended to save system resources.
30*4882a593Smuzhiyun
31*4882a593SmuzhiyunThreshold values:
32*4882a593Smuzhiyun    Chip supports defining threshold values for above modes
33*4882a593Smuzhiyun    which includes time and g value. Refer product specifications for
34*4882a593Smuzhiyun    more details.
35*4882a593Smuzhiyun
36*4882a593SmuzhiyunCMA3000 chip supports mutually exclusive I2C and SPI interfaces for
37*4882a593Smuzhiyuncommunication, currently the driver supports I2C based communication only.
38*4882a593SmuzhiyunInitial configuration for bus mode is set in non volatile memory and can later
39*4882a593Smuzhiyunbe modified through bus interface command.
40*4882a593Smuzhiyun
41*4882a593SmuzhiyunDriver reports acceleration data through input subsystem. It generates ABS_MISC
42*4882a593Smuzhiyunevent with value 1 when free fall is detected.
43*4882a593Smuzhiyun
44*4882a593SmuzhiyunPlatform data need to be configured for initial default values.
45*4882a593Smuzhiyun
46*4882a593SmuzhiyunPlatform Data
47*4882a593Smuzhiyun-------------
48*4882a593Smuzhiyun
49*4882a593Smuzhiyunfuzz_x:
50*4882a593Smuzhiyun    Noise on X Axis
51*4882a593Smuzhiyun
52*4882a593Smuzhiyunfuzz_y:
53*4882a593Smuzhiyun    Noise on Y Axis
54*4882a593Smuzhiyun
55*4882a593Smuzhiyunfuzz_z:
56*4882a593Smuzhiyun    Noise on Z Axis
57*4882a593Smuzhiyun
58*4882a593Smuzhiyung_range:
59*4882a593Smuzhiyun    G range in milli g i.e 2000 or 8000
60*4882a593Smuzhiyun
61*4882a593Smuzhiyunmode:
62*4882a593Smuzhiyun    Default Operating mode
63*4882a593Smuzhiyun
64*4882a593Smuzhiyunmdthr:
65*4882a593Smuzhiyun    Motion detect g range threshold value
66*4882a593Smuzhiyun
67*4882a593Smuzhiyunmdfftmr:
68*4882a593Smuzhiyun    Motion detect and free fall time threshold value
69*4882a593Smuzhiyun
70*4882a593Smuzhiyunffthr:
71*4882a593Smuzhiyun    Free fall g range threshold value
72*4882a593Smuzhiyun
73*4882a593SmuzhiyunInput Interface
74*4882a593Smuzhiyun---------------
75*4882a593Smuzhiyun
76*4882a593SmuzhiyunInput driver version is 1.0.0
77*4882a593SmuzhiyunInput device ID: bus 0x18 vendor 0x0 product 0x0 version 0x0
78*4882a593SmuzhiyunInput device name: "cma3000-accelerometer"
79*4882a593Smuzhiyun
80*4882a593SmuzhiyunSupported events::
81*4882a593Smuzhiyun
82*4882a593Smuzhiyun  Event type 0 (Sync)
83*4882a593Smuzhiyun  Event type 3 (Absolute)
84*4882a593Smuzhiyun    Event code 0 (X)
85*4882a593Smuzhiyun      Value     47
86*4882a593Smuzhiyun      Min    -8000
87*4882a593Smuzhiyun      Max     8000
88*4882a593Smuzhiyun      Fuzz     200
89*4882a593Smuzhiyun    Event code 1 (Y)
90*4882a593Smuzhiyun      Value    -28
91*4882a593Smuzhiyun      Min    -8000
92*4882a593Smuzhiyun      Max     8000
93*4882a593Smuzhiyun      Fuzz     200
94*4882a593Smuzhiyun    Event code 2 (Z)
95*4882a593Smuzhiyun      Value    905
96*4882a593Smuzhiyun      Min    -8000
97*4882a593Smuzhiyun      Max     8000
98*4882a593Smuzhiyun      Fuzz     200
99*4882a593Smuzhiyun    Event code 40 (Misc)
100*4882a593Smuzhiyun      Value      0
101*4882a593Smuzhiyun      Min        0
102*4882a593Smuzhiyun      Max        1
103*4882a593Smuzhiyun  Event type 4 (Misc)
104*4882a593Smuzhiyun
105*4882a593Smuzhiyun
106*4882a593SmuzhiyunRegister/Platform parameters Description
107*4882a593Smuzhiyun----------------------------------------
108*4882a593Smuzhiyun
109*4882a593Smuzhiyunmode::
110*4882a593Smuzhiyun
111*4882a593Smuzhiyun	0: power down mode
112*4882a593Smuzhiyun	1: 100 Hz Measurement mode
113*4882a593Smuzhiyun	2: 400 Hz Measurement mode
114*4882a593Smuzhiyun	3: 40 Hz Measurement mode
115*4882a593Smuzhiyun	4: Motion Detect mode (default)
116*4882a593Smuzhiyun	5: 100 Hz Free fall mode
117*4882a593Smuzhiyun	6: 40 Hz Free fall mode
118*4882a593Smuzhiyun	7: Power off mode
119*4882a593Smuzhiyun
120*4882a593Smuzhiyungrange::
121*4882a593Smuzhiyun
122*4882a593Smuzhiyun	2000: 2000 mg or 2G Range
123*4882a593Smuzhiyun	8000: 8000 mg or 8G Range
124*4882a593Smuzhiyun
125*4882a593Smuzhiyunmdthr::
126*4882a593Smuzhiyun
127*4882a593Smuzhiyun	X: X * 71mg (8G Range)
128*4882a593Smuzhiyun	X: X * 18mg (2G Range)
129*4882a593Smuzhiyun
130*4882a593Smuzhiyunmdfftmr::
131*4882a593Smuzhiyun
132*4882a593Smuzhiyun	X: (X & 0x70) * 100 ms (MDTMR)
133*4882a593Smuzhiyun	   (X & 0x0F) * 2.5 ms (FFTMR 400 Hz)
134*4882a593Smuzhiyun	   (X & 0x0F) * 10 ms  (FFTMR 100 Hz)
135*4882a593Smuzhiyun
136*4882a593Smuzhiyunffthr::
137*4882a593Smuzhiyun
138*4882a593Smuzhiyun       X: (X >> 2) * 18mg (2G Range)
139*4882a593Smuzhiyun       X: (X & 0x0F) * 71 mg (8G Range)
140