基于AM335x移植ecap驱动,驱动出至一下链接。
https://github.com/teknoman117/beaglebot
移植完成后出现不能操作相关寄存器的现象,后面发现是ECAP的时钟没有打开,现象如下。
在ecap的上游设备pwmss,加入以下电源管理的代码,让其父设备处于一直开启的状态解决问题。当然可以尝试在ecap驱动中加入对其父设备的电源管理语句,我没有尝试是否可行。
am335x中ecap的描述如下。
上述简单描述了ecap移植遇到的问题,可以参考一下链接进行查阅。移植的关键除了上述的电源管理,还需要把开启pwmss的时钟的代码抽离出来。
https://lkml.org/lkml/2012/11/5/104
https://e2echina.ti.com/support/processors/f/processors-forum/78229/am335x-eqep
https://patchwork.kernel.org/project/linux-arm-kernel/patch/1456439796-28546-2-git-send-email-fcooper@ti.com/
https://patchwork.kernel.org/project/linux-omap/patch/20190807194023.15318-6-david@lechnology.com/