|
@@ -40,8 +40,6 @@
|
|
|
*/
|
|
|
#define DEBUG_VAR 1
|
|
|
|
|
|
-#include "imxfb.h"
|
|
|
-
|
|
|
#define DRIVER_NAME "imx-fb"
|
|
|
|
|
|
#define LCDC_SSA 0x00
|
|
@@ -109,6 +107,66 @@
|
|
|
#define LCDISR_EOF (1<<1)
|
|
|
#define LCDISR_BOF (1<<0)
|
|
|
|
|
|
+/*
|
|
|
+ * These are the bitfields for each
|
|
|
+ * display depth that we support.
|
|
|
+ */
|
|
|
+struct imxfb_rgb {
|
|
|
+ struct fb_bitfield red;
|
|
|
+ struct fb_bitfield green;
|
|
|
+ struct fb_bitfield blue;
|
|
|
+ struct fb_bitfield transp;
|
|
|
+};
|
|
|
+
|
|
|
+#define RGB_16 (0)
|
|
|
+#define RGB_8 (1)
|
|
|
+#define NR_RGB 2
|
|
|
+
|
|
|
+struct imxfb_info {
|
|
|
+ struct platform_device *pdev;
|
|
|
+ void __iomem *regs;
|
|
|
+
|
|
|
+ struct imxfb_rgb *rgb[NR_RGB];
|
|
|
+
|
|
|
+ u_int max_bpp;
|
|
|
+ u_int max_xres;
|
|
|
+ u_int max_yres;
|
|
|
+
|
|
|
+ /*
|
|
|
+ * These are the addresses we mapped
|
|
|
+ * the framebuffer memory region to.
|
|
|
+ */
|
|
|
+ dma_addr_t map_dma;
|
|
|
+ u_char *map_cpu;
|
|
|
+ u_int map_size;
|
|
|
+
|
|
|
+ u_char *screen_cpu;
|
|
|
+ dma_addr_t screen_dma;
|
|
|
+ u_int palette_size;
|
|
|
+
|
|
|
+ dma_addr_t dbar1;
|
|
|
+ dma_addr_t dbar2;
|
|
|
+
|
|
|
+ u_int pcr;
|
|
|
+ u_int pwmr;
|
|
|
+ u_int lscr1;
|
|
|
+ u_int dmacr;
|
|
|
+ u_int cmap_inverse:1,
|
|
|
+ cmap_static:1,
|
|
|
+ unused:30;
|
|
|
+
|
|
|
+ void (*lcd_power)(int);
|
|
|
+ void (*backlight_power)(int);
|
|
|
+};
|
|
|
+
|
|
|
+#define IMX_NAME "IMX"
|
|
|
+
|
|
|
+/*
|
|
|
+ * Minimum X and Y resolutions
|
|
|
+ */
|
|
|
+#define MIN_XRES 64
|
|
|
+#define MIN_YRES 64
|
|
|
+
|
|
|
static struct imxfb_rgb def_rgb_16 = {
|
|
|
.red = { .offset = 8, .length = 4, },
|
|
|
.green = { .offset = 4, .length = 4, },
|