蜗窝科技

CONFIG_COMMON_CLK和CONFIG_HAVE_CLK这两个配置有什么不同呢?

蜗窝讨论区存档 · Linux kernel技术问答 · 楼主 T800 · 2016-04-20 · 3 帖

本文是原「蜗窝讨论区」的历史存档(2016-04-20),来自版块「Linux kernel技术问答」,共 3 帖。讨论区已停止服务,此处仅供查阅。

T800 · 2016-04-20 14:48

最近在看common clock framework,发现有两个配置:CONFIG_COMMON_CLK和CONFIG_HAVE_CLK,那么这两个配置有什么不同呢?

linuxer · 2016-04-20 15:50

CONFIG_HAVE_CLK这个配置项用来控制系统是否使用clk相关的接口,具体的接口包括: 1、struct clk clk_get(struct device dev, const char id); 2、int clk_enable(struct clk clk); 3、unsigned long clk_get_rate(struct clk *clk); ......

CONFIG_COMMON_CLK这个配置项用来控制kernel是否使用common clock framework,当然,使用了common clock framework模块,其实就会选择提供clk相关的接口,也就意味着如果CONFIG_COMMON_CLK=y的话,那么CONFIG_HAVE_CLK也必定等于y。

当然,你可能问:CONFIG_HAVE_CLK配置项是否有存在的必要? 当然有必要,因此我可以配置CONFIG_HAVE_CLK=y而CONFIG_COMMON_CLK=no。在遥远的过去,没有common clock framework的时候,各种ARM SOC纷纷定义了自己的clk的实现,虽然提供了clk的接口API,但是并没有使用common clock framework。

T800 · 2016-04-21 08:41

恩,原来如此,多谢!