飛思卡爾IMX6處理器的GPIO配置方式

2021-06-28 14:07:56 字數 2872 閱讀 6068

在linux或android系統中,假如我們要配置飛思卡爾imx6處理器的gpio管腳,比如是gpio_19這個管腳,那麼要像這樣:

[cpp]view plain

copy

#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定義為:

[cpp]view plain

copy

#define _mx6q_pad_gpio_19__gpio_4_5         \

iomux_pad(0x0624, 0x0254, 5, 0x0000, 0, 0)  

這個iomux_pad巨集是定義gpio的關鍵巨集,其原型為:

[cpp]view plain

copy

#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進製制)

_mux_ctrl_ofs

mux控制暫存器的偏移位址(16進製制), 用於選擇引腳的功能

_mux_mode

mux模式,bit0~3,範圍0~7

_select_input_ofs   

select_input暫存器偏移位址(16進製制)

_select_input 

daisy chain模式, bit0~1,範圍0~3

_pad_ctrl

bits to be set in register _pad_ctrl_ofs for configuration selection

具體的含義要結合imx6資料手冊【chapter 36 imoux controller(iomuxc)】的內容。

以下就gpio_19這個管腳的配置進行說明:

1、_pad_ctrl_ofs

找到資料手冊page 2433:

從上圖可知:_pad_ctrl_ofs = 0x624

2、_mux_ctrl_ofs、_mux_mode

找到資料手冊page 2055的內容:

如上圖,_mux_ctrl_ofs取值為0x254,_mux_mode範圍為000~110

只有_mux_mode = 0時,_select_input_ofs和_select_input才有效,其餘時候_select_input_ofs和_select_input 都為0。

_pad_ctrl一般取值為0

綜上所述,gpio_19的配置巨集定義如下:

[cpp]view plain

copy

#define _mx6q_pad_gpio_19__kpp_col_5            \

iomux_pad(0x0624, 0x0254, 0, 0x08e8, 1, 0)  

#define _mx6q_pad_gpio_19__enet_1588_event0_out     \

iomux_pad(0x0624, 0x0254, 1, 0x0000, 0, 0)  

#define _mx6q_pad_gpio_19__spdif_out1           \

iomux_pad(0x0624, 0x0254, 2, 0x0000, 0, 0)  

#define _mx6q_pad_gpio_19__ccm_clko         \

iomux_pad(0x0624, 0x0254, 3, 0x0000, 0, 0)  

#define _mx6q_pad_gpio_19__ecspi1_rdy           \

iomux_pad(0x0624, 0x0254, 4, 0x0000, 0, 0)  

#define _mx6q_pad_gpio_19__gpio_4_5         \

iomux_pad(0x0624, 0x0254, 5, 0x0000, 0, 0)  

#define _mx6q_pad_gpio_19__enet_tx_er           \

iomux_pad(0x0624, 0x0254, 6, 0x0000, 0, 0)  

#define _mx6q_pad_gpio_19__src_int_boot         \

iomux_pad(0x0624, 0x0254, 7, 0x0000, 0, 0)  

以上的巨集定義來自imx6的linux原始碼的arm/arch/palt-mxc/include/mach/iomux-mx6q.h

飛思卡爾IMX6處理器的GPIO配置方式

標籤 imx6 gpio 配置 對映 位址 在linux或android系統中,假如我們要配置飛思卡爾imx6處理器的gpio管腳,比如是gpio 19這個管腳,那麼要像這樣 cpp view plain copy print?define mx6q pad gpio 19 gpio 4 5 mx6...

IMX6處理器的GPIO配置方式

飛思卡爾imx6處理器的gpio配置方式 在linux或android系統中,假如我們要配置飛思卡爾imx6處理器的gpio管腳,比如是gpio 19這個管腳,那麼要像這樣 cpp view plain copy define mx6q pad gpio 19 gpio 4 5 mx6q pad g...

64位處理器與32位處理器的區別

第二,要求配置不同。64位作業系統只能安裝在64位電腦上 cpu必須是64位的 同時需要安裝64位常用軟體以發揮64位 x64 的最佳效能。32位作業系統則可以安裝在32位 32位cpu 或64位 64位cpu 電腦上。當然,32位作業系統安裝在64位電腦上,其硬體恰似 大馬拉小車 64位效能就會大...