一:根據mt7620 datasheet中gpio pin share schemes和wrtnode gpio引腳特徵,可以用來自定義的gpio引腳如以下標註所示:
gpio pin share schemes
注:紅色框裡的是結合wrtnode的介面引數得到的可以釋放的gpio復用引腳。
二:mt7620n.dtsi裡對gpio的註冊
我們假定$(topdir)為openwrt的編譯目錄。
在$(topdir)/target/linux/ramips/dts/mt7620n.dtsi裡有對gpio的註冊
注:結合mt7620的datasheet裡gpio pin share schemes以及在mt7620n.dtsi裡我們看到有,將gpio#0到gpio#72(中間有僅僅做gpo或gpi的)分為四組gpio0-gpio3;
對應gpio0是從gpio#0開始到gpio#23,一共有24個;對應gpio1是從gpio#24開始到gpio#39,一共有16個;對應gpio2是從gpio#40開始到gpio#71,一共有32個;
對應gpio4對應的是gpio#72,僅有乙個。
三:在wrtnode.dts裡對led、keys等的註冊
在$(topdir)/target/linux/ramips/dts/wrtnode.dts裡可以來註冊通過gpio介面控制的裝置,如led、keys等
如果想用gpio介面首先要使能gpio並且釋放gpio引腳復用功能:
使能gpio:
釋放gpio引腳復用功能:
引腳復用的定義在$(topdir)/build_dir/target-mipsel_24kec+dsp_uclibc-0.9.33.2/linux-ramips_mt7620n/linux-3.10.28/arch/mips/ralink/mt7620.c
注:路徑不一定為這個,根據你自己的核心版本,linux-3.10.xx
同理,其他復用引腳的定義一樣。
下面就來看如何在wrtnode.dts裡註冊具體的gpio裝置(led,key等等),註冊的方法可以參照 $(topdir)/target/linux/ramips/dts/rt-n14u.dts
注:dts裡對裝置的註冊很簡單,如gpio-leds的註冊,compatible要與led的驅動leds-gpio.c裡compatible對應,label是裝置的名字,裝置註冊成功,在wrtnode檔案系統下就會有 /sys/class/leds/wrtnode:blue:wan , 我們可以通過
echo 1 > /sys/class/leds/wrtnode\:blue\:wan/brightness
echo 0 > /sys/class/leds/wrtnode\:blue\:wan/brightness 來控制亮滅gpios = ,這是指定對應的gpio引腳(gpio#40)
DSP28335 多功能復用引腳GPIO
gpio是多功能復用引腳,可以配置成通用的數字i o工作模式,也可以配置成外設i o工作模式。每個引腳除了通用數字i o功能外,還有三個外設功能。gpio分為三組進行管理 gpio實現哪種功能是通過功能暫存器來設定的,設定方式如下表所示 此處僅列舉gpamux 同一時刻,每個暫存器只能選擇同一種功能...
GPIO的復用和重對映
學習筆記 埠復用和重對映 使用預設復用功能前必須對埠位配置暫存器程式設計。對於復用的輸入功能,埠必須配置成 輸入 模式 浮空 上拉或下拉 且輸入引腳必須由外部驅動 對於復用輸出功能,埠必須配置成復用功能輸出模式 推挽或開漏 對於雙向復用功能,埠位必須配置復用功能輸出模式 推挽或開漏 這時,輸入驅動器...
imx6系列 引腳復用及特性設定 裝置樹
一 簡介 iomux 讓ic的多個功能模組共享乙個引腳。每個模組都需要設定每個引腳的效能,如上下拉 高阻等,對於每個引腳都有高達8個復用選項。相關暫存器 32位的復用控制暫存器 iomuxc sw mux ctl pad or iomuxc sw mux ctl grp 用於選擇復用模式。32位的引...