全志
技術社群
1. axp晶元功能說明
2.驅動原始碼說明
(1)drivers/power/axp_power/axp22-board.c
a. 讀取sys_config.fex,初始化一些引數 包括: axp221裝置位址(axp221是通過i2c連線到soc上的) 電池容量 電池充電電流 電池充電電壓 預充電時間 持續充電時間
自動關機電壓 -- "pmu_pwroff_vol" 自動開機電壓 -- "pmu_pwron_vol"
各路regulator的電壓
電源鍵短按時間門限 電源鍵長按時間門限
b.初始化regulator_init_data資料結構 c.向i2c_core註冊axp板卡資訊
(2)drivers/power/axp_power/axp-mfd.c
a. 註冊axp驅動:i2c_add_driver(&axp_mfd_driver) b. axp_mfd_probe函式 初始化中斷、佇列、子裝置、屬性節點
(3)drivers/power/axp_power/axp22-regu.c
註冊regulator驅動,主要工作在axp_regulator_probe
(4)drivers/power/axp_power/axp22-gpio.c
axp是由電源按鍵輸入,和其他一些通用的gpio,將這些gpio註冊到linux裝置樹下,並提供了這些gpio的操作方法: __axp_gpio_input :設定為輸入io
__axp_gpio_output :設定為輸出io
__axp_gpio_set :設定輸出(0或1)
__axp_gpio_get :獲取輸入
(5)drivers/power/axp_power/axp22-sply.c
鋰電池充放電管理、電源按鍵、
在axp_battery_probe函式裡,完成了大量工作:電源按鍵註冊,引數設定、建立使用者空間的訪問節點。
3. 充電監測
由axp_charging_monitor函式完成充電資訊的採集與上報,每隔10ms更新一次資訊;電池資訊更新後,通過判斷電池電量和電流方向決定是否向上層上報(換句話說,向上上報的時間間隔不是固定的10ms,只有當電池電量變化才會上報通知的)。
axp_charger_update_state:更新充電資訊
is_on :是否正在充電
bat_det :是否存在電池
ac_det :是否連線火牛
usb_det :是否連線usb
usb_valid :usb是否可用
ac_vali :火牛是否可用
ext_valid :外部輸入是否可用
bat_current_direction :電池電流方向(充電 / 放電)
batery_active :是否進入電池啟用模式
int_over_temp :axp221是否過溫
charge_on :是否正在充電
axp_charger_update:電池資訊更新
vbat :電池電壓
ocv :電池電量
ic_temp :內部溫度
rest_vol :電池電量(百分比)
在使用者空間檢視充電資訊: 通過:cat /sys/class/power_supply/battery/uevent power_supply_name=battery power_supply_model_name=battery power_supply_status=charging power_supply_present=1 power_supply_online=0 power_supply_health=good power_supply_technology=life power_supply_voltage_max_design=4200000 power_supply_voltage_min_design=3300 power_supply_voltage_now=3713000 power_supply_current_now=214000 power_supply_energy_full_design=0 power_supply_capacity=24 power_supply_temp=300
4. 中斷
電池接入或者移除 usb插入/拔出 usb輸入過壓 充電完成 充電開始 電池過溫 電池低溫
電源鍵長按 電源鍵短按
5. 除錯
/sys/class/power_supply/battery/
cat current_now :可以得到電池的電流
cat voltage_now :可以得到電池電壓
注意:如果在充電的情況下,獲取得到的電流是不準確的,
current_now此時的值 = |充電電流 - 放電電流|
/sys/bus/i2c/devices/1-0034/
axp晶元是通過i2x接入的,在該資料夾下的axp22_reg節點可用於與axp通訊,讀取axp暫存器的值。
echo 0 > axp22_reg
2、讀取暫存器的值:
cat axp22_reg
智雲穩定器 全志 ADC驅動
adc 驅動 1 include 2 include 3 include 4 include 5 include 6 include 7 include 8 include 9 include 10 include 11 include 12 include 13 include 14 includ...
全志AXP209電源管理晶元介紹
axp209是一款高度整合的電源管理ic,為由單電池li電池 li ion或li 聚合物 供電且需要多p的應用提供了簡單靈活的電源解決方案也有輸出。它完全滿足了應用處理器在精確功率控制方面日益複雜的需求。axp209整合了乙個自適應的 與usb相容的pwm充電器 兩個降壓轉換器 buck dc dc...
全志啟動流程
參考文獻 全志啟動流程可分為5部 bootrom spl uboot kernel rootfilesystem 1 spl背景 spl是乙個mini版本的uboot,類似於mtk平台的preloader,用於載入完整的uboot程式到sdrom,並通過uboot來載入核心啟動系統。spl程式流程如...