aboutsummaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorSebastian Andrzej Siewior <bigeasy@linutronix.de>2011-02-22 15:07:41 -0500
committerThomas Gleixner <tglx@linutronix.de>2011-02-23 16:27:53 -0500
commitffb9fc68dff38f811eeb24c15aba0418b6a8ee53 (patch)
tree6292fde3f85656584c4a96d53b9f3f2ac7d91c0a /arch
parent3879a6f32948330782889cebc4d74c4f2316c676 (diff)
x86: dtb: Add device tree support for HPET
Set hpet_address based on information provied form DTB Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Acked-by: Grant Likely <grant.likely@secretlab.ca> Cc: sodaville@linutronix.de Cc: devicetree-discuss@lists.ozlabs.org Cc: Dirk Brandewie <dirk.brandewie@gmail.com> LKML-Reference: <1298405266-1624-7-git-send-email-bigeasy@linutronix.de> Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Diffstat (limited to 'arch')
-rw-r--r--arch/x86/kernel/devicetree.c19
1 files changed, 19 insertions, 0 deletions
diff --git a/arch/x86/kernel/devicetree.c b/arch/x86/kernel/devicetree.c
index 2739d5613a38..dbb3bda40af9 100644
--- a/arch/x86/kernel/devicetree.c
+++ b/arch/x86/kernel/devicetree.c
@@ -11,6 +11,7 @@
11#include <linux/of_platform.h> 11#include <linux/of_platform.h>
12#include <linux/slab.h> 12#include <linux/slab.h>
13 13
14#include <asm/hpet.h>
14#include <asm/irq_controller.h> 15#include <asm/irq_controller.h>
15#include <asm/apic.h> 16#include <asm/apic.h>
16 17
@@ -98,6 +99,23 @@ void __init add_dtb(u64 data)
98 initial_dtb = data + offsetof(struct setup_data, data); 99 initial_dtb = data + offsetof(struct setup_data, data);
99} 100}
100 101
102static void __init dtb_setup_hpet(void)
103{
104 struct device_node *dn;
105 struct resource r;
106 int ret;
107
108 dn = of_find_compatible_node(NULL, NULL, "intel,ce4100-hpet");
109 if (!dn)
110 return;
111 ret = of_address_to_resource(dn, 0, &r);
112 if (ret) {
113 WARN_ON(1);
114 return;
115 }
116 hpet_address = r.start;
117}
118
101static void __init dtb_lapic_setup(void) 119static void __init dtb_lapic_setup(void)
102{ 120{
103#ifdef CONFIG_X86_LOCAL_APIC 121#ifdef CONFIG_X86_LOCAL_APIC
@@ -197,5 +215,6 @@ void __init x86_dtb_get_config(unsigned int unused)
197 of_scan_flat_dt(early_init_dt_scan_root, NULL); 215 of_scan_flat_dt(early_init_dt_scan_root, NULL);
198 216
199 unflatten_device_tree(); 217 unflatten_device_tree();
218 dtb_setup_hpet();
200 dtb_apic_setup(); 219 dtb_apic_setup();
201} 220}