forked from ~ljy/RK356X_SDK_RELEASE

hc
2023-12-09 95099d4622f8cb224d94e314c7a8e0df60b13f87
kernel/drivers/rtc/rtc-rk808.c
....@@ -1,3 +1,4 @@
1
+// SPDX-License-Identifier: GPL-2.0-only
12 /*
23 * RTC driver for Rockchip RK808
34 *
....@@ -5,15 +6,6 @@
56 *
67 * Author: Chris Zhong <zyw@rock-chips.com>
78 * Author: Zhang Qing <zhangqing@rock-chips.com>
8
- *
9
- * This program is free software; you can redistribute it and/or modify it
10
- * under the terms and conditions of the GNU General Public License,
11
- * version 2, as published by the Free Software Foundation.
12
- *
13
- * This program is distributed in the hope it will be useful, but WITHOUT
14
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
15
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
16
- * more details.
179 */
1810
1911 #include <linux/module.h>
....@@ -36,7 +28,6 @@
3628 #define BIT_RTC_CTRL_REG_RTC_READSEL_M BIT(7)
3729 #define BIT_RTC_INTERRUPTS_REG_IT_ALARM_M BIT(3)
3830 #define RTC_STATUS_MASK 0xFE
39
-#define RTC_ALARM_STATUS BIT(6)
4031
4132 #define SECONDS_REG_MSK 0x7F
4233 #define MINUTES_REG_MAK 0x7F
....@@ -241,10 +232,8 @@
241232 return ret;
242233 }
243234
244
- dev_dbg(dev, "alrm read RTC date/time %4d-%02d-%02d(%d) %02d:%02d:%02d\n",
245
- 1900 + alrm->time.tm_year, alrm->time.tm_mon + 1,
246
- alrm->time.tm_mday, alrm->time.tm_wday, alrm->time.tm_hour,
247
- alrm->time.tm_min, alrm->time.tm_sec);
235
+ dev_dbg(dev, "alrm read RTC date/time %ptRd(%d) %ptRt\n",
236
+ &alrm->time, alrm->time.tm_wday, &alrm->time);
248237
249238 alrm->enabled = (int_reg & BIT_RTC_INTERRUPTS_REG_IT_ALARM_M) ? 1 : 0;
250239
....@@ -259,12 +248,6 @@
259248 ret = regmap_update_bits(rk808->regmap, rk808_rtc->creg->int_reg,
260249 BIT_RTC_INTERRUPTS_REG_IT_ALARM_M, 0);
261250
262
- /*
263
- * The rtc alarm status(BIT(6)) must be cleared after alarm 1s or
264
- * after the alarm is disabled.
265
- */
266
- ret = regmap_write(rk808->regmap, rk808_rtc->creg->status_reg,
267
- RTC_ALARM_STATUS);
268251 return ret;
269252 }
270253
....@@ -292,10 +275,8 @@
292275 dev_err(dev, "Failed to stop alarm: %d\n", ret);
293276 return ret;
294277 }
295
- dev_dbg(dev, "alrm set RTC date/time %4d-%02d-%02d(%d) %02d:%02d:%02d\n",
296
- 1900 + alrm->time.tm_year, alrm->time.tm_mon + 1,
297
- alrm->time.tm_mday, alrm->time.tm_wday, alrm->time.tm_hour,
298
- alrm->time.tm_min, alrm->time.tm_sec);
278
+ dev_dbg(dev, "alrm set RTC date/time %ptRd(%d) %ptRt\n",
279
+ &alrm->time, alrm->time.tm_wday, &alrm->time);
299280
300281 if (rk808_rtc->flag & RTC_NEED_TRANSITIONS)
301282 gregorian_to_rockchip(&alrm->time);
....@@ -378,8 +359,7 @@
378359 /* Turn off the alarm if it should not be a wake source. */
379360 static int rk808_rtc_suspend(struct device *dev)
380361 {
381
- struct platform_device *pdev = to_platform_device(dev);
382
- struct rk808_rtc *rk808_rtc = dev_get_drvdata(&pdev->dev);
362
+ struct rk808_rtc *rk808_rtc = dev_get_drvdata(dev);
383363
384364 if (device_may_wakeup(dev))
385365 enable_irq_wake(rk808_rtc->irq);
....@@ -392,8 +372,7 @@
392372 */
393373 static int rk808_rtc_resume(struct device *dev)
394374 {
395
- struct platform_device *pdev = to_platform_device(dev);
396
- struct rk808_rtc *rk808_rtc = dev_get_drvdata(&pdev->dev);
375
+ struct rk808_rtc *rk808_rtc = dev_get_drvdata(dev);
397376
398377 if (device_may_wakeup(dev))
399378 disable_irq_wake(rk808_rtc->irq);
....@@ -484,7 +463,7 @@
484463 if (ret) {
485464 dev_err(&pdev->dev,
486465 "Failed to write RTC status: %d\n", ret);
487
- return ret;
466
+ return ret;
488467 }
489468
490469 device_init_wakeup(&pdev->dev, 1);
....@@ -496,12 +475,8 @@
496475 rk808_rtc->rtc->ops = &rk808_rtc_ops;
497476
498477 rk808_rtc->irq = platform_get_irq(pdev, 0);
499
- if (rk808_rtc->irq < 0) {
500
- if (rk808_rtc->irq != -EPROBE_DEFER)
501
- dev_err(&pdev->dev, "Wake up is not possible as irq = %d\n",
502
- rk808_rtc->irq);
478
+ if (rk808_rtc->irq < 0)
503479 return rk808_rtc->irq;
504
- }
505480
506481 /* request alarm irq of rk808 */
507482 ret = devm_request_threaded_irq(&pdev->dev, rk808_rtc->irq, NULL,