| #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 <linux/io.h> |
| |
| /* 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 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 *); |
| |
| #endif |