intof_clk_add_provider(structdevice_node *np,structclk *(*clk_src_get)(structof_phandle_args *args,void*data),void*data); 1.2 consumer使用时钟 其他设备需要使用时钟,可以再驱动中后去时钟也可以在设备DTS中引用时钟。 structclk *clk_get(structdevice *dev,constchar*id);structclk *devm_clk_get...
[root@rk3399:/]#cat/sys/kernel/debug/clk/clk_summaryclockenable_cntprepare_cntrateaccuracyphase---rk808-clkout2003276800
芯片厂家会根据clk框架,对下层(即底层硬件)设计出接口,以供上层驱动接口调用,在内核中,提供的接口主要由/include/linux/clk.h文件导出,使用这些API接口时,需包含linux/clk.h头文件: #include 获取struct clk指针: structclk*devm_clk_get(structdevice*dev,constchar*id)(推荐使用,可以自动释放) structclk*clk_g...
CLK_OF_DECLARE(fixed_clk, "fixed-clock", of_fixed_clk_setup); struct clk *clk_register_fixed_rate(struct device *dev, const char *name, const char *parent_name, unsigned long flags, unsigned long fixed_rate); 2. gate clock 这一类clock只可开关(会提供.enable/.disable回调),可使用下面接...
CLK_OF_DECLARE(fixed_clk,"fixed-clock",of_fixed_clk_setup);struct clk*clk_register_fixed_rate(struct device*dev,constchar*name,constchar*parent_name,unsignedlongflags,unsignedlongfixed_rate); 1. 2. 3. 4. 2. gate clock 这一类clock只可开关(会提供.enable/.disable回调),可使用下面接口注册:...
后来,kernel将这些公共代码,以clock provider的形式(上面drivers/clk/clk.c文件)抽象出来,就成了我们所说的common clock framework。 后面所有的描述,都会以common clock framework的核心代码为基础,其它的,就不再涉及了。 下面是clk_register的实现: 1: /** ...
CLK_OF_DECLARE(fixed_clk, "fixed-clock", of_fixed_clk_setup); struct clk *clk_register_fixed_rate(struct device *dev, const char *name, const char *parent_name, unsigned long flags, unsigned long fixed_rate); 2. gate clock 这一类clock只可开关(会提供.enable/.disable回调),可使用下面接...
CLK_OF_DECLARE(fixed_clk,"fixed-clock", of_fixed_clk_setup); struct clk *clk_register_fixed_rate(struct device *dev,constchar*name, constchar*parent_name,unsignedlongflags, unsignedlongfixed_rate) ; 2. gate clock 这一类clock只可开关(会提供.enable/.disable回调),可使用下面接口注册: ...
1: /* include/linux/clk-private.h */ 1. 2: struct clk { 1. 3: const char *name; 1. 4: const struct clk_ops *ops; 1. 5: struct clk_hw *hw; 1. 6: struct clk *parent; 1. 7: const char **parent_names; 1. 8: struct clk **parents; ...
CLK_OF_DECLARE(fixed_clk,'fixed-clock', of_fixed_clk_setup); struct clk *clk_register_fixed_rate(struct device *dev,constchar*name, constchar*parent_name,unsignedlongflags, unsignedlongfixed_rate); 2. gate clock 这一类clock只可开关(会提供.enable/.disable回调),可使用下面接口注册: ...