135 lines
5.3 KiB
C
135 lines
5.3 KiB
C
/*------------------------------------------------------------
|
|
(C) Copyright [2006-2008] Marvell International Ltd.
|
|
All Rights Reserved
|
|
------------------------------------------------------------*/
|
|
|
|
/************************************************************************/
|
|
/* COPYRIGHT (C) 2002 Intel Corporation. */
|
|
/* */
|
|
/* This file and the software in it is furnished under */
|
|
/* license and may only be used or copied in accordance with the terms */
|
|
/* of the license. The information in this file is furnished for */
|
|
/* informational use only, is subject to change without notice, and */
|
|
/* should not be construed as a commitment by Intel Corporation. */
|
|
/* Intel Corporation assumes no responsibility or liability for any */
|
|
/* errors or inaccuracies that may appear in this document or any */
|
|
/* software that may be provided in association with this document. */
|
|
/* Except as permitted by such license, no part of this document may */
|
|
/* be reproduced, stored in a retrieval system, or transmitted in any */
|
|
/* form or by any means without the express written consent of Intel */
|
|
/* Corporation. */
|
|
/* */
|
|
/* Title: Comm. sub-system Clock Control Unit Header File */
|
|
/* */
|
|
/* Filename: commccu.h */
|
|
/* */
|
|
/* Author: Raviv Levi */
|
|
/* */
|
|
/* Project, Target, subsystem: Tavor, Arbel, HOP */
|
|
/* */
|
|
/* Remarks: - */
|
|
/* */
|
|
/* Created: 4/11/2004 */
|
|
/* */
|
|
/* Modified: 01/04/2005 */
|
|
/************************************************************************/
|
|
#ifndef _COMMCCU_H_
|
|
#define _COMMCCU_H_
|
|
|
|
/*-- Type definitions (T type) -----------------------------------------*/
|
|
typedef enum {
|
|
COMMCCU_RC_OK,
|
|
COMMCCU_RC_WRONG_PLL = -100,
|
|
COMMCCU_RC_NULL_POINTER
|
|
}CommCCU_ReturnCodeE;
|
|
|
|
typedef enum {
|
|
COMMCCU_MODEM_CLK_312MHZ_GB = 0,
|
|
COMMCCU_MODEM_CLK_208MHZ_GB,
|
|
COMMCCU_MODEM_CLK_104MHZ,
|
|
COMMCCU_MODEM_CLK_78MHZ,
|
|
COMMCCU_CLK_I2C,
|
|
COMMCCU_CLK_GSSP1,
|
|
COMMCCU_CLK_GSSP2,
|
|
COMMCCU_CLK_MSL,
|
|
COMMCCU_CLK_USIM,
|
|
COMMCCU_CLK_DSSP_BUS,
|
|
COMMCCU_CLK_UART,
|
|
COMMCCU_NUM_OF_CLKS
|
|
}CommCCU_ClocksE;
|
|
|
|
typedef enum {
|
|
COMMCCU_CLK_DISABLE = 0,
|
|
COMMCCU_CLK_ENABLE
|
|
}CommCCU_ClockStateE;
|
|
|
|
//ICAT EXPORTED ENUM
|
|
typedef enum {
|
|
COMMCCU_SYS_PLL_FREQ_52MHZ = 0,
|
|
COMMCCU_SYS_PLL_FREQ_104MHZ,
|
|
COMMCCU_SYS_PLL_FREQ_156MHZ,
|
|
COMMCCU_SYS_PLL_FREQ_208MHZ,
|
|
COMMCCU_SYS_PLL_FREQ_312MHZ,
|
|
COMMCCU_SYS_PLL_NUM_OF_FREQS
|
|
}CommCCU_SystemPLLFreqE;
|
|
|
|
typedef enum {
|
|
COMMCCU_PLL_SYS = 0,
|
|
COMMCCU_PLL_GB
|
|
}CommCCU_PLLsE;
|
|
|
|
typedef struct {
|
|
CommCCU_PLLsE usedPll;
|
|
CommCCU_SystemPLLFreqE systemPllFreq;
|
|
BOOL isSystemPllLocked;
|
|
BOOL isGbPllLocked;
|
|
}CommCCU_PLLsStatusS;
|
|
|
|
// for defaults and always on clocks (GCGEN/ CCCR)
|
|
typedef struct {
|
|
UINT32 CCCRDefaultOnClks;
|
|
UINT32 CCCRAlwaysOnClks;
|
|
UINT32 GCKENDefaultOnClks;
|
|
UINT32 GCKENAlwaysOnClks;
|
|
} CommCCU_def_on_clkS;
|
|
|
|
extern CommCCU_def_on_clkS commCCU_s;
|
|
/*----------------------------------------------------------------------*/
|
|
/*-- Constants definitions (C type) ------------------------------------*/
|
|
|
|
/*----------------------------------------------------------------------*/
|
|
/*-- Global variables declarations (Public G type) ---------------------*/
|
|
/*----------------------------------------------------------------------*/
|
|
/*-- -----Public Functions Prototypes ----------------------------------*/
|
|
void CommCCUPLLSelect(CommCCU_PLLsE);
|
|
void CommCCUClockStateSet(CommCCU_ClocksE,CommCCU_ClockStateE);
|
|
void CommCCUSystemPLLFreqSelect(CommCCU_SystemPLLFreqE);
|
|
void CommCCUPhase1Init(void);
|
|
void CommCCUPhase2Init(void);
|
|
CommCCU_ClockStateE CommCCUClockStateGet (CommCCU_ClocksE);
|
|
CommCCU_ReturnCodeE CommCCUPLLsStatusGet (CommCCU_PLLsStatusS*);
|
|
CommCCU_SystemPLLFreqE CommCCUSystemPLLFreqGet(void);
|
|
void CommCCUSystemPLLVoltageSelect(CommCCU_SystemPLLFreqE Freq);
|
|
void CommCCUEnableD1Uartdependency(BOOL enable);
|
|
void CommCCUSetAlwaysOnClk(CommCCU_ClocksE commccuClock, UINT32 bOnState);
|
|
void CommCCUToggleUSIM2(void);
|
|
/*----------------------------------------------------------------------*/
|
|
/*-------Test Function--------------------------------------------------*/
|
|
/*----------------------------------------------------------------------*/
|
|
|
|
|
|
|
|
|
|
/*
|
|
* OLD FUNCIONS THAT WILL BE REMOVED GRADUALLY (ASAP)
|
|
*/
|
|
|
|
void CCUDefaultConfigSet(void);
|
|
void CCUTurnClocksOff(void);
|
|
void CCUSysPLL312MHzSet(void);
|
|
|
|
|
|
#endif /* _COMMCCU_H_ */
|
|
|
|
|