[RK3399][Android8.1] 調試記錄 --- CW2015電量計+GPIO DC檢測

Platform: RK3399
OS: Android 8.1

 

硬件環境:

使用3串3並鋰電池供電

充電IC:BQ24610RGER

電量計IC:CW2015

問題1

1.CW2015  i2c通信失敗

解決方法:

1.確定CW2015 i2c地址爲0X62

2.使用示波器查看I2C上存在數據

3.查看PCB圖發現管腳順序錯誤,芯片第五腳和第八腳相反,飛線解決。

問題2

1.cw2015可以獲取電量,但是無法獲取充電狀態

解決方法:

1.由於CW2015驅動註冊時爲battery設備,所以只能上報電池電量,無法上報充電狀態

2.深度分析android power supply系統,下文介紹的比較詳細

https://blog.csdn.net/u012830148/article/details/80227903

3.如果要進入充電狀態,必須有battery設備,所以將CW2015註冊爲battery設備,需要再添加charger設備.

static const struct power_supply_desc cw2015_bat_desc = {
	.name		= "rk-bat",
	.type		= POWER_SUPPLY_TYPE_BATTERY,
	.properties	= cw_battery_properties,
	.num_properties	= ARRAY_SIZE(cw_battery_properties),
	.get_property	= cw_battery_get_property,
};

4.因爲我們選型的充電IC沒有I2C接口,只是在硬件上增加了一個充電器檢測的GPIO

5.在 /kernel/drivers/power#目錄下剛好存在一個gpio-charger.c文件,完全符合項目的需求

6.在kenel下make menuconfig,使能gpio-charger.c

7.將gpio註冊爲POWER_SUPPLY_TYPE_MAINS

8.dts中增加節點

   gpio-charger{
                status = "okay";
                compatible = "gpio-charger";
                gpios = <&gpio1 23 GPIO_ACTIVE_LOW>;
                charger-type = "mains";
        };

總結

目前功能基本實現,但是電量不夠準確,需要繼續修改CW2015驅動,持續更新

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章