Kernel driver for CMA3000-D0x
============================

Supported chips:
* VTI CMA3000-D0x
Datasheet:
  CMA3000-D0X Product Family Specification 8281000A.02.pdf

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 intented 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 supports both I2C/SPI bus for communication, currently the driver
supports I2C based communication.

Driver reports acceleration data through input subsystem and supports sysfs
for configuration changes. 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 threshold value

mdfftmr: Motion detect and free fall time value

ffthr: Free fall 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-acclerometer"
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)

Sysfs entries
-------------

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)
