飞凌嵌入式推出的OKT507-C作为一款广受欢迎的开发板拥有丰富的接口资源,而实际上OKT507-C的CPU引脚资源是比较紧缺的,那么它是如何实现这么丰富的接口资源呢?


答案就是飞凌使用了一个IO扩展芯片——TCA6424A。这是一个24 位 I2C 和系统管理总线 (SMBus), 输入输出(I/O) 扩展器有中断输出、复位和配置寄存器。


受当前国际形势的影响,芯片行业形势非常严峻,为了满足更多客户需求,在降低成本的同时尽可能保留更多功能,飞凌为大家带来OKT507-C去掉IO扩展芯片后保留扩展引脚功能的实现的方法。 image.png


扩展芯片上的IO口被WiFi、蓝牙、MIPI摄像头TP2854、DVP摄像头和line-out口电源使能引脚引用,若想保留这些功能,就要使用核心板其他可复用为这些功能的引脚。

本文将选用开发板的LCD功能引脚来重新复用为这些功能,用户可根据自己的实际功能需求情况选择。方法参考如下:

1. 选用引脚
对应功能引脚如下表所示:
image.png

2. 关掉gpio_ext及复用引脚原来功能
修改设备树,将LCD功能关闭后,该组引脚即可用作普通的GPIO。修改路径如下:
vi OKT507-linux-sdk/kernel/linux4.9/arch/arm64/boot/dts/sunxi/OKT507-C Common.dtsi

2.1 关掉IO扩展芯片功能
因为扩展芯片已经拆除,所以要关掉扩展芯片节点。
image.png

2.2 关闭需要复用引脚功能
关闭LCD功能,本文以选用LCD上的引脚用作功能复用,用户需根据实际情况关闭所用引脚功能。

将lcd_used 改为 0
image.png

lcd0节点添加 status = “disabled”;

image.png

3. 更改设备节点中引用的GPIO
3.1 MIPI-5640引脚配置
路径如下:
vi OKT507-linux-sdk/kernel/linux-4.9/arch/arm64/boot/dts/sunxi/OKT507-C-Common.dtsi
image.png

3.2 TP2854引脚配置
路径如下:
vi OKT507-linux-sdk/kernel/linux-4.9/arch/arm64/boot/dts/sunxi/OKT507-C-Common-TP2854M.dtsi
image.png
需要注意的是,MIPI5640和TP2854共用一个MIPI接口,两个功能都用到了MIPI_PWRDN引脚,实际使用时只能选择一种功能,因此本文在两个功能测试时选的同一个引脚。

3.3 DVP-5640引脚配置
路径如下:
vi OKT507-linux-sdk/kernel/linux-4.9/arch/arm64/boot/dts/sunxi/OKT507-C-Common.dtsi
image.png
3.4 WiFi引脚配置
路径如下:
vi OKT507-linux-sdk/kernel/linux-4.9/arch/arm64/boot/dts/sunxi/OKT507-C-Common.dtsi
image.png

3.5 蓝牙引脚配置
路径如下:
vi OKT507-linux-sdk/kernel/linux-4.9/arch/arm64/boot/dts/sunxi/OKT507-C-Common.dtsi
image.png

3.6 音频引脚
路径如下:
vi OKT507-linux-sdk/kernel/linux-4.9/arch/arm64/boot/dts/sunxi/OKT507-C-Common.dtsi
image.png