mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-11-01 17:08:10 +00:00
1e22a8c614
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>
21 lines
586 B
C
21 lines
586 B
C
/*
|
|
* Copyright (C) ST-Ericsson SA 2010-2013
|
|
* Author: Rickard Andersson <rickard.andersson@stericsson.com> for
|
|
* ST-Ericsson.
|
|
* Author: Daniel Lezcano <daniel.lezcano@linaro.org> for Linaro.
|
|
* License terms: GNU General Public License (GPL) version 2
|
|
*
|
|
*/
|
|
|
|
#ifndef ARM_UX500_PM_H
|
|
#define ARM_UX500_PM_H
|
|
|
|
int prcmu_gic_decouple(void);
|
|
int prcmu_gic_recouple(void);
|
|
bool prcmu_gic_pending_irq(void);
|
|
bool prcmu_pending_irq(void);
|
|
bool prcmu_is_cpu_in_wfi(int cpu);
|
|
int prcmu_copy_gic_settings(void);
|
|
void ux500_pm_init(u32 phy_base, u32 size);
|
|
|
|
#endif /* ARM_UX500_PM_H */
|