全志V3s IIC控制器驱动分析
设备树节点
i2c0: i2c@01c2ac00 {compatible = "allwinner,sun6i-a31-i2c";reg = <0x01c2ac00 0x400>;interrupts = <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>;clocks = <&ccu CLK_BUS_I2C0>;resets = <&ccu RST_BUS_I2C0>;pinctrl-names = "default";pinctrl-0 = <&i2c0_pins>;status = "disabled";#address-cells = <1>;#size-cells = <0>;
};
控制器驱动源码路径
linux-5.1.0\drivers\i2c\busses\i2c-mv64xxx.c
控制器结构体与注册到核心层
linux-5.1.0\include\linux\i2c.h
struct i2c_adapter adapter;
linux-5.1.0\drivers\i2c\i2c-core-base.c
int i2c_add_numbered_adapter(struct i2c_adapter *adap);
控制器设备树节点包括外设子节点,记录到adapter结构体
drv_data->adapter.dev.of_node = pd->dev.of_node;
iic控制器驱动platform的probe函数调用流程
mv64xxx_i2c_probei2c_add_numbered_adapter /* 添加I2C控制器 */__i2c_add_numbered_adapteri2c_register_adapter /* 注册I2C控制器 */device_register /* I2C控制器设备注册 */of_i2c_register_devices/* 从设备树中把与该adapter匹配的iic控制器设备树节点找出来 */bus = of_get_child_by_name(adap->dev.of_node, "i2c-bus");/*解析设备树iic控制器节点,根据设备树的iic外设节点创建client */client = of_i2c_register_device(adap, node); i2c_new_device// client是根据当前注册的adapter创建的,所以直接绑定adapter,以后不用再为client找adapter。client->adapter = adap; // i2c外设client都绑定该i2c总线,不管这个client属于哪个adapter,client与adapter的关系已在上一步表述清楚,这一步是外设与外设驱动的总线匹配关系。 // 不过该client属于哪个adapter,都是通过同一条i2c_bus_type的i2c_device_match函数匹配,换言之,外设驱动适合所有adapter的外设client,只要i2c_bus_type的i2c_device_match匹配成功。client->dev.bus = &i2c_bus_type; device_register /* 添加设备I2C从设备 */i2c_scan_static_board_info /* 查找静态表,有些I2C设备是在代码中写死的,不是通过设备树的形式 */i2c_new_deviceclient->dev.bus = &i2c_bus_type;
注册前为什么需要申请中断?
drv_data->irq = platform_get_irq(pd, 0);
rc = request_irq(drv_data->irq, mv64xxx_i2c_intr, 0, MV64XXX_I2C_CTLR_NAME, drv_data);
看设备树中断描述
interrupts = <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>;
SPI:shared processor interrupts 的第6号中断,参考: 设备树中的interrupts属性解析
全志V3s IIC控制器驱动分析相关推荐
- 【分析笔记】全志 i2c-sunxi.c 控制器驱动分析
分析平台:全志 A64 内核版本:Linux 4.9 数据手册:Allwinner_A64_User_Manual_V1.1.pdf (whycan.com) 驱动框架 I2C 设备驱动 作为方案应用 ...
- 全志V3s USB PHY驱动分析
USB PHY作用 USB控制器接受的是数字信号,USB PHY负责:在USB控制器与USB接口之间做数字信号与模拟信号的转换. 参考: 维基百科 PHY usb-phy usb-phy 设备树节点 ...
- linux pl320 mbox控制器驱动分析-(3) pl320驱动代码分析
linux pl320 mbox控制器驱动分析-(3)pl320驱动代码分析 1 pl320 mbox控制器宏定义 2 初始化接口 3 ipc_handler mbox中断处理函数 4 数据的收发 4 ...
- linux pl320 mbox控制器驱动分析 - (1) pl320手册分析
linux pl320 mbox控制器驱动分析 1 pl320简介 1.1 pl320用途 1.2 pl320 IPCM 由以下部分组成: 1.3 pl320 IPCM可配置的参数 1.4 功能操作 ...
- 基于全志A64平台v4l2驱动分析
纪念再一次使用这里,刚好开通好博客,写下近年来的第一篇. 最近要做一个全志A64平台的vfe驱动培训,组织了下v4l2与vfe驱动分析.这里记录下. 全志A64芯片csi部份不自带isp(其实是有带一 ...
- 全志V3S裸机串口驱动(中断方式接收,DMA接收有问题,小于32字节数据无法触发DMA传输)
调试DMA接收遇到了个很奇怪的问题,就是DMA发送没问题,DMA接收的时候,如果数据小于32字节,数据被DMA从串口接收FIFO中取走了,但是并不会传输到指定的buff中,这个就没法用于接收未知长度的 ...
- QCA7000/QCA7005基于全志V3S Linux系统驱动移植
使用硬件: 荔枝派V3S Lichee Pi Zero with Dock QCA7000HomePlugGreen PHY模块 开发环境: Ubuntu18.04.6 LTS buildroot:2 ...
- 全志t3linux驱动_全志T3 Linux显示驱动分析
1.总体架构 全志T3处理器的显示框架是基于标准Linux的帧缓冲架构,其结构如图 1.1所示.显示控制器DE的驱动架构如图 1.2所示,包括屏蔽差异的显示管理抽象层,以及显示图层驱动.显示设备驱动. ...
- 全志T3 Linux显示驱动分析
1.总体架构 全志T3处理器的显示框架是基于标准Linux的帧缓冲架构,其结构如图 1.1所示.显示控制器DE的驱动架构如图 1.2所示,包括屏蔽差异的显示管理抽象层,以及显示图层驱动.显示设备驱动. ...
- 7.荔枝派 zero(全志V3S)-编译内核驱动,生成KO文件
上面是我的微信和QQ群,欢迎新朋友的加入. 在网上溜了一大圈,发现竟然没人写过荔枝派编译内核驱动的帖子. 或许是我输入的关键字不对 今天特意做了一下这个事情. 1.改kernel makefile 当 ...
最新文章
- php实现小论坛,PHP开发 小型论坛教程之添加论坛-1
- Ubuntu安装HBase2.2.4并进行单机/伪分布式配置
- JVM学习笔记之-垃圾回收相关概念 System.gc()的理解 内存溢出与内存泄漏 STW 垃圾回收的并行与并发 安全点与安全区域 再谈引用:强引用 软引用 弱引用 虚引用 终结器引用
- linux go 安装路径,在Alpine Linux D的路径中找不到已安装的Go二进制文件
- 关于将vrep和matlab或者python结合的两种方法的比较
- Java前端顺序,java种初始化顺序
- 软件测试电脑内存适配,利用Memtest86 测试你电脑的内存
- itext 生成 PDF(一)
- dll注入之SetWindowsHookEx 键盘消息钩子
- Java HotSpot VM参数大全
- 2021年中国棘轮手柄市场趋势报告、技术动态创新及2027年市场预测
- 第二章 z变换之四 、序列的z变换与连续时间信号的Laplace变换、Fourier变换的关系
- 【C语言】计算并输出n(包括n)以内能被5或9整除的所有自然数的倒数之和。
- 俄罗斯游戏java源代码_Java俄罗斯方块游戏源代码JAVA游戏源码下载
- 社区活动|Apache Hudi x Apache Pulsar Meetup 杭州站来啦!
- 组网胖模式_胖AP工作模式 | ZyXEL
- (3)登录界面———注册界面
- 1角5角荧光参照表转自南海老黄
- python编程培训费用-python编程语言学费多少钱?python培训费用贵吗
- [英语词条]手足口病
热门文章
- eyoucms页面调用
- 利用简单电阻分压原理自动测量电阻
- linux下anjuta的java环境,Anjuta下载-Anjuta IDE For Linux(集成开发环境)V3.18.0 官方版 - 极光下载站...
- bootice添加linux_使用BOOTICE 恢复系统启动项
- HTTP协议:工作原理
- 达梦数据库DM8中针对中文进行排序
- 打蚊子表情包_拍蚊子表情包 - 拍蚊子微信表情包 - 拍蚊子QQ表情包 - 发表情 fabiaoqing.com...
- 软件工程—实践者的研究方法
- c语言scanf用法详解
- 桌面版linux装哪个版本好用,linux桌面版哪个版本好用?