aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/clocksource/bcm2835_timer.c
diff options
context:
space:
mode:
authorRob Herring <rob.herring@calxeda.com>2013-02-06 15:40:22 -0500
committerRob Herring <rob.herring@calxeda.com>2013-03-11 09:42:07 -0400
commiteffbfdd7baf7babc73154b87a5ff940969cf6559 (patch)
tree7aab87a4f5be6ed1ab817cdd65dcd4d983094e37 /drivers/clocksource/bcm2835_timer.c
parente0c25362384f4be9c755c98560cd4b1cdb2ec79c (diff)
clocksource: pass DT node pointer to init functions
In cases where we have multiple nodes of the same type, we may need the node pointer to know which node was matched. Passing the node pointer also keeps the init function from having to match the node a 2nd time. Update bcm2835, vt8500, and tegra20 init functions for the new function prototype. Further tegra20 clean-ups are in follow-up commit. Signed-off-by: Rob Herring <rob.herring@calxeda.com> Cc: John Stultz <johnstul@us.ibm.com> Cc: Thomas Gleixner <tglx@linutronix.de> Reviewed-by: Stephen Warren <swarren@nvidia.com> Tested-by: Stephen Warren <swarren@nvidia.com> Acked-by: Arnd Bergmann <arnd@arndb.de> Acked-by: Tony Prisk <linux@prisktech.co.nz> Tested-by: Michal Simek <michal.simek@xilinx.com>
Diffstat (limited to 'drivers/clocksource/bcm2835_timer.c')
-rw-r--r--drivers/clocksource/bcm2835_timer.c12
1 files changed, 1 insertions, 11 deletions
diff --git a/drivers/clocksource/bcm2835_timer.c b/drivers/clocksource/bcm2835_timer.c
index 50c68fef944b..766611d29945 100644
--- a/drivers/clocksource/bcm2835_timer.c
+++ b/drivers/clocksource/bcm2835_timer.c
@@ -95,23 +95,13 @@ static irqreturn_t bcm2835_time_interrupt(int irq, void *dev_id)
95 } 95 }
96} 96}
97 97
98static struct of_device_id bcm2835_time_match[] __initconst = { 98static void __init bcm2835_timer_init(struct device_node *node)
99 { .compatible = "brcm,bcm2835-system-timer" },
100 {}
101};
102
103static void __init bcm2835_timer_init(void)
104{ 99{
105 struct device_node *node;
106 void __iomem *base; 100 void __iomem *base;
107 u32 freq; 101 u32 freq;
108 int irq; 102 int irq;
109 struct bcm2835_timer *timer; 103 struct bcm2835_timer *timer;
110 104
111 node = of_find_matching_node(NULL, bcm2835_time_match);
112 if (!node)
113 panic("No bcm2835 timer node");
114
115 base = of_iomap(node, 0); 105 base = of_iomap(node, 0);
116 if (!base) 106 if (!base)
117 panic("Can't remap registers"); 107 panic("Can't remap registers");