1 /* SPDX-License-Identifier: GPL-2.0-only */ 2 3 #include <device/device.h> 4 5 #ifndef _IPMI_CHIP_H_ 6 #define _IPMI_CHIP_H_ 7 8 #include <stdint.h> 9 10 struct drivers_ipmi_config { 11 #if CONFIG(IPMI_KCS) 12 u8 bmc_i2c_address; 13 u8 have_nv_storage; 14 u8 nv_storage_device_address; 15 u8 have_gpe; 16 u8 gpe_interrupt; 17 u8 have_apic; 18 u32 apic_interrupt; 19 /* Device to use for GPIO operations */ 20 DEVTREE_CONST struct device *gpio_dev; 21 /* 22 * Jumper GPIO for enabling / disabling BMC/IPMI 23 * If present, the jumper overrides the devicetree. 24 */ 25 u32 bmc_jumper_gpio; 26 /* "POST complete" GPIO and polarity */ 27 u32 post_complete_gpio; 28 bool post_complete_invert; 29 unsigned int uid; /* Auto-filled by ipmi_ssdt() */ 30 #endif 31 32 /* 33 * Wait for BMC to boot. 34 * This can be used if the BMC takes a long time to boot after PoR: 35 * AST2400 on Supermicro X11SSH: 34 s 36 */ 37 bool wait_for_bmc; 38 /* 39 * The timeout in seconds to wait for the IPMI service to be loaded. 40 * Will be used if wait_for_bmc is true. 41 */ 42 u16 bmc_boot_timeout; 43 }; 44 45 #endif /* _IMPI_CHIP_H_ */ 46