一,方案
PMU: RK808
RTC: hym8563
内核版本: Liunx 4.4
硬件上需要把RTC的中断脚接到RK808的开机引脚上
二,RTC驱动模型
与RTC核心有关的文件有:
/drivers/rtc/class.c 这个文件向linux设备模型核心注册了一个类RTC,然后向驱动程序提供了注册/注销接口
/drivers/rtc/rtc-dev.c 这个文件定义了基本的设备文件操作函数
/drivers/rtc/interface.c 这个文件主要提供了用户程序与RTC驱动的接口函数,用户程序一般通过ioctl与RTC驱动交互,这里定义了每个ioctl命令需要调用的函数
/drivers/rtc/rtc-sysfs.c 与sysfs有关
/drivers/rtc/rtc-proc.c 与proc文件系统有关
/include/linux/rtc.h 定义了与RTC有关的数据结构
三,解决思路
1.在底层做一个独立的alarm接口,上层设定开机时间;
2.上层设置的时间会调到该接口,然后保存开机时间;
3.等到真正关机时,在关机函数里将开机时间写进alarm寄存器