xref: /linux/drivers/video/fbdev/kyro/STG4000Interface.h (revision f7018c21350204c4cf628462f229d44d03545254)
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