From 58cb1f1c3c6e9621059d965f2f6c45a0d9cd58ec Mon Sep 17 00:00:00 2001 From: Andrei-Liviu Simion Date: Fri, 9 Oct 2015 03:51:37 -0700 Subject: [PATCH] tmrctr: Moved configuration look up function to sinit file. For consistency with common driver style. Signed-off-by: Andrei-Liviu Simion Acked-by: Shadul Shaikh --- .../drivers/tmrctr/src/xtmrctr.c | 30 ------ .../drivers/tmrctr/src/xtmrctr.h | 22 ++--- .../drivers/tmrctr/src/xtmrctr_i.h | 2 - .../drivers/tmrctr/src/xtmrctr_sinit.c | 96 +++++++++++++++++++ 4 files changed, 103 insertions(+), 47 deletions(-) create mode 100644 XilinxProcessorIPLib/drivers/tmrctr/src/xtmrctr_sinit.c diff --git a/XilinxProcessorIPLib/drivers/tmrctr/src/xtmrctr.c b/XilinxProcessorIPLib/drivers/tmrctr/src/xtmrctr.c index c7b68158..6532807a 100644 --- a/XilinxProcessorIPLib/drivers/tmrctr/src/xtmrctr.c +++ b/XilinxProcessorIPLib/drivers/tmrctr/src/xtmrctr.c @@ -513,36 +513,6 @@ int XTmrCtr_IsExpired(XTmrCtr * InstancePtr, u8 TmrCtrNumber) XTC_CSR_INT_OCCURED_MASK); } -/***************************************************************************** -* -* Looks up the device configuration based on the unique device ID. The table -* TmrCtrConfigTable contains the configuration info for each device in the -* system. -* -* @param DeviceId is the unique device ID to search for in the config -* table. -* -* @return A pointer to the configuration that matches the given device ID, -* or NULL if no match is found. -* -* @note None. -* -******************************************************************************/ -XTmrCtr_Config *XTmrCtr_LookupConfig(u16 DeviceId) -{ - XTmrCtr_Config *CfgPtr = NULL; - int Index; - - for (Index = 0; Index < XPAR_XTMRCTR_NUM_INSTANCES; Index++) { - if (XTmrCtr_ConfigTable[Index].DeviceId == DeviceId) { - CfgPtr = &XTmrCtr_ConfigTable[Index]; - break; - } - } - - return CfgPtr; -} - /*****************************************************************************/ /** * Default callback for the driver does nothing. It matches the signature of the diff --git a/XilinxProcessorIPLib/drivers/tmrctr/src/xtmrctr.h b/XilinxProcessorIPLib/drivers/tmrctr/src/xtmrctr.h index 3401c3ea..aa25b00e 100644 --- a/XilinxProcessorIPLib/drivers/tmrctr/src/xtmrctr.h +++ b/XilinxProcessorIPLib/drivers/tmrctr/src/xtmrctr.h @@ -261,9 +261,7 @@ typedef struct { /************************** Function Prototypes ******************************/ -/* - * Required functions, in file xtmrctr.c - */ +/* Required functions, in file xtmrctr.c */ void XTmrCtr_CfgInitialize(XTmrCtr *InstancePtr, XTmrCtr_Config *ConfigPtr, u32 EffectiveAddr); int XTmrCtr_InitHw(XTmrCtr *InstancePtr); @@ -276,28 +274,22 @@ void XTmrCtr_SetResetValue(XTmrCtr * InstancePtr, u8 TmrCtrNumber, u32 XTmrCtr_GetCaptureValue(XTmrCtr * InstancePtr, u8 TmrCtrNumber); int XTmrCtr_IsExpired(XTmrCtr * InstancePtr, u8 TmrCtrNumber); void XTmrCtr_Reset(XTmrCtr * InstancePtr, u8 TmrCtrNumber); + +/* Lookup configuration in xtmrctr_sinit.c */ XTmrCtr_Config *XTmrCtr_LookupConfig(u16 DeviceId); -/* - * Functions for options, in file xtmrctr_options.c - */ +/* Functions for options, in file xtmrctr_options.c */ void XTmrCtr_SetOptions(XTmrCtr * InstancePtr, u8 TmrCtrNumber, u32 Options); u32 XTmrCtr_GetOptions(XTmrCtr * InstancePtr, u8 TmrCtrNumber); -/* - * Functions for statistics, in file xtmrctr_stats.c - */ +/* Functions for statistics, in file xtmrctr_stats.c */ void XTmrCtr_GetStats(XTmrCtr * InstancePtr, XTmrCtrStats * StatsPtr); void XTmrCtr_ClearStats(XTmrCtr * InstancePtr); -/* - * Functions for self-test, in file xtmrctr_selftest.c - */ +/* Functions for self-test, in file xtmrctr_selftest.c */ int XTmrCtr_SelfTest(XTmrCtr * InstancePtr, u8 TmrCtrNumber); -/* - * Functions for interrupts, in file xtmrctr_intr.c - */ +/* Functions for interrupts, in file xtmrctr_intr.c */ void XTmrCtr_SetHandler(XTmrCtr * InstancePtr, XTmrCtr_Handler FuncPtr, void *CallBackRef); void XTmrCtr_InterruptHandler(void *InstancePtr); diff --git a/XilinxProcessorIPLib/drivers/tmrctr/src/xtmrctr_i.h b/XilinxProcessorIPLib/drivers/tmrctr/src/xtmrctr_i.h index 587c322a..6cbbc0a4 100644 --- a/XilinxProcessorIPLib/drivers/tmrctr/src/xtmrctr_i.h +++ b/XilinxProcessorIPLib/drivers/tmrctr/src/xtmrctr_i.h @@ -70,8 +70,6 @@ extern "C" { /************************** Variable Definitions *****************************/ -extern XTmrCtr_Config XTmrCtr_ConfigTable[]; - extern u8 XTmrCtr_Offsets[]; #ifdef __cplusplus diff --git a/XilinxProcessorIPLib/drivers/tmrctr/src/xtmrctr_sinit.c b/XilinxProcessorIPLib/drivers/tmrctr/src/xtmrctr_sinit.c new file mode 100644 index 00000000..8b6457bb --- /dev/null +++ b/XilinxProcessorIPLib/drivers/tmrctr/src/xtmrctr_sinit.c @@ -0,0 +1,96 @@ +/****************************************************************************** +* +* Copyright (C) 2015 Xilinx, Inc. All rights reserved. +* +* Permission is hereby granted, free of charge, to any person obtaining a copy +* of this software and associated documentation files (the "Software"), to deal +* in the Software without restriction, including without limitation the rights +* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +* copies of the Software, and to permit persons to whom the Software is +* furnished to do so, subject to the following conditions: +* +* The above copyright notice and this permission notice shall be included in +* all copies or substantial portions of the Software. +* +* Use of the Software is limited solely to applications: +* (a) running on a Xilinx device, or +* (b) that interact with a Xilinx device through a bus or interconnect. +* +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +* XILINX BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF +* OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +* SOFTWARE. +* +* Except as contained in this notice, the name of the Xilinx shall not be used +* in advertising or otherwise to promote the sale, use or other dealings in +* this Software without prior written authorization from Xilinx. +* +******************************************************************************/ +/*****************************************************************************/ +/** +* +* @file xtmrctr_sinit.c +* @addtogroup tmrctr_v4_0 +* @{ +* +* This file contains static initialization methods for the XTmrCtr driver. +* +* @note None. +* +*
+* MODIFICATION HISTORY:
+*
+* Ver   Who  Date     Changes
+* ----- ---- -------- -----------------------------------------------
+* 4.0   als  09/30/15 Creation of this file. Moved LookupConfig from xtmrctr.c.
+* 
+* +******************************************************************************/ + +/******************************* Include Files *******************************/ + +#include "xparameters.h" +#include "xtmrctr.h" + +/*************************** Variable Declarations ***************************/ + +/* A table of configuration structures containing the configuration information + * for each timer core in the system. */ +extern XTmrCtr_Config XTmrCtr_ConfigTable[XPAR_XTMRCTR_NUM_INSTANCES]; + +/**************************** Function Definitions ***************************/ + +/*****************************************************************************/ +/** +* Looks up the device configuration based on the unique device ID. The table +* TmrCtr_ConfigTable contains the configuration info for each device in the +* system. +* +* @param DeviceId is the unique device ID to search for in the config +* table. +* +* @return A pointer to the configuration that matches the given device +* ID, or NULL if no match is found. +* +* @note None. +* +******************************************************************************/ +XTmrCtr_Config *XTmrCtr_LookupConfig(u16 DeviceId) +{ + XTmrCtr_Config *CfgPtr = NULL; + int Index; + + for (Index = 0; Index < XPAR_XTMRCTR_NUM_INSTANCES; Index++) { + if (XTmrCtr_ConfigTable[Index].DeviceId == DeviceId) { + CfgPtr = &XTmrCtr_ConfigTable[Index]; + break; + } + } + + return CfgPtr; +} + +/** @} */