diff options
author | Mattias Nilsson <mattias.i.nilsson@stericsson.com> | 2012-01-13 10:20:43 -0500 |
---|---|---|
committer | Samuel Ortiz <sameo@linux.intel.com> | 2012-03-06 12:46:33 -0500 |
commit | 4d64d2e34bc415b05eb77a2732a3164313cf6de3 (patch) | |
tree | f4331b9e59754a52f83cfc79b6ca1547861a1a89 /include/linux/mfd/db8500-prcmu.h | |
parent | 992b133a5d85ced4ff0fbdab22e9196cf571e0c9 (diff) |
mfd: db8500 OPP and sleep handling update
This updates the operating point handling code by:
- Supporting the DDR OPP retention state.
- Supporting another low operating point named
APE_50_PARTLY_25_OPP
- Adding an interface to figure out if the sleep state change
was properly achieved.
Signed-off-by: Shreshtha Kumar Sahu <shreshthakumar.sahu@stericsson.com>
Signed-off-by: Rabin Vincent <rabin.vincent@stericsson.com>
Signed-off-by: Mattias Nilsson <mattias.i.nilsson@stericsson.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
Diffstat (limited to 'include/linux/mfd/db8500-prcmu.h')
-rw-r--r-- | include/linux/mfd/db8500-prcmu.h | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/include/linux/mfd/db8500-prcmu.h b/include/linux/mfd/db8500-prcmu.h index c5028f1246fc..841342c55451 100644 --- a/include/linux/mfd/db8500-prcmu.h +++ b/include/linux/mfd/db8500-prcmu.h | |||
@@ -457,6 +457,25 @@ enum hw_acc_dev { | |||
457 | NUM_HW_ACC | 457 | NUM_HW_ACC |
458 | }; | 458 | }; |
459 | 459 | ||
460 | /** | ||
461 | * enum prcmu_power_status - results from set_power_state | ||
462 | * @PRCMU_SLEEP_OK: Sleep went ok | ||
463 | * @PRCMU_DEEP_SLEEP_OK: DeepSleep went ok | ||
464 | * @PRCMU_IDLE_OK: Idle went ok | ||
465 | * @PRCMU_DEEPIDLE_OK: DeepIdle went ok | ||
466 | * @PRCMU_PRCMU2ARMPENDINGIT_ER: Pending interrupt detected | ||
467 | * @PRCMU_ARMPENDINGIT_ER: Pending interrupt detected | ||
468 | * | ||
469 | */ | ||
470 | enum prcmu_power_status { | ||
471 | PRCMU_SLEEP_OK = 0xf3, | ||
472 | PRCMU_DEEP_SLEEP_OK = 0xf6, | ||
473 | PRCMU_IDLE_OK = 0xf0, | ||
474 | PRCMU_DEEPIDLE_OK = 0xe3, | ||
475 | PRCMU_PRCMU2ARMPENDINGIT_ER = 0x91, | ||
476 | PRCMU_ARMPENDINGIT_ER = 0x93, | ||
477 | }; | ||
478 | |||
460 | /* | 479 | /* |
461 | * Definitions for autonomous power management configuration. | 480 | * Definitions for autonomous power management configuration. |
462 | */ | 481 | */ |
@@ -544,6 +563,7 @@ int db8500_prcmu_load_a9wdog(u8 id, u32 val); | |||
544 | 563 | ||
545 | void db8500_prcmu_system_reset(u16 reset_code); | 564 | void db8500_prcmu_system_reset(u16 reset_code); |
546 | int db8500_prcmu_set_power_state(u8 state, bool keep_ulp_clk, bool keep_ap_pll); | 565 | int db8500_prcmu_set_power_state(u8 state, bool keep_ulp_clk, bool keep_ap_pll); |
566 | u8 db8500_prcmu_get_power_state_result(void); | ||
547 | void db8500_prcmu_enable_wakeups(u32 wakeups); | 567 | void db8500_prcmu_enable_wakeups(u32 wakeups); |
548 | int db8500_prcmu_set_epod(u16 epod_id, u8 epod_state); | 568 | int db8500_prcmu_set_epod(u16 epod_id, u8 epod_state); |
549 | int db8500_prcmu_request_clock(u8 clock, bool enable); | 569 | int db8500_prcmu_request_clock(u8 clock, bool enable); |
@@ -699,6 +719,11 @@ static inline int db8500_prcmu_set_power_state(u8 state, bool keep_ulp_clk, | |||
699 | return 0; | 719 | return 0; |
700 | } | 720 | } |
701 | 721 | ||
722 | static inline u8 db8500_prcmu_get_power_state_result(void) | ||
723 | { | ||
724 | return 0; | ||
725 | } | ||
726 | |||
702 | static inline void db8500_prcmu_enable_wakeups(u32 wakeups) {} | 727 | static inline void db8500_prcmu_enable_wakeups(u32 wakeups) {} |
703 | 728 | ||
704 | static inline int db8500_prcmu_set_epod(u16 epod_id, u8 epod_state) | 729 | static inline int db8500_prcmu_set_epod(u16 epod_id, u8 epod_state) |