imx6ull 正点原子设备树适配韦东山的开发板 (一)顺利启动,配置led,button

  • 时间:
  • 浏览:
  • 来源:互联网

设备树在公司经常用到

有时候很多驱动编写也就是替换设备树,所以拿韦老师的板子练手设备树
这次尝试直接拿正点的设备书改成韦老师的板子能用

对比

正点原子的设备树结构图
在这里插入图片描述
韦东山的设备树结构图
在这里插入图片描述
从因为蓝色的是开发板厂商对开发板自己的优化,所以我们对正点原子蓝色部分进行修改就行

只编译imx6ull

对正点原子里的包进行修改,因为有太多设备树编出来,所以把不要的去掉

修改Makefile

makefile里面只留下我们要的
在这里插入图片描述
根据缺失把之前删掉的其他文件找回,直到编译通过

让设备树支持内核运行到根文件系统

把正点imx6ull-14x14-evk.dts烧录到板子上,无法启动
在这里插入图片描述
从正常启动看是因为网卡这里没有跑通
捣鼓了几天后,根据cpu频率的报错,发现是他们的dtsi文件不一样,真没想到,这里面也会被改
在这里插入图片描述
开机后,lcd有一半能亮,不得不说,这个适配还是很强的
在这里插入图片描述

先改个led,看看设备树对不对

在这里插入图片描述
用的是SNVS_TAMPER3 io,在datasheet里面查找,这个io能复用为什么引脚,
在这里插入图片描述
在复用模式5中,复用为gpio5 3

1.改gpio子系统(gpio子系统指定的资源比较少)
led1{
			label = "sys-led";
			gpios = <&gpio5 3 GPIO_ACTIVE_LOW>;
			linux,default-trigger = "heartbeat";
			default-state = "on";
		};
2更改pinctrl子系统(pinctrl子系统可以指定gpio口的电器属性,个人感觉这个偏硬一些)

因为是引用了pinctl系统,所以下面的pinctrl 引脚也需要修改pinctrl(设置引脚,设置引脚驱动能力)
在这里插入图片描述
电器属性设置
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

刷入设备树还是不能看见闪烁,排查了一下发现设备树里面引脚占用了,给占用的随便改改

设备树进行修改,那么就能看见系统灯了
在/sys/firmware/devicetree/base/leds/led1 目录里可以看见这个节点的各种状态
在这里插入图片描述
在/sys/class/leds/sys-led 里面可以直接控制led
在这里插入图片描述

按键设备树修改

怎么写按键设备树

进入内核里面查看官方文档
alientek_linux/Documentation/devicetree/bindings/input

在这里插入图片描述
lable:指定一个按键标签(算是取名吧)
linux,code: 表明按键类型,意思是代表了大键盘里面的某一个按键,有自己的定义
gpios :指定使用的gpio
按照上面的描述,也不用写pinctrl子系统,只写gpio子系统就行了(可能不准确,博主确实发现写了和没写是一样的),或者是因为
这个板子上面的引脚复用刚好只作为按键了,不用pinctrl子系统进行复用,默认就调用了

开始修改按键

key1 ->SNVS_TAMPER1
在这里插入图片描述
在这里插入图片描述
去hexdump上面看看,已经注册成event1了,也就表示每有一个按键就会注册成input下面的一个event事件

key2->GPIO4_IO14
在这里插入图片描述
根据这个io口的描述,进入datasheet里面找到,并且在pinctrl里面配置复用功能5
在这里插入图片描述
MX6UL_PAD_NAND_CE1_B__GPIO4_IO14 0x80000000
在这里插入图片描述

本文链接http://www.dzjqx.cn/news/show-617059.html