aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/fsl-diu-fb.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/linux/fsl-diu-fb.h')
-rw-r--r--include/linux/fsl-diu-fb.h92
1 files changed, 20 insertions, 72 deletions
diff --git a/include/linux/fsl-diu-fb.h b/include/linux/fsl-diu-fb.h
index daa9952d2174..11c16a1fb9e3 100644
--- a/include/linux/fsl-diu-fb.h
+++ b/include/linux/fsl-diu-fb.h
@@ -20,18 +20,8 @@
20#ifndef __FSL_DIU_FB_H__ 20#ifndef __FSL_DIU_FB_H__
21#define __FSL_DIU_FB_H__ 21#define __FSL_DIU_FB_H__
22 22
23/* Arbitrary threshold to determine the allocation method
24 * See mpc8610fb_set_par(), map_video_memory(), and unmap_video_memory()
25 */
26#define MEM_ALLOC_THRESHOLD (1024*768*4+32)
27
28#include <linux/types.h> 23#include <linux/types.h>
29 24
30struct mfb_alpha {
31 int enable;
32 int alpha;
33};
34
35struct mfb_chroma_key { 25struct mfb_chroma_key {
36 int enable; 26 int enable;
37 __u8 red_max; 27 __u8 red_max;
@@ -43,25 +33,29 @@ struct mfb_chroma_key {
43}; 33};
44 34
45struct aoi_display_offset { 35struct aoi_display_offset {
46 int x_aoi_d; 36 __s32 x_aoi_d;
47 int y_aoi_d; 37 __s32 y_aoi_d;
48}; 38};
49 39
50#define MFB_SET_CHROMA_KEY _IOW('M', 1, struct mfb_chroma_key) 40#define MFB_SET_CHROMA_KEY _IOW('M', 1, struct mfb_chroma_key)
51#define MFB_SET_BRIGHTNESS _IOW('M', 3, __u8) 41#define MFB_SET_BRIGHTNESS _IOW('M', 3, __u8)
42#define MFB_SET_ALPHA _IOW('M', 0, __u8)
43#define MFB_GET_ALPHA _IOR('M', 0, __u8)
44#define MFB_SET_AOID _IOW('M', 4, struct aoi_display_offset)
45#define MFB_GET_AOID _IOR('M', 4, struct aoi_display_offset)
46#define MFB_SET_PIXFMT _IOW('M', 8, __u32)
47#define MFB_GET_PIXFMT _IOR('M', 8, __u32)
52 48
53#define MFB_SET_ALPHA 0x80014d00 49/*
54#define MFB_GET_ALPHA 0x40014d00 50 * The original definitions of MFB_SET_PIXFMT and MFB_GET_PIXFMT used the
55#define MFB_SET_AOID 0x80084d04 51 * wrong value for 'size' field of the ioctl. The current macros above use the
56#define MFB_GET_AOID 0x40084d04 52 * right size, but we still need to provide backwards compatibility, at least
57#define MFB_SET_PIXFMT 0x80014d08 53 * for a while.
58#define MFB_GET_PIXFMT 0x40014d08 54*/
59 55#define MFB_SET_PIXFMT_OLD 0x80014d08
60#define FBIOGET_GWINFO 0x46E0 56#define MFB_GET_PIXFMT_OLD 0x40014d08
61#define FBIOPUT_GWINFO 0x46E1
62 57
63#ifdef __KERNEL__ 58#ifdef __KERNEL__
64#include <linux/spinlock.h>
65 59
66/* 60/*
67 * These are the fields of area descriptor(in DDR memory) for every plane 61 * These are the fields of area descriptor(in DDR memory) for every plane
@@ -159,58 +153,12 @@ struct diu {
159 __be32 plut; 153 __be32 plut;
160} __attribute__ ((packed)); 154} __attribute__ ((packed));
161 155
162struct diu_hw { 156/*
163 struct diu *diu_reg; 157 * Modes of operation of DIU. The DIU supports five different modes, but
164 spinlock_t reg_lock; 158 * the driver only supports modes 0 and 1.
165 159 */
166 __u32 mode; /* DIU operation mode */
167};
168
169struct diu_addr {
170 __u8 __iomem *vaddr; /* Virtual address */
171 dma_addr_t paddr; /* Physical address */
172 __u32 offset;
173};
174
175struct diu_pool {
176 struct diu_addr ad;
177 struct diu_addr gamma;
178 struct diu_addr pallete;
179 struct diu_addr cursor;
180};
181
182#define FSL_DIU_BASE_OFFSET 0x2C000 /* Offset of DIU */
183#define INT_LCDC 64 /* DIU interrupt number */
184
185#define FSL_AOI_NUM 6 /* 5 AOIs and one dummy AOI */
186 /* 1 for plane 0, 2 for plane 1&2 each */
187
188/* Minimum X and Y resolutions */
189#define MIN_XRES 64
190#define MIN_YRES 64
191
192/* HW cursor parameters */
193#define MAX_CURS 32
194
195/* Modes of operation of DIU */
196#define MFB_MODE0 0 /* DIU off */ 160#define MFB_MODE0 0 /* DIU off */
197#define MFB_MODE1 1 /* All three planes output to display */ 161#define MFB_MODE1 1 /* All three planes output to display */
198#define MFB_MODE2 2 /* Plane 1 to display, planes 2+3 written back*/
199#define MFB_MODE3 3 /* All three planes written back to memory */
200#define MFB_MODE4 4 /* Color bar generation */
201
202/* INT_STATUS/INT_MASK field descriptions */
203#define INT_VSYNC 0x01 /* Vsync interrupt */
204#define INT_VSYNC_WB 0x02 /* Vsync interrupt for write back operation */
205#define INT_UNDRUN 0x04 /* Under run exception interrupt */
206#define INT_PARERR 0x08 /* Display parameters error interrupt */
207#define INT_LS_BF_VS 0x10 /* Lines before vsync. interrupt */
208
209/* Panels'operation modes */
210#define MFB_TYPE_OUTPUT 0 /* Panel output to display */
211#define MFB_TYPE_OFF 1 /* Panel off */
212#define MFB_TYPE_WB 2 /* Panel written back to memory */
213#define MFB_TYPE_TEST 3 /* Panel generate color bar */
214 162
215#endif /* __KERNEL__ */ 163#endif /* __KERNEL__ */
216#endif /* __FSL_DIU_FB_H__ */ 164#endif /* __FSL_DIU_FB_H__ */