IMX6DL4.1.15支持EIM总线(上)——实际操作,修改内容。
工作中遇到一個客戶需要通過IMX6DL的EIM總線和fpga通信。需要配置一條8位數據位,5位地址位的EIM總線。
飛凌6DLlinux4.1.15默認沒有配置EIM總線。需要添加EIM總線的配置,實際上,和添加一個串口類似,同樣是三步:1、添加EIM總線節點2、配置引腳復用3、去掉其他的引腳功能復用。
一、首先進行節點添加。
1、arch/arm/boot/dts/imx6qdl-sabresd.dtsi文件中添加如下
為eim總線的一些配置信息。
2、arch/arm/boot/dts/imx6dl-c-sabresd.dts文件中添加weim節點的控制。
添加一個weim節點的控制,并設置其狀態為okay。
二、添加引腳配置
arch/arm/boot/dts/imx6qdl-sabresd.dtsi文件中添加一個fpga的pinctrl和一個cs引腳的pinctrl。這部分在第一步的weim節點中的pinctrl-0參數對這兩個pinctrl有調用。對應的是相應的名字。
三、去掉用到的引腳的其他復用功能。
pinctrl_i2c1: i2c1grp {fsl,pins = < - MX6QDL_PAD_CSI0_DAT8__I2C1_SDA 0x4001b8b1 - MX6QDL_PAD_CSI0_DAT9__I2C1_SCL 0x4001b8b1 + /* MX6QDL_PAD_CSI0_DAT8__I2C1_SDA 0x4001b8b1 + MX6QDL_PAD_CSI0_DAT9__I2C1_SCL 0x4001b8b1 */>;};@@ -1097,10 +1127,10 @@MX6QDL_PAD_CSI0_DAT17__IPU1_CSI0_DATA17 0x80000000MX6QDL_PAD_CSI0_DAT18__IPU1_CSI0_DATA18 0x80000000MX6QDL_PAD_CSI0_DAT19__IPU1_CSI0_DATA19 0x80000000 - MX6QDL_PAD_CSI0_DATA_EN__IPU1_CSI0_DATA_EN 0x80000000 - MX6QDL_PAD_CSI0_DATA_EN__IPU1_CSI0_DATA_EN 0x80000000 + //MX6QDL_PAD_CSI0_DATA_EN__IPU1_CSI0_DATA_EN 0x80000000MX6QDL_PAD_CSI0_PIXCLK__IPU1_CSI0_PIXCLK 0x80000000MX6QDL_PAD_CSI0_MCLK__IPU1_CSI0_HSYNC 0x80000000 - MX6QDL_PAD_CSI0_VSYNC__IPU1_CSI0_VSYNC 0x80000000 + //MX6QDL_PAD_CSI0_VSYNC__IPU1_CSI0_VSYNC 0x80000000MX6QDL_PAD_SD1_DAT2__GPIO1_IO19 0x80000000MX6QDL_PAD_SD1_DAT0__GPIO1_IO16 0x80000000MX6QDL_PAD_GPIO_2__GPIO1_IO02 0x80000000在這次EIM調試中,是以連接fpga來舉例的。所以下面是添加fpga的過程:
首先需要添加一個fpga的驅動,這個是提前準備好的,添加到/drvier/misc目錄下。然后修改misc下的Makefile:
添加上fpga.o的編譯需求。
添加完成后編譯,燒寫。
啟動之后查看信息。
root@imx6qsabresd:~# dmesg | grep weim
[ 0.356060] imx-weim 21b8000.weim: Driver registered.
root@imx6qsabresd:~# dmesg | grep fpga
[ 1.500836] imx6q-fpga
[ 1.513477] imx6q-fpga 8000000.fpga: FPGA Driver registered.
出現如上信息,說明eim總線和fpga驅動都掛載正常。
且查看/dev下有fpga節點。
使用測試腳本測試:
oot@imx6qsabresd:~# ./fpga_test write
[ 244.739123] done the fram_open
[ 244.743919] begain the fram_write
[ 244.747259] done the fram_write
[ 245.750637] begain the fram_write
[ 245.754091] done the fram_write
[ 246.757442] begain the fram_write
[ 246.760781] done the fram_write
root@imx6qsabresd:~# ./fpga_test read
[ 258.910519] done the fram_open
[ 258.913744] begain the fram_read
[ 258.916994] addr=0x1-------183-----
[ 258.920497] addr=0x1<<1-------183-----
[ 258.924779] addr=0x3FFFFF<<1-------183-----
[ 258.928988] begain the fram_read
[ 258.932232] addr=0x1-------183-----
[ 258.935804] addr=0x1<<1-------183-----
[ 258.939573] addr=0x3FFFFF<<1-------183-----
[ 258.943845] begain the fram_read
[ 258.947094] addr=0x1-------183-----
[ 258.950596] addr=0x1<<1-------183-----
[ 258.954400] addr=0x3FFFFF<<1-------183-----
[ 258.958602] begain the fram_read
[ 258.961845] addr=0x1-------183-----
[ 258.965432] addr=0x1<<1-------183-----
[ 258.969203] addr=0x3FFFFF<<1-------183-----
示波器看響應引腳是有波形的。說明總線工作正常:
至此EIM總線調試完成,剩下的和fpga設備聯調就需要客戶自己解決了。
總結
以上是生活随笔為你收集整理的IMX6DL4.1.15支持EIM总线(上)——实际操作,修改内容。的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: document.body.scroll
- 下一篇: 由于这台计算机没有终端服务器客户端访问许