/* * Arm SCP/MCP Software * Copyright (c) 2021-2022, Arm Limited and Contributors. All rights reserved. * * SPDX-License-Identifier: BSD-3-Clause */ #include "clock_soc.h" #include "scp_mmap.h" #include #include #include #include #include #include /* * Generic timer driver config */ static const struct fwk_element gtimer_dev_table[2] = { [0] = { .name = "REFCLK", .data = &((struct mod_gtimer_dev_config){ .hw_timer = SCP_REFCLK_CNTBASE0_BASE, .hw_counter = SCP_REFCLK_CNTCTL_BASE, .control = SCP_REFCLK_CNTCONTROL_BASE, .frequency = CLOCK_RATE_REFCLK, .clock_id = FWK_ID_ELEMENT_INIT( FWK_MODULE_IDX_CLOCK, CLOCK_IDX_CPU_GROUP_CORTEX_A510), }), }, [1] = { 0 }, }; const struct fwk_module_config config_gtimer = { .elements = FWK_MODULE_STATIC_ELEMENTS_PTR(gtimer_dev_table), }; struct fwk_time_driver fmw_time_driver(const void **ctx) { return mod_gtimer_driver(ctx, config_gtimer.elements.table[0].data); }