]> rtime.felk.cvut.cz Git - linux-imx.git/blobdiff - arch/arm/mach-mx25/bus_freq.c
linux-2.6.35.3-fsl-10.3.2.txt.gz patch applied
[linux-imx.git] / arch / arm / mach-mx25 / bus_freq.c
diff --git a/arch/arm/mach-mx25/bus_freq.c b/arch/arm/mach-mx25/bus_freq.c
new file mode 100644 (file)
index 0000000..9c98e9f
--- /dev/null
@@ -0,0 +1,102 @@
+/*
+ * Copyright (C) 2009-2010 Freescale Semiconductor, Inc. All Rights Reserved.
+ */
+
+/*
+ * The code contained herein is licensed under the GNU General Public
+ * License. You may obtain a copy of the GNU General Public License
+ * Version 2 or later at the following locations:
+ *
+ * http://www.opensource.org/licenses/gpl-license.html
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+
+/*!
+ * @file bus_freq.c
+ *
+ * @brief A common API for the Freescale Semiconductor i.MXC CPUfreq module
+ * and DVFS CORE module.
+ *
+ * The APIs are for setting bus frequency to low or high.
+ *
+ * @ingroup PM
+ */
+
+#include <linux/proc_fs.h>
+#include <linux/clk.h>
+#include <linux/delay.h>
+#include <linux/platform_device.h>
+#include <mach/clock.h>
+#include <mach/hardware.h>
+
+int low_bus_freq_mode;
+int high_bus_freq_mode;
+char *gp_reg_id = "REG3_CORE";
+
+int set_low_bus_freq(void)
+{
+       return 0;
+}
+
+int set_high_bus_freq(int high_bus_freq)
+{
+       return 0;
+}
+
+int low_freq_bus_used(void)
+{
+       return 0;
+}
+
+/*!
+ * This is the probe routine for the bus frequency driver.
+ *
+ * @param   pdev   The platform device structure
+ *
+ * @return         The function returns 0 on success
+ *
+ */
+static int __devinit busfreq_probe(struct platform_device *pdev)
+{
+       low_bus_freq_mode = 0;
+       high_bus_freq_mode = 0;
+
+       return 0;
+}
+
+static struct platform_driver busfreq_driver = {
+       .driver = {
+                  .name = "busfreq",
+                  },
+       .probe = busfreq_probe,
+};
+
+/*!
+ * Initialise the busfreq_driver.
+ *
+ * @return  The function always returns 0.
+ */
+
+static int __init busfreq_init(void)
+{
+       if (platform_driver_register(&busfreq_driver) != 0) {
+               printk(KERN_ERR "busfreq_driver register failed\n");
+               return -ENODEV;
+       }
+
+       printk(KERN_INFO "Bus freq driver module loaded\n");
+       return 0;
+}
+
+static void __exit busfreq_cleanup(void)
+{
+       /* Unregister the device structure */
+       platform_driver_unregister(&busfreq_driver);
+}
+
+module_init(busfreq_init);
+module_exit(busfreq_cleanup);
+
+MODULE_AUTHOR("Freescale Semiconductor, Inc.");
+MODULE_DESCRIPTION("BusFreq driver");
+MODULE_LICENSE("GPL");