//-----------------------------------------------------------------------------
//  imx31_refclock.h
//    Allows dynamic retrieval / updating of reference clocks.
//--
//  Copyright (c) Logic Product Development.  All rights reserved.
//  THIS SOURCE CODE, AND ITS USE AND DISTRIBUTION, IS SUBJECT TO THE TERMS
//  AND CONDITIONS OF THE APPLICABLE LICENSE AGREEMENT
//-----------------------------------------------------------------------------
#ifndef _IMX31_REFCLOCK_H_
#define _IMX31_REFCLOCK_H_


#if 0
//-----------------------------------------------------------------------------
//  Clock signal name for querying/setting clock configuration.
//-----------------------------------------------------------------------------
typedef enum
{
    DDK_CLOCK_SIGNAL_ENUM_FIRST         = 0,
    DDK_CLOCK_SIGNAL_MCUPLL             = 0,
    DDK_CLOCK_SIGNAL_USBPLL             = 1,
    DDK_CLOCK_SIGNAL_SERPLL             = 2,
    DDK_CLOCK_SIGNAL_ARM                = 3,
    DDK_CLOCK_SIGNAL_IPU                = 4,
    DDK_CLOCK_SIGNAL_AHB                = 5,
    DDK_CLOCK_SIGNAL_IPG                = 6,
    DDK_CLOCK_SIGNAL_NFC                = 7,
    DDK_CLOCK_SIGNAL_GACC               = 8,
    DDK_CLOCK_SIGNAL_SSI1               = 9,
    DDK_CLOCK_SIGNAL_SSI2               = 10,
    DDK_CLOCK_SIGNAL_FIRI               = 11,
    DDK_CLOCK_SIGNAL_CSI                = 12,
    DDK_CLOCK_SIGNAL_USB                = 13,
    DDK_CLOCK_SIGNAL_SIM                = 14,
    DDK_CLOCK_SIGNAL_PER                = 15,
    DDK_CLOCK_SIGNAL_ENUM_END           = 16
} DDK_CLOCK_SIGNAL;
#else
#include "bsp.h"
#endif


#define PMIC_SWITCHERS0_SW1A_MASK       0x0000003F
#define PMIC_SWITCHERS0_SW1A_1_4V       0x00000014
#define PMIC_SWITCHERS0_SW1A_1_6V       0x0000001C


//-----------------------------------------------------------------------------
//  iMX31 Refrence Clock Interface
//-----------------------------------------------------------------------------
extern void IMX31RefClockNotifyChanged(void);
extern BOOL IMX31RefClockGet(DDK_CLOCK_SIGNAL ddkClkSig, UINT32* pClkFreq);
extern BOOL IMX31RefClockInit(void);
extern BOOL IMX31RefClockSetOverclock(DWORD dwClockMode);
extern DWORD IMX31RefClockGetOverclock(void);

#endif /* closes #ifndef _IMX31_REFCLOCK_H_ */

