CubieBoard中文论坛

 找回密码
 立即注册
搜索
热搜: unable
查看: 14397|回复: 14

开发板--红外遥控器 --开机

[复制链接]
发表于 2013-6-19 17:16:32 | 显示全部楼层 |阅读模式
本帖最后由 f839903061 于 2013-6-19 17:49 编辑

现在遇到一个问题
开发板有红外接收器,可以使用红外遥控器

我已经做到了红外关机,这样肯定不能红外开机了


现在想让其变为睡眠,然后可以红外开机

我ir.kl配置文件中只有power (关机),并没有sleep  选项!不知道如何入手!

有做过这方面的朋友吗?谢谢!
回复

使用道具 举报

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

  1. #if 0 //add by cong start
  2. //停用设备
  3. #ifdef CONFIG_HAS_EARLYSUSPEND
  4. static void sun7i_ir_suspend(struct early_suspend *h)
  5. {
  6.         /*        unsigned long tmp = 0;
  7.                 int ret;
  8.                 struct sun7i_ir_data *ts = container_of(h, struct sun7i_ir_data, early_suspend);

  9.                 tmp = readl(IR_BASE+IR_CTRL_REG);
  10.                 tmp &= 0xfffffffc;
  11.                 writel(tmp, IR_BASE+IR_CTRL_REG);
  12.                 */
  13.         dbmsg("EARLYSUSPEND:enter earlysuspend: sun7i_ir_suspend. \n");
  14.         if(NULL == ir_clk || IS_ERR(ir_clk)) {
  15.                 printk("ir_clk handle is invalid, just return!\n");
  16.                 return;
  17.         } else {
  18.                 clk_disable(ir_clk);
  19.         }

  20.         if(NULL == apb_ir_clk || IS_ERR(ir_clk)) {
  21.                 printk("ir_clk handle is invalid, just return!\n");
  22.                 return;
  23.         } else {
  24.                 clk_disable(apb_ir_clk);
  25.         }

  26. }

  27. //重新唤醒
  28. static void sun7i_ir_resume(struct early_suspend *h)
  29. {

  30.         dbmsg("EARLYSUSPEND:enter laterresume: sun7i_ir_resume. \n");

  31.         ir_code = 0;
  32.         timer_used = 0;
  33.         ir_reset_rawbuffer();
  34.         ir_clk_cfg();
  35.         ir_reg_cfg();
  36. }
  37. #endif
  38. #endif  //add by cong end

  39. static void sun7i_ir_suspend(struct early_suspend *h)
  40. {
  41. }

  42. //重新唤醒
  43. static void sun7i_ir_resume(struct early_suspend *h)
  44. {
  45. }
复制代码

评分

参与人数 1威望 +5 金钱 +5 贡献 +5 收起 理由
f839903061 + 5 + 5 + 5 赞一个!

查看全部评分

回复 支持 反对

使用道具 举报

发表于 2014-7-27 04:06:54 | 显示全部楼层
wangcong02345 发表于 2014-7-21 19:20
1. 原因:
这个power是进入休眠状态而不是关机.
不能开机的真正原因是:

找了好久,也猜是这个原因。 但苦于道行不深,终于发现源代码了。  不过我是用的人人家编译好的ko, 自己编译环境都不具备。有办法单独编译sun-7i.ko吗
回复 支持 反对

使用道具 举报

发表于 2014-8-4 17:13:54 | 显示全部楼层
你的板子还自然红外开机嚒?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-8-8 10:37:32 | 显示全部楼层
wangcong02345 发表于 2014-7-21 19:20
1. 原因:
这个power是进入休眠状态而不是关机.
不能开机的真正原因是:

非常感谢您的回复!
回复 支持 反对

使用道具 举报

发表于 2014-8-11 15:28:04 | 显示全部楼层
马克之,到时候用的上,谢谢
回复 支持 反对

使用道具 举报

发表于 2014-9-11 10:34:27 | 显示全部楼层
ct的红外是不是还认客户码?如何让他兼容大多数的遥控器?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-9-12 13:42:05 | 显示全部楼层
smileFei 发表于 2014-9-11 10:34
ct的红外是不是还认客户码?如何让他兼容大多数的遥控器?

不好意思,这个是很久以前接触的,只是做了简单的配置!其他的了解的也不是很多
回复 支持 反对

使用道具 举报

发表于 2014-9-13 19:17:26 | 显示全部楼层
f839903061 发表于 2014-9-12 13:42
不好意思,这个是很久以前接触的,只是做了简单的配置!其他的了解的也不是很多
...

哦,我不太懂,所以说请教你,我听说有客户码还有遥控得认频率。
回复 支持 反对

使用道具 举报

发表于 2014-10-26 18:34:51 | 显示全部楼层
smileFei 发表于 2014-9-13 19:17
哦,我不太懂,所以说请教你,我听说有客户码还有遥控得认频率。

不同的红外遥控器,一般是「用户码」不同,所谓用户码是为了区分不同型号的设备(比如电视机)。内核驱动代码中是可以匹配多个「用户码」。我之前做过。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|粤ICP备13051116号|cubie.cc---深刻的嵌入式技术讨论社区

GMT+8, 2022-8-11 10:04 , Processed in 0.032317 second(s), 19 queries .

Powered by Discuz! X3.4

© 2001-2012 Comsenz Inc. | Style by Coxxs

返回顶部