xref: /OK3568_Linux_fs/kernel/drivers/video/fbdev/kyro/STG4000Interface.h (revision 4882a59341e53eb6f0b4789bf948001014eff981)
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