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.
您好!
我 已尝试 按照 TI 专家提供的以下指导在我们自己的电路板上配置 SPI 器件接口(spidev)。
但是,spidev 不存在。
我还尝试了 在 SK-AM68和最新 SDK 上配置 SPI 器件接口(spidev)。
但 我也可以在/dev 上找到 spidev。
请检查我的问题。
下面是 我尝试的东西。
root@am68a-sk:/sys/class # ls -l spi*
SPI_MASTER:
总计0
lrwxrwxrwx 1根根根0 Apr 28 2022 spi5 ->../../devices/platform/bus@100000/2150000.spi/spi_master/spi5
spidev:
总计0
root@am68a-sk:/sys/class
CONFIG_SPI_SPIDEV=y
CONFIG_SPI_OMAP24xx=y
k3-am68-sk-base-board.dtb ( 对于 spidev、i 已禁用 dss_vout0_PINS_DEFAULT 和 rpi_header_gpins_default 的引脚多路复用设置。)
Fullscreen123456789101112131415161718192021#include <dt-bindings/mux/ti-serdes.h>/ {compatible = "ti,am68-sk", "ti,j721s2";model = "Texas Instruments AM68 SK";chosen {stdout-path = "serial2:115200n8";};aliases {serial2 = &main_uart8;mmc1 = &main_sdhci1;spi5 = &main_spi5;};..............................................&main_pmx0 {.......................spi5_pins_default: spi5-pins-default {pinctrl-single,pins = <XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX#include <dt-bindings/mux/ti-serdes.h> / { compatible = "ti,am68-sk", "ti,j721s2"; model = "Texas Instruments AM68 SK"; chosen { stdout-path = "serial2:115200n8"; }; aliases { serial2 = &main_uart8; mmc1 = &main_sdhci1; spi5 = &main_spi5; }; ....................... ....................... &main_pmx0 { ....................... spi5_pins_default: spi5-pins-default { pinctrl-single,pins = < J721S2_IOPAD(0x07C, PIN_INPUT, 8) /* (T27) MCASP0_AXR3.SPI5_CLK */ J721S2_IOPAD(0x070, PIN_INPUT, 8) /* (R27) MCAN1_RX.SPI5_D0 */ J721S2_IOPAD(0x088, PIN_INPUT, 11) /* (AD27) MCAN4_RX.SPI5_D1 */ J721S2_IOPAD(0x068, PIN_INPUT, 8) /* (U28) MCAN0_RX.SPI5_CS0 */ J721S2_IOPAD(0x064, PIN_INPUT, 8) /* (W28) MCAN0_TX.SPI5_CS1 */ J721S2_IOPAD(0x054, PIN_INPUT, 8) /* (Y27) MCASP2_ACLKX.SPI5_CS2 */ J721S2_IOPAD(0x058, PIN_INPUT, 8) /* (AA27) MCASP2_AFSX.SPI5_CS3 */ >; }; ....................... &main_spi5 { pinctrl-names = "default"; pinctrl-0 = <&spi5_pins_default>; status = "okay"; spidev@0 { spi-max-frequency = <2000000>; reg = <0>; compatible = "linux,spidev"; }; }; .......................
Tnanks、
张
尊敬的 Jang:
请给我一天时间,以便更深入地了解这一问题。
可能会发生的一件事是 GPIO 的差异、因为 J721S2/AM68与大多数 E2E 和应用手册使用的 J721E/TDA4VM 略有不同。 另一点可能是 SDK 版本的差异。 我想我们过去试过的大多数示例都是在8.x SDK 上、因此9.0/9.1 SDK 中可能会发生更改、从而导致过去的一些示例失败。
此致、
大沼市
您好、Takuma、
感谢您的更新。
我将尝试使用8.x 版的 SDK 和 SK-AM68。
这里有一个拼写错误。 很抱歉让你困惑。
我的错字-
我还尝试了 在 SK-AM68 和 最新 SDK 上配置 SPI 器件接口(spidev)。 但 我也可以在/dev 上找到 spidev。 ==>但我也无法在/dev 上找到 spidev。 |
谢谢。
张。
尊敬的 Jang:
仔细观察、似乎在软件层面上、大多数内容都已到位。 但是、如果使用默认 SDK 映像、我确实会看到与引脚多路复用有关的一些资源冲突问题。
尤其是对于 AM68的 SPI5、CLK 线路由 DSS (也称为 display)使用: https://git.ti.com/cgit/ti-linux-kernel/ti-linux-kernel/tree/arch/arm64/boot/dts/ti/k3-am68-sk-base-board.dts?h=ti-linux-5.10.y#n267。此外、MCAN 使用其中一条数据线: https://git.ti.com/cgit/ti-linux-kernel/ti-linux-kernel/tree/arch/arm64/boot/dts/ti/k3-am68-sk-base-board.dts?h=ti-linux-5.10.y#n351。最后、各种不同的模块使用一些芯片选择。 每个器件只需要一根 CS、因此如果只连接单个器件、则可以删除 SPI5引脚多路复用中使用的 CS 线路。
我的建议是两个选项:
此致、
大沼市
您好、Takuma、
感谢您的更新。
关于您的选项、
您 是否可以确定是否可以通过使用 SDK 9.x 和您的两个选项来成功查看 spidev?
我现在正在尝试使用 SDK 8.x。 我将分享我的身份。
谢谢。
张。
您好、Takuma、
我共享我的调试状态。
我可以 使用 SDK 08_06_00_10 + SK AM68找到 spidev。
下面 是我捕获的日志。
root@am68a-sk:/sys/class # ls -l spi*
SPI_MASTER:
总计0
lrwxrwxrwx 1根根0 Mar 1 2023 spi10 ->../../devices/platform/bus@100000/bus@100000:bus@28380000/40320000.spi/spi_master/spi10
lrwxrwxrwx 1根根0 Mar 1 2023 spi11 ->../../devices/platform/bus@100000/2100000.spi/spi_master/spi11
lrwxrwxrwx 1根根0 Mar 1 2023 spi12 ->../../devices/platform/bus@100000/2110000.spi/spi_master/spi12
lrwxrwxrwx 1根根目录0 Mar 1 2023 spi13 ->../../devices/platform/bus@100000/2120000.spi/SPI_MASTER/spi13
lrwxrwxrwx 1根根0 Mar 1 2023 spi14 ->../../devices/platform/bus@100000/2130000.SPI/SPI_MASTER/spi14
lrwxrwxrwx 1根根0 Mar 1 2023 spi15 ->../../devices/platform/bus@100000/2140000.spi/spi_master/spi15
lrwxrwxrwx 1根根0 Mar 1 2023 spi16 ->../../devices/platform/bus@100000/2160000.spi/spi_master/spi16
lrwxrwxrwx 1根根0 Mar 1 2023 spi17 ->../../devices/platform/bus@100000/2170000.spi/spi_master/spi17
lrwxrwxrwx 1根根0 Mar 1 2023 spi5 ->../../devices/platform/bus@100000/2150000.spi/spi_master/spi5
lrwxrwxrwx 1根根0 Mar 1 2023 spi6 ->../../devices/platform/bus@100000/bus@100000:bus@28380000/47000000.SYSCON/4704000.SPI/SPI_MASTER/spi6
lrwxrwxrwx 1根根0 Mar 1 2023 spi7 ->../../devices/platform/bus@100000/bus@100000:bus@28380000/47000000.SYSCON/4705000.SPI/SPI_MASTER/spi7
lrwxrwxrwx 1根根0 Mar 1 2023 spi8 ->../../devices/platform/bus@100000/bus@100000:bus@28380000/40300000.spi/spi_master/spi8
lrwxrwxrwx 1根根0 Mar 1 2023 spi9 ->../../devices/platform/bus@100000/bus@100000:bus@28380000/4031000.spi/SPI_MASTER/spi9
spidev:
总计0
lrwxrwxrwx 1根根0 Mar 1 2023 spidev5.0 ->/../devices/platform/bus@100000/2150000.spi/spi_master/spi5/spi5.0/spidev/spidev5.0
root@am68a-sk:/sys/class cd /dev/
root@am68a-sk:/dev# ls -l SPI*
crw------- 1根153, 0一月18 05:11 spidev5.0
root@am68a-sk:/dev# uname -a
Linux am68a-sk 5.10.162-g76b3e88d56 #1 SMP 抢占 Thu Jan 18 15:48:30 KST 2024 Aarch64 Aarch64 GNU/Linux
root@am68a-sk:/dev#
谢谢。
张。
尊敬的 Jang:
感谢您在8.6上试用并感谢您提供的信息。 我需要花一天时间自行尝试一下、并为9.x SDK 收集一些初始信息。
此致、
大沼市
尊敬的 Jang:
我目前正在设置一些实验、但与此同时、您能否检查何时使用9.x SDK、SPI 的内核模块是否加载了 modprobe?
要列出 SPI 相关模块、可以使用以下命令:
然后查看调制这些是否为9.x SDK 生成了错误。
此致、
大沼市
尊敬的 Jang:
我做了一些实验、还看到了与9.0.1 SDK 相同的问题。 由于我能立即使用 SK-TDA4VM 作为器件、但我认为我能够重现此处的问题并制作补丁来获取基本功能。
您能否尝试在对器件树所做的更改之上应用此单线修补程序?
用于将驱动程序与设备树中的设备匹配的 spidev_probe 函数中似乎发生了更改、这可能导致 spidev 不在/dev 文件夹下出现。
请告诉我这是否会改善您在适用于 SK-AM68的9.x SDK 上看到的行为、因为驱动程序应该在 SK-AM68和 SK-TDA4VM 之间共享。
此致、
大沼市
您好、Takuma、
感谢您给我这个好消息。
我将在下星期一尝试安装您的补丁。 我会向您提供反馈。
谢谢。
张。
您好、Takuma、
此问题已通过您的补丁解决。
谢谢。
张。
尊敬的 Siwon:
很高兴听到这个消息!
此致、
大沼市