linux驱动:TI+DM8127+GPIO(二)之驱动
二、【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(二)之驱动相关推荐
- linux驱动:TI+DM8127+GPIO(五)之plarform
五.[GPIO驱动框架>平台platform] (一)设备找驱动 1.drivers/base/platform.c中 int platform_device_register(structpl ...
- Linux驱动学习--HDMI开发(二)HDMI驱动源码分析(RK平台)
目录 一.引言 二.驱动框架 ------> dts节点 ------> HDMI DDC 驱动 ------> HDMI HDCP驱动 ------> HDMI CEC驱动 ...
- linux驱动:TI+DM8127+GPIO(四)之设备
四.[GPIO驱动框架>设备device] arch/arm/mach-omap2/gpio.c中 1.static int __init omap2_gpio_init(void) { ret ...
- linux驱动:TI+DM8127+GPIO(三)之omap_hwmod中添加GPIO资源
三.[GPIO驱动框架>向omap_hwmod中添加GPIO资源] ***将GPIO硬件信息添加到注册到omap_hwmod_list列表中 Arch/arm/plat-omap/include ...
- linux驱动:TI+DM8127+GPIO(一)之应用——报警输入输出
一.[GPIO应用] 报警输出1 ALRM_OUT1A.ALRM_OUT1B <-- ALM_OUT1 <-- CVOUT1_YC4 <-- W22 <--VOUT[1]_G_ ...
- linux驱动:设备-总线-驱动(以TI+DM8127中GPIO为例)
一:说明:这次学习设备-总线-驱动是以TI+DM8127的GPIO为例 1.GPIO资源注册到omap_hwmod链表中 2.初始化GPIO 3.将GPIO注册到plarform层 4.将GPIO注册 ...
- 【全志T113-S3_100ask】15-2 linux系统gpio模拟spi驱动屏幕——ILI9341
[全志T113-S3_100ask]15-2 linux系统gpio模拟spi驱动屏幕--ILI9341 背景 (一)查阅参考文档 (二)使能内核模块 (三)修改设备树 (四)测试 (五)后语 背景 ...
- IMX6ULL嵌入式Linux驱动学习笔记(二)
IMX6ULL嵌入式Linux驱动学习 一.字符设备驱动 二.驱动模块的加载与卸载 三.字符设备的注册与注销 四.设备号 五.file_operations的具体实现 六.字符设备驱动框架 七.编写应 ...
- linux驱动开发学习笔记二十一:异步通知
一.异步通知简介 我们首先来回顾一下"中断",中断是处理器提供的一种异步机制,我们配置好中断以后就可以让处理器去处理其他的事情了,当中断发生以后会触发我们事先设置好的中断服务函数, ...
最新文章
- mysql给数据库重命令_mysql 重命令数据库
- MySQL学习-排序与分组函数
- Git upstream
- 整理 linux常用命令及工具
- [雪峰磁针石博客]python 3.7极速入门教程1安装:Linux(Ubuntu 18.04)及Windows上安装Anaconda...
- How to Be Cool at College
- 电机PID控制补充篇-野火上位机串口协议介绍
- html看汉字选拼音小游戏
- iOS NSLayoutConstraint priority
- python半圆_复合半圆环图只要四句代码搞定
- nnUNet原创团队全新力作!MedNeXt:医学图像分割新SOTA
- MySQL使用空间索引问题
- html 自动日期,excel自动生成连续日期
- JSP中按钮点击事件不能调用JS方法
- linux系统下SVN服务器搭建
- iOS 多线程安全 与可变数组
- 2.2.1 定点数的表示 原码 反码 补码 移码
- 后渗透测试神器Empire的详解
- Vue-教你实现一个订单列表倒数30分钟的功能
- 起名字老重名?使用这款利器可以快速帮你查询有哪些站点用了你的名字!