51CTO博客已为您找到关于clk_get_rate的相关内容,包含IT学习相关文档代码介绍、相关教程视频课程,以及clk_get_rate问答内容。更多clk_get_rate相关解答可以来51CTO博客参与分享和学习,帮助广大IT技术人实现成长和进步。
long clk_round_rate(struct clk *clk, unsigned long rate) //获取时钟频率 unsigned long clk_get_rate(struct clk *clk) //设置时钟频率 int clk_set_rate(struct clk *clk, unsigned long rate) 准备/使能clk: /* 开时钟前调用,可能会造成休眠,所以把休眠部分放到这里,可以原子操作的放到enable里 */ ...
1、时钟获取与释放:通过clk_get和clk_put函数获取和释放clock资源。 2、时钟使能与禁止:通过clk_enable和clk_disable函数控制clock的开关。 3、时钟频率设置:通过clk_set_rate函数设置clock的频率。 4、时钟父级关系管理:通过clk_set_parent函数设置clock的父级clock。 5、时钟状态查询:通过clk_get_rate和clk_is_...
The return value of clk_get_rate is ulong, an unsigned type. The size of ulong depends on the cpu architecture, i.e. 4 bytes on 32-bit CPUs and 8 bytes on 64-bit CPUs. However log_ret only accepts and returns value in int type, a fixed 4-byte type. This may truncate the real...
pr_err("clk_get failed\n"); 释放时钟: clk_put(clkp); 使能时钟: clk_enable(clkp); 关闭时钟: clk_disable(clkp); 获得时钟频率: u32 clk_rate; clk_rate = clk_get_rate(clkp); 改变时钟频率: rounded_rate = clk_round_rate(clkp, target_rate); ...
get_rate, set_rate, enable, disable, set_parent - 很显然,这些函数指针指到实际操作的函数。clk.h中的各接口函数最后都会调用到这里的函数指针。函数指针是隔离变化的最好办法,在这里一下就把层次抽象出来了。 2. clocks链表 arch/arm/mach-mx5/clock.c中不仅定义了所有的clk对象,而且每个clk对象还要对应一...
clk_xtal.rate = xtal; /* register our clocks */ if (s3c24xx_register_clock(&clk_xtal) < 0) printk(KERN_ERR "failed to register master xtal\n"); if (s3c24xx_register_clock(&clk_mpll) < 0) printk(KERN_ERR "failed to register mpll clock\n"); ...
return DIV_TO_RATE(parent, div); }static ulong rk1808_crypto_set_clk(struct rk1808_clk_priv *priv, ulong clk_id, ulong hz) { struct rk1808_cru *cru = priv->cru; int src_clk_div;src_clk_div = DIV_ROUND_UP(priv->gpll_hz, hz);...
_set_rate()、clk_get_parent()、clk_set_parent()等通用API,但是这些API由每个SoC单独实现,而且各个SoC供应商在实现方面的差异很大,于是内核增加了一个新的通用时钟框架以解决这个碎片化问题。之所以称为通用时钟,是因为这个通用主要体现在: 1)统一的clk结构体,统一的定义于clk.h中的clk API,这些API会调用统一...
CLK_PRE_RATE_CHANGE: // 时钟频率即将改变前的处理 printk(KERN_INFO "Clock %s is about to change frequency ", clk->name); break; case CLK_POST_RATE_CHANGE: // 时钟频率已经改变后的处理 printk(KERN_INFO "Clock %s frequency changed to %lu Hz ", clk->name, clk_get_rate(clk))...