blob: 8af71e4cc17f6959d5b4632ed023547aa6c3f059 [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
Nathan Fontenotf0ff7eb2013-04-24 05:57:18 +000022extern void __init fw_hypertas_feature_init(const char *hypertas,
23 unsigned long len);
24extern void __init fw_vec5_feature_init(const char *hypertas,
25 unsigned long len);
Michael Ellerman577830b2007-02-08 18:33:51 +110026
27struct pt_regs;
28
29extern int pSeries_system_reset_exception(struct pt_regs *regs);
30extern int pSeries_machine_check_exception(struct pt_regs *regs);
31
Michael Ellerman8feaeca2007-02-08 18:33:55 +110032#ifdef CONFIG_SMP
33extern void smp_init_pseries_mpic(void);
34extern void smp_init_pseries_xics(void);
35#else
Stephen Rothwellf7c0d132007-05-16 13:21:09 +100036static inline void smp_init_pseries_mpic(void) { };
37static inline void smp_init_pseries_xics(void) { };
Michael Ellerman8feaeca2007-02-08 18:33:55 +110038#endif
39
Michael Ellermandce623e2007-02-08 18:33:55 +110040#ifdef CONFIG_KEXEC
41extern void setup_kexec_cpu_down_xics(void);
42extern void setup_kexec_cpu_down_mpic(void);
43#else
Michael Ellerman8c0238b2007-02-14 16:08:05 +110044static inline void setup_kexec_cpu_down_xics(void) { }
45static inline void setup_kexec_cpu_down_mpic(void) { }
Michael Ellermandce623e2007-02-08 18:33:55 +110046#endif
47
Benjamin Herrenschmidt3d5134e2007-06-04 15:15:36 +100048extern void pSeries_final_fixup(void);
49
Manish Ahuja5d30bf32007-02-08 16:01:17 -060050/* Poweron flag used for enabling auto ups restart */
51extern unsigned long rtas_poweron_auto;
52
Benjamin Herrenschmidt4d2bb3f2011-05-12 13:46:38 +100053/* Provided by HVC VIO */
54extern void hvc_vio_init_early(void);
Michael Ellerman21cf9132008-04-16 13:51:48 +100055
Nathan Fontenot20648972010-09-10 09:40:32 +000056/* Dynamic logical Partitioning/Mobility */
57extern void dlpar_free_cc_nodes(struct device_node *);
58extern void dlpar_free_cc_property(struct property *);
59extern struct device_node *dlpar_configure_connector(u32);
60extern int dlpar_attach_node(struct device_node *);
61extern int dlpar_detach_node(struct device_node *);
62
Deepthi Dharwar707827f2011-11-30 02:46:42 +000063/* Snooze Delay, pseries_idle */
64DECLARE_PER_CPU(long, smt_snooze_delay);
65
Michael Ellerman577830b2007-02-08 18:33:51 +110066#endif /* _PSERIES_PSERIES_H */