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

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

1090

被折叠的 条评论
为什么被折叠?



