IMX6ULL配置GPIO管腳和測試

2021-09-22 20:06:32 字數 2225 閱讀 9971

my-imx6-cb140p-6y2d-256m-4g,如下圖:(6y2d是imx6ull,256m是記憶體,4g是emmc)

對於的裝置樹檔案為arch/arm/boot/dts/myimx6ek140p-6y-256m-emmc.dts

檔案內容:/*

/dts-v1/;

#include 「myimx6y-pinfunc.h」

#include 「myimx6y.dtsi」

#include 「myimx6ek140p-iomuxc.dtsi」

#include 「myimx6ek140p-6y-snvs.dtsi」

#include 「myimx6cb140-nand4emmc.dtsi」 /* myimx6cb140-nand4nand.dtsi /

#include 「myimx6a7-lcd4wvga.dtsi」 / myimx6a7-lcd4wqvga.dtsi /

#include 「myimx6a7-enet4enet.dtsi」 / myimx6a7-enet4uart.dtsi */

#include 「myimx6ek140p.dtsi」

/ ;介紹說明:

myimx6y-pinfunc.h 是 imx6ull 全部預定義管腳都在這裡(可以在這邊複製管腳)

myimx6y.dtsi 是 imx6ull 核心註冊裝置資訊

myimx6ek140p-iomuxc.dtsi 是 imx6ull 定義管腳功能(管腳修改,需要改到這個檔案)

myimx6ek140p-6y-snvs.dtsi 是 imx6ull 定義管腳功能(管腳修改,需要改到這個檔案)

myimx6a7-lcd4wvga.dtsi 是 rgb屏相關管腳和解析度引數

myimx6a7-enet4uart.dtsi 是 配置乙個乙太網,配置uart6,7,8

myimx6a7-enet4enet.dtsi 是 配置兩個乙太網

myimx6ek140p.dtsi 是 imx6ull 註冊裝置資訊 (增加驅動,需要改到這個檔案)

這裡講解p21的34和36管腳,如下圖

增加&iomuxc ;

裡面&pinctrl_gpio_gpio表示gpio註冊時,會註冊&pinctrl_gpio_gpio裡面的管腳。

arch/arm/boot/dts/myimx6ek140p-iomuxc.dtsi

定義了兩個管腳

pinctrl_gpio_gpio: gpio_gpio_grp ;

mx6ul_pad_gpio1_io03__gpio1_io03分為兩段,前面那段gpio1_io03是cpu管腳名,如下圖

後面gpio1_io03代表功能,其實我們在myimx6y-pinfunc.h可以看到很多預定義的功能:

這裡我們選擇gpio功能:mx6ul_pad_gpio1_io03__gpio1_io03

imx6ull代表每個bank是32個管腳, io埠號= (((bank) - 1) * 32 + (nr))

gpio1_io03代表第1組gpio中的第3個gpio口,其中每組32個gpio口

io埠號為imx_gpio_nr(1,11)=32×(1-1)+3=3

IMX6ULL啟動流程

假設板子設定為sd tf卡啟動,boot rom程式會做什麼?把程式從sd tf卡讀出來,執行。從 讀?從sd tf卡讀,這需要先初始化sd tf卡 根據efuse或gpio的設定初始化sd tf卡。讀到 去?讀到記憶體即ddr去,這需要先初始化ddr。除了初始化啟動裝置 初始化ddr,還需要初始化...

IMX6ULL學習筆記(一)

imx6ull裸機開發學習 以下內容是我在學習正點原子imx6ull開發板alpha中記錄的筆記,部分摘錄自正點原子imx6ull開發手冊。bin檔案前面要新增頭部 ivt boot data dcd資料 由官方手冊可知要燒寫到sd卡中的load.imx檔案在sd卡中的起始位址是0x400,也就是1...

IMX6ULL學習筆記(三)

imx6ull裸機開發學習 以下內容是我在學習正點原子imx6ull開發板alpha中記錄的筆記,部分摘錄自正點原子imx6ull開發手冊。鏈結指令碼的例子 sections rodata align 4 data align 4 bss start bss align 4 bss end bss ...