二、【GPIO驱动框架》驱动driver】

重要结构体

gpio_chip:管理一组GPIO

gpio_desc:描述每个GPIO

gpio_bank:封装了gpio_chip加入GPIO控制的属性

1、驱动注册到platform中

Arch/arm/plat-omap/gpio.c中

static int __init omap_gpio_drv_reg(void)

{

returnplatform_driver_register(&omap_gpio_driver);

}

postcore_initcall(omap_gpio_drv_reg);

static struct platform_driver omap_gpio_driver = {

.probe            =omap_gpio_probe,

.driver            ={

.name      ="omap_gpio",

},

};

Arch/arm/plat-omap/gpio.c中omap_gpio_probe函数-->

static int __devinit omap_gpio_probe(struct platform_device *pdev)

{。。。

structresource *res;

structgpio_bank *bank;

id= pdev->id;

bank= &gpio_bank[id];

res= platform_get_resource(pdev, IORESOURCE_IRQ, 0);

bank->irq= res->start;

bank->virtual_irq_start= pdata->virtual_irq_start;

bank->method= pdata->bank_type;

bank->dev= &pdev->dev;

bank->dbck_flag= pdata->dbck_flag;

bank->stride= pdata->bank_stride;

bank_width= pdata->bank_width;

res= platform_get_resource(pdev, IORESOURCE_MEM, 0);

bank->base = ioremap(res->start,resource_size(res));

omap_gpio_chip_init(bank);

。。。

}

Arch/arm/plat-omap/gpio.c中omap_gpio_chip_init函数解释,详见《深入剖析Linux内核与设备驱动》262页

linux驱动:TI+DM8127+GPIO(二)之驱动相关推荐

  1. linux驱动:TI+DM8127+GPIO(五)之plarform

    五.[GPIO驱动框架>平台platform] (一)设备找驱动 1.drivers/base/platform.c中 int platform_device_register(structpl ...

  2. Linux驱动学习--HDMI开发(二)HDMI驱动源码分析(RK平台)

    目录 一.引言 二.驱动框架 ------> dts节点 ------> HDMI DDC 驱动 ------> HDMI HDCP驱动 ------> HDMI CEC驱动 ...

  3. linux驱动:TI+DM8127+GPIO(四)之设备

    四.[GPIO驱动框架>设备device] arch/arm/mach-omap2/gpio.c中 1.static int __init omap2_gpio_init(void) { ret ...

  4. linux驱动:TI+DM8127+GPIO(三)之omap_hwmod中添加GPIO资源

    三.[GPIO驱动框架>向omap_hwmod中添加GPIO资源] ***将GPIO硬件信息添加到注册到omap_hwmod_list列表中 Arch/arm/plat-omap/include ...

  5. linux驱动:TI+DM8127+GPIO(一)之应用——报警输入输出

    一.[GPIO应用] 报警输出1 ALRM_OUT1A.ALRM_OUT1B <-- ALM_OUT1 <-- CVOUT1_YC4 <-- W22 <--VOUT[1]_G_ ...

  6. linux驱动:设备-总线-驱动(以TI+DM8127中GPIO为例)

    一:说明:这次学习设备-总线-驱动是以TI+DM8127的GPIO为例 1.GPIO资源注册到omap_hwmod链表中 2.初始化GPIO 3.将GPIO注册到plarform层 4.将GPIO注册 ...

  7. 【全志T113-S3_100ask】15-2 linux系统gpio模拟spi驱动屏幕——ILI9341

    [全志T113-S3_100ask]15-2 linux系统gpio模拟spi驱动屏幕--ILI9341 背景 (一)查阅参考文档 (二)使能内核模块 (三)修改设备树 (四)测试 (五)后语 背景 ...

  8. IMX6ULL嵌入式Linux驱动学习笔记(二)

    IMX6ULL嵌入式Linux驱动学习 一.字符设备驱动 二.驱动模块的加载与卸载 三.字符设备的注册与注销 四.设备号 五.file_operations的具体实现 六.字符设备驱动框架 七.编写应 ...

  9. linux驱动开发学习笔记二十一:异步通知

    一.异步通知简介 我们首先来回顾一下"中断",中断是处理器提供的一种异步机制,我们配置好中断以后就可以让处理器去处理其他的事情了,当中断发生以后会触发我们事先设置好的中断服务函数, ...

最新文章

  1. mysql给数据库重命令_mysql 重命令数据库
  2. MySQL学习-排序与分组函数
  3. Git upstream
  4. 整理 linux常用命令及工具
  5. [雪峰磁针石博客]python 3.7极速入门教程1安装:Linux(Ubuntu 18.04)及Windows上安装Anaconda...
  6. How to Be Cool at College
  7. 电机PID控制补充篇-野火上位机串口协议介绍
  8. html看汉字选拼音小游戏
  9. iOS NSLayoutConstraint priority
  10. python半圆_复合半圆环图只要四句代码搞定
  11. nnUNet原创团队全新力作!MedNeXt:医学图像分割新SOTA
  12. MySQL使用空间索引问题
  13. html 自动日期,excel自动生成连续日期
  14. JSP中按钮点击事件不能调用JS方法
  15. linux系统下SVN服务器搭建
  16. iOS 多线程安全 与可变数组
  17. 2.2.1 定点数的表示 原码 反码 补码 移码
  18. 后渗透测试神器Empire的详解
  19. Vue-教你实现一个订单列表倒数30分钟的功能
  20. 起名字老重名?使用这款利器可以快速帮你查询有哪些站点用了你的名字!

热门文章

  1. 【ios开发/Xcode】使用UITableView完成学生信息及成绩的显示
  2. C++ char 与uchar区别
  3. 深度学习——数据预处理篇
  4. 开发转测试没人要_入行或转行软件测试(测试开发)要怎么学
  5. 在Ubuntu 14.04 64bit上使用pycURL模块示例
  6. 扩展typeof来判断js变量的类型
  7. Revit:从入门到精通学习教程
  8. c#总结最近的几项重要代码
  9. SQL Server孤立账户解决办法
  10. 【C++】关联容器学习记录