forked from ~ljy/RK356X_SDK_RELEASE

hc
2024-05-13 9d77db3c730780c8ef5ccd4b66403ff5675cfe4e
kernel/drivers/clocksource/clksrc-dbx500-prcmu.c
....@@ -1,7 +1,7 @@
1
+// SPDX-License-Identifier: GPL-2.0-only
12 /*
23 * Copyright (C) ST-Ericsson SA 2011
34 *
4
- * License Terms: GNU General Public License v2
55 * Author: Mattias Wallin <mattias.wallin@stericsson.com> for ST-Ericsson
66 * Author: Sundar Iyer for ST-Ericsson
77 * sched_clock implementation is based on:
....@@ -15,7 +15,6 @@
1515 #include <linux/of.h>
1616 #include <linux/of_address.h>
1717 #include <linux/clockchips.h>
18
-#include <linux/sched_clock.h>
1918
2019 #define RATE_32K 32768
2120
....@@ -25,8 +24,6 @@
2524 #define PRCMU_TIMER_REF 0
2625 #define PRCMU_TIMER_DOWNCOUNT 0x4
2726 #define PRCMU_TIMER_MODE 0x8
28
-
29
-#define SCHED_CLOCK_MIN_WRAP 131072 /* 2^32 / 32768 */
3027
3128 static void __iomem *clksrc_dbx500_timer_base;
3229
....@@ -46,23 +43,11 @@
4643
4744 static struct clocksource clocksource_dbx500_prcmu = {
4845 .name = "dbx500-prcmu-timer",
49
- .rating = 300,
46
+ .rating = 100,
5047 .read = clksrc_dbx500_prcmu_read,
5148 .mask = CLOCKSOURCE_MASK(32),
52
- .flags = CLOCK_SOURCE_IS_CONTINUOUS,
49
+ .flags = CLOCK_SOURCE_IS_CONTINUOUS | CLOCK_SOURCE_SUSPEND_NONSTOP,
5350 };
54
-
55
-#ifdef CONFIG_CLKSRC_DBX500_PRCMU_SCHED_CLOCK
56
-
57
-static u64 notrace dbx500_prcmu_sched_clock_read(void)
58
-{
59
- if (unlikely(!clksrc_dbx500_timer_base))
60
- return 0;
61
-
62
- return clksrc_dbx500_prcmu_read(&clocksource_dbx500_prcmu);
63
-}
64
-
65
-#endif
6651
6752 static int __init clksrc_dbx500_prcmu_init(struct device_node *node)
6853 {
....@@ -81,9 +66,6 @@
8166 writel(TIMER_DOWNCOUNT_VAL,
8267 clksrc_dbx500_timer_base + PRCMU_TIMER_REF);
8368 }
84
-#ifdef CONFIG_CLKSRC_DBX500_PRCMU_SCHED_CLOCK
85
- sched_clock_register(dbx500_prcmu_sched_clock_read, 32, RATE_32K);
86
-#endif
8769 return clocksource_register_hz(&clocksource_dbx500_prcmu, RATE_32K);
8870 }
8971 TIMER_OF_DECLARE(dbx500_prcmu, "stericsson,db8500-prcmu-timer-4",