Android4.4 使用外部rtc pcf8563无法保存设置时间的问题需要对原有驱动进行如下修改
【Android4.4 pcf8563无法保存设置时间的问题】首先在struct rtc_class_ops中增加set_alarm接口如下:
static const struct rtc_class_ops pcf8563_rtc_ops = {
.read_time = pcf8563_rtc_read_time,
.set_time = pcf8563_rtc_set_time,
.set_alarm = pcf8563_rtc_set_alarm,//add by hclydao
};
具体函数实现如下:
static int pcf8563_rtc_set_alarm(struct device *dev, struct rtc_wkalrm *alrm)
{
struct rtc_time *tm = &alrm->time;
return pcf8563_set_datetime(to_i2c_client(dev), tm);
}
Android4.4以后是使用rtc驱动中的set_alarm进行设置时间,所以需要增加上面的接口. 同时在probe函数中增加唤醒的设置,部分代码如下
dev_info(&client->dev, "chip found, driver version " DRV_VERSION "\n");
i2c_set_clientdata(client, pcf8563);
/* cpu init code should really have flagged this device as
* being wake-capable;
if it didn't, do that here.
*/
if (!device_can_wakeup(&client->dev)) { //add by hclydao
device_init_wakeup(&client->dev, 1);
} pcf8563->rtc = rtc_device_register(pcf8563_driver.driver.name,
&client->dev, &pcf8563_rtc_ops, THIS_MODULE);
======================================
作者:hclydao
http://blog.csdn.net/hclydao
版权没有,但是转载请保留此段声明
===========================================
推荐阅读
- Android Parcel分析
- 设备管理应用"界面列表中应用的激活状态是通过DevicePolicyManager的isAdminActiveAsUser()方法获取的
- android系统|android4.4 电阻触摸校准修改说明
- android系统|A33 android4.4增加上层有线网络设置接口及相关说明
- Android 夜间模式主题风格切换