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. Dropping Balls(小球下落)

    紫书P148,例题6-6 Sample Input 4 2 3 4 10 1 2 2 8 128 Sample Output 12 7 512 3 255 这应该不仅仅是一棵完全二叉树,题目中说保证所 ...

  2. Python文章推荐1

    Table of Contents 1. 分享最近看到的python相关的几篇好文(我只是想偷懒) 1.1. 形象解释了什么是GIL 1.2. 知乎上 Pythonic 相关 1.3. evil &q ...

  3. gradle编译很慢解决方法

    1.升级内存,内存最好在8g以上. 我的12g,编译运行,2s22ms,不到3s. 2.设置Android staido 不要 打开instant run

  4. 【Remove Duplicates from Sorted List 】cpp

    题目: 第一次刷的时候漏掉了这道题. Given a sorted linked list, delete all duplicates such that each element appear o ...

  5. Python 3基础教程1-环境安装和运行环境

    本系列开始介绍Python3的基础教程,为什么要选中Python 3呢?之前呢,学Python 2,看过笨方法学Python,学了不到一个礼拜,就开始用Python写Selenium脚本.最近看到一些 ...

  6. gradle构建

    https://blog.csdn.net/baidu_30809315/article/details/77865414

  7. mysql数据库的日常使用

    mysql管理: 首先记得你只要改了权限设置,请记得重启下mysql数据库服务. 适用环境全部是linux环境下适用了. 1.查看mysql服务是否启动 ps -aux | grep mysqld 如 ...

  8. django-settings里redis连接与缓存配置

    # Django-redis的缓存配置 CACHES = { "default": { "BACKEND": "django_redis.cache. ...

  9. CSU-1170 A Simple Problem

    题目链接 http://acm.csu.edu.cn:20080/csuoj/problemset/problem?pid=1170 题目 Description ​ 在一个由N个整数组成的数列中,最 ...

  10. Ipython\Jupyter数据分析工具

    使用Python进行数据分析优点 1 Python大量的库为数据分析和处理提供了完整的工具集 2 比起R和Matlab等其他主要用于数据分析的编程语言,Python更全能 3 Python库一直在增加 ...