clk_get函数介绍

定义:kernel/include/linux/clk.h

实现:kernel/drivers/clk/clkdev.c

clk_get函数介绍_第1张图片

使用该函数时,我们一般第一个参数传入NULL,第二个参数是我们要查找的硬件上的那部分时钟。

在kernel目录下,使用 grep -wrn "clk_get"命令,可以查找到内核中clk_get函数使用的地方。

在传入dev=NULL时,该函数调用clk_get_sys:

clk_get函数介绍_第2张图片

clk_get_sys函数首先使用互斥锁clocks_mutex进行锁定,然后调用clk_find函数查找传入的硬件设备,返回一个clk_lookup的指针。

clk_get函数介绍_第3张图片

该函数中list_for_each_entry(p,&clocks,node)可以理解为一个for循环,clocks是一个链表,p依次指向链表中的每一个成员变量。

遍历、查找、匹配与传入的硬件名称相比较,如果找到,就返回一个指向clk_lookup结构的指针。

你可能感兴趣的:(ARM,Driver,Linux,Kernel)