#ifndef DDK750_CHIP_H__ #define DDK750_CHIP_H__ #define DEFAULT_INPUT_CLOCK 14318181 /* Default reference clock */ #ifndef SM750LE_REVISION_ID #define SM750LE_REVISION_ID ((unsigned char)0xfe) #endif #include /* This is all the chips recognized by this library */ typedef enum _logical_chip_type_t { SM_UNKNOWN, SM718, SM750, SM750LE, } logical_chip_type_t; typedef enum _clock_type_t { MXCLK_PLL, PRIMARY_PLL, SECONDARY_PLL, VGA0_PLL, VGA1_PLL, } clock_type_t; typedef struct _pll_value_t { clock_type_t clockType; unsigned long inputFreq; /* Input clock frequency to the PLL */ /* Use this when clockType = PANEL_PLL */ unsigned long M; unsigned long N; unsigned long OD; unsigned long POD; } pll_value_t; /* input struct to initChipParam() function */ typedef struct _initchip_param_t { unsigned short powerMode; /* Use power mode 0 or 1 */ unsigned short chipClock; /* Speed of main chip clock in MHz unit 0 = keep the current clock setting Others = the new main chip clock */ unsigned short memClock; /* Speed of memory clock in MHz unit 0 = keep the current clock setting Others = the new memory clock */ unsigned short masterClock; /* Speed of master clock in MHz unit 0 = keep the current clock setting Others = the new master clock */ unsigned short setAllEngOff; /* 0 = leave all engine state untouched. 1 = make sure they are off: 2D, Overlay, video alpha, alpha, hardware cursors */ unsigned char resetMemory; /* 0 = Do not reset the memory controller 1 = Reset the memory controller */ /* More initialization parameter can be added if needed */ } initchip_param_t; logical_chip_type_t getChipType(void); unsigned int calcPllValue(unsigned int request,pll_value_t *pll); unsigned int calcPllValue2(unsigned int,pll_value_t *); unsigned int formatPllReg(pll_value_t *pPLL); void ddk750_set_mmio(void __iomem *,unsigned short,char); unsigned int ddk750_getVMSize(void); int ddk750_initHw(initchip_param_t *); unsigned int getPllValue(clock_type_t clockType, pll_value_t *pPLL); unsigned int getChipClock(void); void setChipClock(unsigned int); void setMemoryClock(unsigned int frequency); void setMasterClock(unsigned int frequency); #endif