50MODEM无法sleep
0赞Solution:
在HWDInitialization函数添加
。。。。
#if (defined(MT6236) || defined(MT6236B) || defined(MT6256) || defined(MT6276) ||
defined(MT6268) || defined(MT6268A) || defined(MT6268B) || defined(MT6268T) ||
defined(MT6268H)) || defined(MT6255)
#if !(defined(__OLD_PDN_ARCH__) && defined(__OLD_PDN_DEFINE__))
mm_enable_power(MMPWRMGR_GMC);
#endif
#endif
//add start
REG_RM_PWR_CON2 = 0x00000100;
//add end
注释掉LCD部分获取handle语句。
(1)_lcd_power_ctrl__init
lcd_power_sleep_mode_hander = L1SM_GetHandle();
(2)lcd_power_ctrl__enable
L1SM_SleepDisable(lcd_power_sleep_mode_hander);
(3)lcd_power_ctrl__disable
L1SM_SleepEnable(lcd_power_sleep_mode_hander);
50D是有睡下去的, 只是leakage過大
ICFANS
發現這和 power domain的初始設定值有關,
mmsys這部分本來應該是由multimedia來init
如果lcd camara之類的module沒有動作, 就不會去init
目前給的load並不包含這部分, 所以會有發生這樣的問題
是mmsys相关的,主要是lcd camera等相关的需要显示的功能的HW module供电部分。
在底层默认init的时候都是power on的,power off的时候需要上层来call,但是没有上层的时候
,也给同样的初始值设定,就导致了HW上漏电。这是SW针对此种情况的workaround方式。