imx6用文件io操作gpio


具體請參考: http://blog.csdn.net/u014213012/article/details/53140781

這里要注意的是:

要讓linux支持文件io方式操作gpio,首先驅動必須得支持,也就是說設備樹上必須先配置好gpio模式,然后參照以上鏈接去實現gpio操作

這里舉例來說:hud項目中(imx6dl平台),有一個藍牙電源的使能受GPIO1_IO30的控制,所以我們必須得在設備樹上配置這個pad為GPIO模式

1.配置gpio模式

現在需要在設備樹上配置GPIO1_IO32用於gpio, 在配置之前需要確定該pad為哪個pad, 經原理圖可知為ENET_TXD0/GPIO1_IO30, 然后在imx6dl規格書上第四章External Signals and Pin Multiplexing章節查找到ENET_TXD0, 可以看出該pad可以復用成三種功能(ENET_TX_DATA0, ESAI_TX4_RX1, GPIO1_IO30), 這些宏定義在imx6dl-pinfunc.h文件中, 然后在用到的設備樹上(imx6dl-hud.dtsi)上查找是否已經有用到其他功能(現在要配置成gpio功能, 若已經配置成ENET_TX_DATA0則要刪除它)

MX6QDL_PAD_ENET_TXD0__GPIO1_IO30    0x80000000  /* bluetooth power enable */

這樣就配置好了gpio模式

然后使用文件io操作gpio:

2.計算gpio號:

nr=(P -1)* 32 + N; gpioP_N;

這里nr=(1-1)*32 + 30=30

3.io文件操作gpio

echo 30 > /sys/class/gpio/export

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

echo 1 > /sys/class/gpio/gpio30/value    ---> 寫高電平

echo 0 > /sys/class/gpio/gpio30/value    ---> 寫低電平


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM