http://blog.csdn.net/mcgrady_tracy/article/details/39320691

mt6582多达168个GPIO口,当然这些GPIO口是复用的,注意lk和Linux kernel使用上稍有不同。

1. lk部分
lk部分GPIO相关代码在mediatek/platform/mt6582/lk/mt_gpio.c中,在lk中需要使用GPIO相关操作函数的话需要包含mediatek/platform/mt6582/lk/include/platform/mt_gpio.h,例如:

[cpp] view plain copy
  1. #if defined(BUILD_LK)
  2. #include <platform/mt_gpio.h>
  3. #endif

2. Linux kernel部分
而Linux kernel部分GPIO相关代码主要有mediatek/kernel/drivers/gpio/mt_gpio_core.c、mediatek/platform/mt6582/kernel/drivers/gpio/mt_gpio_base.c,mt_gpio_base.c中相关代码主要是操作GPIO口相关寄存器的,同硬件平台相关,而mt_gpio_core.c是给外部调用的,在它里面的操作函数中最终调用的是mt_gpio_base.c中相关函数,例如mt_set_gpio_dir()最终调用的是mt_gpio_base.c中的mt_set_gpio_dir_base。如果是kernel中需要使用GPIO口相关操作函数同样需要包含头文件mt_gpio.h,这个头文件在mediatek/kernel/include/mach目录中,例如:

[cpp] view plain copy
  1. #if defined(BUILD_KERNEL)
  2. #include <mach/mt_gpio.h>
  3. #endif

3. GPIO相关操作函数

[cpp] view plain copy
  1. int mt_set_gpio_dir(unsigned long pin, unsigned long dir);
  2. int mt_get_gpio_dir(unsigned long pin);
  3. int mt_set_gpio_pull_enable(unsigned long pin, unsigned long enable);
  4. int mt_get_gpio_pull_enable(unsigned long pin);
  5. int mt_set_gpio_pull_select(unsigned long pin, unsigned long select);
  6. int mt_get_gpio_pull_select(unsigned long pin);
  7. int mt_set_gpio_out(unsigned long pin, unsigned long output);
  8. int mt_get_gpio_in(unsigned long pin);
  9. int mt_set_gpio_mode(unsigned long pin, unsigned long mode);
  10. int mt_get_gpio_mode(unsigned long pin);

mtk GPIO口的更多相关文章

  1. STM32f10xxx 之 GPIO口配置

    背景 配置stm32f103使其完成PWM输出的过程中,在配置GPIO口的时候,按照习惯配置GPIO口的speed为50MHZ,突然就意识到,为什么大部分例程习惯配置为50MHZ,而不是其它值,即有了 ...

  2. android gpio口控制

    android gpio口控制  GPIO口控制方式是在jni层控制的方式实现高低电平输出,类似linux的控制句柄方式,在linux系统下将每个设备看作一个文件,android系统是基于linux内 ...

  3. Silicon C8051F340之GPIO口配置与使用

    一.背景: 很久前用过C8051,现在有相关需求需要重新使用C8051,然后发现一年前开发的相关经验都忘得 基本上差不多了.连最基本的GPIO口配置还得重新来看手册,所以有此文,做个记录,以备下次快速 ...

  4. linux驱动初探之杂项设备(控制两个GPIO口)

    关键字:linux驱动.杂项设备.GPIO 此驱动程序控制了外接的两个二极管,二极管是低电平有效. 上一篇博客中已经介绍了linux驱动程序的编写流程,这篇博客算是前一篇的提高篇,也是下一篇博客(JN ...

  5. 基于boa服务器的web控制mini2440的GPIO口

    win7 系统  虚拟机:ubuntu12.04 开发板:mini2440 上一篇已经详细的讲解了如何配置boa服务器,在这里我们就要利用boa服务器带来的便利,利用web控制开发板上的GIPO口,这 ...

  6. STM32的GPIO口的输出开漏输出和推挽输出

    本文来自cairang45的博客,讲述了STM32的GPIO口的输出开漏输出和推挽输出, 作者博客:http://blog.ednchina.com/cairang45 本文来自: 高校自动化网(Ww ...

  7. ARM Cortex M3系列GPIO口介绍(工作方式探讨)

    一.Cortex M3的GPIO口特性    在介绍GPIO口功能前,有必要先说明一下M3的结构框图,这样能够更好理解总线结构和GPIO所处的位置. Cortex M3结构框图     从图中可以看出 ...

  8. STM32单片机在Keil5下仿真的问题解决及GPIO口初始化、使用

    STM32单片机在Keil5下仿真的问题解决及GPIO口初始化.使用 最近看了视频,里面有仿真,可以清楚看到GPIO口的数据变化,也想尝试下,DUG时却出现*** error 65: access v ...

  9. 51单片机GPIO口模拟串口通信

    51单片机GPIO口模拟串口通信 标签: bytetimer终端存储 2011-08-03 11:06 6387人阅读 评论(2) 收藏 举报 本文章已收录于:   分类: 深入C语言(20) 作者同 ...

随机推荐

  1. 用python实现【五猴分桃】问题

    转载链接:https://blog.csdn.net/cy309173854/article/details/78296839 据说“五猴分桃”问题最先是由大物理学家狄拉克提出来的,这一貌似简单的问题 ...

  2. java.lang.NoSuchMethodError: cn.makangning.test.dao.Users.getUserBirthday()Ljava/sql/Date;

    有时候出现这种怪异的问题,是由于多个版本的class存在. 比如说:某个java编译成class后,放到classes下面,然后lib目录下,也有这个class所在的jar包,这样就导致classpa ...

  3. 安装macports

    Mac下面除了用dmg.pkg来安装软件外,比较方便的还有用MacPorts来帮助你安装其他应用程序,跟BSD中的ports道理一样.MacPorts就像apt-get.yum一样,可以快速安装些软件 ...

  4. 初学JS——实现基于计时器的小游戏。

    这几天一直在看网易云课堂上免费的JS课程,正好今天看到讲了计时器setInterval,第一感觉就是像C#里的TIMER.然后课程里举得例子正好通过计时器改变新生成窗口的位置, 然后就突然有了灵感!可 ...

  5. runtime如何通过selector找到对应的IMP地址?(分别考虑类方法和实例方法)

    每一个类对象中都一个对象方法列表(对象方法缓存) 类方法列表是存放在类对象中isa指针指向的元类对象中(类方法缓存) 方法列表中每个方法结构体中记录着方法的名称,方法实现,以及参数类型,其实selec ...

  6. 《数据结构》C++代码 Splay

    Splay,伸展树.之所以先写这个课内并不怎么常用的数据结构,是因为本人非常喜欢Splay,我觉得这是非常有美感且灵活的一种平衡树.在此先声明,我的伸展树写法来源于CLJ大牛,基础好的同学可以去他的博 ...

  7. Scrapy使用示例

    很多网站都提供了浏览者本地的天气信息,这些信息是如何获取到的呢,方法有很多种,大多是利用某些网站提供的天气api获取的,也有利用爬虫采集的.本文就介绍如何用Scrapy来采集天气信息(从新浪天气频道采 ...

  8. GLIBCXX3.4.21 not find

    在执行世界杯的二进制代码和安装keepaway中会遇到GLIBCXX3.4.21 not find的问题,其解决办法就是升级安装GCC. 一.首先查看当前gcc版本 $ strings /usr/li ...

  9. 指定user镜像安装的磁盘

    ironic node-update <node uuid> add properties/root_device='{"name":"/dev/sdb&qu ...

  10. Anaconda基本使用

    anaconda常用使用命令 显示安装程序包列表 conda list 选择其它的源 conda config --add channels https://mirrors.tuna.tsinghua ...