在insmod时显示iomuxc-snvs:failed to get pin name.
经排查,发现是pinctrl子系统的设备树设置有问题:
在100ask_imx6ull的设备树文件中分别有&iomuxc_snvs、&iomuxc两个iomuxc,其中&iomuxc_snvs主要管理gpio5,韦东山老师在讲解GPIO子系统和Pinctrl子系统时用到的引脚是gpio5_io03引脚,因此放在&iomuxc_snvs下。
而自己的dht11用的是gpio4_io19,因此要放在&iomuxc下,另外,mydht11结点应该放在imxul-evk下,才能使dev和drv匹配成功,进入驱动的probe函数。
修改如下:
经测试,此时insmod正常运行。
另整理IOMUXC寄存器分组如下:
IO 复用功能选择器(IOMUXC)的寄存器非常多,主要可以分为四组:
① IOMUXC_GPR 寄存器组,用于通用控制设置。
② IOMUXC_SNVS 组,主要用于GPIO5 的控制。
③ IOMUXC_SNVS_GPR 寄存器组
④ IOMUXC 组,用于指定IO 的复用功能选择和IO 属性设置。