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 #ifndef JUNO_DMC400_H 9 #define JUNO_DMC400_H 10 11 #include "system_clock.h" 12 13 #include <fwk_id.h> 14 #include <fwk_macros.h> 15 #include <fwk_module_idx.h> 16 17 /* DDR frequency in MHz */ 18 #define DDR_FREQUENCY_MHZ UINT32_C(800) 19 20 /* Clock divider */ 21 #define CLKDIV ((SYSINCLK / (DDR_FREQUENCY_MHZ * FWK_MHZ)) - 1) 22 23 /* Time-out for DMC400 */ 24 #define DMC400_CLOCK_DIV_SET_WAIT_TIMEOUT_US 1000 25 #define DMC400_CLOCK_SEL_SET_WAIT_TIMEOUT_US 1000 26 #define DMC400_CLOCK_ENABLE_WAIT_TIMEOUT_US 1000 27 #define DMC400_PHY_INIT_WAIT_TIMEOUT_US (100 * 1000) 28 #define DMC400_CONFIG_WAIT_TIMEOUT_US (100 * 1000) 29 #define DMC400_TRAINING_TIMEOUT_US (1000 * 1000) 30 31 /* 32 * Event indices 33 */ 34 enum juno_dmc400_event_idx { 35 /* Training event */ 36 JUNO_DMC400_EVENT_IDX_TRAINING, 37 38 /* Number of defined events */ 39 JUNO_DMC400_EVENT_IDX_COUNT 40 }; 41 42 /* 43 * Training event identifier 44 */ 45 static const fwk_id_t juno_dmc400_event_id_training = 46 FWK_ID_EVENT_INIT(FWK_MODULE_IDX_JUNO_DMC400, 47 JUNO_DMC400_EVENT_IDX_TRAINING); 48 49 #endif /* JUNO_DMC400_H */ 50