定义:kernel/include/linux/clk.h
实现:kernel/drivers/clk/clkdev.c
使用该函数时,我们一般第一个参数传入NULL,第二个参数是我们要查找的硬件上的那部分时钟。
在kernel目录下,使用 grep -wrn "clk_get"命令,可以查找到内核中clk_get函数使用的地方。
在传入dev=NULL时,该函数调用clk_get_sys:
clk_get_sys函数首先使用互斥锁clocks_mutex进行锁定,然后调用clk_find函数查找传入的硬件设备,返回一个clk_lookup的指针。
该函数中list_for_each_entry(p,&clocks,node)可以理解为一个for循环,clocks是一个链表,p依次指向链表中的每一个成员变量。
遍历、查找、匹配与传入的硬件名称相比较,如果找到,就返回一个指向clk_lookup结构的指针。