From 35cf3b57eafe3ee1f693e24267e0ecfefab60251 Mon Sep 17 00:00:00 2001 From: Jens Scharsig Date: Fri, 24 Jul 2009 10:31:48 +0200 Subject: update the EB+MCF-EV123 board support This patch updates the support for EB+MCF-EV123 board and needs the [PATCH 1/2 V3] new video driver for bus vcxk framebuffers * remove the board framebuffer driver * use the common bus_vcxk framebuffer driver * adds bmp support * adds splashimage support * fix serveral cosmetical errors Signed-off-by: Jens Scharsig [agust@denx.de: fixed some style issues before applying] Signed-off-by: Anatolij Gustschin --- board/BuS/EB+MCF-EV123/EB+MCF-EV123.c | 104 ++++++++++++++++++++++---- board/BuS/EB+MCF-EV123/Makefile | 2 +- board/BuS/EB+MCF-EV123/VCxK.c | 136 ---------------------------------- board/BuS/EB+MCF-EV123/VCxK.h | 48 ------------ 4 files changed, 89 insertions(+), 201 deletions(-) delete mode 100644 board/BuS/EB+MCF-EV123/VCxK.c delete mode 100644 board/BuS/EB+MCF-EV123/VCxK.h (limited to 'board/BuS') diff --git a/board/BuS/EB+MCF-EV123/EB+MCF-EV123.c b/board/BuS/EB+MCF-EV123/EB+MCF-EV123.c index 73dfb3d52..2fc3eafbd 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 * * (C) Copyright 2000-2003 @@ -27,7 +27,18 @@ #include #include #include "asm/m5282.h" -#include "VCxK.h" +#include +#include +#include + +/*---------------------------------------------------------------------------*/ + +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", + " <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 ed3ac0755..44961b97d 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 f2fe353db..000000000 --- a/board/BuS/EB+MCF-EV123/VCxK.c +++ /dev/null @@ -1,136 +0,0 @@ -/* - * (C) Copyright 2005 - * BuS Elektronik GmbH & Co.KG - * - * 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 -#include -#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 f591e5c52..000000000 --- a/board/BuS/EB+MCF-EV123/VCxK.h +++ /dev/null @@ -1,48 +0,0 @@ -/* - * (C) Copyright 2005 - * BuS Elektronik GmbH & Co.KG - * - * 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 -- cgit v1.2.3