@@ -52,6 +52,7 @@ obj-$(CONFIG_ARCH_OMAP2) += sleep24xx.o
obj-$(CONFIG_ARCH_OMAP3) += pm34xx.o sleep34xx.o cpuidle34xx.o
obj-$(CONFIG_PM_DEBUG) += pm-debug.o
obj-$(CONFIG_OMAP_SMARTREFLEX) += smartreflex.o
+obj-$(CONFIG_OMAP_SMARTREFLEX_CLASS3) += smartreflex-class3.o
AFLAGS_sleep24xx.o :=-Wa,-march=armv6
AFLAGS_sleep34xx.o :=-Wa,-march=armv7-a
new file mode 100644
@@ -0,0 +1,49 @@
+/*
+ * Smart reflex Class 3 specific implementations
+ *
+ * Copyright (C) 2009 Texas Instruments, Inc.
+ * Thara Gopinath <thara@ti.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ */
+
+#include "smartreflex.h"
+
+static int sr_class3_enable(int id)
+{
+ int target_opp_no = 0;
+ if (id == SR1)
+ target_opp_no = get_vdd1_opp();
+ else if (id == SR2)
+ target_opp_no = get_vdd2_opp();
+ if (!target_opp_no) {
+ pr_warning("Targetopp not known.Cannot enable SR%d\n", id);
+ return false;
+ }
+ return sr_enable(id, target_opp_no);
+}
+
+static int sr_class3_disable(int id)
+{
+ int target_opp_no = 0;
+ if (id == SR1)
+ target_opp_no = get_vdd1_opp();
+ else if (id == SR2)
+ target_opp_no = get_vdd2_opp();
+ sr_disable(id);
+ return true;
+}
+/* SR class3 structure */
+struct omap_smartreflex_class_data class3_data = {
+ .enable = sr_class3_enable,
+ .disable = sr_class3_disable,
+};
+
+static int __init sr_class3_init(void)
+{
+ omap_sr_register_class(&class3_data);
+ return 0;
+}
+late_initcall(sr_class3_init);
@@ -54,7 +54,7 @@ config OMAP_DEBUG_LEDS
config OMAP_SMARTREFLEX
bool "SmartReflex support"
- depends on ARCH_OMAP3 && TWL4030_CORE && PM
+ depends on ARCH_OMAP3 && PM
help
Say Y if you want to enable SmartReflex.
@@ -69,6 +69,15 @@ config OMAP_SMARTREFLEX
compensation for VDD1 and VDD2, user must write 1 to
/sys/power/sr_vddX_autocomp, where X is 1 or 2.
+config OMAP_SMARTREFLEX_CLASS3
+ bool "Class 3 mode of Smartreflex Implementation"
+ depends on OMAP_SMARTREFLEX && TWL4030_CORE
+ help
+ Say Y to enable Class 3 implementation of Smartreflex
+
+ Class 3 implementation of Smartreflex employs continuous hardware
+ voltage caliberation.
+
config OMAP_SMARTREFLEX_TESTING
bool "Smartreflex testing support"
depends on OMAP_SMARTREFLEX