linux/drivers/staging/sm750fb/ddk750_chip.h
<<
>>
Prefs
   1#ifndef DDK750_CHIP_H__
   2#define DDK750_CHIP_H__
   3#define DEFAULT_INPUT_CLOCK 14318181 /* Default reference clock */
   4#ifndef SM750LE_REVISION_ID
   5#define SM750LE_REVISION_ID ((unsigned char)0xfe)
   6#endif
   7
   8#include <linux/io.h>
   9
  10/* This is all the chips recognized by this library */
  11typedef enum _logical_chip_type_t
  12{
  13    SM_UNKNOWN,
  14    SM718,
  15    SM750,
  16    SM750LE,
  17}
  18logical_chip_type_t;
  19
  20
  21typedef enum _clock_type_t
  22{
  23        MXCLK_PLL,
  24        PRIMARY_PLL,
  25        SECONDARY_PLL,
  26        VGA0_PLL,
  27        VGA1_PLL,
  28}
  29clock_type_t;
  30
  31typedef struct _pll_value_t
  32{
  33    clock_type_t clockType;
  34    unsigned long inputFreq; /* Input clock frequency to the PLL */
  35
  36    /* Use this when clockType = PANEL_PLL */
  37    unsigned long M;
  38    unsigned long N;
  39    unsigned long OD;
  40    unsigned long POD;
  41}
  42pll_value_t;
  43
  44/* input struct to initChipParam() function */
  45typedef struct _initchip_param_t
  46{
  47    unsigned short powerMode;    /* Use power mode 0 or 1 */
  48    unsigned short chipClock;    /* Speed of main chip clock in MHz unit
  49                                    0 = keep the current clock setting
  50                                    Others = the new main chip clock
  51                                  */
  52    unsigned short memClock;     /* Speed of memory clock in MHz unit
  53                                    0 = keep the current clock setting
  54                                    Others = the new memory clock
  55                                  */
  56    unsigned short masterClock;  /* Speed of master clock in MHz unit
  57                                    0 = keep the current clock setting
  58                                    Others = the new master clock
  59                                  */
  60    unsigned short setAllEngOff; /* 0 = leave all engine state untouched.
  61                                    1 = make sure they are off: 2D, Overlay,
  62                                    video alpha, alpha, hardware cursors
  63                                 */
  64    unsigned char resetMemory;   /* 0 = Do not reset the memory controller
  65                                    1 = Reset the memory controller
  66                                  */
  67
  68    /* More initialization parameter can be added if needed */
  69}
  70initchip_param_t;
  71
  72
  73logical_chip_type_t getChipType(void);
  74unsigned int calcPllValue(unsigned int request,pll_value_t *pll);
  75unsigned int calcPllValue2(unsigned int,pll_value_t *);
  76unsigned int formatPllReg(pll_value_t *pPLL);
  77void ddk750_set_mmio(void __iomem *,unsigned short,char);
  78unsigned int ddk750_getVMSize(void);
  79int ddk750_initHw(initchip_param_t *);
  80unsigned int getPllValue(clock_type_t clockType, pll_value_t *pPLL);
  81unsigned int getChipClock(void);
  82void setChipClock(unsigned int);
  83void setMemoryClock(unsigned int frequency);
  84void setMasterClock(unsigned int frequency);
  85
  86
  87#endif
  88