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里面的驱动名可以证明) 追了一下内核代码,到spi.c中的spi_match_device函数都没有执行。估计就是没有设备没有注册好的问题。请大牛指点一二 已解决,测试过程中若修改dts需要连同resource文件一起烧。3288Ubuntu版的时候是把kernel和resource打包boot,安卓下需要两个都烧录
页:
[1]