import PULS_20160108
[GitHub/mt8127/android_kernel_alcatel_ttab.git] / drivers / misc / mediatek / magnetometer / mc41xx / mc41xx.h
diff --git a/drivers/misc/mediatek/magnetometer/mc41xx/mc41xx.h b/drivers/misc/mediatek/magnetometer/mc41xx/mc41xx.h
new file mode 100644 (file)
index 0000000..b3669db
--- /dev/null
@@ -0,0 +1,169 @@
+/*****************************************************************************
+ *
+ * Copyright (c) 2013 mCube, Inc.  All rights reserved.
+ *
+ * This source is subject to the mCube Software License.
+ * This software is protected by Copyright and the information and source code
+ * contained herein is confidential. The software including the source code
+ * may not be copied and the information contained herein may not be used or
+ * disclosed except with the written permission of mCube Inc.
+ *
+ * All other rights reserved.
+ *
+ * This code and information are provided "as is" without warranty of any
+ * kind, either expressed or implied, including but not limited to the
+ * implied warranties of merchantability and/or fitness for a
+ * particular purpose.
+ *
+ * The following software/firmware and/or related documentation ("mCube Software")
+ * have been modified by mCube Inc. All revisions are subject to any receiver's
+ * applicable license agreements with mCube Inc.
+ *
+ * This software is licensed under the terms of the GNU General Public
+ * License version 2, as published by the Free Software Foundation, and
+ * may be copied, distributed, and modified under those terms.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ *
+ *****************************************************************************/
+
+ #ifndef MC41XX_H
+    #define MC41XX_H
+
+/*******************************************************************************
+ *** INCLUDE FILES
+ *******************************************************************************/
+#include <linux/ioctl.h>
+
+/*******************************************************************************
+ *** H/W CONFIGURATION
+ *******************************************************************************/
+/**************************
+ *** MAG SENSOR I2C ADDR
+ **************************/
+#define MCMAG_I2C_ADDR    (0x0C << 1)
+
+/**************************************************************
+ *** REG MAP (refer to MC41xx Spec.)
+ **************************************************************/
+#define MCMAG_REG_STB             0x0C
+//================================
+#define MCMAG_REG_MORE_INFO       0x0D
+#define MCMAG_REG_INFO_VERSION    0x0D
+#define MCMAG_REG_INFO_ALPS       0x0E
+#define MCMAG_REG_WHO_I_AM        0x0F
+//================================
+#define MCMAG_REG_XOUT            0x10
+#define MCMAG_REG_XOUT_L          0x10
+#define MCMAG_REG_XOUT_H          0x11
+#define MCMAG_REG_YOUT            0x12
+#define MCMAG_REG_YOUT_L          0x12
+#define MCMAG_REG_YOUT_H          0x13
+#define MCMAG_REG_ZOUT            0x14
+#define MCMAG_REG_ZOUT_L          0x14
+#define MCMAG_REG_ZOUT_H          0x15
+//================================
+#define MCMAG_REG_STATUS          0x18
+//================================
+#define MCMAG_REG_CTRL1           0x1B
+#define MCMAG_REG_CTRL2           0x1C
+#define MCMAG_REG_CTRL3           0x1D
+#define MCMAG_REG_CTRL4           0x1E
+//================================
+#define MCMAG_REG_XOFF            0x20
+#define MCMAG_REG_XOFF_L          0x20
+#define MCMAG_REG_XOFF_H          0x21
+#define MCMAG_REG_YOFF            0x22
+#define MCMAG_REG_YOFF_L          0x22
+#define MCMAG_REG_YOFF_H          0x23
+#define MCMAG_REG_ZOFF            0x24
+#define MCMAG_REG_ZOFF_L          0x24
+#define MCMAG_REG_ZOFF_H          0x25
+//================================
+#define MCMAG_REG_ITHR            0x26
+#define MCMAG_REG_ITHR_L          0x26
+#define MCMAG_REG_ITHR_H          0x27
+//================================
+#define MCMAG_REG_TEMP            0x31
+
+
+/**************************************************************
+ *** [REG STATUS: 0x18]
+ **************************************************************/
+    /**********************************************************
+     *** DATA READY DETECTION
+     **********************************************************/
+    #define MCMAG_STATUS_DATA_READY_NOT_DETECTED    0x00
+    #define MCMAG_STATUS_DATA_READY_DETECTED        0x40
+
+    /**********************************************************
+     *** DATA OVERRUN DETECTION
+     **********************************************************/
+    #define MCMAG_STATUS_DATA_OVERRUN_NOT_DETECTED    0x00
+    #define MCMAG_STATUS_DATA_OVERRUN_DETECTED        0x20
+
+/**************************************************************
+ *** [REG CONTROL1: 0x1B]
+ **************************************************************/
+    /**********************************************************
+     *** POWER MODE CONFIGURATION
+     **********************************************************/
+    #define MCMAG_CTRL1_POWER_MODE_STANDBY    0x00
+    #define MCMAG_CTRL1_POWER_MODE_ACTIVE     0x80
+
+    /**********************************************************
+     *** OUTPUT DATA RATE CONFIGURATION
+     **********************************************************/
+    #define MCMAG_CTRL1_DAA_RATE_0p5Hz    0x00
+    #define MCMAG_CTRL1_DAA_RATE_10Hz     0x08
+    #define MCMAG_CTRL1_DAA_RATE_20Hz     0x10
+    #define MCMAG_CTRL1_DAA_RATE_100Hz    0x18
+
+    /**********************************************************
+     *** STATE CONFIGURATION
+     **********************************************************/
+    #define MCMAG_CTRL1_STATE_NORMAL    0x00
+    #define MCMAG_CTRL1_STATE_FORCE     0x02
+
+/**************************************************************
+ *** [REG CONTROL3: 0x1D]
+ **************************************************************/
+    #define MCMAG_CTRL3_ENABLE_SOFT_RESET    0x80
+
+    #define MCMAG_CTRL3_SET_FORCE_STATE    0x40
+
+/**************************************************************
+ *** [REG CONTROL4: 0x1E]
+ **************************************************************/
+    #define MCMAG_CTRL4_MUST_DEFAULT_SETTING    0x80
+
+    /**********************************************************
+     *** DYNAMIC RANGE CONFIGURATION
+     **********************************************************/
+    #define MCMAG_CTRL4_DYNAMIC_RANGE_14bit    0x00
+    #define MCMAG_CTRL4_DYNAMIC_RANGE_15bit    0x10
+
+/*******************************************************************************
+ *** S/W CONFIGURATION
+ *******************************************************************************/
+/**************************************************************
+ *** BUFFER SIZE
+ **************************************************************/
+#define MCMAG_BUFFER_SIZE    64
+
+/*******************************************************************************
+ *** DATA TYPE / ENUM
+ *******************************************************************************/
+typedef enum
+{
+    E_MC41XX_DYNAMIC_RANGE_14bit = 0,
+    E_MC41XX_DYNAMIC_RANGE_15bit,
+    E_MC41XX_DYNAMIC_RANGE_DUMMY_END = 0xFFFFFFFF
+}   E_MC41XX_DynamicRangeConfig;
+
+#endif  //END of MC41XX_H
+