韦东山 IMX6ULL和正点原子_GPIO和Pinctrl子系统的使用在100ASK_IMX6ULL上机实验

fac90a2b9f906851bcb0d8446d85a630.png

来源:百问网

作者:韦东山

本文字数:924,阅读时长:3分钟

阅读本节前先阅读:

Pinctrl子系统重要概念

GPIO子系统重要概念

基于GPIO子系统的LED驱动程序

1.1 确定引脚并生成设备树节点

NXP公司对于IMX6ULL芯片,有设备树生成工具。我们也把它上传到GIT去了,使用GIT命令载后,在这个目录下:

01_all_series_quickstart04_快速入门_正式开始02_嵌入式Linux驱动开发基础知识source05_gpio_and_pinctrloolsimx

安装“Pins_Tool_for_i.MX_Processors_v6_x64.exe”后运行,打开IMX6ULL的配置文件“MCIMX6Y2xxx08.mex”,就可以在GUI界面中选择引脚,配置它的功能,这就可以自动生成Pinctrl的子节点信息。
100ASK_IMX6ULL使用的LED原理图如下,可知引脚是GPIO5_3:

89ca8b4040f50d65d120d35224ca5782.png

在设备树工具中,如下图操作:

13009a6dd29bd90e02cc7ac3b401024b.png

把自动生成的设备树信息,放到内核源码arch/arm/boot/dts/100ask_imx6ull-14x14.dts中,代码如下:

a. Pinctrl信息:

&iomuxc_snvs {……        myled_for_gpio_subsys: myled_for_gpio_subsys{             fsl,pins = <                MX6ULL_PAD_SNVS_TAMPER3__GPIO5_IO03        0x000110A0            >;        };

b. 设备节点信息(放在根节点下):

        myled {            compatible = "100ask,leddrv";            pinctrl-names = "default";            pinctrl-0 = ;            led-gpios = ;        };

1.2 编译程序

编译设备树后,要更新设备树。

编译驱动程序时,“leddrv_未测试的原始版本.c”是有错误信息的,“leddrv.c”是修改过的。

测试方法,在板子上执行命令:

#insmod  leddrv.ko#ls /dev/100ask_led0#./ledtest /dev/100ask_led0 on#./ledtest /dev/100ask_led0 off

可以点击“了解更多”与韦东山老师交流

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值