1. 程式人生 > 實用技巧 >mt7628網口引腳設定成通用GPIO的方法

mt7628網口引腳設定成通用GPIO的方法

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模式


參考部落格,如有侵權,請聯絡刪除

  http://blog.chinaunix.net/uid-22547469-id-5091963.html