From d76fb8c8c6d079a3cee81da7072347dcb8bbbc70 Mon Sep 17 00:00:00 2001 From: huangcm <null@gmail.com> Date: Fri, 23 Aug 2024 08:49:38 +0000 Subject: [PATCH] feat(rtc/ir): add rtc func and fix ir pro --- longan/kernel/linux-4.9/drivers/rtc/rtc-hym8563.c | 18 ++++++++++++++---- 1 files changed, 14 insertions(+), 4 deletions(-) diff --git a/longan/kernel/linux-4.9/drivers/rtc/rtc-hym8563.c b/longan/kernel/linux-4.9/drivers/rtc/rtc-hym8563.c index e5ad527..db5f872 100644 --- a/longan/kernel/linux-4.9/drivers/rtc/rtc-hym8563.c +++ b/longan/kernel/linux-4.9/drivers/rtc/rtc-hym8563.c @@ -438,10 +438,10 @@ { struct hym8563 *hym8563 = (struct hym8563 *)dev_id; struct i2c_client *client = hym8563->client; - struct mutex *lock = &hym8563->rtc->ops_lock; + //struct mutex *lock = &hym8563->rtc->ops_lock; int data, ret; - mutex_lock(lock); + //mutex_lock(lock); /* Clear the alarm flag */ @@ -461,7 +461,7 @@ } out: - mutex_unlock(lock); + //mutex_unlock(lock); return IRQ_HANDLED; } @@ -529,7 +529,13 @@ { struct hym8563 *hym8563; int ret; - + struct rtc_time tm = { + .tm_year = 2024 - 1900, + .tm_mon = 7, + .tm_mday = 23, + .tm_wday = 5, + .tm_hour = 13, + }; hym8563 = devm_kzalloc(&client->dev, sizeof(*hym8563), GFP_KERNEL); if (!hym8563) return -ENOMEM; @@ -565,6 +571,10 @@ hym8563->valid = !(ret & HYM8563_SEC_VL); dev_dbg(&client->dev, "rtc information is %s\n", hym8563->valid ? "valid" : "invalid"); + if (!hym8563->valid) { + dev_err(&client->dev, "rtc use default time !!!\n"); + hym8563_rtc_set_time(&client->dev, &tm); + } hym8563->rtc = devm_rtc_device_register(&client->dev, client->name, &hym8563_rtc_ops, THIS_MODULE); -- Gitblit v1.6.2