From: Jean Pihet <j-pi...@ti.com>

A new config option CONFIG_OMAP_PM is defined. This option allows
for the whole OMAP2+ PM to completely enabled, disabled or be built
as modules.

The PM functionality is split into the following modules:
- omap_pm_debug
- omap2_pm
- omap3_pm
- omap4_pm

The following functionality is moved to the modules:
- platform specific PM core
- suspend
- cpuidle
- PM debug

The following functionality is needed at boot time and so is left
in the PM core code (i.e. not built as modules):
- PRCM
- clock domains
- power domains
- voltage domains
- hwmod
- smart reflex
- per-platform PRCM data
- per-platform clock data
- per-platform power domains data
- per-platform hwmod data
- per-platform OPP data

Signed-off-by: Jean Pihet <j-pi...@ti.com>
---
 arch/arm/mach-omap2/Makefile |   36 ++++++++++++++++++++++++++----------
 arch/arm/plat-omap/Kconfig   |    9 +++++++++
 2 files changed, 35 insertions(+), 10 deletions(-)

diff --git a/arch/arm/mach-omap2/Makefile b/arch/arm/mach-omap2/Makefile
index 0fe8a5b..29e0588 100644
--- a/arch/arm/mach-omap2/Makefile
+++ b/arch/arm/mach-omap2/Makefile
@@ -53,22 +53,38 @@ obj-$(CONFIG_ARCH_OMAP2)            += sdrc2xxx.o
 # Power Management
 #  Includes core PM, powerdomain, clockdomain, smartreflex, voltagedomain, OPP
 ifeq ($(CONFIG_PM),y)
-obj-$(CONFIG_ARCH_OMAP2)               += pm24xx.o
-obj-$(CONFIG_ARCH_OMAP2)               += sleep24xx.o pm_bus.o
-obj-$(CONFIG_ARCH_OMAP3)               += pm34xx.o sleep34xx.o \
-                                          cpuidle34xx.o pm_bus.o
-obj-$(CONFIG_ARCH_OMAP4)               += pm44xx.o pm_bus.o
-obj-$(CONFIG_PM_DEBUG)                 += pm-debug.o
+
+obj-y                                  += pm_bus.o
+ifeq ($(CONFIG_PM_VERBOSE),y)
+CFLAGS_pm_bus.o                                += -DDEBUG
+endif
+
+ifeq ($(CONFIG_PM_DEBUG),y)
+obj-$(CONFIG_OMAP_PM)                  += omap_pm_debug.o
+omap_pm_debug-y                                := pm-debug.o
+endif
+
+ifeq ($(CONFIG_ARCH_OMAP2),y)
+obj-$(CONFIG_OMAP_PM)                  += omap2_pm.o
+omap2_pm-y                             := pm24xx.o sleep24xx.o
+endif
+
+ifeq ($(CONFIG_ARCH_OMAP3),y)
+obj-$(CONFIG_OMAP_PM)                  += omap3_pm.o
+omap3_pm-y                             := pm34xx.o sleep34xx.o cpuidle34xx.o
+endif
+
+ifeq ($(CONFIG_ARCH_OMAP4),y)
+obj-$(CONFIG_OMAP_PM)                  += omap4_pm.o
+omap4_pm-y                             := pm44xx.o
+endif
+
 obj-$(CONFIG_OMAP_SMARTREFLEX)          += sr_device.o smartreflex.o
 obj-$(CONFIG_OMAP_SMARTREFLEX_CLASS3)  += smartreflex-class3.o
 
 AFLAGS_sleep24xx.o                     :=-Wa,-march=armv6
 AFLAGS_sleep34xx.o                     :=-Wa,-march=armv7-a$(plus_sec)
 
-ifeq ($(CONFIG_PM_VERBOSE),y)
-CFLAGS_pm_bus.o                                += -DDEBUG
-endif
-
 # OMAP voltage domains
 voltagedomain-common                   := voltage.o
 obj-$(CONFIG_ARCH_OMAP2)               += $(voltagedomain-common)
diff --git a/arch/arm/plat-omap/Kconfig b/arch/arm/plat-omap/Kconfig
index cd5f993..28154db 100644
--- a/arch/arm/plat-omap/Kconfig
+++ b/arch/arm/plat-omap/Kconfig
@@ -204,6 +204,15 @@ config OMAP_SERIAL_WAKE
          to data on the serial RX line. This allows you to wake the
          system from serial console.
 
+config OMAP_PM
+       tristate "OMAP PM support"
+       depends on ARCH_OMAP2PLUS && PM
+       default y
+       help
+         Select this option if you want to have OMAP2+ PM support enabled.
+         Can also be set to 'm' for the whole OMAP2+ PM to be built
+         as a module.
+
 choice
        prompt "OMAP PM layer selection"
        depends on ARCH_OMAP
-- 
1.7.4.1

--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to