平台信息
平台:高通sm4450 系统:android(14|15) 内核:kernel-5.10
1 概述
****当我们在移植调试高通平台指纹时,首先跟供应商沟通器件型号、平台信息以及需要使用aidl还是hidl的服务,在Android(14、15)都在使用aidl服务,Android13及以前用hidl服务较多,新版本的基本都在用aidl,这是android系统默认的接口,SYS侧不需要修改任何代码。供应商一般会提供一个压缩包,这里边包括:指纹内核驱动、hal层的库、ca库、hidl服务、ta源码或库文件、权限文件等、芯片手册及集成方法等,在这里强调的是供应商提供适合当前平台的文件库是非常必要的,前期沟通好才能事半功倍。
2 集成步骤
以思立微指纹为例
2.1 集成驱动及编译配置
指纹驱动只负责gpio初始化、上下电、不传输指纹录入、解锁业务逻辑。
集成驱动
drivers/input/fingerprint/Kconfig
drivers/input/fingerprint/Makefile
drivers/input/fingerprint/silead/Kconfig
drivers/input/fingerprint/silead/Makefile
drivers/input/fingerprint/silead/silead_fp.h
drivers/input/fingerprint/silead/silead_fp.c
drivers/input/fingerprint/silead/silead_fp_qcom.h
drivers/input/fingerprint/silead/silead_fp_qcom.c
路径:drivers/input/Kconfig
source "drivers/input/fingerprint/Kconfig"
路径:drivers/input/Makefile
obj-$(CONFIG_FINGERPRINT) += fingerprint/
编译配置
路径:arch/arm64/configs/vendor/xxx_consolidate.config
CONFIG_FINGERPRINT=y
CONFIG_FP_SILEAD=y
路径:arch/arm64/configs/vendor/xxx_GKI.config
CONFIG_FINGERPRINT=y
CONFIG_FP_SILEAD=y
2.2 添加设备树
添加设备树
这里主要配置spi、中断、rest、供电控制管脚。
路径:VENDOR/kernel_platform/qcom/proprietary/devicetree/qcom/xxx_fingerprint.dtsi
&soc{
silead_fp {
status = "okay";
compatible = "sil,silead_fp";
spi-max-frequency = <4800000>