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 */
20extern int InitialiseRamdac(volatile STG4000REG __iomem *pSTGReg, u32 displayDepth,
21			    u32 displayWidth, u32 displayHeight,
22			    s32 HSyncPolarity, s32 VSyncPolarity,
23			    u32 *pixelClock);
24
25extern void DisableRamdacOutput(volatile STG4000REG __iomem *pSTGReg);
26extern void EnableRamdacOutput(volatile STG4000REG __iomem *pSTGReg);
27
28/*
29 * Timing generator setup
30 */
31extern void DisableVGA(volatile STG4000REG __iomem *pSTGReg);
32extern void StopVTG(volatile STG4000REG __iomem *pSTGReg);
33extern void StartVTG(volatile STG4000REG __iomem *pSTGReg);
34extern void SetupVTG(volatile STG4000REG __iomem *pSTGReg,
35		     const struct kyrofb_info * pTiming);
36
37extern u32 ProgramClock(u32 refClock, u32 coreClock, u32 *FOut, u32 *ROut, u32 *POut);
38extern int SetCoreClockPLL(volatile STG4000REG __iomem *pSTGReg, struct pci_dev *pDev);
39
40/*
41 * Overlay setup
42 */
43extern void ResetOverlayRegisters(volatile STG4000REG __iomem *pSTGReg);
44
45extern int CreateOverlaySurface(volatile STG4000REG __iomem *pSTGReg,
46				u32 ulWidth, u32 ulHeight,
47				int bLinear,
48				u32 ulOverlayOffset,
49				u32 * retStride, u32 * retUVStride);
50
51extern int SetOverlayBlendMode(volatile STG4000REG __iomem *pSTGReg,
52			       OVRL_BLEND_MODE mode,
53			       u32 ulAlpha, u32 ulColorKey);
54
55extern int SetOverlayViewPort(volatile STG4000REG __iomem *pSTGReg,
56			      u32 left, u32 top,
57			      u32 right, u32 bottom);
58
59extern void EnableOverlayPlane(volatile STG4000REG __iomem *pSTGReg);
60
61#endif /* _STG4000INTERFACE_H */
62