当前位置: 首页 > 工具软件 > REE > 使用案例 >

展锐7731E Android8.0 REE 32位指纹代码移植

公冶光亮
2023-12-01

一,移植REE 时,在kernel prboe SPI 通讯读取chip ID 时会概率性读取失败。导致的问题就是不能在kernel 里面读取id 来继续加载驱动或者卸载驱动并释放资源,从而达到兼容其他家的指纹目的。

二,展锐7731E REE 时在dts 兼容时不能向其他平台一样,分别定义各自dts文件, 需要写在同一个大括号内。如下使用spi1,compatible 以及 GPIO设定需要放在一起,否者无法:

&spi1 {
		clocks = <&clk_ap_hs_spi>, <&clk_twpll_192m>,
				<&clk_aon_eb0_gates 9>;
		status = "okay";
};

&spi1 {
	status = "okay";

	spi@0 {
		status = "okay";
		compatible = "goodix,fingerprint","microarray,microarray-fp";
		reg = <0>;
		spi-max-frequency = <8000000>;
		
		goodix,gpio_reset = <&ap_gpio 54 0>;
		goodix,gpio_irq = <&ap_eic_async 11 0>;

		microarray,gpio_reset = <&ap_gpio 54 0>;
		microarray,gpio_irq = <&ap_eic_async 11 0>;
	};
};

三,如上的写法,导致两家指纹使用的时同一个设备,导致必须得第一家指纹在probe加载时必须读取chip id, 读取chip 失败必须报异常,且返回失败,并释放相关资源,才会成功加载第二家指纹驱动的probe, 不然第二家指纹驱动无法加载成功。

四,但是因为有第一个问题,所以兼容后还有概率性失效的问题, 因此ree 无法兼容多家指纹,如需要兼容,需要调试展锐7731E平台自带的TEE 来进行兼容。

五,如果不需要兼容多家指纹,只有一家指纹,可以使用哦个REE。但是不要在probe当中去读取ID, 把读取ID的动作放在So库里面去完成。

 类似资料: