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 <mod_n1sdp_remote_pd.h>
9 #include <mod_power_domain.h>
10 
11 #include <fwk_element.h>
12 #include <fwk_id.h>
13 #include <fwk_module.h>
14 
15 static const struct fwk_element remote_pd_element_table[] = {
16     [0] = {
17         .name = "SLV-CLUS0CORE0",
18         .data = &((struct mod_n1sdp_remote_pd_config) {
19             .pd_type = MOD_PD_TYPE_CORE,
20         }),
21     },
22     [1] = {
23         .name = "SLV-CLUS0CORE1",
24         .data = &((struct mod_n1sdp_remote_pd_config) {
25             .pd_type = MOD_PD_TYPE_CORE,
26         }),
27     },
28     [2] = {
29         .name = "SLV-CLUS1CORE0",
30         .data = &((struct mod_n1sdp_remote_pd_config) {
31             .pd_type = MOD_PD_TYPE_CORE,
32         }),
33     },
34     [3] = {
35         .name = "SLV-CLUS1CORE1",
36         .data = &((struct mod_n1sdp_remote_pd_config) {
37             .pd_type = MOD_PD_TYPE_CORE,
38         }),
39     },
40     [4] = {
41         .name = "SLV-CLUS0",
42         .data = &((struct mod_n1sdp_remote_pd_config) {
43             .pd_type = MOD_PD_TYPE_CLUSTER,
44         }),
45     },
46     [5] = {
47         .name = "SLV-CLUS1",
48         .data = &((struct mod_n1sdp_remote_pd_config) {
49             .pd_type = MOD_PD_TYPE_CLUSTER,
50         }),
51     },
52     [6] = {
53         .name = "SLV-DBGTOP",
54         .data = &((struct mod_n1sdp_remote_pd_config) {
55             .pd_type = MOD_PD_TYPE_DEVICE_DEBUG,
56         }),
57     },
58     [7] = {
59         .name = "SLV-SYSTOP",
60         .data = &((struct mod_n1sdp_remote_pd_config) {
61             .pd_type = MOD_PD_TYPE_SYSTEM,
62         }),
63     },
64     [8] = {
65         .name = "SYSTOP-LOGICAL",
66         .data = &((struct mod_n1sdp_remote_pd_config) {
67             .pd_type = MOD_PD_TYPE_SYSTEM,
68         }),
69     },
70     [9] = { 0 },
71 };
72 
remote_pd_get_element_table(fwk_id_t id)73 static const struct fwk_element *remote_pd_get_element_table(fwk_id_t id)
74 {
75     return remote_pd_element_table;
76 }
77 
78 const struct fwk_module_config config_n1sdp_remote_pd = {
79     .elements = FWK_MODULE_DYNAMIC_ELEMENTS(remote_pd_get_element_table),
80 };
81