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