Linux系统下GPIO系统架构介绍
关于这个GPIO很久以前一直以为很简单,但是,当你需要给一个特定的系统,搞这些GPIO的时候,你会发现,事实并不是如此,比如,mt7620n。
GPIO#72是控制WLED -> WLAN LED.
GPIO#40~44是控制WAN, LANLED.
GPIO#1是控制Reset
这些东西以为自己写一个GPIO driver就完成了,其实没有那么简单,光是这个小驱动你怎么编译都比较麻烦,所以还是乖乖的学习OpenWRT的系统架构吧。
这里要说道重点dts.这个东西我ChinaUnix论坛里请教了,大神绝对是多啊,一个晚上就两个完整的文档。 device tree source.
http://bbs.chinaunix.net/thread-4139331-1-1.html
主要是把之前arch/目录下一些特定板级代码直接移除,用device tree source 来表示,一些板子的共性则用 *.dtsi 这个文件来存储。
关于dts的我就不介绍了,上面的文档里面有详细的说明。
再来说说这个dts, 没有的接口千万不要乱用,不然会出大麻烦的。需要好好熟悉下,内核中关于这个dts的实现,现在了解的是 dts在编译过程中会编译为dtb文件,bootloader传递这个dtb的地址给kernel,kernel自己去根据device tree 初始化设备,所以这个才是设备的核心,内核的模块话。
pinctrl 子系统, pinmux子系统。。。
http://lwn.net/Articles/465077/
OpenWRT GPIO口控制 WLED,布布扣,bubuko.com
时间: 2024-11-25 11:49:36