RK3288 Android7.1 RTC-pcf8563调试 待机唤醒

(1) 先把kernel 目录下.config pcf8563打开,且rk808关闭

在这里插入图片描述
(2) dts 配置,在根节点添加rtc_pcf8563节点。 之后再在硬件接口i2c
上添加pcf8563子节点。
在这里插入图片描述

在这里插入图片描述

(3) 在rtc-lib.c 文件中按图片修改:
在这里插入图片描述

之后在rtc-pcf8563.c 增加待机写闹钟函数
static int pcf8563_rtc_setalarm_pwron(struct device *dev, struct rtc_time *tm)
{

struct i2c_client *client = to_i2c_client(dev);
unsigned char buf[4];
int err;

printk("enter pcf8563 rtc setalarm pwron function\r\n");

/* The alarm has no seconds, round up to nearest minute */
if (tm->tm_sec) {
	time64_t alarm_time = rtc_tm_to_time64(tm);

	alarm_time += 60 - tm->tm_sec;
	rtc_time64_to_tm(alarm_time, tm);
}

dev_info(dev, "%s, min=%d hour=%d wday=%d mday=%d "
	, __func__,
	tm->tm_min, tm->tm_hour, tm->tm_wday,
	tm->tm_mday);


//tm->tm_wday=tm->tm_wday+4;   // for app set to kernel 2020-05-07

buf[0] = bin2bcd(tm->tm_min);
buf[1] = bin2bcd(tm->tm_hour);
buf[2] = bin2bcd(tm->tm_mday);
buf[3] = (tm->tm_wday & 0x07);


dev_info(dev, "%s, after min=%d hour=%d mday=%d wday=%d "
	, __func__,
	buf[0], buf[1], buf[2],
	buf[3]);

//err = pcf8563_write_block_data(client, PCF8563_REG_AMN, 4, buf);
err = pcf8563_write_block_data(client, PCF8563_REG_AMN, 3, buf);
if (err)
	return err;


printk("%s err=%d",__func__,err);

return pcf8563_set_alarm_mode(client, 1);

}

将上面pcf8563_rtc_setalarm_pwron函数
在这里插入图片描述

本人创建QQ群,进QQ技术交流,QQ群:712288614

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

baidu_37552881

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值