blob: 1f8de87b7293712fabd33557d7bb3e914a90f7ad [file] [log] [blame]
/*
* Copyright (C) 2018 Synaptics Incorporated. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*
* INFORMATION CONTAINED IN THIS DOCUMENT IS PROVIDED "AS-IS," AND
* SYNAPTICS EXPRESSLY DISCLAIMS ALL EXPRESS AND IMPLIED WARRANTIES,
* INCLUDING ANY IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
* A PARTICULAR PURPOSE, AND ANY WARRANTIES OF NON-INFRINGEMENT OF ANY
* INTELLECTUAL PROPERTY RIGHTS. IN NO EVENT SHALL SYNAPTICS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, PUNITIVE, OR
* CONSEQUENTIAL DAMAGES ARISING OUT OF OR IN CONNECTION WITH THE USE
* OF THE INFORMATION CONTAINED IN THIS DOCUMENT, HOWEVER CAUSED AND
* BASED ON ANY THEORY OF LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
* NEGLIGENCE OR OTHER TORTIOUS ACTION, AND EVEN IF SYNAPTICS WAS
* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. IF A TRIBUNAL OF
* COMPETENT JURISDICTION DOES NOT PERMIT THE DISCLAIMER OF DIRECT
* DAMAGES OR ANY OTHER DAMAGES, SYNAPTICS' TOTAL CUMULATIVE LIABILITY
* TO ANY PARTY SHALL NOT EXCEED ONE HUNDRED U.S. DOLLARS.
*/
#ifndef __APB_TIMER_H__
#define __APB_TIMER_H__
#define APD_TIMER_1_LOADCOUNT 0x00
#define APB_TIMER_1_CURRENTVALUE 0x04
#define APB_TIMER_1_CONTROLREG 0x08
#define APB_TIMER_1_EOI 0x0C
#define APB_TIMER_1_INTSTATUS 0x10
#define APD_TIMER_REG_RANGE 0x14
/**********************************************************************************************
* the offset of APB_TIMER_N_xxxx is derived from APD_TIMER_REG_RANGE*(N-1) + APD_TIMER_xxx
**********************************************************************************************/
#define APB_TIMERS_INTSTATUS 0xA0
#define APB_TIMERS_EOI 0xA4
#define APB_TIMERS_RAW_INTSTSTUS 0xA8
#define APB_TIMERS_COMP_VERSION 0xAC
#define bTimer_Enable 1 /*bit*/
#define LSbTimer_Enable 0
#define bTimer_Mode 1
#define LSbTimer_Mode 1
#define bTimer_Interrupt_Mask 1
#define LSbTimer_Interrupt_Mask 2
#define TIMER_FREE_RUN_MODE 0
#define TIMER_USR_DEFINED_MODE 1
void TIMERx_SetControlReg(unsigned int timer_N, unsigned int mask, unsigned int enable, unsigned int mode);
unsigned int TIMERx_GetCurrentValue(unsigned int timer_N);
void TIMERx_SetLoadCount(unsigned int timer_N, unsigned int count_val);
void TIMERx_SetIntEn(unsigned int timer_N, unsigned int enable);
#endif // __APB_TIMER_H__