|
@@ -62,3 +62,94 @@
|
|
|
#define GONI_UCON_DEFAULT (S3C2410_UCON_TXILEVEL | \
|
|
|
S3C2410_UCON_RXILEVEL | \
|
|
|
S3C2410_UCON_TXIRQMODE | \
|
|
|
+ S3C2410_UCON_RXIRQMODE | \
|
|
|
+ S3C2410_UCON_RXFIFO_TOI | \
|
|
|
+ S3C2443_UCON_RXERR_IRQEN)
|
|
|
+
|
|
|
+#define GONI_ULCON_DEFAULT S3C2410_LCON_CS8
|
|
|
+
|
|
|
+#define GONI_UFCON_DEFAULT S3C2410_UFCON_FIFOMODE
|
|
|
+
|
|
|
+static struct s3c2410_uartcfg goni_uartcfgs[] __initdata = {
|
|
|
+ [0] = {
|
|
|
+ .hwport = 0,
|
|
|
+ .flags = 0,
|
|
|
+ .ucon = GONI_UCON_DEFAULT,
|
|
|
+ .ulcon = GONI_ULCON_DEFAULT,
|
|
|
+ .ufcon = GONI_UFCON_DEFAULT |
|
|
|
+ S5PV210_UFCON_TXTRIG256 | S5PV210_UFCON_RXTRIG256,
|
|
|
+ },
|
|
|
+ [1] = {
|
|
|
+ .hwport = 1,
|
|
|
+ .flags = 0,
|
|
|
+ .ucon = GONI_UCON_DEFAULT,
|
|
|
+ .ulcon = GONI_ULCON_DEFAULT,
|
|
|
+ .ufcon = GONI_UFCON_DEFAULT |
|
|
|
+ S5PV210_UFCON_TXTRIG64 | S5PV210_UFCON_RXTRIG64,
|
|
|
+ },
|
|
|
+ [2] = {
|
|
|
+ .hwport = 2,
|
|
|
+ .flags = 0,
|
|
|
+ .ucon = GONI_UCON_DEFAULT,
|
|
|
+ .ulcon = GONI_ULCON_DEFAULT,
|
|
|
+ .ufcon = GONI_UFCON_DEFAULT |
|
|
|
+ S5PV210_UFCON_TXTRIG16 | S5PV210_UFCON_RXTRIG16,
|
|
|
+ },
|
|
|
+ [3] = {
|
|
|
+ .hwport = 3,
|
|
|
+ .flags = 0,
|
|
|
+ .ucon = GONI_UCON_DEFAULT,
|
|
|
+ .ulcon = GONI_ULCON_DEFAULT,
|
|
|
+ .ufcon = GONI_UFCON_DEFAULT |
|
|
|
+ S5PV210_UFCON_TXTRIG16 | S5PV210_UFCON_RXTRIG16,
|
|
|
+ },
|
|
|
+};
|
|
|
+
|
|
|
+/* Frame Buffer */
|
|
|
+static struct s3c_fb_pd_win goni_fb_win0 = {
|
|
|
+ .max_bpp = 32,
|
|
|
+ .default_bpp = 16,
|
|
|
+ .xres = 480,
|
|
|
+ .yres = 800,
|
|
|
+ .virtual_x = 480,
|
|
|
+ .virtual_y = 2 * 800,
|
|
|
+};
|
|
|
+
|
|
|
+static struct fb_videomode goni_lcd_timing = {
|
|
|
+ .left_margin = 16,
|
|
|
+ .right_margin = 16,
|
|
|
+ .upper_margin = 2,
|
|
|
+ .lower_margin = 28,
|
|
|
+ .hsync_len = 2,
|
|
|
+ .vsync_len = 1,
|
|
|
+ .xres = 480,
|
|
|
+ .yres = 800,
|
|
|
+ .refresh = 55,
|
|
|
+};
|
|
|
+
|
|
|
+static struct s3c_fb_platdata goni_lcd_pdata __initdata = {
|
|
|
+ .win[0] = &goni_fb_win0,
|
|
|
+ .vtiming = &goni_lcd_timing,
|
|
|
+ .vidcon0 = VIDCON0_VIDOUT_RGB | VIDCON0_PNRMODE_RGB |
|
|
|
+ VIDCON0_CLKSEL_LCD,
|
|
|
+ .vidcon1 = VIDCON1_INV_VCLK | VIDCON1_INV_VDEN
|
|
|
+ | VIDCON1_INV_HSYNC | VIDCON1_INV_VSYNC,
|
|
|
+ .setup_gpio = s5pv210_fb_gpio_setup_24bpp,
|
|
|
+};
|
|
|
+
|
|
|
+static int lcd_power_on(struct lcd_device *ld, int enable)
|
|
|
+{
|
|
|
+ return 1;
|
|
|
+}
|
|
|
+
|
|
|
+static int reset_lcd(struct lcd_device *ld)
|
|
|
+{
|
|
|
+ static unsigned int first = 1;
|
|
|
+ int reset_gpio = -1;
|
|
|
+
|
|
|
+ reset_gpio = S5PV210_MP05(5);
|
|
|
+
|
|
|
+ if (first) {
|
|
|
+ gpio_request(reset_gpio, "MLCD_RST");
|
|
|
+ first = 0;
|
|
|
+ }
|