blob: 9a3dda07566f1ff90c46737aff9887f0572dc912 [file] [log] [blame]
Michael Ellerman577830b2007-02-08 18:33:51 +11001/*
2 * Copyright 2006 IBM Corporation.
3 *
4 * This program is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU General Public License
6 * as published by the Free Software Foundation; either version
7 * 2 of the License, or (at your option) any later version.
8 */
9
10#ifndef _PSERIES_PSERIES_H
11#define _PSERIES_PSERIES_H
12
Mark Nelson32c96f72010-05-18 22:51:00 +000013#include <linux/interrupt.h>
14
15struct device_node;
16
17extern void request_event_sources_irqs(struct device_node *np,
18 irq_handler_t handler, const char *name);
19
Nathan Fontenot20648972010-09-10 09:40:32 +000020#include <linux/of.h>
21
Michael Neulingca8ffc92007-07-19 07:56:32 +100022extern void __init fw_feature_init(const char *hypertas, unsigned long len);
Michael Ellerman577830b2007-02-08 18:33:51 +110023
24struct pt_regs;
25
26extern int pSeries_system_reset_exception(struct pt_regs *regs);
27extern int pSeries_machine_check_exception(struct pt_regs *regs);
28
Michael Ellerman8feaeca2007-02-08 18:33:55 +110029#ifdef CONFIG_SMP
30extern void smp_init_pseries_mpic(void);
31extern void smp_init_pseries_xics(void);
32#else
Stephen Rothwellf7c0d132007-05-16 13:21:09 +100033static inline void smp_init_pseries_mpic(void) { };
34static inline void smp_init_pseries_xics(void) { };
Michael Ellerman8feaeca2007-02-08 18:33:55 +110035#endif
36
Michael Ellermandce623e2007-02-08 18:33:55 +110037#ifdef CONFIG_KEXEC
38extern void setup_kexec_cpu_down_xics(void);
39extern void setup_kexec_cpu_down_mpic(void);
40#else
Michael Ellerman8c0238b2007-02-14 16:08:05 +110041static inline void setup_kexec_cpu_down_xics(void) { }
42static inline void setup_kexec_cpu_down_mpic(void) { }
Michael Ellermandce623e2007-02-08 18:33:55 +110043#endif
44
Benjamin Herrenschmidt3d5134e2007-06-04 15:15:36 +100045extern void pSeries_final_fixup(void);
46
Manish Ahuja5d30bf32007-02-08 16:01:17 -060047/* Poweron flag used for enabling auto ups restart */
48extern unsigned long rtas_poweron_auto;
49
Benjamin Herrenschmidt4d2bb3f2011-05-12 13:46:38 +100050/* Provided by HVC VIO */
51extern void hvc_vio_init_early(void);
Michael Ellerman21cf9132008-04-16 13:51:48 +100052
Nathan Fontenot20648972010-09-10 09:40:32 +000053/* Dynamic logical Partitioning/Mobility */
54extern void dlpar_free_cc_nodes(struct device_node *);
55extern void dlpar_free_cc_property(struct property *);
56extern struct device_node *dlpar_configure_connector(u32);
57extern int dlpar_attach_node(struct device_node *);
58extern int dlpar_detach_node(struct device_node *);
59
Deepthi Dharwar707827f2011-11-30 02:46:42 +000060/* Snooze Delay, pseries_idle */
61DECLARE_PER_CPU(long, smt_snooze_delay);
62
Michael Ellerman577830b2007-02-08 18:33:51 +110063#endif /* _PSERIES_PSERIES_H */