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

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>;
                   };

 

       

  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输出

#echo 10 > /sys/class/gpio/export


此时可以看到gpio下多了gpio10这个文件夹。

#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引脚电压的拉高拉低。

你可能感兴趣的:(Felven在职场)