aboutsummaryrefslogtreecommitdiff
path: root/arch/arm/mach-ux500/include
diff options
context:
space:
mode:
Diffstat (limited to 'arch/arm/mach-ux500/include')
-rw-r--r--arch/arm/mach-ux500/include/mach/prcmu-db5500.h10
-rw-r--r--arch/arm/mach-ux500/include/mach/prcmu-db8500.h9
-rw-r--r--arch/arm/mach-ux500/include/mach/prcmu.h28
3 files changed, 30 insertions, 17 deletions
diff --git a/arch/arm/mach-ux500/include/mach/prcmu-db5500.h b/arch/arm/mach-ux500/include/mach/prcmu-db5500.h
index 97f0f5e7e68..3f31bef433a 100644
--- a/arch/arm/mach-ux500/include/mach/prcmu-db5500.h
+++ b/arch/arm/mach-ux500/include/mach/prcmu-db5500.h
@@ -25,9 +25,7 @@ int prcmu_resetout(u8 resoutn, u8 state);
int db5500_prcmu_set_power_state(u8 state, bool keep_ulp_clk,
bool keep_ap_pll);
int db5500_prcmu_config_esram0_deep_sleep(u8 state);
-
-static inline void db5500_prcmu_system_reset(u16 reset_code) {}
-
+void db5500_prcmu_system_reset(u16 reset_code);
u16 db5500_prcmu_get_reset_code(void);
bool db5500_prcmu_is_ac_wake_requested(void);
int db5500_prcmu_set_arm_opp(u8 opp);
@@ -35,9 +33,7 @@ int db5500_prcmu_get_arm_opp(void);
#else /* !CONFIG_UX500_SOC_DB5500 */
-static inline void db5500_prcmu_early_init(void)
-{
-}
+static inline void db5500_prcmu_early_init(void) {}
static inline int db5500_prcmu_abb_read(u8 slave, u8 reg, u8 *value, u8 size)
{
@@ -95,6 +91,8 @@ static inline int db5500_prcmu_set_power_state(u8 state, bool keep_ulp_clk,
return 0;
}
+static inline void db5500_prcmu_system_reset(u16 reset_code) {}
+
static inline u16 db5500_prcmu_get_reset_code(void)
{
return 0;
diff --git a/arch/arm/mach-ux500/include/mach/prcmu-db8500.h b/arch/arm/mach-ux500/include/mach/prcmu-db8500.h
index 4545fb9b2cb..458ae2aaa44 100644
--- a/arch/arm/mach-ux500/include/mach/prcmu-db8500.h
+++ b/arch/arm/mach-ux500/include/mach/prcmu-db8500.h
@@ -157,6 +157,8 @@ enum ap_pwrst {
#ifdef CONFIG_UX500_SOC_DB8500
+void db8500_prcmu_early_init(void);
+
bool prcmu_is_u8400(void);
int prcmu_request_ape_opp_100_voltage(bool enable);
@@ -211,6 +213,8 @@ int db8500_prcmu_get_arm_opp(void);
#else /* !CONFIG_UX500_SOC_DB8500 */
+static inline void db8500_prcmu_early_init(void) {}
+
static inline bool prcmu_is_u8400(void)
{
return false;
@@ -339,6 +343,11 @@ static inline void db8500_prcmu_config_abb_event_readout(u32 abb_events) {}
static inline void db8500_prcmu_get_abb_event_buffer(void __iomem **buf) {}
+static inline u16 db8500_prcmu_get_reset_code(void)
+{
+ return 0;
+}
+
static inline int prcmu_config_a9wdog(u8 num, bool sleep_auto_off)
{
return 0;
diff --git a/arch/arm/mach-ux500/include/mach/prcmu.h b/arch/arm/mach-ux500/include/mach/prcmu.h
index 802daf8f060..e3ee37fa872 100644
--- a/arch/arm/mach-ux500/include/mach/prcmu.h
+++ b/arch/arm/mach-ux500/include/mach/prcmu.h
@@ -227,6 +227,14 @@ enum ddr_pwrst {
#if defined(CONFIG_UX500_SOC_DB8500) || defined(CONFIG_UX500_SOC_DB5500)
+static inline void __init prcmu_early_init(void)
+{
+ if (machine_is_u5500())
+ return db5500_prcmu_early_init();
+ else
+ return db8500_prcmu_early_init();
+}
+
static inline int prcmu_set_power_state(u8 state, bool keep_ulp_clk,
bool keep_ap_pll)
{
@@ -317,7 +325,13 @@ static inline void prcmu_system_reset(u16 reset_code)
return db8500_prcmu_system_reset(reset_code);
}
-u16 prcmu_get_reset_code(void);
+static inline u16 prcmu_get_reset_code(void)
+{
+ if (machine_is_u5500())
+ return db5500_prcmu_get_reset_code();
+ else
+ return db8500_prcmu_get_reset_code();
+}
void prcmu_ac_wake_req(void);
void prcmu_ac_sleep_req(void);
@@ -363,6 +377,8 @@ static inline int prcmu_config_esram0_deep_sleep(u8 state)
}
#else
+static inline void __init prcmu_early_init(void) {}
+
static inline int prcmu_set_power_state(u8 state, bool keep_ulp_clk,
bool keep_ap_pll)
{
@@ -475,14 +491,4 @@ static inline void prcmu_get_abb_event_buffer(void __iomem **buf)
#endif
-#if defined(CONFIG_UX500_SOC_DB8500)
-
-void __init prcmu_early_init(void);
-
-#else
-
-static inline void __init prcmu_early_init(void) {}
-
-#endif
-
#endif /* __MACH_PRCMU_H */