-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Haavard Skinnemoen
committed
Oct 23, 2008
1 parent
7f3bc77
commit d654ba1
Showing
20 changed files
with
6,020 additions
and
4 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,2 +1,2 @@ | ||
--- | ||
refs/heads/master: e82c6106b04b85879d802bbbeaed30d9b10a92e2 | ||
refs/heads/master: d9214556b11a8d18ff588e60824c12041d30f791 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,35 @@ | ||
# NGW100 customization | ||
|
||
if BOARD_ATNGW100 | ||
|
||
config BOARD_ATNGW100_EVKLCD10X | ||
bool "Add support for EVKLCD10X addon board" | ||
help | ||
This enables support for the EVKLCD100 (QVGA) or EVKLCD101 (VGA) | ||
addon board for the NGW100. By enabling this the LCD controller and | ||
AC97 controller is added as platform devices. | ||
|
||
This choice disables the detect pin and the write-protect pin for the | ||
MCI platform device, since it conflicts with the LCD platform device. | ||
The MCI pins can be reenabled by editing the "add device function" but | ||
this may break the setup for other displays that use these pins. | ||
|
||
Choose 'Y' here if you have a EVKLCD100/101 connected to the NGW100. | ||
|
||
choice | ||
prompt "LCD panel resolution on EVKLCD10X" | ||
depends on BOARD_ATNGW100_EVKLCD10X | ||
default BOARD_ATNGW100_EVKLCD10X_VGA | ||
|
||
config BOARD_ATNGW100_EVKLCD10X_QVGA | ||
bool "QVGA (320x240)" | ||
|
||
config BOARD_ATNGW100_EVKLCD10X_VGA | ||
bool "VGA (640x480)" | ||
|
||
config BOARD_ATNGW100_EVKLCD10X_POW_QVGA | ||
bool "Powertip QVGA (320x240)" | ||
|
||
endchoice | ||
|
||
endif # BOARD_ATNGW100 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1 +1,2 @@ | ||
obj-y += setup.o flash.o | ||
obj-y += setup.o flash.o | ||
obj-$(CONFIG_BOARD_ATNGW100_EVKLCD10X) += evklcd10x.o |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,155 @@ | ||
/* | ||
* Board-specific setup code for the ATEVKLCD10X addon board to the ATNGW100 | ||
* Network Gateway | ||
* | ||
* Copyright (C) 2008 Atmel Corporation | ||
* | ||
* This program is free software; you can redistribute it and/or modify it | ||
* under the terms of the GNU General Public License version 2 as published by | ||
* the Free Software Foundation. | ||
*/ | ||
|
||
#include <linux/init.h> | ||
#include <linux/linkage.h> | ||
#include <linux/fb.h> | ||
#include <linux/platform_device.h> | ||
|
||
#include <video/atmel_lcdc.h> | ||
|
||
#include <asm/setup.h> | ||
|
||
#include <mach/at32ap700x.h> | ||
#include <mach/board.h> | ||
|
||
static struct ac97c_platform_data __initdata ac97c0_data = { | ||
.dma_rx_periph_id = 3, | ||
.dma_tx_periph_id = 4, | ||
.dma_controller_id = 0, | ||
.reset_pin = GPIO_PIN_PB(19), | ||
}; | ||
|
||
#ifdef CONFIG_BOARD_ATNGW100_EVKLCD10X_VGA | ||
static struct fb_videomode __initdata tcg057vglad_modes[] = { | ||
{ | ||
.name = "640x480 @ 60", | ||
.refresh = 60, | ||
.xres = 640, .yres = 480, | ||
.pixclock = KHZ2PICOS(25180), | ||
|
||
.left_margin = 64, .right_margin = 31, | ||
.upper_margin = 34, .lower_margin = 2, | ||
.hsync_len = 96, .vsync_len = 4, | ||
|
||
.sync = 0, | ||
.vmode = FB_VMODE_NONINTERLACED, | ||
}, | ||
}; | ||
|
||
static struct fb_monspecs __initdata atevklcd10x_default_monspecs = { | ||
.manufacturer = "KYO", | ||
.monitor = "TCG057VGLAD", | ||
.modedb = tcg057vglad_modes, | ||
.modedb_len = ARRAY_SIZE(tcg057vglad_modes), | ||
.hfmin = 19948, | ||
.hfmax = 31478, | ||
.vfmin = 50, | ||
.vfmax = 67, | ||
.dclkmax = 28330000, | ||
}; | ||
|
||
static struct atmel_lcdfb_info __initdata atevklcd10x_lcdc_data = { | ||
.default_bpp = 16, | ||
.default_dmacon = ATMEL_LCDC_DMAEN | ATMEL_LCDC_DMA2DEN, | ||
.default_lcdcon2 = (ATMEL_LCDC_DISTYPE_TFT | ||
| ATMEL_LCDC_CLKMOD_ALWAYSACTIVE | ||
| ATMEL_LCDC_MEMOR_BIG), | ||
.default_monspecs = &atevklcd10x_default_monspecs, | ||
.guard_time = 2, | ||
}; | ||
#elif CONFIG_BOARD_ATNGW100_EVKLCD10X_QVGA | ||
static struct fb_videomode __initdata tcg057qvlad_modes[] = { | ||
{ | ||
.name = "320x240 @ 60", | ||
.refresh = 60, | ||
.xres = 320, .yres = 240, | ||
.pixclock = KHZ2PICOS(6300), | ||
|
||
.left_margin = 52, .right_margin = 28, | ||
.upper_margin = 7, .lower_margin = 2, | ||
.hsync_len = 96, .vsync_len = 4, | ||
|
||
.sync = 0, | ||
.vmode = FB_VMODE_NONINTERLACED, | ||
}, | ||
}; | ||
|
||
static struct fb_monspecs __initdata atevklcd10x_default_monspecs = { | ||
.manufacturer = "KYO", | ||
.monitor = "TCG057QVLAD", | ||
.modedb = tcg057qvlad_modes, | ||
.modedb_len = ARRAY_SIZE(tcg057qvlad_modes), | ||
.hfmin = 19948, | ||
.hfmax = 31478, | ||
.vfmin = 50, | ||
.vfmax = 67, | ||
.dclkmax = 7000000, | ||
}; | ||
|
||
static struct atmel_lcdfb_info __initdata atevklcd10x_lcdc_data = { | ||
.default_bpp = 16, | ||
.default_dmacon = ATMEL_LCDC_DMAEN | ATMEL_LCDC_DMA2DEN, | ||
.default_lcdcon2 = (ATMEL_LCDC_DISTYPE_TFT | ||
| ATMEL_LCDC_CLKMOD_ALWAYSACTIVE | ||
| ATMEL_LCDC_MEMOR_BIG), | ||
.default_monspecs = &atevklcd10x_default_monspecs, | ||
.guard_time = 2, | ||
}; | ||
#elif CONFIG_BOARD_ATNGW100_EVKLCD10X_POW_QVGA | ||
static struct fb_videomode __initdata ph320240t_modes[] = { | ||
{ | ||
.name = "320x240 @ 60", | ||
.refresh = 60, | ||
.xres = 320, .yres = 240, | ||
.pixclock = KHZ2PICOS(6300), | ||
|
||
.left_margin = 38, .right_margin = 20, | ||
.upper_margin = 15, .lower_margin = 5, | ||
.hsync_len = 30, .vsync_len = 3, | ||
|
||
.sync = 0, | ||
.vmode = FB_VMODE_NONINTERLACED, | ||
}, | ||
}; | ||
|
||
static struct fb_monspecs __initdata atevklcd10x_default_monspecs = { | ||
.manufacturer = "POW", | ||
.monitor = "PH320240T", | ||
.modedb = ph320240t_modes, | ||
.modedb_len = ARRAY_SIZE(ph320240t_modes), | ||
.hfmin = 14400, | ||
.hfmax = 21600, | ||
.vfmin = 50, | ||
.vfmax = 90, | ||
.dclkmax = 6400000, | ||
}; | ||
|
||
static struct atmel_lcdfb_info __initdata atevklcd10x_lcdc_data = { | ||
.default_bpp = 16, | ||
.default_dmacon = ATMEL_LCDC_DMAEN | ATMEL_LCDC_DMA2DEN, | ||
.default_lcdcon2 = (ATMEL_LCDC_DISTYPE_TFT | ||
| ATMEL_LCDC_CLKMOD_ALWAYSACTIVE | ||
| ATMEL_LCDC_MEMOR_BIG), | ||
.default_monspecs = &atevklcd10x_default_monspecs, | ||
.guard_time = 2, | ||
}; | ||
#endif | ||
|
||
static int __init atevklcd10x_init(void) | ||
{ | ||
at32_add_device_ac97c(0, &ac97c0_data); | ||
|
||
at32_add_device_lcdc(0, &atevklcd10x_lcdc_data, | ||
fbmem_start, fbmem_size, 1); | ||
return 0; | ||
} | ||
postcore_initcall(atevklcd10x_init); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,22 @@ | ||
# Favr-32 customization | ||
|
||
if BOARD_FAVR_32 | ||
|
||
config BOARD_FAVR32_ABDAC_RATE | ||
int "DAC target rate" | ||
default 44100 | ||
range 32000 50000 | ||
help | ||
Specify the target rate the internal DAC should try to match. This | ||
will use PLL1 to generate a frequency as close as possible to this | ||
rate. | ||
|
||
Must be within the range 32000 to 50000, which should be suitable to | ||
generate most other frequencies in power of 2 steps. | ||
|
||
Ex: | ||
48000 will also suit 24000 and 12000 | ||
44100 will also suit 22050 and 11025 | ||
32000 will also suit 16000 and 8000 | ||
|
||
endif # BOARD_FAVR_32 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
obj-y += setup.o flash.o |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,98 @@ | ||
/* | ||
* Favr-32 board-specific flash initialization | ||
* | ||
* Copyright (C) 2008 Atmel Corporation | ||
* | ||
* This program is free software; you can redistribute it and/or modify | ||
* it under the terms of the GNU General Public License version 2 as | ||
* published by the Free Software Foundation. | ||
*/ | ||
#include <linux/init.h> | ||
#include <linux/platform_device.h> | ||
#include <linux/mtd/mtd.h> | ||
#include <linux/mtd/partitions.h> | ||
#include <linux/mtd/physmap.h> | ||
|
||
#include <asm/arch/smc.h> | ||
|
||
static struct smc_timing flash_timing __initdata = { | ||
.ncs_read_setup = 0, | ||
.nrd_setup = 40, | ||
.ncs_write_setup = 0, | ||
.nwe_setup = 10, | ||
|
||
.ncs_read_pulse = 80, | ||
.nrd_pulse = 40, | ||
.ncs_write_pulse = 65, | ||
.nwe_pulse = 55, | ||
|
||
.read_cycle = 120, | ||
.write_cycle = 120, | ||
}; | ||
|
||
static struct smc_config flash_config __initdata = { | ||
.bus_width = 2, | ||
.nrd_controlled = 1, | ||
.nwe_controlled = 1, | ||
.byte_write = 1, | ||
}; | ||
|
||
static struct mtd_partition flash_parts[] = { | ||
{ | ||
.name = "u-boot", | ||
.offset = 0x00000000, | ||
.size = 0x00020000, /* 128 KiB */ | ||
.mask_flags = MTD_WRITEABLE, | ||
}, | ||
{ | ||
.name = "root", | ||
.offset = 0x00020000, | ||
.size = 0x007d0000, | ||
}, | ||
{ | ||
.name = "env", | ||
.offset = 0x007f0000, | ||
.size = 0x00010000, | ||
.mask_flags = MTD_WRITEABLE, | ||
}, | ||
}; | ||
|
||
static struct physmap_flash_data flash_data = { | ||
.width = 2, | ||
.nr_parts = ARRAY_SIZE(flash_parts), | ||
.parts = flash_parts, | ||
}; | ||
|
||
static struct resource flash_resource = { | ||
.start = 0x00000000, | ||
.end = 0x007fffff, | ||
.flags = IORESOURCE_MEM, | ||
}; | ||
|
||
static struct platform_device flash_device = { | ||
.name = "physmap-flash", | ||
.id = 0, | ||
.resource = &flash_resource, | ||
.num_resources = 1, | ||
.dev = { | ||
.platform_data = &flash_data, | ||
}, | ||
}; | ||
|
||
/* This needs to be called after the SMC has been initialized */ | ||
static int __init favr32_flash_init(void) | ||
{ | ||
int ret; | ||
|
||
smc_set_timing(&flash_config, &flash_timing); | ||
ret = smc_set_configuration(0, &flash_config); | ||
if (ret < 0) { | ||
printk(KERN_ERR "Favr-32: failed to set NOR flash timing\n"); | ||
return ret; | ||
} | ||
|
||
platform_device_register(&flash_device); | ||
|
||
return 0; | ||
} | ||
device_initcall(favr32_flash_init); |
Oops, something went wrong.