mt7628網口引腳設定成通用GPIO的方法
阿新 • • 發佈:2020-08-09
openwrt版本:18.06.2
為了將mt7628網口對應的引腳設定成通用GPIO模式,需要如下兩個步驟:
1. 將EPHY_APGIO_AIO_EN暫存器中[20:17]對應的位設定為1
2. 修改裝置樹,將引腳複用功能改為gpio
Mt7628有5個網口,p0~p5。p1~p4這4個網口對應的引腳都受到兩個暫存器的控制,比如,網口p3和p4的引腳受到EPHY_APGIO_AIO_EN[4:1]和SD_MODE兩個暫存器的控制。
EPHY_APGIO_AIO_EN這個暫存器如下,地址為0x3c,暫存器位含義如下圖所示,[20:17]這4位對應p1~p4這4個網口引腳的模式,為1表示對應網口引腳為數字模式,為0表示對應網口引腳為模擬模式,預設情況下[20:17]位都為0,因此對應模擬模式,也就是隻能當網口使用。要想將某個網口的引腳設定成通用GPIO,就需要將[20:17]對應的位設定為1。
綜上所述,比如我們需要將GPIO29設定成通用的GPIO,
首先,我們需要將GPIO29所在的網口p4網口的引腳設定為數字模式,即設定EPHY_APGIO_AIO_EN第20位設定為1,如下,寫一個核心模組設定EPHY_APGIO_AIO_EN暫存器
u32 cfg; cfg = __raw_readl(sysc + 0x3c); cfg |= 0x08 << 17; __raw_writel(cfg, sysc + 0x3c);
然後,p4網口對應的引腳在mt7620.c檔案中預設被設定為sdxc模式,因此需要在裝置樹檔案中將引腳所在分組(sdmode)設定成gpio模式
參考部落格,如有侵權,請聯絡刪除