Skip to content

Commit 6ff5c06

Browse files
Phuc PhamKhiemNguyenT
authored andcommitted
hal: renesas: rzv: Add Mbox support for RZ/V series
Add HAL FSP (MHU) files to support Mbox driver of RZ/V2L Signed-off-by: Phuc Pham <[email protected]> Signed-off-by: Nhut Nguyen <[email protected]>
1 parent cc85af2 commit 6ff5c06

File tree

3 files changed

+632
-0
lines changed

3 files changed

+632
-0
lines changed
Lines changed: 91 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,91 @@
1+
/*
2+
* Copyright (c) 2020 - 2024 Renesas Electronics Corporation and/or its affiliates
3+
*
4+
* SPDX-License-Identifier: BSD-3-Clause
5+
*/
6+
7+
/*******************************************************************************************************************//**
8+
* @addtogroup MHU_NS
9+
* @{
10+
**********************************************************************************************************************/
11+
12+
/***********************************************************************************************************************
13+
* Includes
14+
**********************************************************************************************************************/
15+
#include "r_mhu_api.h"
16+
#include "r_mhu_ns_cfg.h"
17+
18+
#ifndef R_MHU_NS_H
19+
#define R_MHU_NS_H
20+
21+
/* Common macro for FSP header files. There is also a corresponding FSP_FOOTER macro at the end of this file. */
22+
FSP_HEADER
23+
24+
/***********************************************************************************************************************
25+
* Macro definitions
26+
**********************************************************************************************************************/
27+
28+
/*************************************************************************************************
29+
* Type defines
30+
*************************************************************************************************/
31+
32+
/** Channel control block. DO NOT INITIALIZE. Initialization occurs when @ref mhu_api_t::open is called. */
33+
typedef struct st_mhu_ns_instance_ctrl
34+
{
35+
uint32_t open; ///< Indicates whether the open() API has been successfully called.
36+
mhu_cfg_t const * p_cfg; ///< Pointer to instance configuration
37+
R_MHU0_Type * p_regs; ///< Base register for this channel
38+
39+
uint32_t channel; ///< channel
40+
mhu_send_type_t send_type; ///< Send Type: Message or Response
41+
uint32_t * p_shared_memory_tx; ///< Pointer to send data area
42+
uint32_t * p_shared_memory_rx; ///< Pointer to recv data area
43+
44+
#if BSP_TZ_SECURE_BUILD
45+
bool callback_is_secure; ///< p_callback is in secure memory
46+
#endif
47+
48+
/* Pointer to callback and optional working memory */
49+
void (* p_callback)(mhu_callback_args_t *);
50+
51+
/* Pointer to non-secure memory that can be used to pass arguments to a callback in non-secure memory. */
52+
mhu_callback_args_t * p_callback_memory;
53+
54+
/* Pointer to context to be passed into callback function */
55+
void const * p_context;
56+
} mhu_ns_instance_ctrl_t;
57+
58+
/**********************************************************************************************************************
59+
* Exported global variables
60+
**********************************************************************************************************************/
61+
62+
/** @cond INC_HEADER_DEFS_SEC */
63+
/** Filled in Interface API structure for this Instance. */
64+
extern const mhu_api_t g_mhu_ns_on_mhu_ns;
65+
66+
/** @endcond */
67+
68+
/***********************************************************************************************************************
69+
* Public APIs
70+
**********************************************************************************************************************/
71+
fsp_err_t R_MHU_NS_Open(mhu_ctrl_t * p_ctrl, mhu_cfg_t const * const p_cfg);
72+
73+
fsp_err_t R_MHU_NS_MsgSend(mhu_ctrl_t * const p_ctrl, uint32_t const msg);
74+
75+
fsp_err_t R_MHU_NS_Close(mhu_ctrl_t * const p_ctrl);
76+
77+
fsp_err_t R_MHU_NS_CallbackSet(mhu_ctrl_t * const p_api_ctrl,
78+
void ( * p_callback)(mhu_callback_args_t *),
79+
void const * const p_context,
80+
mhu_callback_args_t * const p_callback_memory);
81+
82+
void R_MHU_NS_IsrSub(uint32_t irq);
83+
84+
/** Common macro for FSP header files. There is also a corresponding FSP_HEADER macro at the top of this file. */
85+
FSP_FOOTER
86+
87+
#endif /* R_MHU_NS_H */
88+
89+
/*******************************************************************************************************************//**
90+
* @} (end defgroup MHU_NS)
91+
**********************************************************************************************************************/

0 commit comments

Comments
 (0)