首页 > 解决方案 > 如何为 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 输出spi-omap2-mcspi driver mcp4922 driver omap2 dtsi omap4 dtsi



标签: linux-device-driverbeagleboneblackspi

解决方案


推荐阅读