NXP

Zynq-Linux移植学习笔记之12-gpio驱动配置

2019-07-12 12:13发布

原文链接:https://blog.csdn.net/zhaoxinfan/article/details/70233549
1、 硬件配置
要启用GPIO,首先需要硬件支持,在vivado下进行zynq内GPIO控制器的配置。
这里写图片描述 上图是在Zynq中启用GPIO控制器
这里写图片描述 上图为配置GPIO引脚,通常采用MIO方式输出。除了软件上面配置外,实际电路图中也需要对引脚进行配置。 2、 devicetree配置 gpio@e000a000{
compatible= “xlnx,zynq-gpio-1.0”;
#gpio-cells= <0x2>;
clocks= <0x1 0x2a>;
gpio-controller;
interrupt-parent= <0x3>;
interrupts= <0x0 0x14 0x4>;
reg= <0xe000a000 0x1000>;
pinctrl-names= “default”;
pinctrl-0= <0xa>;
}; [plain] view plain copy
pinctrl@700{
compatible= “xlnx,pinctrl-zynq”;
reg= <0x700 0x200>;
syscon= <0x8>;

gpio0-default{
linux,phandle= <0xa>;
phandle= <0xa>; mux{ function= "gpio0"; groups= "gpio0_7_grp", "gpio0_46_grp", "gpio0_47_grp"; }; conf{ groups= "gpio0_7_grp", "gpio0_46_grp", "gpio0_47_grp"; slew-rate= <0x0>; io-standard= <0x1>; }; conf-pull-up{ pins= "MIO46", "MIO47"; bias-pull-up; }; conf-pull-none{ pins= "MIO7"; bias-disable; }; }; … 3、 kernel配置
在kernel中添加/sys/class/gpio文件接口,以及zynq gpio驱动
这里写图片描述 4、 GPIO测试
Linux启动之后,可以查看到/sys/class文件下有GPIO文件夹
这里写图片描述 通过命令设置MIO10为GPIO输出 [plain] view plain copy

echo 10 > /sys/class/gpio/export

此时可以看到gpio下多了gpio10这个文件夹。 [plain] view plain copy

echo out > /sys/class/gpio/gpio10/direction

配置gpio10将其作为输出
这里写图片描述

echo 1 > /sys/class/gpio/gpio10/value

echo 0 > /sys/class/gpio/gpio10/value

通过向gpio10的value写入1或0实现拉高拉低。同时可以查看value中的值。
这里写图片描述 进一步测试可以使用万用表量电压或通过GPIO控制LED灯的亮灭的方式直观看出GPIO引脚电压的拉高拉低。