Exynos4412 Android4.4 平台 WiFi 功能移植 第一篇

     近期需要把WiFi无线网络功能移植到在iTOP4412开发平台,查阅了相关资料,经过一段时间的研究、调试,终于成功的将WiFi功能移植到了开发板上面,这里笔者记录移植过程及注意事项,方便以后工作需要。

      iTOP4412开发板的WiFi模块与板卡之间的连接采用SDIO接口,WiFi硬件模块使用的是MTK的MT6620芯片,MTK提供了Android4.0及Android4.4的driver, Porting Guid,有了这些就为我们的移植工作做了总体性的指导。

 

      但是仅仅有MTK提供的文档还是远远不够的,毕竟硬件接口定义不同,kernel版本也不同,Android层与MTK提供的代码也有差异,这就需要我们在MTK文档的指导下,Step  by Step 进行 Porting 工作.

 

 

移植环境:

   1  iTOP4412 精英版 +  MT6620 WiFi模块

   2  kernel  3.0.15 version

   3  Android4.4.4 

   4  Ubuntu12.04  64BIt 开发环境



 硬件相关部分

 下图为WiFi模块与开发板连接的引脚定义,通过该接口可以看出WiFi模块与CPU的交互接口.

Exynos4412 Android4.4 平台 WiFi 功能移植 第一篇_第1张图片


      查看WiFi模块的原理图可知,WiFi模块与CPU之间采用SDIO接口进行数据和命令的交互工作,Pin1,2,3,5,6,7 为SDIO接口,另外还需要Pin8,Pin10 UART 串口, 另外Pin18,Pin17用于串口流控,实际是可以不使用流控功能。MT6620芯片是复合芯片,除了具备WiFi功能以后,还支持蓝牙,FM,GPS功能,他们与CPU之间的通信需要串口,另外MT6620固件补丁的下载也是通过串口进行的,所以说串口是必不可少的硬件接口,即使您只使用该芯片的WiFi功能。

 

   除了SDIO接口,UART口以外,还需要与CPU进行交互的接口包括Pin16 PMU_EN ,使能引脚,默认低电平状态,高电平有效。

  Pin15  WiFI_RESET引脚,默认低电平状态,高电平有效,用于复位WiFi芯片;

  Pin13  WiFi INT  WiFI的中断引脚,用于告知CPU有数据来了;

 

      以上这些引脚需要在BSP中配置,WiFI的驱动会通过这些引脚与MT6620芯片进行通信;

另外需要强调的是WiFi模块占用CPU的MMC3端口, 也可以说就是SDIO总线,关于MMC,SD,SDIO总线的来历这里不再描述,下图为核心板WiFi相关部分


Exynos4412 Android4.4 平台 WiFi 功能移植 第一篇_第2张图片




        在iTOP4412 精英版中mmc0,mmc1总线用于eMMC,mmc2用于TF卡,mmc3用于SDIO WiFi,关于wifi的其他硬件连接比如串口,使能(GPIO),复位(GPIO),中断(GPIO)这里不再贴出,具体的请查看开发板的原理图。

 

        这里重点强调一下 HUB_CONNECT,也就是上图中的L5 引脚,该引脚复用为mmc总线的CD引脚,也就是Card Detect引脚,用于告知MMC3控制器有设备插入,属于中断引脚,我们需要把引脚与CPU的 某GPIO引脚连接:


Exynos4412 Android4.4 平台 WiFi 功能移植 第一篇_第3张图片

    以上为iTOP4412 底板原理图WiFi接口部分,请注意HUB_CONNECT引脚通过0欧电阻与6060_GPIO2进行了连接,6060_GPIO2为核心板GPIO引脚。

 这样连接的目的是通过软件输出6060_GPIO2低电平,从而HUB_CONNECT引脚为低电平输入状态,MMC3控制认为有设备插入到了MMC3总线上面,原理同TF卡,SD卡的检测。

 

      以上为进行Porting前的准备工作,当然需要万用表,示波器工具进行辅助的检测,查看WiFi模块的工作电压是否正常,GPIO的当前状态,MMC总线上面的时钟及是否有数据从MMC3控制器输出等等.


你可能感兴趣的:(ARM)