Firefly开源社区

3288reload版 spi驱动probe不执行

44

积分

0

威望

0

贡献

游客

积分
44
发表于 2017-4-12 09:55:09     
安装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里面的驱动名可以证明)
回复

使用道具 举报

44

积分

0

威望

0

贡献

游客

积分
44
发表于 2017-4-12 10:02:19     
追了一下内核代码,到spi.c中的spi_match_device函数都没有执行。估计就是没有设备没有注册好的问题。请大牛指点一二
回复

使用道具 举报

44

积分

0

威望

0

贡献

游客

积分
44
发表于 2017-4-12 10:19:24     
已解决,测试过程中若修改dts需要连同resource文件一起烧。3288Ubuntu版的时候是把kernel和resource打包boot,安卓下需要两个都烧录
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

友情链接 : 爱板网 电子发烧友论坛 云汉电子社区 粤ICP备14022046号-2
快速回复 返回顶部 返回列表