CONFIG_COMMON_CLK和CONFIG_HAVE_CLK这两个配置有什么不同呢?
本文是原「蜗窝讨论区」的历史存档(2016-04-20),来自版块「Linux kernel技术问答」,共 3 帖。讨论区已停止服务,此处仅供查阅。
最近在看common clock framework,发现有两个配置:CONFIG_COMMON_CLK和CONFIG_HAVE_CLK,那么这两个配置有什么不同呢?
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。
恩,原来如此,多谢!
