| Hemanth V | b029ffa | 2010-11-30 23:03:54 -0800 | [diff] [blame] | 1 | Kernel driver for CMA3000-D0x | 
 | 2 | ============================ | 
 | 3 |  | 
 | 4 | Supported chips: | 
 | 5 | * VTI CMA3000-D0x | 
 | 6 | Datasheet: | 
 | 7 |   CMA3000-D0X Product Family Specification 8281000A.02.pdf | 
 | 8 |   <http://www.vti.fi/en/> | 
 | 9 |  | 
 | 10 | Author: Hemanth V <hemanthv@ti.com> | 
 | 11 |  | 
 | 12 |  | 
 | 13 | Description | 
 | 14 | ----------- | 
 | 15 | CMA3000 Tri-axis accelerometer supports Motion detect, Measurement and | 
 | 16 | Free fall modes. | 
 | 17 |  | 
 | 18 | Motion Detect Mode: Its the low power mode where interrupts are generated only | 
 | 19 | when motion exceeds the defined thresholds. | 
 | 20 |  | 
 | 21 | Measurement Mode: This mode is used to read the acceleration data on X,Y,Z | 
 | 22 | axis and supports 400, 100, 40 Hz sample frequency. | 
 | 23 |  | 
 | 24 | Free fall Mode: This mode is intended to save system resources. | 
 | 25 |  | 
 | 26 | Threshold values: Chip supports defining threshold values for above modes | 
 | 27 | which includes time and g value. Refer product specifications for more details. | 
 | 28 |  | 
 | 29 | CMA3000 chip supports mutually exclusive I2C and SPI interfaces for | 
 | 30 | communication, currently the driver supports I2C based communication only. | 
 | 31 | Initial configuration for bus mode is set in non volatile memory and can later | 
 | 32 | be modified through bus interface command. | 
 | 33 |  | 
 | 34 | Driver reports acceleration data through input subsystem. It generates ABS_MISC | 
 | 35 | event with value 1 when free fall is detected. | 
 | 36 |  | 
 | 37 | Platform data need to be configured for initial default values. | 
 | 38 |  | 
 | 39 | Platform Data | 
 | 40 | ------------- | 
 | 41 | fuzz_x: Noise on X Axis | 
 | 42 |  | 
 | 43 | fuzz_y: Noise on Y Axis | 
 | 44 |  | 
 | 45 | fuzz_z: Noise on Z Axis | 
 | 46 |  | 
 | 47 | g_range: G range in milli g i.e 2000 or 8000 | 
 | 48 |  | 
 | 49 | mode: Default Operating mode | 
 | 50 |  | 
 | 51 | mdthr: Motion detect g range threshold value | 
 | 52 |  | 
 | 53 | mdfftmr: Motion detect and free fall time threshold value | 
 | 54 |  | 
 | 55 | ffthr: Free fall g range threshold value | 
 | 56 |  | 
 | 57 | Input Interface | 
 | 58 | -------------- | 
 | 59 | Input driver version is 1.0.0 | 
 | 60 | Input device ID: bus 0x18 vendor 0x0 product 0x0 version 0x0 | 
 | 61 | Input device name: "cma3000-accelerometer" | 
 | 62 | Supported events: | 
 | 63 |   Event type 0 (Sync) | 
 | 64 |   Event type 3 (Absolute) | 
 | 65 |     Event code 0 (X) | 
 | 66 |       Value     47 | 
 | 67 |       Min    -8000 | 
 | 68 |       Max     8000 | 
 | 69 |       Fuzz     200 | 
 | 70 |     Event code 1 (Y) | 
 | 71 |       Value    -28 | 
 | 72 |       Min    -8000 | 
 | 73 |       Max     8000 | 
 | 74 |       Fuzz     200 | 
 | 75 |     Event code 2 (Z) | 
 | 76 |       Value    905 | 
 | 77 |       Min    -8000 | 
 | 78 |       Max     8000 | 
 | 79 |       Fuzz     200 | 
 | 80 |     Event code 40 (Misc) | 
 | 81 |       Value      0 | 
 | 82 |       Min        0 | 
 | 83 |       Max        1 | 
 | 84 |   Event type 4 (Misc) | 
 | 85 |  | 
 | 86 |  | 
 | 87 | Register/Platform parameters Description | 
 | 88 | ---------------------------------------- | 
 | 89 |  | 
 | 90 | mode: | 
 | 91 | 	0: power down mode | 
 | 92 | 	1: 100 Hz Measurement mode | 
 | 93 | 	2: 400 Hz Measurement mode | 
 | 94 | 	3: 40 Hz Measurement mode | 
 | 95 | 	4: Motion Detect mode (default) | 
 | 96 | 	5: 100 Hz Free fall mode | 
 | 97 | 	6: 40 Hz Free fall mode | 
 | 98 | 	7: Power off mode | 
 | 99 |  | 
 | 100 | grange: | 
 | 101 | 	2000: 2000 mg or 2G Range | 
 | 102 | 	8000: 8000 mg or 8G Range | 
 | 103 |  | 
 | 104 | mdthr: | 
 | 105 | 	X: X * 71mg (8G Range) | 
 | 106 | 	X: X * 18mg (2G Range) | 
 | 107 |  | 
 | 108 | mdfftmr: | 
 | 109 | 	X: (X & 0x70) * 100 ms (MDTMR) | 
 | 110 | 	   (X & 0x0F) * 2.5 ms (FFTMR 400 Hz) | 
 | 111 | 	   (X & 0x0F) * 10 ms  (FFTMR 100 Hz) | 
 | 112 |  | 
 | 113 | ffthr: | 
 | 114 |        X: (X >> 2) * 18mg (2G Range) | 
 | 115 |        X: (X & 0x0F) * 71 mg (8G Range) |