| /* |
| * 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__ |
| |