(主机端)
基础知识
imx6 3.0.35 kernel中内核驱动核心源码实现位置
参数配置文件
板级目录:arch/arm/mach-mx6/
板级文件:arch/arm/mach-mx6/mx6q_c_sabresd.c
管脚功能定义:arch/arm/mach-mx6/mx6q_c_sabresd.h
管脚标号定义:arch/arm/plat-mxc/include/mach/iomux-mx6q.h
实现目的
查看原理图,将D32灯在LED中添加出文件设备以供操作,
查看硬件对应IO口
由图可得IO引脚为EIM_BCLK,查找数据手册 IMX6DQ参考手册(RM)_201507.pdf 中可得,D13的引脚为GPIO6_IO31
在kernel中配置EIM_BCLK引脚为GPIO模式
在arch/arm/mach-mx6/board-myimx6ek200-6q.h中
如果最后无法控制led,软件上一般脚的是配置问题,可以在mx6q_sabresd_pads找MX6Q_PAD_EIM_BCLK__GPIO_6_31,看在MX6Q_PAD_EIM_BCLK__GPIO_6_31的后面MX6Q_PAD_EIM_BCLK 有没有被其它脚给重新初始化成了别的功能。
这里发现MX6Q_PAD_EIM_BCLK被初始化为其他功能。把该引脚注释掉
在kernel中注册EIM_BCLK引脚为LED驱动框架
在kernel中将EIM_BCLK引脚注册到系统LED驱动框架上,修改arch/arm/mach-mx6/board-myimx6ek200.c
//定义需注册的io
//注册到系统led框架数组
//修改系统led驱动IO数组
配置Menuconfig支持LED IO框架
生成镜像uImage并烧录
make uImage
(开发板端)
查看LED框架下得自定义led设备
cd /sys/class/leds
操作LED
//echo 1 > /sys/class/leds/user_led/brightness
//echo 0 > /sys/class/leds/user_led/brightness