从零开始之驱动发开、linux驱动(四十、Linux common clock framework(5)_使用举例)
前面三节分析的3.16.57内核中,三星的驱动中,恰好S5PV210的CPU没有使用Linux common clock framework来处理clk。所以,本文采用4.9.92的内核来分析S5PV210对前面第三节中时钟注册部分的使用。对于老的时钟框架,后面章节可能会用1到2部分说明一下。
首先是根据设备树传过来来的时钟资源的寄存器地址做地址映射,后面则就是使用设备树节点做大量的时钟注册了。
static void __init s5pv210_clk_dt_init(struct device_node *np)
{reg_base = of_iomap(np, 0);if (!reg_base)panic("%s: failed to map registers\n", __func__);__s5pv210_clk_init(np, 0, 0, false);
}
CLK_OF_DECLARE(s5pv210_clk, "samsung,s5pv210-clock", s5pv210_clk_dt_init);
在内核的下面路径中定义了s5pv210的所有的时钟。
include/dt-bindings/clock/s5pv210.h
下面列出这些时钟的编号,后面所有时钟都会使用自己的编号识别。
#ifndef _DT_BINDINGS_CLOCK_S5PV210_H
#define _DT_BINDINGS_CLOCK_S5PV210_H/* Core clocks. */
#define FIN_PLL 1
#define FOUT_APLL 2
#define FOUT_MPLL 3
从零开始之驱动发开、linux驱动(四十、Linux common clock framework(5)_使用举例)相关推荐
- linux clock头文件,Linux common clock framework(1)_概述
Linux common clock framework(1)_概述 作者:wowo 发布于:2014-10-20 23:06 分类:电源管理子系统 1. 前言 common clock framew ...
- 从零开始之驱动发开、linux驱动(四十四、虚拟网卡驱动)
网卡驱动的书写格式很简单 1.申请一个网卡设备结构体 2.设置这个结构体,硬件相关初始化 3.注册这个网卡设备 参考的韦东山老师的视屏,代码如下 #include <linux/module.h ...
- 从零开始之驱动发开、linux驱动(四十七、linux下的IIC框架【1】)
I2C总线仅仅使用SCL. SDA这两根信号线就实现了设备之间的数据交互, 极大地简化了对硬件资源和PCB板布线空间的占用. 因此, I2C总线非常广泛地应用在EEPROM. 实时钟. 小型LCD等设 ...
- 从零开始之驱动发开、linux驱动(二十三、platform总线之数据驱动分离)
本节开始引入总线概念. 总线是一种虚拟的概念,不针对任何具体的外设,但是它可以比较好的管理外设. 总线对外设的管理从设备和驱动两个方面说明. 比如我们有3个led灯要控制,一种是向我们之前的那样在软件 ...
- 从零开始之驱动发开、linux驱动(六十七、内核调试篇--printk使用)
printk的使用我们在内核,驱动调试的时候使用的非常多 比如前面在调试usb驱动的时候 #include <linux/init.h> #include <linux/usb/in ...
- 从零开始之驱动发开、linux驱动(四十五、DM9000网卡驱动)
这里我们肯定不是要从零开始编写网卡驱动的. 因为编写网卡驱动时,需要网络基础知识,特别是网络底层的知识,目前还没学. 将来我可能选择在,网络,图像视屏,或USB这个三个方向,选择一个深入钻研. 这里主 ...
- 从零开始之驱动发开、linux驱动(十四、字符驱动之按键中断方式实现和等待队列分析)
第8节的轮询方式查询按键,非常的浪费CPU资源,这一节主要就是来解决这个问题的. 第12节的中断程序框架也给了出来,这一节我们来完成中断方式的代码实现和分析. 这节是通过使用等待队列的方式来解决CPU ...
- 从零开始之驱动发开、linux驱动(六十四、内核调试篇--基础知识2[console的建立])
上一节我们分析的earlay的printk知识,本节主要分析一下在内核启动后的printk的知识. 主要是通过下面函数实现的 after_dashes = parse_args("Booti ...
- 从零开始之驱动发开、linux驱动(五、字符驱动之led驱动改进)
上一节的代码有两个使用不是很方便问题: 1.写驱动时,每个次设备号都要自己指定.(这样就不能作为移植性强的软件了) 2.引用层使用时不但要手动创建设备节点,还要知道其设备信息和设备号. 我们先来解决第 ...
最新文章
- c#获取应用程序目录
- 2017/12/14 懒冬 时间序列基础
- Windows程序的基本结构(转)
- Java实现螺旋矩阵
- 报头中的偏移量作用_C语言中函数的实现
- Spring Boot 热部署 devtools模块
- Python 用pygame模块播放MP3
- Nginx的11个phases
- 室内温湿度监测系统解决方案
- MyBatis框架、log4j、数据库的配置文件
- 基于IDEA的Spring源码调试
- CTF之MISC练习一
- SEO关键词之选取策略及具体方法
- 母函数理解及整数拆分
- JavaScript对象与内置对象——对象(一)
- python中怎样向字典中添加值_python中向一个字典中加值
- python执行命令不连接mumu_Appium连接mumu安卓模拟器(真机)自动化测试
- 2019年5大企业网盘对比
- Nuxt之Meta标签关键字描述之description重复问题
- android 摇杆控制方向键,Android Studio中实现摇杆