想要让IO口作为从外部出发的中断口,可以分为以下几步

①先让其为gpio模式,并且为方向设置为输出,并且必须上拉

1,可以在平台上添加

OMAP4_MUX(SDMMC1_DAT4, OMAP_MUX_MODE3 | OMAP_PIN_INPUT_PULLUP),

SDMMC1_DAT1 这个名字为原理图端口上指定端口的第一个名字

INPUT_PULLUP的含义就不用说了~~

OMAP_MUX_MODE3  指定为gpio模式

2,也可以在驱动里边用这个函数直接定义

omap_mux_init_gpio(106,OMAP_PIN_INPUT_PULLUP);

//这个函数的好处是不用指定gpio模式

106是io的序号,跟上边平台中的SDMMC1_DAT4等价

②申请io口

error = gpio_request(IRQ_GPIO_UP, NULL);
        if (error < 0) {
                printk("oled Failed to request GPIO %d, error %d\n",
                        IRQ_GPIO_UP, error);
                return error;
        }
③:这部有没有必要我没测试过,估计作用是再次确认为输入口,我是参考gpio_key相关代码是这么写的

error = gpio_direction_input(IRQ_GPIO_UP);
        if (error < 0) {
                printk("oled :Failed to configure direction for GPIO %d, error %d\n",
                        IRQ_GPIO_UP, error);
                return error;
        }

irqflags |= IRQF_SHARED;   //其他的io口可以共享,所以就可以被其他的中断来disable掉

④:申请中断   (其实等价于request_irq函数)
        error = request_any_context_irq(gpio_to_irq(IRQ_GPIO_UP),light_up ,IRQF_TRIGGER_FALLING,"OLED_GPIO_106",NULL);
        if (error < 0) {
                printk( "oled :Unable to claim irq %d; error %d\n",
                        IRQ_GPIO_UP, error);
                return error;
        }

我测试时遇到的问题是:只是指定为了OMAP_PIN_INPUT而没有指定为OMAP_PIN_INPUT_PULLUP

打印寄存器的时候一直发现GPIO_DATAIN跟成功的不一样  才知道要设定为pullup才能稳定中断,否则自己的gpio口电平悬空未知~~

关于omap4 GPIO中断还有复用的情况

比如:gpio_3跟gpio_wk3就复用一个引脚request_irq(GPIO_TO_ITQ(3),)对应于两个引脚

如果你是用gpio_wk3引脚产生中断的话就应该将gpio_3设置为其他模式   代码如下:/arch/arm/mach-omap2/board-omap4panda.c中添加

OMAP4_MUX(SIM_CD, OMAP_MUX_MODE3 | OMAP_PIN_INPUT_PULLUP),
        OMAP4_MUX(KPD_ROW1, OMAP_MUX_MODE7 | OMAP_PIN_INPUT_PULLUP),

omap_mux_init_signal("kpd_row2.gpio_3", OMAP_MUX_MODE7 | OMAP_PIN_INPUT_PULLUP);  /* gpio_3 */
        omap_mux_init_signal("sim_cd.gpio_wk3", OMAP_MUX_MODE3 | OMAP_PIN_INPUT_PULLUP | OMAP_WAKEUP_EN ); /* gpio_wk3 */

omap gpio irq相关推荐

  1. android gpio驱动实例,Android/Linux 驱动层对GPIO口的操作方法和相关代码

    实例: unsigned int otg_en_pin=952; ----->高通的gpio的基础值为902,这里我们时间的gpio为50,即这里定义值是要设置为952. //young.yan ...

  2. 【Device Tree】设备树(一)——GPIO

    以RK3328为例,介绍设备树在GPIO方面的应用. 引脚图如下 一.首先在DTS文件中增加GPIO资源描述: gpio_demo: gpio_demo {status = "okay&qu ...

  3. A20 GPIO中断类型差别结果迥异的问题思考

    A20GPIO中断类型差别结果迥异的问题思考 最近在使用全志A20做开发时,发现在处理中断的时候,用电平触发模式,报中断比较乱,用边沿触发则很稳定,不会乱报.笔者感到比较困惑,笔者用电平触发写的cod ...

  4. 痞子衡嵌入式:利用GPIO模块来测量i.MXRT1xxx的系统中断延迟时间

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是i.MXRT1xxx的系统中断延迟时间. 在 <Cortex-M系统中断延迟及其测量方法简介> 一文里,痞子衡介绍了 Cor ...

  5. S3C6410 中的 cascaded irqdomain 之 gpio

    文章目录 VIC 中断 与 gpio 中断 的硬件拓扑图描述 linux cascaded irq domain irq domain 初始化时 获取 IRQ number(软件中断号) 时 中断发生 ...

  6. 标准linux4.4--驱动开发(二)GPIO驱动编写

    标准linux4.4--驱动开发(二)GPIO驱动编写 简介 介绍GPIO DTS配置 在驱动文件中关联DTS的配置 驱动说明 中断 复用 FAQs 简介 1.什么是linux内核模块 在linux中 ...

  7. linux设备驱动程序--gpio控制

    gpio驱动程序 上一章节linux设备驱动程序--创建设备节点章节主要介绍了linux字符设备驱动程序的框架,从这一章节开始我们讲解各种外设的控制,包括gpio,i2c,dma等等,既然是外设,那就 ...

  8. firefly-rk3399开发板100天之第2天 记录firefly-rk3399 wiki中gpio操作

    firefly-rk3399开发板100天之第2天 记录firefly-rk3399 wiki中gpio操作 Docs » GPIO 使用 GPIO 使用 简介 GPIO, 全称 General-Pu ...

  9. RK3568 GPIO 使用

    说明 GPIO, 全称 General-Purpose Input/Output(通用输入输出),是一种软件运行期间能够动态配置和控制的通用引脚. 所有的 GPIO 在上电后的初始状态都是输入模式,可 ...

最新文章

  1. Template Metaprogramming
  2. matlab图像分类器,Matlab 基于svm的图像物体分类
  3. 第1章 Ext JS介绍与快速入门[1/4]
  4. 优先队列 priority_queue 用法 (struct,非cmp)
  5. 详解怎么申请注册一个自己的电子邮箱邮件?怎么注册邮箱账号?
  6. data[i] is underfined
  7. 弱口令漏洞与验证码绕过——渗透day04
  8. 支付宝与微信对账文件解析
  9. F5 GTM DNS 知识点和实验 3 -加速dns解析
  10. CAD图纸转换TIFF格式时修改背景颜色
  11. python手机壁纸超清_Python爬虫-王者荣耀高清壁纸下载
  12. 【Proteus仿真】【51单片机】LED点阵花样显示设计
  13. 【每天学习一点新知识】Windows日志分析
  14. idea回退操作reset、revert
  15. win10系统怎么安装显卡驱动,驱动人生详细教程
  16. 毕业设计—共享图书小程序3.0 全新UI
  17. 关于“IT学子成长指导”专栏及文章目录
  18. 重构手法之重新组织函数
  19. 不懂技术的项目经理,学会这2点就能搞定项目!
  20. 关于XLL加载项动态加载、卸载的演示及XLL函数自定义类型注册的演示

热门文章

  1. R语言实现可理解的随机森林模型(Random Forest)——iml包
  2. acrobat导出html没图片,PDF 导出的文件格式选项
  3. 人人网移动开发架构及相关服务器架构
  4. 怎么把手机文件导入华为云服务器,华为手机如何上传数据到云服务器
  5. 利用Python实现视频中人物的人脸转换超详细教程
  6. Git步步进阶---Git tag操作全解析
  7. MFC之CMFCColorBar 在添加后控件显示为灰色解决方案
  8. manifestdependency,manifest文件
  9. Oracle 还原数据库
  10. 手机大厂开始走上AI芯片 将来掀起AI应用