linux-device-driver - 如何为 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
解决方案
推荐阅读
- reactjs - 如何在反应组件中找出道具是否是节点?
- python - 需要了解如何将数据分解为同一图表上的 2 条单独的线
- android - 在 Unity 奖励视频广告后打开 AppCompatDialogFragment 时出现错误/崩溃
- java - 如何修复新版本的 java 与 windows 10 和 libgdx 一起使用?
- lambda - 我们如何为 java8 函数、谓词、双函数做 junit
- c - 如何为 lex 和 yacc 指定输入缓冲区?
- mysql - 从共享公共字段的 4 个表中获取数据
- angular - 如何扩展 Angular 的 HTTP 客户端?
- python - 如何绘制包含不同 y 轴比例的多条线的数据集的 3D 时间序列?
- python - 从停止在单词“bye”上并取决于其位置的函数返回列表