1*4882a593Smuzhiyun /* 2*4882a593Smuzhiyun * linux/drivers/video/kyro/kryo.h 3*4882a593Smuzhiyun * 4*4882a593Smuzhiyun * Copyright (C) 2002 STMicroelectronics 5*4882a593Smuzhiyun * Copyright (C) 2004 Paul Mundt 6*4882a593Smuzhiyun * 7*4882a593Smuzhiyun * This file is subject to the terms and conditions of the GNU General Public 8*4882a593Smuzhiyun * License. See the file COPYING in the main directory of this archive 9*4882a593Smuzhiyun * for more details. 10*4882a593Smuzhiyun */ 11*4882a593Smuzhiyun 12*4882a593Smuzhiyun #ifndef _KYRO_H 13*4882a593Smuzhiyun #define _KYRO_H 14*4882a593Smuzhiyun 15*4882a593Smuzhiyun struct kyrofb_info { 16*4882a593Smuzhiyun void __iomem *regbase; 17*4882a593Smuzhiyun 18*4882a593Smuzhiyun u32 palette[16]; 19*4882a593Smuzhiyun u32 HTot; /* Hor Total Time */ 20*4882a593Smuzhiyun u32 HFP; /* Hor Front Porch */ 21*4882a593Smuzhiyun u32 HST; /* Hor Sync Time */ 22*4882a593Smuzhiyun u32 HBP; /* Hor Back Porch */ 23*4882a593Smuzhiyun s32 HSP; /* Hor Sync Polarity */ 24*4882a593Smuzhiyun u32 VTot; /* Ver Total Time */ 25*4882a593Smuzhiyun u32 VFP; /* Ver Front Porch */ 26*4882a593Smuzhiyun u32 VST; /* Ver Sync Time */ 27*4882a593Smuzhiyun u32 VBP; /* Ver Back Porch */ 28*4882a593Smuzhiyun s32 VSP; /* Ver Sync Polarity */ 29*4882a593Smuzhiyun u32 XRES; /* X Resolution */ 30*4882a593Smuzhiyun u32 YRES; /* Y Resolution */ 31*4882a593Smuzhiyun u32 VFREQ; /* Ver Frequency */ 32*4882a593Smuzhiyun u32 PIXCLK; /* Pixel Clock */ 33*4882a593Smuzhiyun u32 HCLK; /* Hor Clock */ 34*4882a593Smuzhiyun 35*4882a593Smuzhiyun /* Useful to hold depth here for Linux */ 36*4882a593Smuzhiyun u8 PIXDEPTH; 37*4882a593Smuzhiyun 38*4882a593Smuzhiyun int wc_cookie; 39*4882a593Smuzhiyun }; 40*4882a593Smuzhiyun 41*4882a593Smuzhiyun extern int kyro_dev_init(void); 42*4882a593Smuzhiyun extern void kyro_dev_reset(void); 43*4882a593Smuzhiyun 44*4882a593Smuzhiyun extern unsigned char *kyro_dev_physical_fb_ptr(void); 45*4882a593Smuzhiyun extern unsigned char *kyro_dev_virtual_fb_ptr(void); 46*4882a593Smuzhiyun extern void *kyro_dev_physical_regs_ptr(void); 47*4882a593Smuzhiyun extern void *kyro_dev_virtual_regs_ptr(void); 48*4882a593Smuzhiyun extern unsigned int kyro_dev_fb_size(void); 49*4882a593Smuzhiyun extern unsigned int kyro_dev_regs_size(void); 50*4882a593Smuzhiyun 51*4882a593Smuzhiyun extern u32 kyro_dev_overlay_offset(void); 52*4882a593Smuzhiyun 53*4882a593Smuzhiyun /* 54*4882a593Smuzhiyun * benedict.gaster@superh.com 55*4882a593Smuzhiyun * Added the follow IOCTLS for the creation of overlay services... 56*4882a593Smuzhiyun */ 57*4882a593Smuzhiyun #define KYRO_IOC_MAGIC 'k' 58*4882a593Smuzhiyun 59*4882a593Smuzhiyun #define KYRO_IOCTL_OVERLAY_CREATE _IO(KYRO_IOC_MAGIC, 0) 60*4882a593Smuzhiyun #define KYRO_IOCTL_OVERLAY_VIEWPORT_SET _IO(KYRO_IOC_MAGIC, 1) 61*4882a593Smuzhiyun #define KYRO_IOCTL_SET_VIDEO_MODE _IO(KYRO_IOC_MAGIC, 2) 62*4882a593Smuzhiyun #define KYRO_IOCTL_UVSTRIDE _IO(KYRO_IOC_MAGIC, 3) 63*4882a593Smuzhiyun #define KYRO_IOCTL_OVERLAY_OFFSET _IO(KYRO_IOC_MAGIC, 4) 64*4882a593Smuzhiyun #define KYRO_IOCTL_STRIDE _IO(KYRO_IOC_MAGIC, 5) 65*4882a593Smuzhiyun 66*4882a593Smuzhiyun /* 67*4882a593Smuzhiyun * The follow 3 structures are used to pass data from user space into the kernel 68*4882a593Smuzhiyun * for the creation of overlay surfaces and setting the video mode. 69*4882a593Smuzhiyun */ 70*4882a593Smuzhiyun typedef struct _OVERLAY_CREATE { 71*4882a593Smuzhiyun u32 ulWidth; 72*4882a593Smuzhiyun u32 ulHeight; 73*4882a593Smuzhiyun int bLinear; 74*4882a593Smuzhiyun } overlay_create; 75*4882a593Smuzhiyun 76*4882a593Smuzhiyun typedef struct _OVERLAY_VIEWPORT_SET { 77*4882a593Smuzhiyun u32 xOrgin; 78*4882a593Smuzhiyun u32 yOrgin; 79*4882a593Smuzhiyun u32 xSize; 80*4882a593Smuzhiyun u32 ySize; 81*4882a593Smuzhiyun } overlay_viewport_set; 82*4882a593Smuzhiyun 83*4882a593Smuzhiyun typedef struct _SET_VIDEO_MODE { 84*4882a593Smuzhiyun u32 ulWidth; 85*4882a593Smuzhiyun u32 ulHeight; 86*4882a593Smuzhiyun u32 ulScan; 87*4882a593Smuzhiyun u8 displayDepth; 88*4882a593Smuzhiyun int bLinear; 89*4882a593Smuzhiyun } set_video_mode; 90*4882a593Smuzhiyun 91*4882a593Smuzhiyun #endif /* _KYRO_H */ 92