linux 電源管理之 regulator



1、電源管理 Regulator 分成靜態和動態:靜態不需要改變電壓電流,只需要開關電源,用在bootloader,firmware,kernel board 階段等。動態,根據需要改變電壓電流。
2、獲取設備的regulator,dev為驅動對應的設備指針,可以用NULL,Vcc為電源的ID,內核會查表找到電源ID對應的regulator。如:
struct regulator *ldo;
ldo=regulator_get(NULL,"act_ldo5");
regulator = regulator_get(dev, "Vcc");//獲取設備regulator.
3、regulator_put(regulator);   //釋放regulator。
4、int regulator_enable(regulator);//使能電源輸出。調用之前也可能已經使能了。所以用下面函數判斷。
5、int regulaor_is_enabled(regulator); //判斷是否使能,>0 表示已經使能。
6、int regulator_disable(regulator);//關閉電源輸出。但是未必立刻關閉,有可以存在電源共享的場景。
7、int regulator_force_disable(regulator);//強制關閉電源。
8、int regulator_set_voltage(regulator,min_uV,max_uV);//調節電壓的最小和最大輸出。如果接下去調用regulator_enable ,那么這個值馬上就生效,如果調用regulator_disable等其他的,要等到下一次調用regulator_enable時才能生效。
9、int regulator_get_voltage(regulator); //通過此接口獲取配置的輸出電壓。
10、int regulator_count_voltages(regulator); //通過此接口獲取regulator的編號。

例如:

regulator_set_voltage(ldo_28, 2800000, 2800000); //設置電壓。
regulator_enable(ldo_28); //使能。
int value=regulator_get_voltage(ldo_28)); //獲取電壓值。
regulator_put(ldo_28); //釋放。

原文鏈接
另一篇文章


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM