| /* |
| * Copyright (c) 2020 Intel Corporation |
| * |
| * SPDX-License-Identifier: Apache-2.0 |
| */ |
| |
| #ifndef __ESPI_OOB_HANDLER_H__ |
| #define __ESPI_OOB_HANDLER_H__ |
| |
| /* eSPI host entity address */ |
| #define PCH_DEST_SLV_ADDR 0x02u |
| #define SRC_SLV_ADDR 0x21u |
| |
| #define OOB_RESPONSE_SENDER_INDEX 0x02u |
| #define OOB_RESPONSE_DATA_INDEX 0x04u |
| |
| |
| /* Temperature command opcode */ |
| #define OOB_CMDCODE 0x01u |
| #define OOB_RESPONSE_LEN 0x05u |
| |
| /* Maximum bytes for OOB transactions */ |
| #define MAX_ESPI_BUF_LEN 80u |
| #define MIN_GET_TEMP_CYCLES 5u |
| |
| /* 100ms */ |
| #define MAX_OOB_TIMEOUT 100ul |
| |
| void oob_rx_handler(const struct device *dev, struct espi_callback *cb, |
| struct espi_event event); |
| |
| /** |
| * @brief Retrieve PCH temperature over OOB channel. |
| * Assumes OOB Tx and Rx as synchronous operation. |
| * |
| * @param dev eSPI driver handle. |
| * |
| * @retval 0 If successful. |
| * @retval -ENOTSUP returned when OOB channel is not supported. |
| * @retval -EINVAL is returned when OOB parameters are invalid. |
| * |
| */ |
| int get_pch_temp_sync(const struct device *dev); |
| |
| |
| /** |
| * @brief Retrieve PCH temperature over OOB channel. |
| * Assumes OOB Tx and Rx as synchronous operation. |
| * |
| * @param dev eSPI driver handle. |
| * |
| * @retval 0 If successful. |
| * @retval -ENOTSUP returned when OOB channel is not supported. |
| * @retval -ETIMEOUT OOB operations could not be started. |
| * |
| */ |
| int get_pch_temp_async(const struct device *dev); |
| |
| #endif /* __ESPI_OOB_HANDLER_H__ */ |