blob: 3b970c9fa409d5dd4f18cd1e97e1c1d9ed845229 [file] [log] [blame]
Angel Pons8a3453f2020-04-02 23:48:19 +02001/* SPDX-License-Identifier: GPL-2.0-only */
Patrick Rudolphffbc3b52019-06-06 15:45:51 +02002
Michael Niewöhner31830d32020-11-23 13:24:40 +01003#include <device/device.h>
4
David Hendricksc6396a82022-05-15 14:32:06 -07005#ifndef _IPMI_CHIP_H_
Patrick Rudolphffbc3b52019-06-06 15:45:51 +02006#define _IPMI_CHIP_H_
7
Michael Niewöhner31830d32020-11-23 13:24:40 +01008#include <stdint.h>
9
Patrick Rudolphffbc3b52019-06-06 15:45:51 +020010struct drivers_ipmi_config {
Sergii Dmytrukef7dd5d2021-10-22 01:02:32 +030011#if CONFIG(IPMI_KCS)
Patrick Rudolphffbc3b52019-06-06 15:45:51 +020012 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;
Michael Niewöhner31830d32020-11-23 13:24:40 +010019 /* 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;
Michael Niewöhner548a3dc2020-11-24 12:45:07 +010026 /* "POST complete" GPIO and polarity */
27 u32 post_complete_gpio;
28 bool post_complete_invert;
Sergii Dmytrukef7dd5d2021-10-22 01:02:32 +030029 unsigned int uid; /* Auto-filled by ipmi_ssdt() */
30#endif
31
Patrick Rudolph3d41a132019-07-22 16:31:35 +020032 /*
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;
Patrick Rudolphffbc3b52019-06-06 15:45:51 +020043};
44
45#endif /* _IMPI_CHIP_H_ */