2018-02-20 16:30:22 +03:00
/* SPDX-License-Identifier: GPL-2.0+ */
2017-09-12 21:52:13 +03: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 23:10:22 +03:00
# include <linux/interrupt.h>
2019-02-21 23:21:17 +03:00
# include <linux/platform_device.h>
2017-09-12 21:52:13 +03:00
# include "ipmi_si_sm.h"
# define DEFAULT_REGSPACING 1
# define DEFAULT_REGSIZE 1
2017-09-13 06:55:57 +03:00
# define DEVICE_NAME "ipmi_si"
2017-09-13 05:37:02 +03:00
int ipmi_si_add_smi ( struct si_sm_io * io ) ;
2017-09-12 23:10:22 +03: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-13 05:37:02 +03:00
int ipmi_si_remove_by_dev ( struct device * dev ) ;
2017-09-13 06:28:49 +03:00
void ipmi_si_remove_by_data ( int addr_space , enum si_type si_type ,
unsigned long addr ) ;
2019-02-21 21:10:07 +03:00
void ipmi_hardcode_init ( void ) ;
void ipmi_si_hardcode_exit ( void ) ;
2019-02-21 21:53:00 +03:00
int ipmi_si_hardcode_match ( int addr_space , unsigned long addr ) ;
2017-09-13 06:55:57 +03:00
void ipmi_si_platform_init ( void ) ;
void ipmi_si_platform_shutdown ( void ) ;
extern struct platform_driver ipmi_platform_driver ;
2017-09-13 07:04:35 +03: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-13 07:10:18 +03: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-13 07:24:30 +03:00
int ipmi_si_port_setup ( struct si_sm_io * io ) ;
int ipmi_si_mem_setup ( struct si_sm_io * io ) ;