mtk兼容Gsensor驱动

兼容Gsensor驱动是很常见的驱动调试,下面将简单介绍android7 mt6735平台兼容msa311的过程

修改文件如下:

kernel-3.18/arch/arm64/boot/dts/tek6735m_65_d_n.dts                  |   28 +-
 kernel-3.18/arch/arm64/configs/tek6735m_65_d_n_debug_defconfig       |    1 +
 kernel-3.18/arch/arm64/configs/tek6735m_65_d_n_defconfig             |    1 +
 kernel-3.18/drivers/misc/mediatek/accelerometer/Kconfig              |    1 +
 kernel-3.18/drivers/misc/mediatek/accelerometer/Makefile             |    1 +
 kernel-3.18/drivers/misc/mediatek/accelerometer/mir3da/mir3da_cust.c |   10 +-
 kernel-3.18/drivers/misc/mediatek/accelerometer/msa311/Kconfig       |    8 +
 kernel-3.18/drivers/misc/mediatek/accelerometer/msa311/Makefile      |    5 +
 kernel-3.18/drivers/misc/mediatek/accelerometer/msa311/msa_core.c    | 2077 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 kernel-3.18/drivers/misc/mediatek/accelerometer/msa311/msa_core.h    |  295 +++++++++++++++
 kernel-3.18/drivers/misc/mediatek/accelerometer/msa311/msa_cust.c    | 1874 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

首先,将对应的Gsensor驱动放到kernel-3.18/drivers/misc/mediatek/accelerometer下

在kernel-3.18/drivers/misc/mediatek/accelerometer/Kconfig添加定义

--- a/kernel-3.18/drivers/misc/mediatek/accelerometer/Kconfig
+++ b/kernel-3.18/drivers/misc/mediatek/accelerometer/Kconfig
@@ -40,3 +40,4 @@ source "drivers/misc/mediatek/accelerometer/KXTJ2_1009-new/Kconfig"
 source "drivers/misc/mediatek/accelerometer/rt3000/Kconfig"
 source "drivers/misc/mediatek/accelerometer/msa301/Kconfig"
 source "drivers/misc/mediatek/accelerometer/mir3da/Kconfig"
+source "drivers/misc/mediatek/accelerometer/msa311/Kconfig"

在kernel-3.18/drivers/misc/mediatek/accelerometer/Makefile下添加对于宏

--- a/kernel-3.18/drivers/misc/mediatek/accelerometer/Makefile
+++ b/kernel-3.18/drivers/misc/mediatek/accelerometer/Makefile
@@ -39,4 +39,5 @@ obj-$(CONFIG_MTK_ACCEL_RT3000)   +=  rt3000/
 obj-$(CONFIG_MTK_LSM6DS3HG)   +=  lsm6ds3hg/
 obj-$(CONFIG_MTK_MSA301)  +=  msa301/
 obj-$(CONFIG_MTK_MIR3DA)   +=  mir3da/
+obj-$(CONFIG_MTK_MSA311)  +=  msa311/

kernel-3.18/arch/arm64/configs/tek6735m_65_d_n_defconfig和kernel-3.18/arch/arm64/configs/tek6735m_65_d_n_debug_defconfig下开启宏

--- a/kernel-3.18/arch/arm64/configs/tek6735m_65_d_n_debug_defconfig
+++ b/kernel-3.18/arch/arm64/configs/tek6735m_65_d_n_debug_defconfig
@@ -212,6 +212,7 @@ CONFIG_LCM_WIDTH="480"
 CONFIG_MTK_SENSOR_SUPPORT=y
 CONFIG_CUSTOM_KERNEL_ACCELEROMETER=y
 #CONFIG_MTK_MSA301 is not set
+CONFIG_MTK_MSA311=y
 CONFIG_MTK_MIR3DA=y
 # CONFIG_MTK_MXC4005XC is not set
 # CONFIG_MTK_MC3410_NEW is not set
diff --git a/kernel-3.18/arch/arm64/configs/tek6735m_65_d_n_defconfig b/kernel-3.18/arch/arm64/configs/tek6735m_65_d_n_defconfig
index 579c90a..c6e0336 100755
--- a/kernel-3.18/arch/arm64/configs/tek6735m_65_d_n_defconfig
+++ b/kernel-3.18/arch/arm64/configs/tek6735m_65_d_n_defconfig
@@ -207,6 +207,7 @@ CONFIG_LCM_WIDTH="480"
 CONFIG_MTK_SENSOR_SUPPORT=y
 CONFIG_CUSTOM_KERNEL_ACCELEROMETER=y
 #CONFIG_MTK_MSA301 is not set
+CONFIG_MTK_MSA311=y
 CONFIG_MTK_MIR3DA=y
 # CONFIG_MTK_MXC4005XC is not set
 # CONFIG_MTK_MC3410_NEW is not set

最后修改kernel-3.18/arch/arm64/boot/dts/tek6735m_65_d_n.dts

--- a/kernel-3.18/arch/arm64/boot/dts/tek6735m_65_d_n.dts
+++ b/kernel-3.18/arch/arm64/boot/dts/tek6735m_65_d_n.dts
@@ -73,23 +73,23 @@ memory@00000000 {
  /*************************
  * sensor  dtsi file
 *************************/
-       cust_accel_msa301:cust_accel@0 {
-               compatible                              = "mediatek,msa301";
+       cust_accel_msa311:cust_accel@0 {
+               compatible                              = "mediatek,msa311";
        };
        cust_accel_mir3da:cust_accel@0 {
                compatible                              = "mediatek,mir3da";
        };
  /* sensor standardization */
-               /*cust_accel@0 {
-               compatible = "mediatek,msa301";
+               cust_accel@0 {
+               compatible = "mediatek,msa311";
                i2c_num = <2>;
-               i2c_addr                                = <0x26 0 0 0>;
-               direction                               = <1>;
+               i2c_addr                                = <0x62 0 0 0>;
+               direction                               = <5>;
                power_id = <0xffff>;
                power_vol = <0>;
                firlen = <0>;
                is_batch_supported = <0>;
-               };*/
+               };
 
                cust_accel@0 {
                 compatible = "mediatek,mir3da";
@@ -202,10 +202,10 @@ memory@00000000 {
        status = "okay";
 
 };
-&cust_accel_msa301 {
+&cust_accel_msa311 {
                i2c_num                         = <2>;
-               i2c_addr                                = <0x26 0 0 0>;
-               direction                               = <1>;
+               i2c_addr                                = <0x62 0 0 0>;
+               direction                               = <5>;
                power_id                                = <0xffff>;
                power_vol                               = <0>;
                firlen                                  = <0>;
@@ -646,12 +646,12 @@ memory@00000000 {
 
 &i2c2 {
        /*real i2c addr is 0x15, the same as gsensor_mxc622x_auto, so modify the address as 0x16*/      
-/*     gsensor_msa301@26{
-               compatible = "mediatek,gsensor_msa301";
-               reg = <0x26>;
+       gsensor_msa311@62{
+               compatible = "mediatek,msa311";
+               reg = <0x62>;
                status = "okay";
        };
-*/     
+       
        gsensor_mir3da@26 {
                compatible = "mediatek,gsensor_mir3da";
                reg = <0x26>;

至此  一次兼容Gsensor驱动已完成

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值