IMX6 GPIO的定義


比如定義PAD_GPIO_19作為一個GPIO_4_5使用:

#define  MX6Q_PAD_GPIO_19__GPIO_4_5     (_MX6Q_PAD_GPIO_19__GPIO_4_5 | MUX_PAD_CTRL(NO_PAD_CTRL))  

看上面的宏:

_MX6Q_PAD_GPIO_19__GPIO_4_5

它的定義是:

#define _MX6Q_PAD_GPIO_19__GPIO_4_5      IOMUX_PAD(0x0624, 0x0254, 5, 0x0000, 0, 0)

#define IOMUX_PAD(_pad_ctrl_ofs, _mux_ctrl_ofs, _mux_mode, _sel_input_ofs,   _sel_input, _pad_ctrl) 

IOMUX_PAD宏有6個參數,每個參數的意思是:

_pad_ctrl_ofs      控制寄存器的偏移地址(16進制) 該地址定義PAD是cmos還是schimitt輸入,上拉還是下拉,阻抗多少om等功能,請查看寄存器;

_mux_ctrl_ofs     MUX控制寄存器的偏移地址(16進制), 用於選擇引腳的功能

 _mux_mode      MUX模式,bit0~3,范圍0~7,ALT的值,0~7,就是選引腳是gpio還是其他功能,一個pad是個確確實實能摸到的芯片的管腳,而這管腳有多種配置,實現不同的功能

_sel_input_ofs     SELECT_INPUT寄存器偏移地址(16進制)  當ALT的選擇使得PAD作為其他PAD也能實現的功能時,這個寄存器才有用。比如關鍵PIN35\PIN45都能做UART_TXD,這個時候,就要在這個寄存器里,對_sel_input,進行設置,具體查看寄存器。

_pad_ctrl  一般取值為0(好吧,暫不追究)

因此一個PAD就可以出現下面這么多種配置:

  1. #define _MX6Q_PAD_GPIO_19__KPP_COL_5            \  
  2.         IOMUX_PAD(0x0624, 0x0254, 0, 0x08E8, 1, 0)  
  3. #define _MX6Q_PAD_GPIO_19__ENET_1588_EVENT0_OUT     \  
  4.         IOMUX_PAD(0x0624, 0x0254, 1, 0x0000, 0, 0)  
  5. #define _MX6Q_PAD_GPIO_19__SPDIF_OUT1           \  
  6.         IOMUX_PAD(0x0624, 0x0254, 2, 0x0000, 0, 0)  
  7. #define _MX6Q_PAD_GPIO_19__CCM_CLKO         \  
  8.         IOMUX_PAD(0x0624, 0x0254, 3, 0x0000, 0, 0)  
  9. #define _MX6Q_PAD_GPIO_19__ECSPI1_RDY           \  
  10.         IOMUX_PAD(0x0624, 0x0254, 4, 0x0000, 0, 0)  
  11. #define _MX6Q_PAD_GPIO_19__GPIO_4_5         \  
  12.         IOMUX_PAD(0x0624, 0x0254, 5, 0x0000, 0, 0)  
  13. #define _MX6Q_PAD_GPIO_19__ENET_TX_ER           \  
  14.         IOMUX_PAD(0x0624, 0x0254, 6, 0x0000, 0, 0)  
  15. #define _MX6Q_PAD_GPIO_19__SRC_INT_BOOT         \  
  16.         IOMUX_PAD(0x0624, 0x0254, 7, 0x0000, 0, 0) 

以上的宏定義來自imx6的linux源碼的arm/arch/palt-mxc/include/mach/iomux-mx6q.h

MUX_PAD_CTRL(NO_PAD_CTRL)

這個好像是一些上拉或下拉,還有電阻的控制。具體還待研究!

參照:

http://blog.csdn.net/xnwyd/article/details/9042159

謝謝!


免責聲明!

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



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