|
@@ -0,0 +1,83 @@
|
|
|
+/*
|
|
|
+ * am200epd.c -- Platform device for AM200 EPD kit
|
|
|
+ *
|
|
|
+ * Copyright (C) 2008, Jaya Kumar
|
|
|
+ *
|
|
|
+ * This file is subject to the terms and conditions of the GNU General Public
|
|
|
+ * License. See the file COPYING in the main directory of this archive for
|
|
|
+ * more details.
|
|
|
+ *
|
|
|
+ * Layout is based on skeletonfb.c by James Simmons and Geert Uytterhoeven.
|
|
|
+ *
|
|
|
+ * This work was made possible by help and equipment support from E-Ink
|
|
|
+ * Corporation. http://support.eink.com/community
|
|
|
+ *
|
|
|
+ * This driver is written to be used with the Metronome display controller.
|
|
|
+ * on the AM200 EPD prototype kit/development kit with an E-Ink 800x600
|
|
|
+ * Vizplex EPD on a Gumstix board using the Lyre interface board.
|
|
|
+ *
|
|
|
+ */
|
|
|
+
|
|
|
+#include <linux/module.h>
|
|
|
+#include <linux/kernel.h>
|
|
|
+#include <linux/errno.h>
|
|
|
+#include <linux/string.h>
|
|
|
+#include <linux/delay.h>
|
|
|
+#include <linux/interrupt.h>
|
|
|
+#include <linux/fb.h>
|
|
|
+#include <linux/init.h>
|
|
|
+#include <linux/platform_device.h>
|
|
|
+#include <linux/irq.h>
|
|
|
+#include <linux/gpio.h>
|
|
|
+
|
|
|
+#include <mach/pxa25x.h>
|
|
|
+#include <mach/gumstix.h>
|
|
|
+#include <linux/platform_data/video-pxafb.h>
|
|
|
+
|
|
|
+#include "generic.h"
|
|
|
+
|
|
|
+#include <video/metronomefb.h>
|
|
|
+
|
|
|
+static unsigned int panel_type = 6;
|
|
|
+static struct platform_device *am200_device;
|
|
|
+static struct metronome_board am200_board;
|
|
|
+
|
|
|
+static struct pxafb_mode_info am200_fb_mode_9inch7 = {
|
|
|
+ .pixclock = 40000,
|
|
|
+ .xres = 1200,
|
|
|
+ .yres = 842,
|
|
|
+ .bpp = 16,
|
|
|
+ .hsync_len = 2,
|
|
|
+ .left_margin = 2,
|
|
|
+ .right_margin = 2,
|
|
|
+ .vsync_len = 1,
|
|
|
+ .upper_margin = 2,
|
|
|
+ .lower_margin = 25,
|
|
|
+ .sync = FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT,
|
|
|
+};
|
|
|
+
|
|
|
+static struct pxafb_mode_info am200_fb_mode_8inch = {
|
|
|
+ .pixclock = 40000,
|
|
|
+ .xres = 1088,
|
|
|
+ .yres = 791,
|
|
|
+ .bpp = 16,
|
|
|
+ .hsync_len = 28,
|
|
|
+ .left_margin = 8,
|
|
|
+ .right_margin = 30,
|
|
|
+ .vsync_len = 8,
|
|
|
+ .upper_margin = 10,
|
|
|
+ .lower_margin = 8,
|
|
|
+ .sync = FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT,
|
|
|
+};
|
|
|
+
|
|
|
+static struct pxafb_mode_info am200_fb_mode_6inch = {
|
|
|
+ .pixclock = 40189,
|
|
|
+ .xres = 832,
|
|
|
+ .yres = 622,
|
|
|
+ .bpp = 16,
|
|
|
+ .hsync_len = 28,
|
|
|
+ .left_margin = 34,
|
|
|
+ .right_margin = 34,
|
|
|
+ .vsync_len = 25,
|
|
|
+ .upper_margin = 0,
|
|
|
+ .lower_margin = 2,
|