高通qcom sdm450/msm8953平台 fingerprint指纹模组移植

本文详细指导了在MSM8953主板上集成指纹传感器的步骤,包括驱动加载、硬件配置、设备树修改、权限设置、QSEE SDK移植和调试流程,涉及SPI通信、设备树节点、SELinux权限和内存调整等内容。

1:查看主板原理图获取硬件信息

系统硬件平台是sdm450/msm8953

在主板原理图上可以找到指纹相关的原理图部分如下:

该IC使用两路电, LDO6 1.8v, LDO10 2.8v。

  • SPI通讯,追到模块上是 BLSP7 spi7 这组管脚,具体的管脚信息如下:
  • FP_RST 脚硬件上悬空。
  • FP_INIT 中断引脚,追到模块上,是gpio44。

2:驱动加载

2.1:添加驱动 code

a)配置编译选项
modified:   msm-3.18/arch/arm64/configs/msmcortex-perf_defconfig
modified:   msm-3.18/arch/arm64/configs/msmcortex_defconfig
modified:   msm-3.18/drivers/input/Kconfig
modified:   msm-3.18/drivers/input/Makefile
--- a/kernel/msm-3.18/arch/arm64/configs/msmcortex_defconfig
+++ b/kernel/msm-3.18/arch/arm64/configs/msmcortex_defconfig
+CONFIG_MICROARRAY_FINGERPRINT=y
--- a/kernel/msm-3.18/arch/arm64/configs/msmcortex-perf_defconfig
+++ b/kernel/msm-3.18/arch/arm64/configs/msmcortex-perf_defconfig
+CONFIG_MICROARRAY_FINGERPRINT=y
--- a/kernel/msm-3.18/drivers/input/Kconfig
+++ b/kernel/msm-3.18/drivers/input/Kconfig
+config MICROARRAY_FINGERPRINT
+       tristate "MICROARRAY fingerprint IC"
+       depends on SPI_MASTER
+       help
+         MICROARRAY fingerprint ic
+#yujixuan modify
+source "drivers/input/fingerprint/Kconfig"

--- a/kernel/msm-3.18/drivers/input/Makefile
+++ b/kernel/msm-3.18/drivers/input/Makefile
+obj-$(CONFIG_MICROARRAY_FINGERPRINT)           += fingerprint/
b)添加驱动源码文件
fingerprint
├── Kconfig
├── Makefile
└── microarray
    ├── ioctl_cmd.h
    ├── Kconfig
    ├── madev.c
├── madev.h
├── Makefile
    ├── qualcomm-settings.c
└── qualcomm-settings.h

2.1.1:配置设备树信息

在获取硬件的硬件信息中,可知该指纹使用的 spi是 spi7, msm8953平台默认情况下,spi7是被配置在TZ端安全环境中, 被限制不能在AP侧使用的,

如果我们在AP侧使用spi7,需要解除限制,并且修改设备树种的 spi7 相关配置。

a)添加spi7 的设备树配置
--- a/kernel/msm-3.18/arch/arm64/boot/dts/qcom/msm8953-pinctrl.dtsi
+++ b/kernel/msm-3.18/arch/arm64/boot/dts/qcom/msm8953-pinctrl.dtsi
@@ -1543,6 +1543,67 @@
+       /* start for fingerprint spi end */
+       spi7 {
+           spi7_default: spi7_default {
+               /* active state */
+               mux {
+                   /* MOSI, MISO, CLK */
+                   pins = "gpio137", "gpio138", "gpio135";
+                   function = "blsp_spi7";
+               };
+               config {
+                   pins = "gpio137", "gpio138", "gpio135";
+                   drive-strength = <12>; /* 12 MA */
+                   bias-disable = <0>; /* No PULL */
+               };
+           };
+           spi7_sleep: spi7_sleep {
+               /* suspended state */
+               mux {
+                   /* MOSI, MISO, CLK */
+                   pins = "gpio137", "gpio138", "gpio135";
+                   function = "gpio";
+               };
+               config {
+                   pins = "gpio137", "gpio138", "gpio135";
+                   drive-strength = <2>; /* 2 MA */
+                   bias-pull-down; /* PULL Down */
+               };
+           };
+           spi7_cs0_active: cs0_active {
+               /* CS */
+               mux {
+                   pins = "gpio136";
+                   function = "blsp_spi7";
+               };
+               config {
+                   pins = "gpio136";
+                   drive-strength = <2>;
+                   bias-disable = <0>;
+               };
+           };
+           spi7_cs0_sleep: cs0_sleep {
+          &n
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值