Firefly开源社区

标题: 3288reload版 spi驱动probe不执行 [打印本页]

作者: jimpact    时间: 2017-4-12 09:55
标题: 3288reload版 spi驱动probe不执行
安装wiki指导,修改了firefly-rk3288-reload.dts文件如下。并把除uart_dbg之外的所有uart的status改成了disabled。
&spi0 {

                status = "okay";
        max-freq = <48000000>;

         spidev@00 {
                compatible = "spi,zeng";
                reg = <0x00>;
                spi-max-frequency = <48000000>;
                spi-cpha = <1>;
                spi-cpol = <1>;
                poll_mode = <0>;
                type = <0>;
                        };
};
驱动在spi-rockchip-test.c中修改
static const struct of_device_id spidev_dt_ids[] = {
        { .compatible = "spi,zeng" },
        {},
};
目前情况是驱动中的__init的函数中可以打印信息,但是probe函数中的打印没有。
在/sys/bus/spi/drivers里可以看到驱动名,/sys/bus/spi/devices目录为空,/dev目录下没有spi相关的任何设备节点。

哪位弄过的兄弟给点建议,我定位的几个原因1、compatible 名称;2、uart和spi复用(这不知道修改成功没有);3、驱动问题(已排除,__init函数里打印信息和drivers里面的驱动名可以证明)
作者: jimpact    时间: 2017-4-12 10:02
追了一下内核代码,到spi.c中的spi_match_device函数都没有执行。估计就是没有设备没有注册好的问题。请大牛指点一二
作者: jimpact    时间: 2017-4-12 10:19
已解决,测试过程中若修改dts需要连同resource文件一起烧。3288Ubuntu版的时候是把kernel和resource打包boot,安卓下需要两个都烧录




欢迎光临 Firefly开源社区 (https://dev.t-firefly.com/) Powered by Discuz! X3.1