工具与软件:
大家好、 我 从事 sk-am64b 的工作、我的计划确实使用 spidev。
我是否需要超过 spidev 驱动程序来 完成此任务? 我 在 /lib/modules/XXX/kernel/drivers/spi 文件夹中只看到 spidev.ko。
此致
托比亚斯
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
Tobias、
是的、您需要驱动程序/模块、但也需要适当的设备树条目(包括 PinMux 设置)才能正常工作。 有关此主题的无数 E2E 帖子应该会有所帮助、例如、此处的这个帖子非常全面、还涵盖了一些可能会出错的问题...
此致、Andreas
好的、谢谢。 我将在今天或明天试用这款产品。 这是我可以使用的引脚多路复用器。 请多多指教。
MAIN_spi0_PINS_DEFAULT:main-spi0-pins-default{
PINCTL-SINGLE、PINS =<
AM64X_IOPAD (0x0210、PIN_INPUT、0)/*(D13) SPI0_CLK */
AM64X_IOPAD (0x0208、PIN_OUTPUT、0)/*(D12) SPI0_CS0 */
AM64X_IOPAD (0x0214、PIN_OUTPUT、0)/*(A13) SPI0_D0 */
AM64X_IOPAD (0x0218、PIN_INPUT、0)/*(A14) SPI0_D1 */
>;
};
我很快就会回到这里、介绍一个成功案例或更多问题。 我是这个领域的初学者。
此致、Tobias
请严格遵守所有引脚的引脚复用("输入")设置 、如此处示例 https://git.ti.com/cgit/ti-linux-kernel/ti-linux-kernel/tree/arch/arm64/boot/dts/ti/k3-am625-sk-mcspi-loopback.dtso?h=ti-linux-6.6.y 中所示、 否则它将不起作用(实际引脚方向由外设模块控制、但引脚复用对于启用某些所需的引脚控制功能非常重要、例如 SPI 模块可以读回它输出的时钟)。 这也是 Pinmux 工具生成的内容。
此致、Andreas
我已经成功在一个有环回的板上运行 spidev_test、并且可以看到我发送的内容已经恢复、所以现在我非常 确信它正在工作。 感谢 Andreas 的帮助。
以便在其他人挣扎时总结。 这正是我为使其工作所做的:
将以下内容添加到器件树中(可以通过多种方式来完成、我更新 dts k3-am642-sk.dts 并重新构建 Linux)
/* put this in the &main_pmx0 node */
main_spi0_pins_default: main-spi0-pins-default {
pinctrl-single,pins = <
AM64X_IOPAD(0x0210, PIN_OUTPUT, 0) /* (D13) SPI0_CLK */
AM64X_IOPAD(0x0208, PIN_OUTPUT, 0) /* (D12) SPI0_CS0 */
AM64X_IOPAD(0x0214, PIN_OUTPUT, 0) /* (A13) SPI0_D0 */
AM64X_IOPAD(0x0218, PIN_INPUT, 0) /* (A14) SPI0_D1 */
>;
};
/* ----------------------------------------- */
&main_spi0 {
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <&main_spi0_pins_default>;
ti,pindir-d0-out-d1-in;
cs-gpios = <0>, <0>;
spidev_0_0: spidev@0{
compatible = "rohm,dh2228fv";
reg = <0>;
spi-max-frequency = <4000000>;
spi-cpha = <1>;
//spi-cpol = <1>;
};
};
2.安装您创建的映像
3. 在实际电路板(sk-am64b)上加载 SPI 驱动器 spi_omap2_mcspi。
4.在实际主板(sk-am64b)上加载 spidev 驱动程序。