A20 实现 红外 开关机

原创 2015年11月17日 17:44:45

       实现本文的前提是要先实现 红外按键的匹配,我的是基于前几篇的基础上做的:      


    /usr/Cubie_A20/lichee/linux-3.4/drivers/input/keyboard 下面的sun7i-ir.c文件中做更改:

参考:

     ( 1. 原因:
               这个power是进入休眠状态而不是关机.
               不能开机的真正原因是:
               内核中的sun7i-ir.c中对休眠进行了处理,把红外的时钟关闭了.
               即在休眠状态下,红外不接收任何信号,所以也就不能唤醒了.
         2. 解决方法:
               把sun-7i-ir.c修改成如下形式: 即将suspend的处理的两个函数,改为空.)

把sun7i-ir.c 中的两个函数

//ͣ???豸
#ifdef CONFIG_HAS_EARLYSUSPEND
static void sun7i_ir_suspend(struct early_suspend *h)
{
/*	unsigned long tmp = 0;
	int ret;
	struct sun7i_ir_data *ts = container_of(h, struct sun7i_ir_data, early_suspend);

	tmp = readl(IR_BASE+IR_CTRL_REG);
	tmp &= 0xfffffffc;
	writel(tmp, IR_BASE+IR_CTRL_REG);
*/
//		dprintk(DEBUG_SUSPEND, "EARLYSUSPEND:enter earlysuspend: sun7i_ir_suspend. \n");
//        if(NULL == ir_clk || IS_ERR(ir_clk)) {
//        		printk("ir_clk handle is invalid, just return!\n");
//        		return;
//        } else {	
//        		clk_disable(ir_clk);
//        }
//	
//	if(NULL == apb_ir_clk || IS_ERR(ir_clk)) {
//		printk("ir_clk handle is invalid, just return!\n");
//		return;
//	} else {	
//		clk_disable(apb_ir_clk);
//	}
	
}


//???»???
static void sun7i_ir_resume(struct early_suspend *h)
{

//	dprintk(DEBUG_INIT, "EARLYSUSPEND:enter laterresume: sun7i_ir_resume. \n");
//	
//	ir_code = 0;
//	timer_used = 0;
//	ir_reset_rawbuffer();
//	ir_clk_cfg();
//	ir_reg_cfg();
}


改成 这个样子,函数中的全部注释掉

然后,再更该/usr/Cubie_A20/android/device/softwinner/wing-common下面的 axp20-supplyer.kl
     是这一行key 255   POWER               WAKE
将Power的值改为255,因为我电源键值对应的是255
保存,变异系统,烧写进板子,启动,就会发现可以实现 电源键关机了,
不过这样实现,短按电源键 只是实现了关闭屏幕,但没有真正给cpu断电,这样子在按电源键就可以实现开机啦
长按能关机, 这样会把cpu断电,红外遥控不能开机








相关文章推荐

android 休眠唤醒机制分析(二) — early_suspend

early_suspend是Android休眠流程的第一阶段即浅度休眠,不会受到wake_lock的阻止,一般用于关闭lcd、tp等设备为运行的应用节约电能。Android的PowerManagerS...

六秘技让xp系统快速实现开关机

原文链接:http://www.xitongzhijia.net/xtjc/20121017/17515.html 开机速度太慢?关机时间太长?系统速度乌龟爬?系统软件n年无更新?……这...
  • a125138
  • a125138
  • 2012年10月21日 18:48
  • 1228

android中定时开关机的实现

android中定时开关机的实现 关于android自动关机,网上有很多应用程序和例子。 相对于自动开机来说,自动关机可以在应用层通过设置alarm来实现。而自动开机,它需要底层rtc时钟的支持。 简...

wake on lan 实现远程开机(远程开关机程序)

“”是一个为现在大多数有线网卡所支持的一个功能,目前来说笔记本的无线网卡还不具备,主要是考虑到开启这个功能在关机的情况下仍会消耗一点电力,但随着低功耗硬件和高容量的电池的不断发展,让笔记本实现这个功能...
  • huaben
  • huaben
  • 2011年11月01日 11:17
  • 3079

Android之实现定时开关机

关于android自动关机,网上有很多应用程序和例子。 相对于自动开机来说,自动关机可以在应用层通过设置alarm来实现。而自动开机,网上的介绍就比较少了,因为它需要底层rtc时钟的支持。前段时间根据...

Android 实现定时开关机另类实现--BSP级

前言: 条件,定时关机不能关机,只能待机;要能定时“开机”(唤醒) 1.定时“关机”(待机)      众所周知android 有wakelock 在有wakelock 时不能待机,可按如下的方...

Linux基础学习-Linux开关机命令

1   由于 Linux 在运作的过程中,会有很多的程序常驻在内存中来执行,此外, 由于 Linux 的磁盘使用效能比较高,利用了异步的磁盘/内存数据传输的模式, 因此, Linux 系统是很怕不正常...

8个Linux命令及开关机命令

shutdown -h now shutdown -r now reboot  init 0 关机 init 6 重启 halt 系统停机 让我们从处理一些数据开始。假设我们有两个文件...

linux命令--开关机及文件权限与目录配置

1、关于关机、在线求助等命令及好玩的小命令date--显示时间 date +%Y/%m%d-%H:%M  --用于指定输出时间的格式cal--显示日历  格式是 cal [month] [year]b...

Android 开关机动画显示源码分析

Android系统在启动SystemServer进程时,通过两个阶段来启动系统所有服务,在第一阶段启动本地服务,如SurfaceFlinger,SensorService等,在第二阶段则启动一系列的J...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:A20 实现 红外 开关机
举报原因:
原因补充:

(最多只允许输入30个字)