diff options
Diffstat (limited to 'target/device/Atmel/atngw100-expanded/kernel-patches/linux-2.6.23-300-atngw100-video.patch')
-rw-r--r-- | target/device/Atmel/atngw100-expanded/kernel-patches/linux-2.6.23-300-atngw100-video.patch | 175 |
1 files changed, 0 insertions, 175 deletions
diff --git a/target/device/Atmel/atngw100-expanded/kernel-patches/linux-2.6.23-300-atngw100-video.patch b/target/device/Atmel/atngw100-expanded/kernel-patches/linux-2.6.23-300-atngw100-video.patch deleted file mode 100644 index 16d2b9675..000000000 --- a/target/device/Atmel/atngw100-expanded/kernel-patches/linux-2.6.23-300-atngw100-video.patch +++ /dev/null @@ -1,175 +0,0 @@ -diff -Nrup linux-2.6.23/arch/avr32/boards/atngw100/flash.c linux-2.6.23-patched/arch/avr32/boards/atngw100/flash.c ---- a/arch/avr32/boards/atngw100/flash.c 2008-01-31 10:47:55.000000000 -0500 -+++ b/arch/avr32/boards/atngw100/flash.c 2008-01-31 10:21:07.000000000 -0500 -@@ -42,7 +42,6 @@ static struct mtd_partition flash_parts[ - .name = "u-boot", - .offset = 0x00000000, - .size = 0x00020000, /* 128 KiB */ -- .mask_flags = MTD_WRITEABLE, - }, - { - .name = "root", -diff -Nrup linux-2.6.23/arch/avr32/boards/atngw100/setup.c linux-2.6.23-patched/arch/avr32/boards/atngw100/setup.c ---- a/arch/avr32/boards/atngw100/setup.c 2008-01-31 10:47:55.000000000 -0500 -+++ b/arch/avr32/boards/atngw100/setup.c 2008-01-31 10:28:00.000000000 -0500 -@@ -16,6 +16,8 @@ - #include <linux/types.h> - #include <linux/leds.h> - #include <linux/spi/spi.h> -+#include <linux/fb.h> -+#include <video/atmel_lcdc.h> - - #include <asm/io.h> - #include <asm/setup.h> -@@ -27,6 +29,58 @@ - - /* Initialized by bootloader-specific startup code. */ - struct tag *bootloader_tags __initdata; -+static struct fb_videomode __initdata video_modes[] = { -+ { -+ .name = "640x480@60", -+ .refresh = 60, -+ .xres = 640, .yres = 480, -+ .pixclock = KHZ2PICOS(23856), -+ -+ .left_margin = 80, .right_margin = 16, -+ .upper_margin = 13, .lower_margin = 1, -+ .hsync_len = 64, .vsync_len = 3, -+ -+ .sync = 0, -+ .vmode = FB_VMODE_NONINTERLACED, -+ }, -+ { -+ .name = "320x240@117", -+ .refresh = 117, -+ .xres = 320, .yres = 240, -+ .pixclock = KHZ2PICOS(12074), -+ -+ .left_margin = 40, .right_margin = 8, -+ .upper_margin = 14, .lower_margin = 1, -+ .hsync_len = 32, .vsync_len = 3, -+ -+ .sync = 0, -+ .vmode = FB_VMODE_NONINTERLACED, -+ }, -+}; -+ -+static struct fb_monspecs __initdata atngw100_default_monspecs = { -+ .manufacturer = "ATM", -+ .monitor = "GENERIC", -+ .modedb = video_modes, -+ .modedb_len = ARRAY_SIZE(video_modes), -+ .hfmin = 14820, -+ .hfmax = 32000, -+ .vfmin = 30, -+ .vfmax = 200, -+ .dclkmax = 30000000, -+}; -+ -+struct atmel_lcdfb_info __initdata atngw100_lcdc_data = { -+ .default_bpp = 16, -+ .default_dmacon = ATMEL_LCDC_DMAEN | ATMEL_LCDC_DMA2DEN, -+ .default_lcdcon2 = (ATMEL_LCDC_DISTYPE_TFT -+ | ATMEL_LCDC_INVCLK -+ | ATMEL_LCDC_INVDVAL_NORMAL -+ | ATMEL_LCDC_CLKMOD_ALWAYSACTIVE -+ | ATMEL_LCDC_MEMOR_BIG), -+ .default_monspecs = &atngw100_default_monspecs, -+ .guard_time = 2, -+}; - - struct eth_addr { - u8 addr[6]; -@@ -156,16 +210,19 @@ static int __init atngw100_init(void) - * reserve any pins for it. - */ - -+ at32_add_device_lcdc(1, &atngw100_lcdc_data, fbmem_start, fbmem_size); -+ - at32_add_system_devices(); - - at32_add_device_usart(0); - - set_hw_addr(at32_add_device_eth(0, ð_data[0])); -- set_hw_addr(at32_add_device_eth(1, ð_data[1])); -+ //set_hw_addr(at32_add_device_eth(1, ð_data[1])); - - at32_add_device_spi(0, spi0_board_info, ARRAY_SIZE(spi0_board_info)); - at32_add_device_mci(0, &mci0_data); - at32_add_device_usba(0, NULL); -+ at32_add_device_ac97c(0); - - for (i = 0; i < ARRAY_SIZE(ngw_leds); i++) { - at32_select_gpio(ngw_leds[i].gpio, -diff -Nrup linux-2.6.23/arch/avr32/mach-at32ap/at32ap700x.c linux-2.6.23-patched/arch/avr32/mach-at32ap/at32ap700x.c ---- a/arch/avr32/mach-at32ap/at32ap700x.c 2008-01-31 10:47:55.000000000 -0500 -+++ b/arch/avr32/mach-at32ap/at32ap700x.c 2008-01-31 10:29:22.000000000 -0500 -@@ -1116,6 +1116,15 @@ at32_add_device_lcdc(unsigned int id, st - struct fb_videomode *modedb; - unsigned int modedb_size; - -+ /* help to prevent DMA underruns, which causes -+ the screen position to jump around */ -+ hmatrix_writel(SCFG4, HMATRIX_BIT(ARBT) -+ | HMATRIX_BF(FIXED_DEFMSTR, 0x5) -+ | HMATRIX_BF(SLOT_CYCLE, 0x40) -+ | HMATRIX_BF(DEFMSTR_TYPE -+ , HMATRIX_DEFMSTR_TYPE_FIXED_DEFAULT)); -+ hmatrix_writel(PRAS4, 0x0FF00000); -+ - /* - * Do a deep copy of the fb data, monspecs and modedb. Make - * sure all allocations are done before setting up the -@@ -1133,7 +1142,7 @@ at32_add_device_lcdc(unsigned int id, st - monspecs->modedb = modedb; - - switch (id) { -- case 0: -+ case 0: // STK1000 peripheral connections - pdev = &atmel_lcdfb0_device; - select_peripheral(PC(19), PERIPH_A, 0); /* CC */ - select_peripheral(PC(20), PERIPH_A, 0); /* HSYNC */ -@@ -1170,6 +1179,43 @@ at32_add_device_lcdc(unsigned int id, st - clk_set_parent(&atmel_lcdfb0_pixclk, &pll0); - clk_set_rate(&atmel_lcdfb0_pixclk, clk_get_rate(&pll0)); - break; -+ case 1: // NGW100 peripheral connections -+ pdev = &atmel_lcdfb0_device; -+ //select_peripheral(PC(19), PERIPH_B, 0); /* CC */ -+ select_peripheral(PC(20), PERIPH_A, 0); /* HSYNC */ -+ select_peripheral(PC(21), PERIPH_A, 0); /* PCLK */ -+ select_peripheral(PC(22), PERIPH_A, 0); /* VSYNC */ -+ select_peripheral(PE(1), PERIPH_B, 0); /* DVAL */ -+ select_peripheral(PE(2), PERIPH_B, 0); /* MODE */ -+ //select_peripheral(PC(25), PERIPH_A, 0); /* PWR */ -+ select_peripheral(PE(3), PERIPH_B, 0); /* DATA0 */ -+ select_peripheral(PE(4), PERIPH_B, 0); /* DATA1 */ -+ select_peripheral(PE(5), PERIPH_B, 0); /* DATA2 */ -+ select_peripheral(PE(6), PERIPH_B, 0); /* DATA3 */ -+ select_peripheral(PE(7), PERIPH_B, 0); /* DATA4 */ -+ select_peripheral(PC(31), PERIPH_A, 0); /* DATA5 */ -+ select_peripheral(PD(0), PERIPH_A, 0); /* DATA6 */ -+ select_peripheral(PD(1), PERIPH_A, 0); /* DATA7 */ -+ select_peripheral(PE(8), PERIPH_B, 0); /* DATA8 */ -+ select_peripheral(PE(9), PERIPH_B, 0); /* DATA9 */ -+ select_peripheral(PE(10), PERIPH_B, 0); /* DATA10 */ -+ select_peripheral(PE(11), PERIPH_B, 0); /* DATA11 */ -+ select_peripheral(PE(12), PERIPH_B, 0); /* DATA12 */ -+ select_peripheral(PD(7), PERIPH_A, 0); /* DATA13 */ -+ select_peripheral(PD(8), PERIPH_A, 0); /* DATA14 */ -+ select_peripheral(PD(9), PERIPH_A, 0); /* DATA15 */ -+ select_peripheral(PE(13), PERIPH_B, 0); /* DATA16 */ -+ select_peripheral(PE(14), PERIPH_B, 0); /* DATA17 */ -+ select_peripheral(PE(15), PERIPH_B, 0); /* DATA18 */ -+ select_peripheral(PE(16), PERIPH_B, 0); /* DATA19 */ -+ select_peripheral(PE(17), PERIPH_B, 0); /* DATA20 */ -+ select_peripheral(PE(18), PERIPH_B, 0); /* DATA21 */ -+ select_peripheral(PD(16), PERIPH_A, 0); /* DATA22 */ -+ select_peripheral(PD(17), PERIPH_A, 0); /* DATA23 */ -+ -+ clk_set_parent(&atmel_lcdfb0_pixclk, &pll0); -+ clk_set_rate(&atmel_lcdfb0_pixclk, clk_get_rate(&pll0)); -+ break; - - default: - goto err_invalid_id; |