arm引脚复用linux,ARM知识分享-i.MX6Q GPIO复用修改方法
平臺:OKMX6Q-S2
系統(tǒng):Linux
內(nèi)核版本:Linux-3.0.35
i.MX6Q GPIO復(fù)用修改方法,驗證平臺為飛凌嵌入式OKMX6Q-S2開發(fā)板,基于ARM Corte-A9 架構(gòu),i.MX6Q四核處理器,其它平臺可參考使用。本次修改將原SD卡功能占用的部分引腳釋放,復(fù)用為GPIO。具體的GPIO號需要參考i.MX6 CPU手冊(imx6DQRM.pdf)的第四章,Chapter 4 External Signals and Pin Multiplexing。
i.MX6 CPU手冊路徑:飛凌嵌入式OKMX6Q-S2、OKMX6DL-S2用戶資料(A)/硬件/Datasheet/i.MX6/IMX6DQRM.pdf
1、修改流程
修改文件arch/arm/mach-mx6/board-mx6q_sabresd.h,在其中增加如下定義:
/*GPIO*/
MX6Q_PAD_SD3_CLK__GPIO_7_3,
MX6Q_PAD_SD3_CMD__GPIO_7_2,
MX6Q_PAD_SD3_DAT2__GPIO_7_6,
MX6Q_PAD_SD3_DAT3__GPIO_7_7,
MX6Q_PAD_SD3_DAT4__GPIO_7_1,
MX6Q_PAD_SD3_DAT5__GPIO_7_0,
MX6Q_PAD_SD3_DAT6__GPIO_6_18,
MX6Q_PAD_SD3_DAT7__GPIO_6_17,
MX6Q_PAD_NANDF_D1__GPIO_2_1,
MX6Q_PAD_NANDF_D0__GPIO_2_0,
將原來的SD卡的功能注釋掉
/* USDHC3 */
/*? ?? ?MX6Q_PAD_SD3_CLK__USDHC3_CLK_50MHZ,
MX6Q_PAD_SD3_CMD__USDHC3_CMD_50MHZ,
MX6Q_PAD_SD3_DAT0__USDHC3_DAT0_50MHZ,
MX6Q_PAD_SD3_DAT1__USDHC3_DAT1_50MHZ,
MX6Q_PAD_SD3_DAT2__USDHC3_DAT2_50MHZ,
MX6Q_PAD_SD3_DAT3__USDHC3_DAT3_50MHZ,
MX6Q_PAD_SD3_DAT4__USDHC3_DAT4_50MHZ,
MX6Q_PAD_SD3_DAT5__USDHC3_DAT5_50MHZ,
MX6Q_PAD_SD3_DAT6__USDHC3_DAT6_50MHZ,
MX6Q_PAD_SD3_DAT7__USDHC3_DAT7_50MHZ,
MX6Q_PAD_NANDF_D0__GPIO_2_0,
MX6Q_PAD_NANDF_D1__GPIO_2_1,? ?? ?? ?? ?*/
注:Linux-3.0.35版本的內(nèi)核將引腳功能定義在arch/arm/plat-mxc/include/mach/iomux-mx6q.h文件中,其中對每個引腳的全部復(fù)用功能進行了定義,有興趣可以看一下。
2、測試
GPIO
球號? ?? ?定義? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?GPIO號
89? ?? ???MX6Q_PAD_SD3_CLK__GPIO_7_3? ?? ???195
91? ?? ???MX6Q_PAD_SD3_CMD__GPIO_7_2? ?? ???194
94? ?? ???MX6Q_PAD_SD3_DAT2__GPIO_7_6? ?? ? 198
93? ?? ???MX6Q_PAD_SD3_DAT3__GPIO_7_7? ?? ? 199
92? ?? ???MX6Q_PAD_SD3_DAT4__GPIO_7_1? ?? ? 193
90? ?? ???MX6Q_PAD_SD3_DAT5__GPIO_7_0? ?? ? 192
88? ?? ???MX6Q_PAD_SD3_DAT6__GPIO_6_18? ?? ?178
87? ?? ???MX6Q_PAD_SD3_DAT7__GPIO_6_17? ?? ?177
83? ?? ???MX6Q_PAD_NANDF_D1__GPIO_2_1? ?? ? 33
84? ?? ???MX6Q_PAD_NANDF_D0__GPIO_2_0? ?? ? 32
GPIO_M_N到GPIOX的算法,GPIOX=(M-1)*32+N,例如 GPIO_4_28=(4-1)*32+28=124
測試命令
echo 33 > /sys/class/gpio/export
echo out > /sys/class/gpio/gpio33/direction
echo 1 > /sys/class/gpio/gpio33/value
cat /sys/class/gpio/gpio33/value
為了讓更多的用戶感受到我們優(yōu)秀的技術(shù)服務(wù),同時更深入的幫用戶解決產(chǎn)品開發(fā)過程中遇到的實際問題,飛凌于9月18日舉辦助力研發(fā)的抽獎活動。活動詳情請關(guān)注飛凌嵌入式官方網(wǎng)站www.forlinx.com。
0
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎總結(jié)
以上是生活随笔為你收集整理的arm引脚复用linux,ARM知识分享-i.MX6Q GPIO复用修改方法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 蚂蚁金服分布式事务开源以及实践 | SO
- 下一篇: linux 其他常用命令