Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a16fffdd authored by Jonas Larsson's avatar Jonas Larsson Committed by Haavard Skinnemoen
Browse files

Add Merisc board support

Merisc is the family name for a range of AVR32-based boards.

The boards are designed to be used in a man-machine interfacing
environment, utilizing a touch-based graphical user interface. They host
a vast range of I/O peripherals as well as a large SDRAM & Flash memory
bank.

For more information see: http://www.martinsson.se/merisc



Signed-off-by: default avatarJonas Larsson <jonas.larsson@martinsson.se>
Signed-off-by: default avatarHaavard Skinnemoen <haavard.skinnemoen@atmel.com>
parent 9477ab2b
Loading
Loading
Loading
Loading
+14 −0
Original line number Diff line number Diff line
@@ -144,6 +144,19 @@ config BOARD_FAVR_32
	bool "Favr-32 LCD-board"
	select CPU_AT32AP7000

config BOARD_MERISC
	bool "Merisc board"
	select CPU_AT32AP7000
	help
	  Merisc is the family name for a range of AVR32-based boards.

	  The boards are designed to be used in a man-machine
	  interfacing environment, utilizing a touch-based graphical
	  user interface. They host a vast range of I/O peripherals as
	  well as a large SDRAM & Flash memory bank.

	  For more information see: http://www.martinsson.se/merisc

config BOARD_MIMC200
	bool "MIMC200 CPU board"
	select CPU_AT32AP7000
@@ -153,6 +166,7 @@ source "arch/avr32/boards/atstk1000/Kconfig"
source "arch/avr32/boards/atngw100/Kconfig"
source "arch/avr32/boards/hammerhead/Kconfig"
source "arch/avr32/boards/favr-32/Kconfig"
source "arch/avr32/boards/merisc/Kconfig"

choice
	prompt "Boot loader type"
+1 −0
Original line number Diff line number Diff line
@@ -35,6 +35,7 @@ core-$(CONFIG_BOARD_ATSTK1000) += arch/avr32/boards/atstk1000/
core-$(CONFIG_BOARD_ATNGW100)		+= arch/avr32/boards/atngw100/
core-$(CONFIG_BOARD_HAMMERHEAD)		+= arch/avr32/boards/hammerhead/
core-$(CONFIG_BOARD_FAVR_32)		+= arch/avr32/boards/favr-32/
core-$(CONFIG_BOARD_MERISC)		+= arch/avr32/boards/merisc/
core-$(CONFIG_BOARD_MIMC200)		+= arch/avr32/boards/mimc200/
core-$(CONFIG_LOADER_U_BOOT)		+= arch/avr32/boot/u-boot/
core-y					+= arch/avr32/kernel/
+5 −0
Original line number Diff line number Diff line
# Merisc customization

if BOARD_MERISC

endif	# BOARD_MERISC
+1 −0
Original line number Diff line number Diff line
obj-y					+= setup.o flash.o display.o merisc_sysfs.o
+65 −0
Original line number Diff line number Diff line
/*
 * Display setup code for the Merisc board
 *
 * Copyright (C) 2008 Martinsson Elektronik AB
 *
 * 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/fb.h>
#include <video/atmel_lcdc.h>
#include <asm/setup.h>
#include <mach/board.h>
#include "merisc.h"

static struct fb_videomode merisc_fb_videomode[] = {
	{
		.refresh	= 44,
		.xres		= 640,
		.yres		= 480,
		.left_margin	= 96,
		.right_margin	= 96,
		.upper_margin	= 34,
		.lower_margin	= 8,
		.hsync_len	= 64,
		.vsync_len	= 64,
		.name		= "640x480 @ 44",
		.pixclock	= KHZ2PICOS(25180),
		.sync		= 0,
		.vmode		= FB_VMODE_NONINTERLACED,
	},
};

static struct fb_monspecs merisc_fb_monspecs = {
	.manufacturer	= "Kyo",
	.monitor	= "TCG075VG2AD",
	.modedb		= merisc_fb_videomode,
	.modedb_len	= ARRAY_SIZE(merisc_fb_videomode),
	.hfmin		= 30000,
	.hfmax		= 33333,
	.vfmin		= 60,
	.vfmax		= 90,
	.dclkmax	= 30000000,
};

struct atmel_lcdfb_info merisc_lcdc_data = {
	.default_bpp		= 24,
	.default_dmacon		= ATMEL_LCDC_DMAEN | ATMEL_LCDC_DMA2DEN,
	.default_lcdcon2	= (ATMEL_LCDC_DISTYPE_TFT
				   | ATMEL_LCDC_CLKMOD_ALWAYSACTIVE
				   | ATMEL_LCDC_MEMOR_BIG),
	.default_monspecs	= &merisc_fb_monspecs,
	.guard_time		= 2,
};

static int __init merisc_display_init(void)
{
	at32_add_device_lcdc(0, &merisc_lcdc_data, fbmem_start,
			     fbmem_size, 0);

	return 0;
}
device_initcall(merisc_display_init);
Loading