2007年4月23日 星期一

LED issue_661

承BattDrv_charging_661
USB cable插在661上
充飽電時(LED亮綠燈),當按Power Key進suspend,LED會亮紅燈,這是因為進入suspend,GPIO會設為 output high。
請參閱
\WINCE500\PLATFORM\MGPS\KERNEL\OAL\sleep.c

DWORD g_dwRomGpioConfig [][3] = {

{ 0xCFFFFFFF, 0x0FBFFFD0, 0xC040003F },//p4 out high

{ 0x7F5FFFFF, 0x3C0FFFFF, 0x4AF00000 },//p22 input no pull, p24 input pull high

{ 0xFFF7FFFF, 0xFFF7FFFF, 0x00000000 },

{ 0xFFFFFFFF, 0xFE0FFBF0, 0xC1F12C0F },//p12 output low

{ 0x7FFFFFFF, 0x7FFF1D1F, 0x00142C8E },//BL_EN output low

{ 0xFFDFFFFF, 0x52F7FFFF, 0xADA80200 },//p9 output low,p23 output low CHAR_DONE output high

};

只要把他改成 Input with non pull high 就可以 , 也就是

DWORD g_dwRomGpioConfig [][3] = {

{ 0xCFFFFFFF, 0x0FBFFFD0, 0xC040003F },//p4 out high

{ 0x7F5FFFFF, 0x3C0FFFFF, 0x4AF00000 },//p22 input no pull, p24 input pull high

{ 0xFFF7FFFF, 0xFFF7FFFF, 0x00000000 },

{ 0xFFFFFFFF, 0xFE0FFBF0, 0xC1F12C0F },//p12 output low

{ 0x7FFFFFFF, 0x7FFF1D1F, 0x00142C8E },//BL_EN output low

{ 0xFFDFFFFF, 0x5277FFFF, 0xADA80200 },//p9 output low,p23 output low CHAR_DONE output high

};

但是這樣也突顯了 HW 的一個 Bug , 也就是充飽電時 USB cable 拔掉再插上去會秀紅燈 , 過一

陣子才會變綠燈 , 當初為了這一個 Bug 所以 battery driver 當初改成如果電壓在 4.17V 以下就把

CHAR_DONE HIGH 變紅燈 , 4.17V 以上就把他拉 LOW 變綠燈 , 但在 sleep時我們無法

掌控 CHAR_DONE , 這個 Bug 就會跑出來。

沒有留言: