imx6的IOMUX配置方法

2016年03月14日 10:26:49 9527zyj 閱讀數 5218
版權聲明:本文爲博主原創文章,未經博主允許不得轉載。 https://blog.csdn.net/qq_29729577/article/details/50884292
imx6芯片利用IOMUX機制來解決引腳複用的問題,其引腳配置方法也有些複雜,它涉及到的寄存器有三類:

1.PAD控制寄存器
2.MUX控制寄存器
3.Select Input控制寄存器

下面我以串口UART4_TXD這一引腳爲例來簡單說明:
1.查看原理圖:
在這裏插入圖片描述

上圖可以看出UART4_TXD對應芯片的引腳爲KEY_COL0

2.查看芯片手冊,查找上述三個控制寄存器:
以KEY_COL0爲索引進行搜索,可以查找到如下信息:
在這裏插入圖片描述

然後可以觀察到KEY_COL0對應的PAD控制寄存器爲SW_PAD_CTL_PAD_KEY_COL0,
且ATL4對應UART4_TX_DATA,因此以UART4_TX_DATA爲索引再進行搜索:
在這裏插入圖片描述

觀察得到對應的MUX控制寄存器爲IOMUXC_SW_MUX_CTL_PAD_KEY_COL0,
SELECT_INPUT控制寄存器爲IOMUXC_UART4_UART_RX_DATA_SELECT_INPUT

至此,上述三個控制寄存器名稱查找完成!

3.查找控制寄存器對應的地址

  1. PAD控制寄存器爲SW_PAD_CTL_PAD_KEY_COL0,查看datesheet:
    在這裏插入圖片描述

觀察得到其偏移地址爲0x62C

  1. MUX控制寄存器IOMUXC_SW_MUX_CTL_PAD_KEY_COL0,查看datesheet:
    在這裏插入圖片描述
    觀察得到其偏移地址爲0x244

3)SELECT_INPUT控制寄存器IOMUXC_UART4_UART_RX_DATA_SELECT_INPUT:
在這裏插入圖片描述
觀察得到其偏移地址爲0x914

4.源碼配置
我的相關源碼位置是在arch/arm/boot/dts/imx6dl-pinfunc.h中,觀察配置規則:
/*
* The pin function ID is a tuple of
* <mux_reg conf_reg input_reg mux_mode input_val>
*/
以上規則爲:

    mux_reg:mux控制寄存器偏移地址
    conf_reg:pad控制寄存器偏移地址
    input_reg:select_input控制寄存器偏移地址
    mux_mode:mux模式
    input_val:select_input寄存器值

從上述內容可以得到mux_reg爲0x244,conf_reg爲0x62C,input_reg爲0x914,
此外mux_mode可由上圖中觀察到爲MUX_MODE中的ALT4模式,其值爲100,即0x4;input_val觀察到爲DAISY中的KEY_COL0_ALT4,其值爲10,即0x2

綜上所述,外部的UART4_TX對應配置應如下:
#define MX6QDL_PAD_KEY_COL0__UART4_RX_DATA 0x244 0x62c 0x914 0x4 0x2
符合文檔中內容:
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章