1 /*
2 * Arm SCP/MCP Software
3 * Copyright (c) 2019-2021, Arm Limited and Contributors. All rights reserved.
4 *
5 * SPDX-License-Identifier: BSD-3-Clause
6 */
7
8 #include "juno_mhu.h"
9 #include "system_mmap.h"
10
11 #include <mod_mhu.h>
12
13 #include <fwk_element.h>
14 #include <fwk_id.h>
15 #include <fwk_module.h>
16
17 #include <fmw_cmsis.h>
18
19 #include <stddef.h>
20
21 static const struct fwk_element element_table[] = {
22 [JUNO_MHU_DEVICE_IDX_S] = {
23 .name = "",
24 .sub_element_count = 1,
25 .data = &(struct mod_mhu_device_config) {
26 .irq = (unsigned int) MHU_SECURE_IRQ,
27 .in = MHU_CPU_INTR_S_BASE,
28 .out = MHU_SCP_INTR_S_BASE,
29 },
30 },
31 [JUNO_MHU_DEVICE_IDX_NS_H] = {
32 .name = "",
33 .sub_element_count = 2,
34 .data = &(struct mod_mhu_device_config) {
35 .irq = (unsigned int) MHU_HIGH_PRIO_IRQ,
36 .in = MHU_CPU_INTR_H_BASE,
37 .out = MHU_SCP_INTR_H_BASE,
38 },
39 },
40 [JUNO_MHU_DEVICE_IDX_NS_L] = {
41 .name = "",
42 .sub_element_count = 1,
43 .data = &(struct mod_mhu_device_config) {
44 .irq = (unsigned int) MHU_LOW_PRIO_IRQ,
45 .in = MHU_CPU_INTR_L_BASE,
46 .out = MHU_SCP_INTR_L_BASE,
47 },
48 },
49 [JUNO_MHU_DEVICE_IDX_COUNT] = { 0 },
50 };
51
get_element_table(fwk_id_t module_id)52 static const struct fwk_element *get_element_table(fwk_id_t module_id)
53 {
54 return element_table;
55 }
56
57 struct fwk_module_config config_mhu = {
58 .elements = FWK_MODULE_DYNAMIC_ELEMENTS(get_element_table),
59 };
60