aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/clocksource/mips-gic-timer.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/clocksource/mips-gic-timer.c')
-rw-r--r--drivers/clocksource/mips-gic-timer.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/drivers/clocksource/mips-gic-timer.c b/drivers/clocksource/mips-gic-timer.c
index 16adbc1fa4c1..b81ed1a5342d 100644
--- a/drivers/clocksource/mips-gic-timer.c
+++ b/drivers/clocksource/mips-gic-timer.c
@@ -5,6 +5,7 @@
5 * 5 *
6 * Copyright (C) 2012 MIPS Technologies, Inc. All rights reserved. 6 * Copyright (C) 2012 MIPS Technologies, Inc. All rights reserved.
7 */ 7 */
8#include <linux/clk.h>
8#include <linux/clockchips.h> 9#include <linux/clockchips.h>
9#include <linux/cpu.h> 10#include <linux/cpu.h>
10#include <linux/init.h> 11#include <linux/init.h>
@@ -149,11 +150,18 @@ void __init gic_clocksource_init(unsigned int frequency)
149 150
150static void __init gic_clocksource_of_init(struct device_node *node) 151static void __init gic_clocksource_of_init(struct device_node *node)
151{ 152{
153 struct clk *clk;
154
152 if (WARN_ON(!gic_present || !node->parent || 155 if (WARN_ON(!gic_present || !node->parent ||
153 !of_device_is_compatible(node->parent, "mti,gic"))) 156 !of_device_is_compatible(node->parent, "mti,gic")))
154 return; 157 return;
155 158
156 if (of_property_read_u32(node, "clock-frequency", &gic_frequency)) { 159 clk = of_clk_get(node, 0);
160 if (!IS_ERR(clk)) {
161 gic_frequency = clk_get_rate(clk);
162 clk_put(clk);
163 } else if (of_property_read_u32(node, "clock-frequency",
164 &gic_frequency)) {
157 pr_err("GIC frequency not specified.\n"); 165 pr_err("GIC frequency not specified.\n");
158 return; 166 return;
159 } 167 }