aboutsummaryrefslogtreecommitdiff
path: root/module/mhu2/include/mod_mhu2.h
diff options
context:
space:
mode:
Diffstat (limited to 'module/mhu2/include/mod_mhu2.h')
-rw-r--r--module/mhu2/include/mod_mhu2.h66
1 files changed, 66 insertions, 0 deletions
diff --git a/module/mhu2/include/mod_mhu2.h b/module/mhu2/include/mod_mhu2.h
new file mode 100644
index 00000000..3f87e780
--- /dev/null
+++ b/module/mhu2/include/mod_mhu2.h
@@ -0,0 +1,66 @@
+/*
+ * Arm SCP/MCP Software
+ * Copyright (c) 2017-2019, Arm Limited and Contributors. All rights reserved.
+ *
+ * SPDX-License-Identifier: BSD-3-Clause
+ *
+ * Description:
+ * Message Handling Unit (MHU) v2 Device Driver.
+ */
+
+#ifndef MOD_MHU2_H
+#define MOD_MHU2_H
+
+#include <stdint.h>
+#include <fwk_macros.h>
+
+/*!
+ * \addtogroup GroupModules Modules
+ * @{
+ */
+
+/*!
+ * \defgroup GroupMHUv2 Message Handling Unit (MHU) v2 Driver
+ * @{
+ */
+
+/*!
+ * \brief MHU v2 api indicies
+ */
+enum mod_mhu2_api_idx {
+ /*! SMT driver API */
+ MOD_MHU2_API_IDX_SMT_DRIVER,
+ /*! Number of APIs */
+ MOD_MHU2_API_IDX_COUNT,
+};
+
+/*!
+ * \brief MHU v2 device
+ *
+ * \details Abstract representation of a bidirectional MHU channel that consists
+ * of a single receive interrupt line and a pair of register sets, one for
+ * each direction of communication.
+ */
+struct mod_mhu2_channel_config {
+ /*! IRQ number of the receive interrupt line */
+ unsigned int irq;
+
+ /*! Base address of the registers of the incoming MHU */
+ uintptr_t recv;
+
+ /*! Base address of the registers of the outgoing MHU */
+ uintptr_t send;
+
+ /*! Channel number */
+ unsigned int channel;
+};
+
+/*!
+ * @}
+ */
+
+/*!
+ * @}
+ */
+
+#endif /* MOD_MHU2_H */