1*4882a593Smuzhiyun /* 2*4882a593Smuzhiyun * linux/drivers/video/kyro/STG4000Interface.h 3*4882a593Smuzhiyun * 4*4882a593Smuzhiyun * Copyright (C) 2002 STMicroelectronics 5*4882a593Smuzhiyun * 6*4882a593Smuzhiyun * This file is subject to the terms and conditions of the GNU General Public 7*4882a593Smuzhiyun * License. See the file COPYING in the main directory of this archive 8*4882a593Smuzhiyun * for more details. 9*4882a593Smuzhiyun */ 10*4882a593Smuzhiyun 11*4882a593Smuzhiyun #ifndef _STG4000INTERFACE_H 12*4882a593Smuzhiyun #define _STG4000INTERFACE_H 13*4882a593Smuzhiyun 14*4882a593Smuzhiyun #include <linux/pci.h> 15*4882a593Smuzhiyun #include <video/kyro.h> 16*4882a593Smuzhiyun 17*4882a593Smuzhiyun /* 18*4882a593Smuzhiyun * Ramdac Setup 19*4882a593Smuzhiyun */ 20*4882a593Smuzhiyun extern int InitialiseRamdac(volatile STG4000REG __iomem *pSTGReg, u32 displayDepth, 21*4882a593Smuzhiyun u32 displayWidth, u32 displayHeight, 22*4882a593Smuzhiyun s32 HSyncPolarity, s32 VSyncPolarity, 23*4882a593Smuzhiyun u32 *pixelClock); 24*4882a593Smuzhiyun 25*4882a593Smuzhiyun extern void DisableRamdacOutput(volatile STG4000REG __iomem *pSTGReg); 26*4882a593Smuzhiyun extern void EnableRamdacOutput(volatile STG4000REG __iomem *pSTGReg); 27*4882a593Smuzhiyun 28*4882a593Smuzhiyun /* 29*4882a593Smuzhiyun * Timing generator setup 30*4882a593Smuzhiyun */ 31*4882a593Smuzhiyun extern void DisableVGA(volatile STG4000REG __iomem *pSTGReg); 32*4882a593Smuzhiyun extern void StopVTG(volatile STG4000REG __iomem *pSTGReg); 33*4882a593Smuzhiyun extern void StartVTG(volatile STG4000REG __iomem *pSTGReg); 34*4882a593Smuzhiyun extern void SetupVTG(volatile STG4000REG __iomem *pSTGReg, 35*4882a593Smuzhiyun const struct kyrofb_info * pTiming); 36*4882a593Smuzhiyun 37*4882a593Smuzhiyun extern u32 ProgramClock(u32 refClock, u32 coreClock, u32 *FOut, u32 *ROut, u32 *POut); 38*4882a593Smuzhiyun extern int SetCoreClockPLL(volatile STG4000REG __iomem *pSTGReg, struct pci_dev *pDev); 39*4882a593Smuzhiyun 40*4882a593Smuzhiyun /* 41*4882a593Smuzhiyun * Overlay setup 42*4882a593Smuzhiyun */ 43*4882a593Smuzhiyun extern void ResetOverlayRegisters(volatile STG4000REG __iomem *pSTGReg); 44*4882a593Smuzhiyun 45*4882a593Smuzhiyun extern int CreateOverlaySurface(volatile STG4000REG __iomem *pSTGReg, 46*4882a593Smuzhiyun u32 ulWidth, u32 ulHeight, 47*4882a593Smuzhiyun int bLinear, 48*4882a593Smuzhiyun u32 ulOverlayOffset, 49*4882a593Smuzhiyun u32 * retStride, u32 * retUVStride); 50*4882a593Smuzhiyun 51*4882a593Smuzhiyun extern int SetOverlayBlendMode(volatile STG4000REG __iomem *pSTGReg, 52*4882a593Smuzhiyun OVRL_BLEND_MODE mode, 53*4882a593Smuzhiyun u32 ulAlpha, u32 ulColorKey); 54*4882a593Smuzhiyun 55*4882a593Smuzhiyun extern int SetOverlayViewPort(volatile STG4000REG __iomem *pSTGReg, 56*4882a593Smuzhiyun u32 left, u32 top, 57*4882a593Smuzhiyun u32 right, u32 bottom); 58*4882a593Smuzhiyun 59*4882a593Smuzhiyun extern void EnableOverlayPlane(volatile STG4000REG __iomem *pSTGReg); 60*4882a593Smuzhiyun 61*4882a593Smuzhiyun #endif /* _STG4000INTERFACE_H */ 62