1b2441318SGreg Kroah-Hartman /* SPDX-License-Identifier: GPL-2.0 */
255190f88SBenjamin Herrenschmidt #ifndef _POWERNV_H
355190f88SBenjamin Herrenschmidt #define _POWERNV_H
455190f88SBenjamin Herrenschmidt 
555190f88SBenjamin Herrenschmidt #ifdef CONFIG_SMP
655190f88SBenjamin Herrenschmidt extern void pnv_smp_init(void);
755190f88SBenjamin Herrenschmidt #else
855190f88SBenjamin Herrenschmidt static inline void pnv_smp_init(void) { }
955190f88SBenjamin Herrenschmidt #endif
1055190f88SBenjamin Herrenschmidt 
11b746e3e0SNicholas Piggin extern void pnv_platform_error_reboot(struct pt_regs *regs, const char *msg) __noreturn;
12b746e3e0SNicholas Piggin 
13cd15b048SBenjamin Herrenschmidt struct pci_dev;
14cd15b048SBenjamin Herrenschmidt 
1561305a96SBenjamin Herrenschmidt #ifdef CONFIG_PCI
1661305a96SBenjamin Herrenschmidt extern void pnv_pci_init(void);
1773ed148aSBenjamin Herrenschmidt extern void pnv_pci_shutdown(void);
1861305a96SBenjamin Herrenschmidt #else
1961305a96SBenjamin Herrenschmidt static inline void pnv_pci_init(void) { }
2073ed148aSBenjamin Herrenschmidt static inline void pnv_pci_shutdown(void) { }
2161305a96SBenjamin Herrenschmidt #endif
2261305a96SBenjamin Herrenschmidt 
238eb8ac89SShreyas B. Prabhu extern u32 pnv_get_supported_cpuidle_states(void);
248eb8ac89SShreyas B. Prabhu 
253fafe9c2SBenjamin Herrenschmidt extern void pnv_lpc_init(void);
263fafe9c2SBenjamin Herrenschmidt 
2756c0b48bSNicholas Piggin extern void opal_handle_events(void);
2856c0b48bSNicholas Piggin extern bool opal_have_pending_events(void);
299f0fd049SAlistair Popple extern void opal_event_shutdown(void);
309f0fd049SAlistair Popple 
31e2186023SMichael Ellerman bool cpu_core_split_required(void);
32e2186023SMichael Ellerman 
3368e0aa8eSClaudio Carvalho struct memcons;
3468e0aa8eSClaudio Carvalho ssize_t memcons_copy(struct memcons *mc, char *to, loff_t pos, size_t count);
3568e0aa8eSClaudio Carvalho u32 memcons_get_size(struct memcons *mc);
3668e0aa8eSClaudio Carvalho struct memcons *memcons_init(struct device_node *node, const char *mc_prop_name);
3768e0aa8eSClaudio Carvalho 
3855190f88SBenjamin Herrenschmidt #endif /* _POWERNV_H */
39