2013-06-23 79 views
4

我讀了關於新的時鐘框架存在於Linux內核中下面的文章..Linux內核 - 時鐘框架 - clk_prepare/unprepare的作用是什麼?

http://lwn.net/Articles/489668/

  • 什麼我不清楚,是新API的clk_prepare的使用/取消準備 ,它補充了clk_enable /禁用 API。
  • 此外,要提到的是,儘管API的clk_enable /禁用可以從一個原子上下文中調用,這並不適用於clk_prepare /取消準備(其可以睡)。爲什麼有這種功能和行爲的分離?
  • 我很想了解它是什麼關於時鐘我們需要準備/沒有準備他們?

感謝,

〜VJ

回答

5

的時鐘可能需要的PLL進行設置並鎖定,電壓OPP進行設置,或之前clk_enable其他先決條件的行爲。例如: drivers/clk/clk-highbank.c clk_pll_prepare()

此例程具有等待循環,直到硬件PLL顯示鎖定爲止。不能從原子上下文做到這一點。另一個LWN article對prepare()和enable()分離有一點說明。

PLL和時鐘細節特定於相關處理器/ SoC。方框圖將顯示通向各種PLL的SoC輸入引腳的時鐘樹,然後從每個PLL驅動的各種時鐘(也可能具有可打開/關閉的電源域),並且一旦完成「準備」就單獨啓用時鐘。長話短說,但我希望以上可能會有所幫助。

相關問題