youpeng 发表于 2022-11-17 17:20:26

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进行自测,插上逻辑分析仪后发送数据没有任何反应

youpeng 发表于 2022-11-17 18:49:32

有没有大佬指点一下,我这是AIO-3399pro-JD4的板子

youpeng 发表于 2022-11-18 09:31:25

打印信息提示spi:no high_speed pinctrl state,这个spi的pinctrl是需要进行其它的配置吗

youpeng 发表于 2022-11-18 16:22:43

用的sdk是 :Linux-SDK源码包(仅支持RK3399Pro)
下载地址:https://www.t-firefly.com/doc/download/65.html

youpeng 发表于 2022-11-19 09:20:50

完全按照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

youpeng 发表于 2022-11-19 16:52:32

链接挂错了,重新发一下:https://wiki.t-firefly.com/AIO-3399Pro-JD4/driver_spi.html

板蓝根 发表于 2022-11-21 09:45:37

调试流程:
1.首先确认驱动 probe 成不成功。
2.追踪驱动有没有正常进入读写。
3.示波器抓一下信号脚波形

这些 pinctrl 应该都是 spi总线节点 的pinctrl 不是spi 设备配置的。先自己排查一下吧,git grep "rockchip,spidev" 看看内核里其他 设备树是怎么配的

youpeng 发表于 2022-11-21 10:05:08

板蓝根 发表于 2022-11-21 09:45
调试流程:
1.首先确认驱动 probe 成不成功。
2.追踪驱动有没有正常进入读写。


我后面改了,完全按照wiki上的最后的接口使用来配的,也还是不行。
可以走到probe里。
clk脚和csn脚无论是否发送数据,都一直有信号
wiki链接:https://wiki.t-firefly.com/AIO-3399Pro-JD4/driver_spi.html

youpeng 发表于 2022-11-21 11:20:26

板蓝根 发表于 2022-11-21 09:45
调试流程:
1.首先确认驱动 probe 成不成功。
2.追踪驱动有没有正常进入读写。


驱动可以正常进入读写,但tx,rx脚依然没有信号
clk和csn就算不配置spidev节点,也一直有信号

youpeng 发表于 2022-11-21 11:30:20

板蓝根 发表于 2022-11-21 09:45
调试流程:
1.首先确认驱动 probe 成不成功。
2.追踪驱动有没有正常进入读写。


根据内核里其它设备树的spidev节点设置,修改后如下

页: [1] 2
查看完整版本: spi配置spidev节点烧录后,在/dev下有spidev2.0节点,但是收发数据没反应