您的位置:首页 > 其它

Am335x 之GPIO控制

2013-11-15 10:35 357 查看
 转载请注明原处,谢谢。QQ:343556608

 参考:http://processors.wiki.ti.com/index.php/GPIO_Driver_Guide

 目前还没有涉及到代码(后续会有新的博客更新),仅关注到用户空间对GPIO的控制。

 1.执行下面的命令,可以显示目前驱动已经申请到的IO状态

 $ mount -t debugfs debugfs /sys/kernel/debug

 $ cat /sys/kernel/debug/gpio

 

 root@am335x-evm:/# cat /sys/kernel/debug/gpio

 GPIOs 0-31, gpio:

  gpio-2   (volume-up           ) in  hi

  gpio-3   (volume-down         ) in  hi

  gpio-6   (mmc_cd              ) in  hi

 

 GPIOs 32-63, gpio:

  gpio-48  (wlan_en             ) out lo

  gpio-53  (matrix_kbd_col      ) out hi

  gpio-54  (matrix_kbd_col      ) out hi

  gpio-57  (matrix_kbd_row      ) in  lo

  gpio-58  (matrix_kbd_row      ) in  lo

  gpio-59  (matrix_kbd_row      ) in  lo

 

 GPIOs 64-95, gpio:

 

 GPIOs 96-127, gpio:

  gpio-114 (mmc_wp              ) in  lo

  gpio-117 (bt_en

               ) out lo

 2,重新申请一个新IO,但注意看一下原理图,最好是没有使用的IO,如果本身的IO在其它地方使用的话,有可能申请不到或是破坏设备。

  下面我们申请118,并且查看有没有申请成功

  root@am335x-evm:/# echo 118 > /sys/class/gpio/export

  root@am335x-evm:/# ls /sys/class/gpio

  export      gpiochip0   gpiochip64  unexport

  gpio118     gpiochip32  gpiochip96

  root@am335x-evm:/# cat /sys/kernel/debug/gpio

  GPIOs 0-31, gpio:

   gpio-2   (volume-up           ) in  hi

   gpio-3   (volume-down         ) in  hi

   gpio-6   (mmc_cd              ) in  hi

  

  GPIOs 32-63, gpio:

   gpio-48  (wlan_en             ) out lo

   gpio-53  (matrix_kbd_col      ) out hi

   gpio-54  (matrix_kbd_col      ) out hi

   gpio-57  (matrix_kbd_row      ) in  lo

   gpio-58  (matrix_kbd_row      ) in  lo

   gpio-59  (matrix_kbd_row      ) in  lo

  

  GPIOs 64-95, gpio:

  

  GPIOs 96-127, gpio:

   gpio-114 (mmc_wp              ) in  lo

   gpio-117 (bt_en

                ) out lo

   gpio-118 (sysfs               ) in  lo

  3,改变IO为输出:

  root@am335x-evm:/# echo "out" > /sys/class/gpio/gpio118/direction

  使IO的输出为高:

  root@am335x-evm:/# echo 1 > /sys/class/gpio/gpio118/value

  root@am335x-evm:/# cat /sys/kernel/debug/gpio

  GPIOs 0-31, gpio:

   gpio-2   (volume-up           ) in  hi

   gpio-3   (volume-down         ) in  hi

   gpio-6   (mmc_cd              ) in  hi

  

  GPIOs 32-63, gpio:

   gpio-48  (wlan_en             ) out lo

   gpio-53  (matrix_kbd_col      ) out hi

   gpio-54  (matrix_kbd_col      ) out hi

   gpio-57  (matrix_kbd_row      ) in  lo

   gpio-58  (matrix_kbd_row      ) in  lo

   gpio-59  (matrix_kbd_row      ) in  lo

  

  GPIOs 64-95, gpio:

  

  GPIOs 96-127, gpio:

   gpio-114 (mmc_wp              ) in  lo

   gpio-117 (bt_en

                ) out lo

   gpio-118 (sysfs               ) out hi
  

   4,释放IO,

   root@am335x-evm:/# echo 118 > /sys/class/gpio/unexport

 

总结:这种模式我觉得在调试某些简单IO控制的一些设备的时候很方便,比如硬件用到一个IO开关某一设备,那么就几条命令就可以控制好了。如果用做学习,大家可以手工来点灯。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  AM335x GPIO 驱动