hc
2024-02-20 102a0743326a03cd1a1202ceda21e175b7d3575c
kernel/arch/sh/kernel/time.c
....@@ -1,3 +1,4 @@
1
+// SPDX-License-Identifier: GPL-2.0
12 /*
23 * arch/sh/kernel/time.c
34 *
....@@ -5,10 +6,6 @@
56 * Copyright (C) 2000 Philipp Rumpf <prumpf@tux.org>
67 * Copyright (C) 2002 - 2009 Paul Mundt
78 * Copyright (C) 2002 M. R. Brown <mrbrown@linux-sh.org>
8
- *
9
- * This file is subject to the terms and conditions of the GNU General Public
10
- * License. See the file "COPYING" in the main directory of this archive
11
- * for more details.
129 */
1310 #include <linux/kernel.h>
1411 #include <linux/init.h>
....@@ -21,77 +18,7 @@
2118 #include <linux/rtc.h>
2219 #include <asm/clock.h>
2320 #include <asm/rtc.h>
24
-
25
-/* Dummy RTC ops */
26
-static void null_rtc_get_time(struct timespec *tv)
27
-{
28
- tv->tv_sec = mktime(2000, 1, 1, 0, 0, 0);
29
- tv->tv_nsec = 0;
30
-}
31
-
32
-static int null_rtc_set_time(const time_t secs)
33
-{
34
- return 0;
35
-}
36
-
37
-void (*rtc_sh_get_time)(struct timespec *) = null_rtc_get_time;
38
-int (*rtc_sh_set_time)(const time_t) = null_rtc_set_time;
39
-
40
-void read_persistent_clock(struct timespec *ts)
41
-{
42
- rtc_sh_get_time(ts);
43
-}
44
-
45
-#ifdef CONFIG_GENERIC_CMOS_UPDATE
46
-int update_persistent_clock(struct timespec now)
47
-{
48
- return rtc_sh_set_time(now.tv_sec);
49
-}
50
-#endif
51
-
52
-static int rtc_generic_get_time(struct device *dev, struct rtc_time *tm)
53
-{
54
- struct timespec tv;
55
-
56
- rtc_sh_get_time(&tv);
57
- rtc_time_to_tm(tv.tv_sec, tm);
58
- return 0;
59
-}
60
-
61
-static int rtc_generic_set_time(struct device *dev, struct rtc_time *tm)
62
-{
63
- unsigned long secs;
64
-
65
- rtc_tm_to_time(tm, &secs);
66
- if ((rtc_sh_set_time == null_rtc_set_time) ||
67
- (rtc_sh_set_time(secs) < 0))
68
- return -EOPNOTSUPP;
69
-
70
- return 0;
71
-}
72
-
73
-static const struct rtc_class_ops rtc_generic_ops = {
74
- .read_time = rtc_generic_get_time,
75
- .set_time = rtc_generic_set_time,
76
-};
77
-
78
-static int __init rtc_generic_init(void)
79
-{
80
- struct platform_device *pdev;
81
-
82
- if (rtc_sh_get_time == null_rtc_get_time)
83
- return -ENODEV;
84
-
85
- pdev = platform_device_register_data(NULL, "rtc-generic", -1,
86
- &rtc_generic_ops,
87
- sizeof(rtc_generic_ops));
88
-
89
-
90
- return PTR_ERR_OR_ZERO(pdev);
91
-}
92
-device_initcall(rtc_generic_init);
93
-
94
-void (*board_time_init)(void);
21
+#include <asm/platform_early.h>
9522
9623 static void __init sh_late_time_init(void)
9724 {
....@@ -104,14 +31,13 @@
10431 * clocksource and the jiffies clocksource is used transparently
10532 * instead. No error handling is necessary here.
10633 */
107
- early_platform_driver_register_all("earlytimer");
108
- early_platform_driver_probe("earlytimer", 2, 0);
34
+ sh_early_platform_driver_register_all("earlytimer");
35
+ sh_early_platform_driver_probe("earlytimer", 2, 0);
10936 }
11037
11138 void __init time_init(void)
11239 {
113
- if (board_time_init)
114
- board_time_init();
40
+ timer_probe();
11541
11642 clk_init();
11743