diff options
author | Wolfgang Denk <wd@denx.de> | 2009-07-26 23:15:57 +0200 |
---|---|---|
committer | Wolfgang Denk <wd@denx.de> | 2009-07-26 23:15:57 +0200 |
commit | 8bf7437c0127f417b566c93ffa59df7292a0e11f (patch) | |
tree | 88931de07c5cface7e846c494e07f41e2d7f8b16 /board | |
parent | e1491288743c3c3547c9b512d03f42eae530a114 (diff) | |
parent | 35cf3b57eafe3ee1f693e24267e0ecfefab60251 (diff) | |
download | u-boot-imx-8bf7437c0127f417b566c93ffa59df7292a0e11f.zip u-boot-imx-8bf7437c0127f417b566c93ffa59df7292a0e11f.tar.gz u-boot-imx-8bf7437c0127f417b566c93ffa59df7292a0e11f.tar.bz2 |
Merge branch 'master' of git://git.denx.de/u-boot-video
Diffstat (limited to 'board')
-rw-r--r-- | board/BuS/EB+MCF-EV123/EB+MCF-EV123.c | 104 | ||||
-rw-r--r-- | board/BuS/EB+MCF-EV123/Makefile | 2 | ||||
-rw-r--r-- | board/BuS/EB+MCF-EV123/VCxK.c | 136 | ||||
-rw-r--r-- | board/BuS/EB+MCF-EV123/VCxK.h | 48 | ||||
-rw-r--r-- | board/mimc/mimc200/mimc200.c | 34 |
5 files changed, 123 insertions, 201 deletions
diff --git a/board/BuS/EB+MCF-EV123/EB+MCF-EV123.c b/board/BuS/EB+MCF-EV123/EB+MCF-EV123.c index 73dfb3d..2fc3eaf 100644 --- a/board/BuS/EB+MCF-EV123/EB+MCF-EV123.c +++ b/board/BuS/EB+MCF-EV123/EB+MCF-EV123.c @@ -1,5 +1,5 @@ /* - * (C) Copyright 2005 + * (C) Copyright 2005-2009 * BuS Elektronik GmbH & Co.KG <esw@bus-elektonik.de> * * (C) Copyright 2000-2003 @@ -27,7 +27,18 @@ #include <common.h> #include <command.h> #include "asm/m5282.h" -#include "VCxK.h" +#include <bmp_layout.h> +#include <status_led.h> +#include <bus_vcxk.h> + +/*---------------------------------------------------------------------------*/ + +DECLARE_GLOBAL_DATA_PTR; + +unsigned long display_width; +unsigned long display_height; + +/*---------------------------------------------------------------------------*/ int checkboard (void) { @@ -89,7 +100,6 @@ phys_size_t initdram (int board_type) return size; } - #if defined(CONFIG_SYS_DRAM_TEST) int testdram (void) { @@ -126,37 +136,99 @@ int testdram (void) int misc_init_r(void) { - init_vcxk(); +#ifdef CONFIG_HW_WATCHDOG + hw_watchdog_init(); +#endif +#ifndef CONFIG_VIDEO + vcxk_init(16, 16); +#endif return 1; } +#if defined(CONFIG_VIDEO) + +/* + ****h* EB+CPU5282-T1/drv_video_init + * FUNCTION + *** + */ + +int drv_video_init(void) +{ + char *s; + unsigned long splash; + + printf("Init Video as "); + + if ((s = getenv("displaywidth")) != NULL) + display_width = simple_strtoul(s, NULL, 10); + else + display_width = 256; + + if ((s = getenv("displayheight")) != NULL) + display_height = simple_strtoul(s, NULL, 10); + else + display_height = 256; + + printf("%lu x %lu pixel matrix\n", display_width, display_height); + + MCFCCM_CCR &= ~MCFCCM_CCR_SZEN; + MCFGPIO_PEPAR &= ~MCFGPIO_PEPAR_PEPA2; + + vcxk_init(display_width, display_height); + +#ifdef CONFIG_SPLASH_SCREEN + if ((s = getenv("splashimage")) != NULL) { + debug("use splashimage: %s\n", s); + splash = simple_strtoul(s, NULL, 16); + debug("use splashimage: %x\n", splash); + vcxk_acknowledge_wait(); + video_display_bitmap(splash, 0, 0); + } +#endif + return 0; +} +#endif + /*---------------------------------------------------------------------------*/ -int do_vcimage (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]) +#ifdef CONFIG_VIDEO +int do_brightness(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]) { int rcode = 0; - ulong source; + ulong side; + ulong bright; switch (argc) { - case 2: - source = simple_strtoul(argv[1],NULL,16); - vcxk_loadimage(source); - rcode = 0; + case 3: + side = simple_strtoul(argv[1], NULL, 10); + bright = simple_strtoul(argv[2], NULL, 10); + if ((side >= 0) && (side <= 3) && + (bright >= 0) && (bright <= 1000)) { + vcxk_setbrightness(side, bright); + rcode = 0; + } else { + printf("parameters out of range\n"); + printf("Usage:\n%s\n", cmdtp->usage); + rcode = 1; + } break; default: - cmd_usage(cmdtp); + printf("Usage:\n%s\n", cmdtp->usage); rcode = 1; break; } return rcode; } -/***************************************************/ +/*---------------------------------------------------------------------------*/ U_BOOT_CMD( - vcimage, 2, 0, do_vcimage, - "loads an image to Display", - "vcimage addr" + bright, 3, 0, do_brightness, + "sets the display brightness\n", + " <side> <0..1000>\n side: 0/3=both; 1=first; 2=second\n" ); -/* EOF EB+MCF-EV123c */ +#endif + +/* EOF EB+MCF-EV123.c */ diff --git a/board/BuS/EB+MCF-EV123/Makefile b/board/BuS/EB+MCF-EV123/Makefile index ed3ac07..44961b9 100644 --- a/board/BuS/EB+MCF-EV123/Makefile +++ b/board/BuS/EB+MCF-EV123/Makefile @@ -25,7 +25,7 @@ include $(TOPDIR)/config.mk LIB = $(obj)lib$(BOARD).a -COBJS = $(BOARD).o cfm_flash.o flash.o VCxK.o +COBJS = $(BOARD).o cfm_flash.o flash.o SRCS := $(SOBJS:.o=.S) $(COBJS:.o=.c) OBJS := $(addprefix $(obj),$(COBJS)) diff --git a/board/BuS/EB+MCF-EV123/VCxK.c b/board/BuS/EB+MCF-EV123/VCxK.c deleted file mode 100644 index f2fe353..0000000 --- a/board/BuS/EB+MCF-EV123/VCxK.c +++ /dev/null @@ -1,136 +0,0 @@ -/* - * (C) Copyright 2005 - * BuS Elektronik GmbH & Co.KG <esw@bus-elektonik.de> - * - * See file CREDITS for list of people who contributed to this - * project. - * - * 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; either version 2 of - * the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, - * MA 02111-1307 USA - */ - -#include <common.h> -#include <asm/m5282.h> -#include "VCxK.h" - -vu_char *vcxk_bws = (vu_char *)(CONFIG_SYS_CS3_BASE); -#define VCXK_BWS vcxk_bws - -static ulong vcxk_driver; - - -ulong search_vcxk_driver(void); -void vcxk_cls(void); -void vcxk_setbrightness(short brightness); -int vcxk_request(void); -int vcxk_acknowledge_wait(void); -void vcxk_clear(void); - -int init_vcxk(void) -{ - VIDEO_Invert_CFG &= ~VIDEO_Invert_IO; - VIDEO_INVERT_PORT |= VIDEO_INVERT_PIN; - VIDEO_INVERT_DDR |= VIDEO_INVERT_PIN; - - VIDEO_REQUEST_PORT |= VIDEO_REQUEST_PIN; - VIDEO_REQUEST_DDR |= VIDEO_REQUEST_PIN; - - VIDEO_ACKNOWLEDGE_DDR &= ~VIDEO_ACKNOWLEDGE_PIN; - - vcxk_driver = search_vcxk_driver(); - if (vcxk_driver) - { - /* use flash resist driver */ - } - else - { - vcxk_cls(); - vcxk_cls(); - vcxk_setbrightness(1000); - } - VIDEO_ENABLE_DDR |= VIDEO_ENABLE_PIN; - VIDEO_ENABLE_PORT |= VIDEO_ENABLE_PIN; - VIDEO_ENABLE_PORT &= ~VIDEO_ENABLE_PIN; - return 1; -} - -void vcxk_loadimage(ulong source) -{ - int cnt; - vcxk_acknowledge_wait(); - for (cnt=0; cnt<16384; cnt++) - { - VCXK_BWS[cnt*2] = (*(vu_char*) source); - source++; - } - vcxk_request(); -} - -void vcxk_cls(void) -{ - vcxk_acknowledge_wait(); - vcxk_clear(); - vcxk_request(); -} - -void vcxk_clear(void) -{ - int cnt; - for (cnt=0; cnt<16384; cnt++) - { - VCXK_BWS[cnt*2] = 0x00; - } -} - -void vcxk_setbrightness(short brightness) -{ - VCXK_BWS[0x8000]=(brightness >> 4) +2; - VCXK_BWS[0xC000]= (brightness + 23) >> 8; - VCXK_BWS[0xC001]= (brightness + 23) & 0xFF; -} - -int vcxk_request(void) -{ - if (vcxk_driver) - { - /* use flash resist driver */ - } - else - { - VIDEO_REQUEST_PORT &= ~VIDEO_REQUEST_PIN; - VIDEO_REQUEST_PORT |= VIDEO_REQUEST_PIN; - } - return 1; -} - -int vcxk_acknowledge_wait(void) -{ - if (vcxk_driver) - { - /* use flash resist driver */ - } - else - { - while (!(VIDEO_ACKNOWLEDGE_PORT & VIDEO_ACKNOWLEDGE_PIN)); - } - return 1; -} - -ulong search_vcxk_driver(void) -{ - return 0; -} - -/* eof */ diff --git a/board/BuS/EB+MCF-EV123/VCxK.h b/board/BuS/EB+MCF-EV123/VCxK.h deleted file mode 100644 index f591e5c..0000000 --- a/board/BuS/EB+MCF-EV123/VCxK.h +++ /dev/null @@ -1,48 +0,0 @@ -/* - * (C) Copyright 2005 - * BuS Elektronik GmbH & Co.KG <esw@bus-elektonik.de> - * - * See file CREDITS for list of people who contributed to this - * project. - * - * 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; either version 2 of - * the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, - * MA 02111-1307 USA - */ - -#ifndef __VCXK_H_ -#define __VCXK_H_ - -extern int init_vcxk(void); -void vcxk_loadimage(ulong source); - -#define VIDEO_ACKNOWLEDGE_PORT MCFGPTB_GPTPORT -#define VIDEO_ACKNOWLEDGE_DDR MCFGPTB_GPTDDR -#define VIDEO_ACKNOWLEDGE_PIN 0x0001 - -#define VIDEO_ENABLE_PORT MCFGPTB_GPTPORT -#define VIDEO_ENABLE_DDR MCFGPTB_GPTDDR -#define VIDEO_ENABLE_PIN 0x0002 - -#define VIDEO_REQUEST_PORT MCFGPTB_GPTPORT -#define VIDEO_REQUEST_DDR MCFGPTB_GPTDDR -#define VIDEO_REQUEST_PIN 0x0004 - -#define VIDEO_Invert_CFG MCFGPIO_PEPAR -#define VIDEO_Invert_IO MCFGPIO_PEPAR_PEPA2 -#define VIDEO_INVERT_PORT MCFGPIO_PORTE -#define VIDEO_INVERT_DDR MCFGPIO_DDRE -#define VIDEO_INVERT_PIN MCFGPIO_PORT2 - -#endif diff --git a/board/mimc/mimc200/mimc200.c b/board/mimc/mimc200/mimc200.c index 6df741e..b773c1a 100644 --- a/board/mimc/mimc200/mimc200.c +++ b/board/mimc/mimc200/mimc200.c @@ -28,10 +28,40 @@ #include <asm/arch/gpio.h> #include <asm/arch/hmatrix.h> #include <asm/arch/portmux.h> +#include <atmel_lcdc.h> #include <lcd.h> #include "../../../cpu/at32ap/hsmc3.h" +#if defined(CONFIG_LCD) +/* 480x272x16 @ 72 Hz */ +vidinfo_t panel_info = { + .vl_col = 480, /* Number of columns */ + .vl_row = 272, /* Number of rows */ + .vl_clk = 10000000, /* pixel clock in ps */ + .vl_sync = ATMEL_LCDC_INVCLK_INVERTED | + ATMEL_LCDC_INVLINE_INVERTED | + ATMEL_LCDC_INVFRAME_INVERTED, + .vl_bpix = LCD_COLOR16, /* Bits per pixel, BPP = 2^n */ + .vl_tft = 1, /* 0 = passive, 1 = TFT */ + .vl_hsync_len = 42, /* Length of horizontal sync */ + .vl_left_margin = 1, /* Time from sync to picture */ + .vl_right_margin = 1, /* Time from picture to sync */ + .vl_vsync_len = 1, /* Length of vertical sync */ + .vl_upper_margin = 12, /* Time from sync to picture */ + .vl_lower_margin = 1, /* Time from picture to sync */ + .mmio = LCDC_BASE, /* Memory mapped registers */ +}; + +void lcd_enable(void) +{ +} + +void lcd_disable(void) +{ +} +#endif + DECLARE_GLOBAL_DATA_PTR; static const struct sdram_config sdram_config = { @@ -110,6 +140,10 @@ int board_early_init_f(void) portmux_enable_mmci(0, PORTMUX_MMCI_4BIT, PORTMUX_DRIVE_LOW); #endif +#if defined(CONFIG_LCD) + portmux_enable_lcdc(1); +#endif + return 0; } |