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-standard library-16.3 time

    笔记-python-standard library-16.3 time 1.      time 1.1.    开始 time模块中时间表现的格式主要有三种: timestamp时间戳,时间戳表示 ...

  2. wlr快捷键

    ref:http://www.cnblogs.com/zhangyang/archive/2011/07/22/2113856.html   Windows Live Writer提供了许多方便的快捷 ...

  3. C# 6.0/7.0 的新特性

    转眼C#语言都已经迭代到7.0版本了,很多小伙伴都已经把C# 7.0 的新特性应用到代码中了,想想自己连6.0的新特性都还很少使用,今天特意搜集了一下6.0和7.0的一些新特性,记录一下,方便查阅. ...

  4. css改变光标

    <span style="cursor:auto"> Auto</span><br /> <span style="cursor ...

  5. leetcode 【 Remove Duplicates from Sorted List 】 python 实现

    题目: Given a sorted linked list, delete all duplicates such that each element appear only once. For e ...

  6. HTML5标签学习笔记

    <!DOCTYPE html> <html lang="zh-cn"> <head> <meta http-equiv="con ...

  7. springboot生成表结构

    https://blog.csdn.net/yalishadaa/article/details/59656332

  8. (原、整)BSP的江湖传说

    @author:黑袍小道 查看随缘,当苦无妨,良人可归.     引言 为什么叫江湖传说,因为实现了第一人是卡马克,就这么简单.(不接受那啥) Quake3:http://www.mralligato ...

  9. OZ customize windows iamge

    1.之前通过修改auto文件和windows.py文件可实现自动安装OS,但是disk bus只能以IDE模式启动,进入系统自动下载运行bat文件,安装cloudbase-init和qga,及清理日志 ...

  10. ubuntu wifi连接出现Network service discovery disabled的解决办法

    修改/etc/default/avahi-daemon,将AVAHI_DAEMON_DETECT_LOCAL从1改为0(关闭avahi) ------------------------------- ...