add fan control
diff --git a/bin/fan_control.py b/bin/fan_control.py
new file mode 100755
index 0000000..87dc7a9
--- /dev/null
+++ b/bin/fan_control.py
@@ -0,0 +1,57 @@
+#!/usr/bin/python -u
+
+import sys
+#from gi.repository import GObject
+import gobject
+import dbus
+import dbus.service
+import dbus.mainloop.glib
+import Openbmc
+
+DBUS_NAME = 'org.openbmc.control.Fans'
+OBJ_PATH = '/org/openbmc/control/fans'
+IFACE_NAME = 'org.openbmc.control.Fans'
+
+FAN_BUS = 'org.openbmc.sensors.hwmon'
+FAN_OBJS = [
+	'/org/openbmc/sensors/speed/fan1',
+	'/org/openbmc/sensors/speed/fan2',
+	'/org/openbmc/sensors/speed/fan3',
+	'/org/openbmc/sensors/speed/fan4',
+	'/org/openbmc/sensors/speed/fan5',
+	'/org/openbmc/sensors/speed/fan6',
+]
+FAN_IFACE = 'org.openbmc.SensorValue'
+
+class FanControl(Openbmc.DbusProperties):
+	def __init__(self,bus,name):
+		Openbmc.DbusProperties.__init__(self)
+		dbus.service.Object.__init__(self,bus,name)
+		self.ObjectAdded(name,IFACE_NAME)
+		self.Set(IFACE_NAME,"floor",250)
+		self.Set(IFACE_NAME,"ceiling",255)
+		self.fan_intf = []
+		## create interface proxies to all fans
+		for fan in FAN_OBJS:
+			print "Initializing fan: "+fan
+			obj = bus.get_object(FAN_BUS,fan)
+			fan_intf.append(dbus.Interface(obj,FAN_IFACE))
+				
+	def setMax(self):
+		print "Setting fans to max"
+		for intf in self.fan_intf:
+			intf.setValue(dbus.UInt32(255))
+		
+
+if __name__ == '__main__':
+	
+	dbus.mainloop.glib.DBusGMainLoop(set_as_default=True)
+	bus = Openbmc.getDBus()
+	name = dbus.service.BusName(DBUS_NAME,bus)
+	fan_control = FanControl(bus,OBJ_PATH)
+	mainloop = gobject.MainLoop()
+   
+	print "Starting fan control"
+	fan_control.setMax()
+	mainloop.run()
+