/* * linux/arch/arm/mach-w90x900/mach-nuc950evb.c * * Based on mach-s3c2410/mach-smdk2410.c by Jonas Dietsche * * Copyright (C) 2008 Nuvoton technology corporation. * * Wan ZongShun * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License as * published by the Free Software Foundation;version 2 of the License. * history: * Wang Qiang (rurality.linux@gmail.com) add LCD support * */ #include #include #include #include #include #include #include #include "nuc950.h" #ifdef CONFIG_FB_NUC900 /* LCD Controller */ static struct nuc900fb_display __initdata nuc950_lcd_info[] = { /* Giantplus Technology GPM1040A0 320x240 Color TFT LCD */ [0] = { .type = LCM_DCCS_VA_SRC_RGB565, .width = 320, .height = 240, .xres = 320, .yres = 240, .bpp = 16, .pixclock = 200000, .left_margin = 34, .right_margin = 54, .hsync_len = 10, .upper_margin = 18, .lower_margin = 4, .vsync_len = 1, .dccs = 0x8e00041a, .devctl = 0x060800c0, .fbctrl = 0x00a000a0, .scale = 0x04000400, }, }; static struct nuc900fb_mach_info nuc950_fb_info __initdata = { #if defined(CONFIG_GPM1040A0_320X240) .displays = &nuc950_lcd_info[0], #else .displays = nuc950_lcd_info, #endif .num_displays = ARRAY_SIZE(nuc950_lcd_info), .default_display = 0, .gpio_dir = 0x00000004, .gpio_dir_mask = 0xFFFFFFFD, .gpio_data = 0x00000004, .gpio_data_mask = 0xFFFFFFFD, }; #endif static void __init nuc950evb_map_io(void) { nuc950_map_io(); nuc950_init_clocks(); } static void __init nuc950evb_init(void) { nuc950_board_init(); #ifdef CONFIG_FB_NUC900 nuc900_fb_set_platdata(&nuc950_fb_info); #endif } MACHINE_START(W90P950EVB, "W90P950EVB") /* Maintainer: Wan ZongShun */ .phys_io = W90X900_PA_UART, .io_pg_offst = (((u32)W90X900_VA_UART) >> 18) & 0xfffc, .boot_params = 0, .map_io = nuc950evb_map_io, .init_irq = nuc900_init_irq, .init_machine = nuc950evb_init, .timer = &nuc900_timer, MACHINE_END