aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/mfd/dbx500-prcmu.h
diff options
context:
space:
mode:
authorLinus Walleij <linus.walleij@linaro.org>2013-03-19 10:36:12 -0400
committerLinus Walleij <linus.walleij@linaro.org>2013-04-08 07:57:53 -0400
commit1e22a8c614a5d8c29d0882de21ce327673b71fca (patch)
treedf7f070611f123bd6e1c0cf47f8888f8aeac3d67 /include/linux/mfd/dbx500-prcmu.h
parentb047d98127ccbf9fe83b6192a3562b3ead0b2415 (diff)
ARM: ux500: move PM-related PRCMU functions to machine
We are trying to decompose and decentralize the code in the DB8500 PRCMU out into subdrivers. The code moved in this patch concerns a group of functions used for decoupling and recoupling the IRQs from the GIC. During sleep and idle the Ux500 system will transfer all IRQ handling to the PRCMU using these functions. Basically we are left with the two alternatives of code placement as: - arch/arm/mach-ux500/pm.c - this because the code is closely related to the GIC, and takes ownership of some of the registers from the PRCMU related to this PM functionality. - drivers/mfd/db8500-prcmu-pm.c - because the code is affecting stuff in the PRCMU register range. But then this code needs to remap and handle GIC registers. This patch implementation is taking the first approach. Currently the cpuidle driver is the only piece of code using this set of functions, but it will later also be used by the suspend/resume code which is currently under review. The header file is moved to: <linux/platform_data/arm-ux500-pm.h> The function prototypes need to be placed in a globally visible header since the CPUidle code is planned to move out to drivers/cpuidle. Acked-by: Samuel Ortiz <sameo@linux.intel.com> Acked-by: Rickard Andersson <rickard.andersson@stericsson.com> Acked-by: Daniel Lezcano <daniel.lezcano@linaro.org> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Diffstat (limited to 'include/linux/mfd/dbx500-prcmu.h')
-rw-r--r--include/linux/mfd/dbx500-prcmu.h30
1 files changed, 0 insertions, 30 deletions
diff --git a/include/linux/mfd/dbx500-prcmu.h b/include/linux/mfd/dbx500-prcmu.h
index 8c546cbcb9a6..fc43cecc9449 100644
--- a/include/linux/mfd/dbx500-prcmu.h
+++ b/include/linux/mfd/dbx500-prcmu.h
@@ -293,36 +293,6 @@ static inline u8 prcmu_get_power_state_result(void)
293 return db8500_prcmu_get_power_state_result(); 293 return db8500_prcmu_get_power_state_result();
294} 294}
295 295
296static inline int prcmu_gic_decouple(void)
297{
298 return db8500_prcmu_gic_decouple();
299}
300
301static inline int prcmu_gic_recouple(void)
302{
303 return db8500_prcmu_gic_recouple();
304}
305
306static inline bool prcmu_gic_pending_irq(void)
307{
308 return db8500_prcmu_gic_pending_irq();
309}
310
311static inline bool prcmu_is_cpu_in_wfi(int cpu)
312{
313 return db8500_prcmu_is_cpu_in_wfi(cpu);
314}
315
316static inline int prcmu_copy_gic_settings(void)
317{
318 return db8500_prcmu_copy_gic_settings();
319}
320
321static inline bool prcmu_pending_irq(void)
322{
323 return db8500_prcmu_pending_irq();
324}
325
326static inline int prcmu_set_epod(u16 epod_id, u8 epod_state) 296static inline int prcmu_set_epod(u16 epod_id, u8 epod_state)
327{ 297{
328 return db8500_prcmu_set_epod(epod_id, epod_state); 298 return db8500_prcmu_set_epod(epod_id, epod_state);