| 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) |