imx6ul外设加载问题

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

imx6ul外设加载问题

2,388 Views
王双
Contributor III

你好,我们的使用imx6ul平台和4.1.15的bsp包做产品定制,现在碰到一个外设加载顺序的问题,cmos使用i2c控制,fpga使用spi口控制,但是cmos的时钟信号有fpga提供,具体的参数需要在fpga驱动加载时写入,现在的情况是不管如何调整dts里的设备顺序,cmos驱动都会比fpga的先加载上,如此就导致cmos没有时钟无法初始化,请问如何修改代码保证spi的外设先被初始化,感谢

Labels (2)
0 Kudos
5 Replies

1,890 Views
weidong_sun
NXP TechSupport
NXP TechSupport

Hello Wang,

   你可以把你的COMS 模块编译为.ko文件,待系统启动后,在init脚本里用modprobe或者insmod方式加载它就可以了。

Have a nice day!

TIC Weidong Sun

0 Kudos

1,890 Views
王双
Contributor III

Hello Sun,

   能否提供通过修改内核来达到这个目的呢,我们希望是通过将所有驱动都built-in的方式来实现的。

Have a nice day!

0 Kudos

1,890 Views
王双
Contributor III

补充: 调试阶段全部使用ko文件手动加载测试是没问题,软件发布要求必须built-in

0 Kudos

1,890 Views
BiyongSUN
NXP Employee
NXP Employee

这个和DTS 没有关系, Linux 里面定义初始化的级别,这样就决定了加载的顺序。

这个问一下你们软件工程师,一定知道。

#define pure_initcall(fn)  __define_initcall(fn, 0)

#define core_initcall(fn)  __define_initcall(fn, 1)
#define core_initcall_sync(fn)  __define_initcall(fn, 1s)
#define postcore_initcall(fn)  __define_initcall(fn, 2)
#define postcore_initcall_sync(fn) __define_initcall(fn, 2s)
#define arch_initcall(fn)  __define_initcall(fn, 3)
#define arch_initcall_sync(fn)  __define_initcall(fn, 3s)
#define subsys_initcall(fn)  __define_initcall(fn, 4)
#define subsys_initcall_sync(fn) __define_initcall(fn, 4s)
#define fs_initcall(fn)   __define_initcall(fn, 5)
#define fs_initcall_sync(fn)  __define_initcall(fn, 5s)
#define rootfs_initcall(fn)  __define_initcall(fn, rootfs)
#define device_initcall(fn)  __define_initcall(fn, 6)
#define device_initcall_sync(fn) __define_initcall(fn, 6s)
#define late_initcall(fn)  __define_initcall(fn, 7)
#define late_initcall_sync(fn)  __define_initcall(fn, 7s)

0 Kudos

1,890 Views
王双
Contributor III

恩,最后还是把fpga的时钟控制做进uboot了

0 Kudos