/*************************************************************************** * * Copyright 2015-2019 BES. * All rights reserved. All unpublished rights reserved. * * No part of this work may be used or reproduced in any form or by any * means, or stored in a database or retrieval system, without prior written * permission of BES. * * Use of this work is governed by a license granted by BES. * This work contains confidential and proprietary information of * BES. which is protected by copyright, trade secret, * trademark and other intellectual property rights. * ****************************************************************************/ #ifndef __REG_TIMER_H_ #define __REG_TIMER_H_ #include "plat_types.h" /* ================================================================================ */ /* ================ Timer (TIM) ================ */ /* ================================================================================ */ struct DUAL_TIMER_T { struct TIMER_T { __IO uint32_t Load; /* Offset: 0x000 (R/W) Timer X Load */ __I uint32_t Value; /* Offset: 0x004 (R/ ) Timer X Counter Current Value */ __IO uint32_t Control; /* Offset: 0x008 (R/W) Timer X Control */ __O uint32_t IntClr; /* Offset: 0x00C ( /W) Timer X Interrupt Clear */ __I uint32_t RIS; /* Offset: 0x010 (R/ ) Timer X Raw Interrupt Status */ __I uint32_t MIS; /* Offset: 0x014 (R/ ) Timer X Masked Interrupt Status */ __IO uint32_t BGLoad; /* Offset: 0x018 (R/W) Background Load Register */ uint32_t RESERVED0[1]; } timer[2]; struct ELAPSED_TIMER_T { __IO uint32_t ElapsedCtrl; __I uint32_t ElapsedVal; uint32_t RESERVED1[6]; } elapsed_timer[2]; }; #define TIMER_CTRL_EN (1 << 7) #define TIMER_CTRL_MODE_PERIODIC (1 << 6) #define TIMER_CTRL_INTEN (1 << 5) #define TIMER_CTRL_PRESCALE_DIV_1 (0 << 2) #define TIMER_CTRL_PRESCALE_DIV_16 (1 << 2) #define TIMER_CTRL_PRESCALE_DIV_256 (2 << 2) #define TIMER_CTRL_PRESCALE_MASK (3 << 2) #define TIMER_CTRL_SIZE_32_BIT (1 << 1) #define TIMER_CTRL_ONESHOT (1 << 0) #define TIMER_RIS_RIS (1 << 0) #define TIMER_MIS_MIS (1 << 0) #define TIMER_ELAPSED_CTRL_EN (1 << 0) #define TIMER_ELAPSED_CTRL_CLR (1 << 1) #endif