1 /*
2  * Arm SCP/MCP Software
3  * Copyright (c) 2021, Arm Limited and Contributors. All rights reserved.
4  *
5  * SPDX-License-Identifier: BSD-3-Clause
6  */
7 
8 #include <mod_mock_psu.h>
9 
10 #include <fwk_element.h>
11 #include <fwk_id.h>
12 #include <fwk_module.h>
13 
14 #include <stdbool.h>
15 
16 #define MOCK_PSU_ELEMENT_IDX(n) \
17     [n] = { .name = "MOCK_PSU_GROUP" #n, \
18             .data = &(const struct mod_mock_psu_element_cfg){ \
19                 .async_alarm_id = FWK_ID_NONE_INIT, \
20                 .async_alarm_api_id = FWK_ID_NONE_INIT, \
21                 .async_response_id = FWK_ID_NONE_INIT, \
22                 .async_response_api_id = FWK_ID_NONE_INIT, \
23                 .default_enabled = true, \
24                 .default_voltage = 800 } }
25 
26 static const struct fwk_element element_table[] = {
27     MOCK_PSU_ELEMENT_IDX(0),
28     MOCK_PSU_ELEMENT_IDX(1),
29     MOCK_PSU_ELEMENT_IDX(2),
30     MOCK_PSU_ELEMENT_IDX(3),
31     MOCK_PSU_ELEMENT_IDX(4),
32     MOCK_PSU_ELEMENT_IDX(5),
33     MOCK_PSU_ELEMENT_IDX(6),
34     MOCK_PSU_ELEMENT_IDX(7),
35     MOCK_PSU_ELEMENT_IDX(8),
36     MOCK_PSU_ELEMENT_IDX(9),
37     MOCK_PSU_ELEMENT_IDX(10),
38     MOCK_PSU_ELEMENT_IDX(11),
39     MOCK_PSU_ELEMENT_IDX(12),
40     MOCK_PSU_ELEMENT_IDX(13),
41     MOCK_PSU_ELEMENT_IDX(14),
42     MOCK_PSU_ELEMENT_IDX(15),
43     { 0 },
44 };
45 
get_element_table(fwk_id_t module_id)46 static const struct fwk_element *get_element_table(fwk_id_t module_id)
47 {
48     return element_table;
49 }
50 
51 const struct fwk_module_config config_mock_psu = {
52     .elements = FWK_MODULE_DYNAMIC_ELEMENTS(get_element_table),
53 };
54