spi配置spidev节点烧录后,在/dev下有spidev2.0节点,但是收发数据没反应
1.修改rk3399.dtsi如下:spi2 {
spi2_clk: spi2-clk {
rockchip,pins =
<2 11 RK_FUNC_2 &pcfg_pull_up_3ma>;
};
spi2_cs0: spi2-cs0 {
rockchip,pins =
<2 12 RK_FUNC_2 &pcfg_pull_up_3ma>;
};
spi2_rx: spi2-rx {
rockchip,pins =
<2 9 RK_FUNC_2 &pcfg_pull_up_3ma>;
};
spi2_tx: spi2-tx {
rockchip,pins =
<2 10 RK_FUNC_2 &pcfg_pull_up_3ma>;
};
};
2.在rk3399pro-firefly-aiojd4.dts增加spidev节点如下:
&spi2 {
status = "okay";
max-freq = <24000000>;
spi_wk2xxx@00{
status = "disabled";
};
spi_test@00 {
compatible = "rockchip,spidev";
reg = <0>;
spi-max-frequency = <24000000>;
pinctrl-names = "default";
pinctrl-0 = <&spi2_clk &spi2_tx &spi2_rx &spi2_cs0>;
};
};
烧录到板卡后,利用spidev_test进行自测,插上逻辑分析仪后发送数据没有任何反应
有没有大佬指点一下,我这是AIO-3399pro-JD4的板子 打印信息提示spi:no high_speed pinctrl state,这个spi的pinctrl是需要进行其它的配置吗 用的sdk是 :Linux-SDK源码包(仅支持RK3399Pro)
下载地址:https://www.t-firefly.com/doc/download/65.html 完全按照wiki上的接口使用来配置,只把compatible = "linux,spidev";里面的linux给改成了rockchip后,无论是否发送数据,会一直存在csn和clk信号。但是tx,rx一直没有信号。用的是\kernel\Documentation\spi\spidev_test.c进行测试的。
wiki链接:https://wiki.t-firefly.com/AIO-3399Pro-JD4/driver_spi.htmlcsn 链接挂错了,重新发一下:https://wiki.t-firefly.com/AIO-3399Pro-JD4/driver_spi.html 调试流程:
1.首先确认驱动 probe 成不成功。
2.追踪驱动有没有正常进入读写。
3.示波器抓一下信号脚波形
这些 pinctrl 应该都是 spi总线节点 的pinctrl 不是spi 设备配置的。先自己排查一下吧,git grep "rockchip,spidev" 看看内核里其他 设备树是怎么配的
板蓝根 发表于 2022-11-21 09:45
调试流程:
1.首先确认驱动 probe 成不成功。
2.追踪驱动有没有正常进入读写。
我后面改了,完全按照wiki上的最后的接口使用来配的,也还是不行。
可以走到probe里。
clk脚和csn脚无论是否发送数据,都一直有信号
wiki链接:https://wiki.t-firefly.com/AIO-3399Pro-JD4/driver_spi.html
板蓝根 发表于 2022-11-21 09:45
调试流程:
1.首先确认驱动 probe 成不成功。
2.追踪驱动有没有正常进入读写。
驱动可以正常进入读写,但tx,rx脚依然没有信号
clk和csn就算不配置spidev节点,也一直有信号
板蓝根 发表于 2022-11-21 09:45
调试流程:
1.首先确认驱动 probe 成不成功。
2.追踪驱动有没有正常进入读写。
根据内核里其它设备树的spidev节点设置,修改后如下
页:
[1]
2