| Mike Rapoport | 22caf04 | 2006-07-14 00:24:34 -0700 | [diff] [blame] | 1 | #ifndef __MBX_FB_H | 
 | 2 | #define __MBX_FB_H | 
 | 3 |  | 
| Raphael Assenat | ea46525 | 2006-12-08 02:40:36 -0800 | [diff] [blame] | 4 | #include <asm/ioctl.h> | 
 | 5 | #include <asm/types.h> | 
 | 6 |  | 
| Mike Rapoport | 22caf04 | 2006-07-14 00:24:34 -0700 | [diff] [blame] | 7 | struct mbxfb_val { | 
 | 8 | 	unsigned int	defval; | 
 | 9 | 	unsigned int	min; | 
 | 10 | 	unsigned int	max; | 
 | 11 | }; | 
 | 12 |  | 
 | 13 | struct fb_info; | 
 | 14 |  | 
 | 15 | struct mbxfb_platform_data { | 
 | 16 | 		/* Screen info */ | 
 | 17 | 		struct mbxfb_val xres; | 
 | 18 | 		struct mbxfb_val yres; | 
 | 19 | 		struct mbxfb_val bpp; | 
 | 20 |  | 
 | 21 | 		/* Memory info */ | 
 | 22 | 		unsigned long memsize; /* if 0 use ODFB? */ | 
 | 23 | 		unsigned long timings1; | 
 | 24 | 		unsigned long timings2; | 
 | 25 | 		unsigned long timings3; | 
 | 26 |  | 
 | 27 | 		int (*probe)(struct fb_info *fb); | 
 | 28 | 		int (*remove)(struct fb_info *fb); | 
 | 29 | }; | 
 | 30 |  | 
| Raphael Assenat | ea46525 | 2006-12-08 02:40:36 -0800 | [diff] [blame] | 31 | /* planar */ | 
| Raphael Assenat | ba282da | 2007-10-16 01:28:40 -0700 | [diff] [blame] | 32 | #define MBXFB_FMT_YUV16		0 | 
 | 33 | #define MBXFB_FMT_YUV12		1 | 
| Raphael Assenat | ea46525 | 2006-12-08 02:40:36 -0800 | [diff] [blame] | 34 |  | 
 | 35 | /* packed */ | 
| Raphael Assenat | ba282da | 2007-10-16 01:28:40 -0700 | [diff] [blame] | 36 | #define MBXFB_FMT_UY0VY1	2 | 
 | 37 | #define MBXFB_FMT_VY0UY1	3 | 
 | 38 | #define MBXFB_FMT_Y0UY1V	4 | 
 | 39 | #define MBXFB_FMT_Y0VY1U	5 | 
| Raphael Assenat | ea46525 | 2006-12-08 02:40:36 -0800 | [diff] [blame] | 40 | struct mbxfb_overlaySetup { | 
 | 41 | 	__u32 enable; | 
 | 42 | 	__u32 x, y; | 
 | 43 | 	__u32 width, height; | 
| Raphael Assenat | ea46525 | 2006-12-08 02:40:36 -0800 | [diff] [blame] | 44 | 	__u32 fmt; | 
 | 45 | 	__u32 mem_offset; | 
 | 46 | 	__u32 scaled_width; | 
 | 47 | 	__u32 scaled_height; | 
 | 48 |  | 
 | 49 | 	/* Filled by the driver */ | 
 | 50 | 	__u32 U_offset; | 
 | 51 | 	__u32 V_offset; | 
 | 52 |  | 
 | 53 | 	__u16 Y_stride; | 
 | 54 | 	__u16 UV_stride; | 
 | 55 | }; | 
 | 56 |  | 
| Raphael Assenat | ba282da | 2007-10-16 01:28:40 -0700 | [diff] [blame] | 57 | #define MBXFB_ALPHABLEND_NONE		0 | 
 | 58 | #define MBXFB_ALPHABLEND_GLOBAL		1 | 
 | 59 | #define MBXFB_ALPHABLEND_PIXEL		2 | 
 | 60 |  | 
 | 61 | #define MBXFB_COLORKEY_DISABLED		0 | 
 | 62 | #define MBXFB_COLORKEY_PREVIOUS		1 | 
 | 63 | #define MBXFB_COLORKEY_CURRENT		2 | 
 | 64 | struct mbxfb_alphaCtl { | 
 | 65 | 	__u8 overlay_blend_mode; | 
 | 66 | 	__u8 overlay_colorkey_mode; | 
 | 67 | 	__u8 overlay_global_alpha; | 
 | 68 | 	__u32 overlay_colorkey; | 
 | 69 | 	__u32 overlay_colorkey_mask; | 
 | 70 |  | 
 | 71 | 	__u8 graphics_blend_mode; | 
 | 72 | 	__u8 graphics_colorkey_mode; | 
 | 73 | 	__u8 graphics_global_alpha; | 
 | 74 | 	__u32 graphics_colorkey; | 
 | 75 | 	__u32 graphics_colorkey_mask; | 
 | 76 | }; | 
 | 77 |  | 
 | 78 | #define MBXFB_PLANE_GRAPHICS	0 | 
 | 79 | #define MBXFB_PLANE_VIDEO	1 | 
 | 80 | struct mbxfb_planeorder { | 
 | 81 | 	__u8 bottom; | 
 | 82 | 	__u8 top; | 
 | 83 | }; | 
 | 84 |  | 
 | 85 | struct mbxfb_reg { | 
 | 86 | 	__u32 addr; 	/* offset from 0x03fe 0000 */ | 
 | 87 | 	__u32 val;		/* value */ | 
 | 88 | 	__u32 mask;		/* which bits to touch (for write) */ | 
 | 89 | }; | 
 | 90 |  | 
 | 91 | #define MBXFB_IOCX_OVERLAY		_IOWR(0xF4, 0x00,struct mbxfb_overlaySetup) | 
 | 92 | #define MBXFB_IOCG_ALPHA		_IOR(0xF4, 0x01,struct mbxfb_alphaCtl) | 
 | 93 | #define MBXFB_IOCS_ALPHA		_IOW(0xF4, 0x02,struct mbxfb_alphaCtl) | 
 | 94 | #define MBXFB_IOCS_PLANEORDER	_IOR(0xF4, 0x03,struct mbxfb_planeorder) | 
 | 95 | #define MBXFB_IOCS_REG			_IOW(0xF4, 0x04,struct mbxfb_reg) | 
 | 96 | #define MBXFB_IOCX_REG			_IOWR(0xF4, 0x05,struct mbxfb_reg) | 
| Raphael Assenat | ea46525 | 2006-12-08 02:40:36 -0800 | [diff] [blame] | 97 |  | 
| Mike Rapoport | 22caf04 | 2006-07-14 00:24:34 -0700 | [diff] [blame] | 98 | #endif /* __MBX_FB_H */ |