全志axp驅動功能分析 除錯說明

2021-10-11 01:27:19 字數 2700 閱讀 6105

全志

技術社群

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程式流程如...