http://blog.csdn.net/zuoyioo7/article/details/77863291
如果需要定制GPIO口呢,需要使用mediatek/dct/DrvGen.exe工具,点击Open,选择mediatek/custom/project_dir/kernel/dct/dct/codegen.dws文件,点击Edit,将出现如图所示的一个窗口:
EintMode: 指示是否当作中断引脚来使用,例如GPIO0就可以当作ENTI0,如果选中了该模式,其它模式是不可见的。
Def.Mode: GPIO默认的模式,什么意思呢,就是在系统启动过程中GPIO口的模式,GPIO口启动模式是定义在文件cust_gpio_boot.h文件中的,例如,GPIO3的启动模式就是作为普通的GPIO口来使用,即模式为GPIO_MODE_00,稍后会为大家讲解cust_gpio_boot.h文件是怎么生成的。
M0~M7: 由于GPIO口是复用的,也就说除了作为普通的GPIO口使用之外,还有其它用途,所以这里会在cust_gpio_usage.h文件中产生一些宏定义,可能某些驱动中会用到这些宏定义。
InPull En: 是指GPIO是否使能上拉或下拉。
InPull SelHigh: 上面只是只是指示是否使能上拉或下拉,但是并没有指出到底是上拉还是下拉,那么就由这里来指定,如果勾选了那么就表示上拉,否则就是下拉。
Def.Dir: 指示GPIO默认的数据传输方向,是输入还是输出,都需要设置的。
In、Out: In和Out这两个选项暂时不知道有何用处,根据字面意思呢,应该是允许输入或输出的。
OutHigh: 指示GPIO口作为普通IO时输出电平高低。
VarName1: 变量的名字,有些驱动中可能会使用到一些GPIO口,那么这里就是为GPIO口定义一个别名,那么在驱动中只需要这个别名就可以了,而这个GPIO口是可以换的,所以这里也是为了可移植性。

在GPIO口配置完成之后,首先是需要点击Save来保存这个配置,可以点击Gen Code去生成新的代码,新的代码就生成在和codegen.dws同一个目录下,但是在Android 4.4版本上我都不是这样做的,在保存以后,直接运行./mk n k也会生成新的代码,生成目录在:
out/target/product/project_dir/obj/CUSTGEN/custom/kernel/dct/,如果是其他版本,可能会不相同。

前面说了在系统启动过程中会初始化这些GPIO口,那么什么地方在做初始化呢,有两个地方preloader和lk,preloader初始化代码流程如下:
mt_gpio_set_default()->mt_gpio_set_default_chip()
而该部分代码在mediatek/platform/mt6582/preloader/src/drivers/gpio_init.c中,在该文件中首先就是包含文件cust_gpio_boot.h。

而lk部分初始化流程都是差不多的,流程如下:
mt_gpio_set_default()->mt_gpio_set_default_chip()
lk部分代码在mediatek/platform/mt6582/lk/mt_gpio_init.c中。

最新文章

  1. SAP CRM 用户界面对象类型和设计对象
  2. iOS 10 的坑:新机首次安装 app,请求网络权限“是否允许使用数据”(转)
  3. 端口限制情况下php+xdebug环境配置
  4. java-Collections工具类使用
  5. Oracle BFILE备忘
  6. 剪花布条[HDU2087]
  7. grunt搭建前端自动化实践
  8. [转].net 使用NPOI或MyXls把DataTable导出到Excel
  9. bnuoj 4208 Bubble sort
  10. Android权限安全(12)apk安装在sd卡上时,如何保证数据安全
  11. MySQL同主机不同数据库的复制命令
  12. Xamarin 安装体验
  13. Boot Petalinux Project Using a remote system
  14. 事务Isolation Level 例子详解
  15. 六、C# 派生
  16. javascript date 加一天(明天)
  17. Tomcat启动报Error listenerStart错误
  18. 《初识PE》导出表
  19. 单节点下使用docker部署consul
  20. 进入django

热门文章

  1. 9.4python开发之virtualenv与virtualenvwrapper
  2. 关于RTKLIB资料整理和学习
  3. 非阻塞IO模板
  4. CodeForces 879D Teams Formation
  5. CentOS7配置图形界面及设置vnc远程连接、windows远程桌面连接
  6. groupSum6后向遍历
  7. CodeIgniter学习笔记五:分页,文件上传,session,验证码
  8. 24、php知识点总结基础教程--part-2
  9. 【转载】Unity3D研究院之IOS自定义游戏摇杆与飞机平滑的移动
  10. CodeForces-757B Bash's Big Day