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 "sgm775_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         .starts_enabled = true,
24     },
25     {
26         /* DPU */
27         .element_id =
28             FWK_ID_ELEMENT_INIT(FWK_MODULE_IDX_CLOCK, CLOCK_DEV_IDX_DPU),
29         .starts_enabled = true,
30     },
31     {
32         /* PIXEL_0 */
33         .element_id =
34             FWK_ID_ELEMENT_INIT(FWK_MODULE_IDX_CLOCK, CLOCK_DEV_IDX_PIXEL_0),
35         .starts_enabled = true,
36     },
37     {
38         /* PIXEL_1 */
39         .element_id =
40             FWK_ID_ELEMENT_INIT(FWK_MODULE_IDX_CLOCK, CLOCK_DEV_IDX_PIXEL_1),
41         .starts_enabled = true,
42     },
43 };
44 
45 static const struct mod_scmi_clock_agent agent_table[SCMI_AGENT_ID_COUNT] = {
46     [SCMI_AGENT_ID_PSCI] = { 0 /* No access */ },
47     [SCMI_AGENT_ID_OSPM] = {
48         .device_table = agent_device_table_ospm,
49         .device_count = FWK_ARRAY_SIZE(agent_device_table_ospm),
50     },
51 };
52 
53 struct fwk_module_config config_scmi_clock = {
54     .data = &((struct mod_scmi_clock_config) {
55         .max_pending_transactions = 0,
56         .agent_table = agent_table,
57         .agent_count = FWK_ARRAY_SIZE(agent_table),
58     }),
59 };
60