zephyr/drivers/ipm/ipm_sedi.h
Gerard Marull-Paretas 691facc20f include: always use <> for Zephyr includes
Double quotes "" should only be used for local headers.

Signed-off-by: Gerard Marull-Paretas <gerard@teslabs.com>
2023-09-14 13:49:58 +02:00

50 lines
1,004 B
C

/*
* Copyright (c) 2020-2023 Intel Corporation
*
* SPDX-License-Identifier: Apache-2.0
*/
#ifndef __DRIVERS_IPM_SEDI_H
#define __DRIVERS_IPM_SEDI_H
#ifdef __cplusplus
extern "C" {
#endif
#include "sedi_driver_common.h"
#include "sedi_driver_ipc.h"
#include <zephyr/sys/atomic.h>
/*
* bit 31 indicates whether message is valid, and could generate interrupt
* while set/clear
*/
#define IPC_BUSY_BIT 31
#define IPM_WRITE_IN_PROC_BIT 0
#define IPM_WRITE_BUSY_BIT 1
#define IPM_READ_BUSY_BIT 2
#define IPM_PEER_READY_BIT 3
#define IPM_TIMEOUT_MS 1000
struct ipm_sedi_config_t {
sedi_ipc_t ipc_device;
int32_t irq_num;
void (*irq_config)(void);
};
struct ipm_sedi_context {
ipm_callback_t rx_msg_notify_cb;
void *rx_msg_notify_cb_data;
uint8_t incoming_data_buf[IPC_DATA_LEN_MAX];
struct k_sem device_write_msg_sem;
struct k_mutex device_write_lock;
atomic_t status;
uint32_t power_status;
};
#ifdef __cplusplus
}
#endif
#endif /* __DRIVERS_IPM_SEDI_H */