blob: 59eaa9546243ac2da96b70c0b0d1d5c119b7a7f2 [file] [log] [blame]
/*
* Copyright (C) 2013 Broadcom Corporation
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License as
* published by the Free Software Foundation version 2.
*
* This program is distributed "as is" WITHOUT ANY WARRANTY of any
* kind, whether express or implied; without even the implied warranty
* of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
#ifndef __BRCMSTB_H__
#define __BRCMSTB_H__
#if !defined(__ASSEMBLY__)
#include <linux/smp.h>
#endif
#if !defined(__ASSEMBLY__)
extern void brcmstb_secondary_startup(void);
extern void brcmstb_cpu_boot(unsigned int cpu);
extern void brcmstb_cpu_power_on(unsigned int cpu);
extern int brcmstb_cpu_get_power_state(unsigned int cpu);
extern struct smp_operations brcmstb_smp_ops;
#if defined(CONFIG_HOTPLUG_CPU)
extern void brcmstb_cpu_die(unsigned int cpu);
extern int brcmstb_cpu_kill(unsigned int cpu);
void __init brcmstb_cpu_ctrl_setup(unsigned int max_cpus);
#else
static inline void brcmstb_cpu_die(unsigned int cpu) {}
static inline int brcmstb_cpu_kill(unsigned int cpu)
{
return 0;
}
static inline void __init brcmstb_cpu_ctrl_setup(unsigned int max_cpus) {}
#endif
#ifdef CONFIG_CMA
extern void __init cma_reserve(void);
extern void __init cma_register(void);
#else
static inline void cma_reserve(void) { }
static inline void cma_register(void) { }
#endif
#endif
#ifdef CONFIG_PM
int brcmstb_regsave_init(void);
int brcmstb_pm_init(void);
#else
static inline int brcmstb_pm_init(void)
{
return 0;
}
static inline int brcmstb_regsave_init(void)
{
return 0;
}
#endif /* CONFIG_PM */
extern void brcmstb_hook_fault_code(void);
void brcmstb_irq0_init(void);
#endif /* __BRCMSTB_H__ */