如何为 Beaglebone 的 SPI 接口添加对 4 个以上芯片选择的支持

问题描述

Beaglebone 的 SPI1 接口有 2 个原生 CS。我想再向 SPI1 添加 4 个 GPIO CS。总共 6 个 CS。 我将所有 6 个 CS 条目添加到设备树的 cs-gpios 中,如下所示。

cs-gpios = <0>,<0>,<&gpio3 19 GPIO_ACTIVE_HIGH>,<&gpio1 18 GPIO_ACTIVE_HIGH>,<&gpio1 16 GPIO_ACTIVE_HIGH>,<&gpio1 17 GPIO_ACTIVE_HIGH>;

在测试时,我观察到只有连接到前 4 个 CS 的设备运行良好。与最后 2 个设备的事务抛出超时错误(从 dmesg 验证的超时错误)。

查看 am33xx.dtsi 和 spi-omap2-mcspi.c 驱动文件后,似乎 SPI 驱动只支持 4 个 CS。

如何扩展 SPI 驱动程序以支持 6 个 CS?

基本上,我试图通过 SPI1 连接 6 个 mcp4921 设备。

使用内核版本 4.14.108-ti-r134。

参考资料
Beaglebone 的 version.sh 输出 here
spi-omap2-mcspi driver
mcp4922 driver
omap2 dtsi
omap4 dtsi

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)