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