android 霍尔传感器,浅析MTK hall霍尔传感器之原理

78d928439f3379e93387476ea5bb536b.png

2. dws配中断脚和使能脚

(根据原理图中“09_CAMERA_SENSOR”页中, “HALL”部分【OUT】引脚所连接 - 使能脚GPIO12)

v666为例

dws配置pin脚: - 由于硬件上拉-》dws也要配成上拉

EintMode|Def.Mode M0|M1|M2|M3|M4|M5|M6|M7|InPull En|InPull SelHigh|Def.Dir|In|Out|OutHigh|VarName1

GPIO12 1 0:GPIO12 1 1 IN GPIO_HALL_1_PIN

dws配置EINT:

EINTVar|Debounce Time(ms)|Polarity|Sensitive_Level|Debounce En

EINT12 HALL_1 0 Low Level Disable

dts:

* HALL GPIO standardization */

&pio {

hall_pin_default: halldefaultcfg {

};

hall_pin_as_int: hallint@12 {

pins_cmd_dat {

pins = 《PINMUX_GPIO12__FUNC_GPIO12》;

slew-rate = 《0》;

bias-pull-up = 《00》;

};

};

};

&keypad {

pinctrl-names = “default”, “hall_pin_as_int”;

pinctrl-0 = 《&hall_pin_default》;

pinctrl-1 = 《&hall_pin_as_int》;

status = “okay”;

};

/* HALL GPIO end */

一、 查看是否有键值上报

getevent -i

add device 8: /dev/input/event1

bus: 0019

vendor 2454

product 6500

version 0010

name: “mtk-kpd” // 与音量加减键、电源键、hall同一个event

location: “”

id: “”

version: 1.0.1

getevent -t /dev/input/event1 // 打印出来的是16进制

[70.169911] 0001 0085 00000001 // 85 -》 133 远离

[70.169911] 0000 0000 00000000

[70.352126] 0001 0085 00000000

[70.352126] 0000 0000 00000000

二、查看代码确定上报键值

1. alps\kernel-3.18\drivers\input\keyboard\mediatek\kpd.c

#define KEY_HALL_F3 133 //for hall eint report key far // 磁铁远离

#define KEY_HALL_F4 134 //for hall eint report key close // 磁铁靠近

2. alps/device/magcomm/magc6580_we_c_m/mtk-kpd.kl , 映射给上层

key 114 0x72 VOLUME_DOWN // 侧键

key 115 0x73 VOLUME_UP

key 116 0x74 POWER

+ key 133 F3 // 霍尔

+ key 134 F4

注:修改此文件,可以用push的方式先试验

find /system -name mtk-kpd.kl

/system/usr/keylayout/mtk-kpd.kl

adb push 。.. /system/usr/keylayout/

三、添加权限

alps/device/mediatek/common/sepolicy/basic/system_app.te

# add permission for hall

allow system_app sysfs_keypad_file:dir { search read write };

allow system_app sysfs_keypad_file:file { read write getattr setattr open create };

alps/device/mediatek/common/sepolicy/full/platform_app.te

# add permission for hall

allow platform_app sysfs_keypad_file:dir { search read write };

allow platform_app sysfs_keypad_file:file { read write getattr setattr open create };

alps/device/mediatek/common/sepolicy/full/priv_app.te

# add permission for hall

allow priv_app sysfs_keypad_file:dir { search read write };

allow priv_app sysfs_keypad_file:file { read write getattr setattr open create };

四、手写笔插入与拔出 - 用hall来实现,手写笔尖有磁性(以80 5.1为例)

1. 修改alps/device/haocheng/hct6580_weg_a_l/mtk-kpd.kl ,映射给上层

key 133 F3

key 134 F4

+ key 136 F6

+ key 137 F7

2. 修改alps\kernel-3.10\drivers\misc\mediatek\keypad\kpd.c,仿造hall_1添加hall_2的代码:

+ #ifdef GPIO_HALL_2_PIN

#define

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值