1 /*
2  * Arm SCP/MCP Software
3  * Copyright (c) 2015-2021, Arm Limited and Contributors. All rights reserved.
4  *
5  * SPDX-License-Identifier: BSD-3-Clause
6  */
7 
8 #include "clock_devices.h"
9 #include "sgm776_scmi.h"
10 
11 #include <mod_scmi_clock.h>
12 
13 #include <fwk_id.h>
14 #include <fwk_macros.h>
15 #include <fwk_module.h>
16 #include <fwk_module_idx.h>
17 
18 static const struct mod_scmi_clock_device agent_device_table_ospm[] = {
19     {
20         /* VPU */
21         .element_id =
22             FWK_ID_ELEMENT_INIT(FWK_MODULE_IDX_CLOCK, CLOCK_DEV_IDX_VPU),
23     },
24     {
25         /* DPU */
26         .element_id =
27             FWK_ID_ELEMENT_INIT(FWK_MODULE_IDX_CLOCK, CLOCK_DEV_IDX_DPU),
28     },
29     {
30         /* PIXEL_0 */
31         .element_id =
32             FWK_ID_ELEMENT_INIT(FWK_MODULE_IDX_CLOCK, CLOCK_DEV_IDX_PIXEL_0),
33     },
34     {
35         /* PIXEL_1 */
36         .element_id =
37             FWK_ID_ELEMENT_INIT(FWK_MODULE_IDX_CLOCK, CLOCK_DEV_IDX_PIXEL_1),
38     },
39 };
40 
41 static const struct mod_scmi_clock_agent agent_table[SCMI_AGENT_ID_COUNT] = {
42     [SCMI_AGENT_ID_PSCI] = { 0 /* No access */ },
43     [SCMI_AGENT_ID_OSPM] = {
44         .device_table = agent_device_table_ospm,
45         .device_count = FWK_ARRAY_SIZE(agent_device_table_ospm),
46     },
47 };
48 
49 const struct fwk_module_config config_scmi_clock = {
50     .data = &((struct mod_scmi_clock_config) {
51         .max_pending_transactions = 0,
52         .agent_table = agent_table,
53         .agent_count = FWK_ARRAY_SIZE(agent_table),
54     }),
55 };
56