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.

[参考译文] SK-AM64B:SK-am64x 上的 spidev

Guru**** 2455560 points
Other Parts Discussed in Thread: SK-AM64B

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1482122/sk-am64b-spidev-on-sk-am64x

器件型号:SK-AM64B

工具与软件:

大家好、 我 从事 sk-am64b 的工作、我的计划确实使用 spidev。   

 我是否需要超过 spidev 驱动程序来 完成此任务? 我 在 /lib/modules/XXX/kernel/drivers/spi 文件夹中只看到 spidev.ko。

此致

托比亚斯

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Tobias、

    是的、您需要驱动程序/模块、但也需要适当的设备树条目(包括 PinMux 设置)才能正常工作。 有关此主题的无数 E2E 帖子应该会有所帮助、例如、此处的这个帖子非常全面、还涵盖了一些可能会出错的问题...

    https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1419751/am620-q1-what-s-involved-in-adding-spi-ports-to-the-config-files---dts-and-dtsi/

    此致、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

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    好的、现在我启用 spi_omap2_mcspi 和 spidev 驱动程序后、会看到 /dev/spidev1.0. 很好、但在我们结束该线程之前、 我想我应该使用我的配置运行回送测试。 我明天会这样做。  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我已经成功在一个有环回的板上运行 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 驱动程序