arm: DT autogeneration - Generate energy controller node

Adds Device Tree methods for the energy controller to allow for
DVFS simulations with automatically generated DTB files

Change-Id: Id8682f07dff1bbe63987e757faa0694e03ee86ab
Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com>
Reviewed-by: Curtis Dunham <curtis.dunham@arm.com>
Reviewed-on: https://gem5-review.googlesource.com/5966
Maintainer: Andreas Sandberg <andreas.sandberg@arm.com>
diff --git a/src/dev/arm/EnergyCtrl.py b/src/dev/arm/EnergyCtrl.py
index 4e504bf..571f941 100644
--- a/src/dev/arm/EnergyCtrl.py
+++ b/src/dev/arm/EnergyCtrl.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2012-2014 ARM Limited
+# Copyright (c) 2012-2014, 2016 ARM Limited
 # All rights reserved.
 #
 # The license below extends only to copyright in the software and shall
@@ -35,13 +35,23 @@
 #
 # Authors: Vasileios Spiliopoulos
 #          Akash Bagdia
+#          Glenn Bergmans
 
 from m5.params import *
 from m5.SimObject import SimObject
 from Device import BasicPioDevice
 from m5.proxy import *
+from m5.util.fdthelper import *
 
 class EnergyCtrl(BasicPioDevice):
     type = 'EnergyCtrl'
     cxx_header = "dev/arm/energy_ctrl.hh"
     dvfs_handler = Param.DVFSHandler(Parent.dvfs_handler, "DVFS handler")
+
+    def generateDeviceTree(self, state):
+        node = self.generateBasicPioDeviceNode(state, 'gem5_energy_ctrl',
+            self.pio_addr, 0x1000)
+
+        node.appendCompatible("arm,gem5-energy-ctrl")
+
+        yield node