MTK6577+Android之快速开机

今天测试了关机电流,就是长按power按键,弹出下图:

图1

选择Power off(关机)后发现电流还有25mA,和短按进入挂起时电流一样。但为什么关机是电流还有这么高了,而且在关机时电源指示灯还是亮的,那说明就没有真正关机。此时我按下power按键,设备重新启动,但很快就进入系统(大概9s),比正常的拔掉电池后开机的29s短了不少。

难道这就是快速开机(ipo: instant power on)吗?MTK工程文件下

\mediatek\config\hsimobile77_ics2\projectconfig.mk

MTK_IPO_SUPPORT=yes

通过MTK_IPO_SUPPORT的设置来决定是否打开快速启动,如果为yes表示打开,否则为no。

关机的时候最后会调用pm_power_off()来关机的,见

\mediatek\platform\mt6577\kernel\core\core.c文件相关代码:

void __initmt6577_init(void)

{

unsigned int tmp;

pm_power_off = mt6577_power_off;

#ifdefined(CONFIG_CACHE_L2X0)

writel(L2X0_DYNAMIC_CLK_GATING_EN,PL310_BASE + L2X0_POWER_CTRL);

writel(readl(PL310_BASE +L2X0_PREFETCH_CTRL) | 0x40000000, PL310_BASE + L2X0_PREFETCH_CTRL);

/*L2C data ram access latency*/

tmp = readl(PL310_BASE +L2X0_DATA_LATENCY_CTRL);

tmp &= ~((0x7 << 4) | 0x7); //clear bit[6:4] and bit[2:0]

tmp |= ((0x2 << 4) | 0x1); //3T readaccess latency & 2T setup latency

writel(tmp, PL310_BASE +L2X0_DATA_LATENCY_CTRL);

l2x0_init((void __iomem *)PL310_BASE,0x70400000, 0x8FBFFFFF);

#endif /* CONFIG_CACHE_L2X0 */

#ifdefined(CONFIG_HAVE_ARM_SCU)

scu_enable((void *)SCU_BASE);

/* set INFRA_ACP to 0x00003333 forreceiving transactions to ACP */

writel(0x00003333, INFRA_SYS_CFG_BASE +0x0F04);

#endif /* CONFIG_HAVE_ARM_SCU */

}

可以看出实际是回调mt6577_power_off()来实现关机的,它的定义在

\mediatek\custom\hsimobile77_ics2\kernel\core\src\board.c下面:

voidmt6577_power_off(void)

{

printk("core--->mt6577_power_off()\n");

/* pull PWRBB low */

rtc_bbpu_power_down();

while (1) {

printk("mt6577_power_off :check charger\n");

if (pmic_chrdet_status() ==KAL_TRUE)

arch_reset(0,"charger");

}

}

通过拉低RTC的PWRBB引脚来关机,如果判断有接入USB或是充电器,会进入关机充电流程。

关机充电时,拔出USB调用uboot的mt6577_power_off来实现关机的。

参考链接:

MTK 快速开机 技术详解

深入解析Android关机

Android 长按电源键关机整个流程小学习

android 快速开机启动,MTK6577+Android之快速开机相关推荐

  1. Android是怎么启动的-[Android取经之路]

    摘要:本节主要来讲解Android是如何启动的 阅读本文大约需要花费10分钟. 文章首发微信公众号:IngresGe 专注于Android系统级源码分析,Android的平台设计,欢迎关注我,谢谢! ...

  2. Linux Redis自动启动,Redis开机启动,Linux Redis设置开机启动

    Linux Redis自动启动,Redis开机启动,Linux Redis设置开机启动 >>>>>>>>>>>>>> ...

  3. win7开机启动项怎么设置 电脑开机启动项在哪里设置

    win7开机启动项怎么设置 电脑开机启动项在哪里设置 现在的软件很多安装程序都是默认的开机启动,电脑上如果软件的开机启动项多了就会使得电脑的开机速度很慢,这个时候就需要大家手动来设置开机启动项了,那电 ...

  4. linux redis自动重启,Linux Redis自动启动,Redis开机启动,Linux Redis设置开机启动

    Linux Redis自动启动,Redis开机启动,Linux Redis设置开机启动 >>>>>>>>>>>>>> ...

  5. Android8.0 开机启动脚本,Android开机启动shell脚本(Android 8.0测试OK)

    Android 下做开机启动shell脚本的大致流程如下: 目录 写shell脚本 为脚本写te文件 在init.rc中启动脚本 添加Selinux权限 写shell脚本 比如新建一个init.tes ...

  6. android服务的启动过程,Android Service的启动过程(上)

    原标题:Android Service的启动过程(上) (点击上方公众号,可快速关注) 来源:伯乐在线专栏作者 - xuyinhuan 链接:http://android.jobbole.com/85 ...

  7. 如何利用注册表修改开机启动程序并提高电脑开机速度!

    利用注册表修改开机启动程序: 修改以下三个地方就可以了,最主要的是Run这个地方.[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersi ...

  8. 安卓系统开机指定APP应用启动,安卓机顶盒指定APP启动,安卓系统设置开机启动APP,安卓app开机自启动

    目前市面上好多机顶盒比如创维,爱奇艺,先科机顶盒,夏新机顶盒,英菲克机顶盒等等, 都设置了开机不启动第三方应用, 开机自启动设置方法: 1.  监控RECEIVE_BOOT_COMPLETED,即开机 ...

  9. win7如何启动计算机,win7开机启动项怎么设置 电脑开机启动项在哪里设置

    现在的软件很多安装程序都是默认的开机启动,电脑上如果软件的开机启动项多了就会使得电脑的开机速度很慢,这个时候就需要大家手动来设置开机启动项了,那电脑开机启动项在哪里设置呢?小编的电脑的系统是win7的 ...

  10. win10怎么设置开机启动项目_苹果mac开机启动项怎么设置

    mac系统有没有开机启动项?如何设置呢?有些软件我们不需要开机启动,有些软件我们又想让它开机启动,那么mac系统下要怎么禁止或添加开机启动项呢?下面macdown小编给小伙伴详细的讲解苹果mac开机启 ...

最新文章

  1. 共基极放大电路_「模拟电子技术」运算放大电路的共基极、共射极、共集电极接法...
  2. Android之多线程工作-AsyncTask与handler
  3. linux 系统迁移到固态硬盘,windows 和 Linux 系统 从硬盘迁移到SSD
  4. openssl创建CA、申请证书及其给web服务颁发证书
  5. [转载] 信息系统项目管理挂靠合同(协议)范例1
  6. 每天自动备份网站数据,发现问题一键恢复 ——阿里云虚拟主机推出网站数据自动备份功能...
  7. 一键生成通讯录的软件_橙瓜码字自动写作软件,外貌描写对话描写一键生成
  8. 小鹏汽车窃密特斯拉实锤?前员工回应:确实上传过30万份Autopilot源码
  9. linux 删除和安装java
  10. 9种缺陷管理工具对比Bugzilla、testRail、TestLink、redmine、禅道、CODING、jira、TAPD、PingCode
  11. 中望CAD的引线标注格式怎么改_大神总结:CAD设计五个段位 你在哪个阶段?
  12. vscode离线安装vsix插件命令
  13. 群晖 android软件,群晖-手机端常用App
  14. 聚宽-彼得·林奇的成功投资策略
  15. 应该怎么正确向老板提加薪呢?
  16. R语言矩阵操作:根据值找到行号和列号
  17. Keras开发环境安装方法新手教程(GPU版)
  18. 加速度计及其飞控应用
  19. 微信多开方法 win10系统
  20. jdk8的安装及环境配置

热门文章

  1. Admob反馈利诱性质流量(无效流量)解决方案
  2. 系统重装后恢复MySQL数据
  3. 遗传算法和神经网络算法区别与联系
  4. 《买土豆的故事》——经典职场故事
  5. TPM设备管理之设备采购方法及注意事项
  6. java商城加入购物车接口实现_商城系统购物车功能分析实现
  7. 处理 JS中 undefined 的7个技巧
  8. 详解浏览器中的粘贴事件 paste onpaste 事件
  9. 告诉你一个真实的Google
  10. 男人不想打工一辈子,再忙也要读这10本书,提高情商智商