diff options
author | Olof Johansson <olof@lixom.net> | 2012-09-29 16:07:34 -0400 |
---|---|---|
committer | Olof Johansson <olof@lixom.net> | 2012-09-29 16:07:34 -0400 |
commit | ad932bb6b549722a561fb31ac2fa50dcbcb3e36b (patch) | |
tree | 66cde27bd288e011a6e4cff87d342666399a1266 /arch/arm/mach-omap2/clockdomain.h | |
parent | 5698bd757d55b1bb87edd1a9744ab09c142abfc2 (diff) | |
parent | 9cd68fa707cf6372f33eb51a5719dd7626efe5f6 (diff) |
Merge tag 'omap-devel-late-for-v3.7' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap into late/soc
These changes take us a step closer to merging the common clock
framework for omap but unfortunately these patches were not
ready for merging earlier. See also the notes below on the
dependencies these patches have, they are based on a merge
of sereral branches already merged.
From Paul Walmsley <paul@pwsan.com>:
OMAP patches intended for the 3.7 merge window:
- Runtime PM conversions for the GPMC and RNG IP blocks
- Preparation patches for the OMAP common clock framework conversion
- clkdev alias additions required by other drivers
- Performance Monitoring Unit (PMU) support for OMAP2, 3, and non-4430 OMAP4
- OMAP hwmod code and data improvements
- Preparation patches for the IOMMU runtime PM conversion
- Preparation patches for OMAP4 full-chip retention support
Based on a merge of v3.6-rc6, the omap-cleanup-b-for-3.7 tag
(7852ec0536ca39cefffc6301dc77f8ae55592926),the cleanup-fixes-for-v3.7
tag (de6ca33a96a6bf61fcb91d3d399703e19ead9d1e), and the
omap-devel-am33xx-for-v3.7 tag
(11964f53eb4d9ce59a058be9999d9cfcb1ced878), due to dependencies.
* tag 'omap-devel-late-for-v3.7' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap: (281 commits)
ARM: OMAP4460/4470: PMU: Enable PMU for OMAP4460/70
ARM: OMAP2+: PMU: Add runtime PM support
ARM: OMAP4430: PMU: prepare to create PMU device via HWMOD
ARM: OMAP2+: PMU: Convert OMAP2/3 devices to use HWMOD
ARM: OMAP3: hwmod data: Add debugss HWMOD data
ARM: OMAP2+: clockdomain/hwmod: add workaround for EMU clockdomain idle problems
ARM: OMAP: Add a timer attribute for timers that can interrupt the DSP
hwrng: OMAP: remove SoC restrictions from driver registration
ARM: OMAP: split OMAP1, OMAP2+ RNG device registration
hwrng: OMAP: convert to use runtime PM
hwrng: OMAP: store per-device data in per-device variables, not file statics
ARM: OMAP2xxx: hwmod/CM: add RNG integration data
ARM: OMAP2+: gpmc: minimal driver support
ARM: OMAP2+: gpmc: Adapt to HWMOD
ARM: OMAP2/3: hwmod data: add gpmc
ARM: OMAP4: hwmod data: add mmu hwmod for ipu and dsp
ARM: OMAP3: hwmod data: add mmu data for iva and isp
ARM: OMAP: iommu: fix including iommu.h without IOMMU_API selected
ARM: OMAP4: hwmod data: add missing HWMOD_NO_IDLEST flags to some PRCM IP blocks
ARM: OMAP4: hwmod data: make *phy_48m* as the main_clk of ocp2scp
...
Diffstat (limited to 'arch/arm/mach-omap2/clockdomain.h')
-rw-r--r-- | arch/arm/mach-omap2/clockdomain.h | 20 |
1 files changed, 17 insertions, 3 deletions
diff --git a/arch/arm/mach-omap2/clockdomain.h b/arch/arm/mach-omap2/clockdomain.h index 5601dc13785e..629576be7444 100644 --- a/arch/arm/mach-omap2/clockdomain.h +++ b/arch/arm/mach-omap2/clockdomain.h | |||
@@ -1,9 +1,7 @@ | |||
1 | /* | 1 | /* |
2 | * arch/arm/plat-omap/include/mach/clockdomain.h | ||
3 | * | ||
4 | * OMAP2/3 clockdomain framework functions | 2 | * OMAP2/3 clockdomain framework functions |
5 | * | 3 | * |
6 | * Copyright (C) 2008 Texas Instruments, Inc. | 4 | * Copyright (C) 2008, 2012 Texas Instruments, Inc. |
7 | * Copyright (C) 2008-2011 Nokia Corporation | 5 | * Copyright (C) 2008-2011 Nokia Corporation |
8 | * | 6 | * |
9 | * Paul Walmsley | 7 | * Paul Walmsley |
@@ -34,6 +32,20 @@ | |||
34 | * CLKDM_ACTIVE_WITH_MPU: The PRCM guarantees that this clockdomain is | 32 | * CLKDM_ACTIVE_WITH_MPU: The PRCM guarantees that this clockdomain is |
35 | * active whenever the MPU is active. True for interconnects and | 33 | * active whenever the MPU is active. True for interconnects and |
36 | * the WKUP clockdomains. | 34 | * the WKUP clockdomains. |
35 | * CLKDM_MISSING_IDLE_REPORTING: The idle status of the IP blocks and | ||
36 | * clocks inside this clockdomain are not taken into account by | ||
37 | * the PRCM when determining whether the clockdomain is idle. | ||
38 | * Without this flag, if the clockdomain is set to | ||
39 | * hardware-supervised idle mode, the PRCM may transition the | ||
40 | * enclosing powerdomain to a low power state, even when devices | ||
41 | * inside the clockdomain and powerdomain are in use. (An example | ||
42 | * of such a clockdomain is the EMU clockdomain on OMAP3/4.) If | ||
43 | * this flag is set, and the clockdomain does not support the | ||
44 | * force-sleep mode, then the HW_AUTO mode will be used to put the | ||
45 | * clockdomain to sleep. Similarly, if the clockdomain supports | ||
46 | * the force-wakeup mode, then it will be used whenever a clock or | ||
47 | * IP block inside the clockdomain is active, rather than the | ||
48 | * HW_AUTO mode. | ||
37 | */ | 49 | */ |
38 | #define CLKDM_CAN_FORCE_SLEEP (1 << 0) | 50 | #define CLKDM_CAN_FORCE_SLEEP (1 << 0) |
39 | #define CLKDM_CAN_FORCE_WAKEUP (1 << 1) | 51 | #define CLKDM_CAN_FORCE_WAKEUP (1 << 1) |
@@ -41,6 +53,7 @@ | |||
41 | #define CLKDM_CAN_DISABLE_AUTO (1 << 3) | 53 | #define CLKDM_CAN_DISABLE_AUTO (1 << 3) |
42 | #define CLKDM_NO_AUTODEPS (1 << 4) | 54 | #define CLKDM_NO_AUTODEPS (1 << 4) |
43 | #define CLKDM_ACTIVE_WITH_MPU (1 << 5) | 55 | #define CLKDM_ACTIVE_WITH_MPU (1 << 5) |
56 | #define CLKDM_MISSING_IDLE_REPORTING (1 << 6) | ||
44 | 57 | ||
45 | #define CLKDM_CAN_HWSUP (CLKDM_CAN_ENABLE_AUTO | CLKDM_CAN_DISABLE_AUTO) | 58 | #define CLKDM_CAN_HWSUP (CLKDM_CAN_ENABLE_AUTO | CLKDM_CAN_DISABLE_AUTO) |
46 | #define CLKDM_CAN_SWSUP (CLKDM_CAN_FORCE_SLEEP | CLKDM_CAN_FORCE_WAKEUP) | 59 | #define CLKDM_CAN_SWSUP (CLKDM_CAN_FORCE_SLEEP | CLKDM_CAN_FORCE_WAKEUP) |
@@ -187,6 +200,7 @@ int clkdm_clear_all_sleepdeps(struct clockdomain *clkdm); | |||
187 | void clkdm_allow_idle(struct clockdomain *clkdm); | 200 | void clkdm_allow_idle(struct clockdomain *clkdm); |
188 | void clkdm_deny_idle(struct clockdomain *clkdm); | 201 | void clkdm_deny_idle(struct clockdomain *clkdm); |
189 | bool clkdm_in_hwsup(struct clockdomain *clkdm); | 202 | bool clkdm_in_hwsup(struct clockdomain *clkdm); |
203 | bool clkdm_missing_idle_reporting(struct clockdomain *clkdm); | ||
190 | 204 | ||
191 | int clkdm_wakeup(struct clockdomain *clkdm); | 205 | int clkdm_wakeup(struct clockdomain *clkdm); |
192 | int clkdm_sleep(struct clockdomain *clkdm); | 206 | int clkdm_sleep(struct clockdomain *clkdm); |