2018-02-20 07:30:22 -06:00
/* SPDX-License-Identifier: GPL-2.0+ */
2017-09-12 13:52:13 -05:00
/*
* ipmi_si . h
*
* Interface from the device - specific interfaces ( OF , DMI , ACPI , PCI ,
* etc ) to the base ipmi system interface code .
*/
2017-09-12 15:10:22 -05:00
# include <linux/interrupt.h>
2017-09-12 13:52:13 -05:00
# include "ipmi_si_sm.h"
# define IPMI_IO_ADDR_SPACE 0
# define IPMI_MEM_ADDR_SPACE 1
# define DEFAULT_REGSPACING 1
# define DEFAULT_REGSIZE 1
2017-09-12 22:55:57 -05:00
# define DEVICE_NAME "ipmi_si"
2017-09-12 21:37:02 -05:00
int ipmi_si_add_smi ( struct si_sm_io * io ) ;
2017-09-12 15:10:22 -05:00
irqreturn_t ipmi_si_irq_handler ( int irq , void * data ) ;
void ipmi_irq_start_cleanup ( struct si_sm_io * io ) ;
int ipmi_std_irq_setup ( struct si_sm_io * io ) ;
void ipmi_irq_finish_setup ( struct si_sm_io * io ) ;
2017-09-12 21:37:02 -05:00
int ipmi_si_remove_by_dev ( struct device * dev ) ;
2017-09-12 22:28:49 -05:00
void ipmi_si_remove_by_data ( int addr_space , enum si_type si_type ,
unsigned long addr ) ;
2017-09-12 22:46:29 -05:00
int ipmi_si_hardcode_find_bmc ( void ) ;
2017-09-12 22:55:57 -05:00
void ipmi_si_platform_init ( void ) ;
void ipmi_si_platform_shutdown ( void ) ;
extern struct platform_driver ipmi_platform_driver ;
2017-09-12 23:04:35 -05:00
# ifdef CONFIG_PCI
void ipmi_si_pci_init ( void ) ;
void ipmi_si_pci_shutdown ( void ) ;
# else
static inline void ipmi_si_pci_init ( void ) { }
static inline void ipmi_si_pci_shutdown ( void ) { }
# endif
2017-09-12 23:10:18 -05:00
# ifdef CONFIG_PARISC
void ipmi_si_parisc_init ( void ) ;
void ipmi_si_parisc_shutdown ( void ) ;
# else
static inline void ipmi_si_parisc_init ( void ) { }
static inline void ipmi_si_parisc_shutdown ( void ) { }
# endif
2017-09-12 23:24:30 -05:00
int ipmi_si_port_setup ( struct si_sm_io * io ) ;
int ipmi_si_mem_setup ( struct si_sm_io * io ) ;