e200v2: implement the backlight handling (copy/paste from the c200v1/e200v1 code - this should probably be unified, along with other upcoming v2 code), plus clean up the lcd init by calling lcd_init() directly in the bootloader, instead of lcd_init_device().

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@18910 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
Dave Chapman 2008-10-29 01:42:03 +00:00
parent b771428d86
commit 8df1a7e29a
6 changed files with 93 additions and 25 deletions

View file

@ -25,10 +25,11 @@
#include <stdio.h> #include <stdio.h>
#include <system.h> #include <system.h>
#include <inttypes.h> #include <inttypes.h>
#include "lcd.h"
#include "common.h"
#include "config.h" #include "config.h"
#include "lcd.h"
#include "backlight-target.h"
#include "as3525-codec.h" #include "as3525-codec.h"
#include "common.h"
int show_logo(void); int show_logo(void);
void main(void) void main(void)
@ -38,19 +39,15 @@ void main(void)
system_init(); system_init();
lcd_init_device(); lcd_init();
lcd_clear_display();
lcd_update();
#ifdef HAVE_LCD_ENABLE
lcd_enable(true);
#endif
show_logo(); show_logo();
as3525_codec_init(); /* Required for backlight on e200v2 */
_backlight_on();
/* show player id to demonstrate communication with codec part */ /* show player id to demonstrate communication with codec part */
as3525_codec_init();
for (i = 0; i < 8; i++) { for (i = 0; i < 8; i++) {
buf[i] = as3525_codec_read(0x38 + i); buf[i] = as3525_codec_read(0x38 + i);
} }

View file

@ -1046,6 +1046,7 @@ target/arm/as3525/as3525-codec.c
#ifndef SIMULATOR #ifndef SIMULATOR
target/arm/as3525/sansa-e200v2/lcd-e200v2.c target/arm/as3525/sansa-e200v2/lcd-e200v2.c
target/arm/as3525/sansa-e200v2/button-e200v2.c target/arm/as3525/sansa-e200v2/button-e200v2.c
target/arm/as3525/sansa-e200v2/backlight-e200v2.c
target/arm/as3525/as3525-codec.c target/arm/as3525/as3525-codec.c
#endif /* !SIMULATOR */ #endif /* !SIMULATOR */
#endif /* SANSA_E200V2 */ #endif /* SANSA_E200V2 */

View file

@ -47,6 +47,7 @@
#define LCD_DEPTH 16 /* 65536 colours */ #define LCD_DEPTH 16 /* 65536 colours */
#define LCD_PIXELFORMAT RGB565 /* rgb565 */ #define LCD_PIXELFORMAT RGB565 /* rgb565 */
#ifndef BOOTLOADER
/* define this if you have LCD enable function */ /* define this if you have LCD enable function */
#define HAVE_LCD_ENABLE #define HAVE_LCD_ENABLE
@ -54,6 +55,7 @@
should be defined as well. */ should be defined as well. */
#define HAVE_LCD_SLEEP #define HAVE_LCD_SLEEP
#define HAVE_LCD_SLEEP_SETTING #define HAVE_LCD_SLEEP_SETTING
#endif
/* define this if you can flip your LCD */ /* define this if you can flip your LCD */
#define HAVE_LCD_FLIP #define HAVE_LCD_FLIP
@ -165,7 +167,7 @@
#define CONFIG_USBOTG USBOTG_AS3525 #define CONFIG_USBOTG USBOTG_AS3525
/* enable these for the experimental usb stack */ /* enable these for the experimental usb stack */
#define HAVE_USBSTACK //#define HAVE_USBSTACK
#define USB_VENDOR_ID 0x0781 #define USB_VENDOR_ID 0x0781
#define USB_PRODUCT_ID 0x7423 #define USB_PRODUCT_ID 0x7423

View file

@ -228,6 +228,8 @@ void lcd_init_device(void)
lcd_write_data(p_bytes, LCD_FULLSCREEN /* overscan */); lcd_write_data(p_bytes, LCD_FULLSCREEN /* overscan */);
} }
lcd_enable(true);
lcd_update(); lcd_update();
} }

View file

@ -0,0 +1,71 @@
/***************************************************************************
* __________ __ ___.
* Open \______ \ ____ ____ | | _\_ |__ _______ ___
* Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
* Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
* Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
* \/ \/ \/ \/ \/
* $Id$
*
* Copyright (C) 2006 by Barry Wardell
*
* 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 software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
* KIND, either express or implied.
*
****************************************************************************/
#include "config.h"
#include "backlight-target.h"
#include "system.h"
#include "lcd.h"
#include "backlight.h"
#include "as3525-codec.h"
#include "as3514.h"
static unsigned short backlight_brightness = DEFAULT_BRIGHTNESS_SETTING;
void _backlight_set_brightness(int brightness)
{
backlight_brightness = brightness;
if (brightness > 0)
_backlight_on();
else
_backlight_off();
}
void _backlight_on(void)
{
#ifdef HAVE_LCD_SLEEP
backlight_lcd_sleep_countdown(false); /* stop counter */
#endif
#ifdef HAVE_LCD_ENABLE
lcd_enable(true); /* power on lcd + visible display */
#endif
as3525_codec_write(AS3514_DCDC15, backlight_brightness);
}
void _backlight_off(void)
{
as3525_codec_write(AS3514_DCDC15, 0x0);
#ifdef HAVE_LCD_ENABLE
lcd_enable(false); /* power off visible display */
#endif
#ifdef HAVE_LCD_SLEEP
backlight_lcd_sleep_countdown(true); /* start countdown */
#endif
}
void _buttonlight_on(void)
{
/* TODO */
}
void _buttonlight_off(void)
{
/* TODO */
}

View file

@ -7,7 +7,7 @@
* \/ \/ \/ \/ \/ * \/ \/ \/ \/ \/
* $Id$ * $Id$
* *
* Copyright (C) 2008 ?? * Copyright (C) 2006 Barry Wardell
* *
* This program is free software; you can redistribute it and/or * This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License * modify it under the terms of the GNU General Public License
@ -21,17 +21,12 @@
#ifndef BACKLIGHT_TARGET_H #ifndef BACKLIGHT_TARGET_H
#define BACKLIGHT_TARGET_H #define BACKLIGHT_TARGET_H
static inline bool _backlight_init(void) #define _backlight_init() true
{ void _backlight_on(void);
return true; void _backlight_off(void);
} void _backlight_set_brightness(int brightness);
int __backlight_is_on(void);
static inline void _backlight_on(void)
{
}
static inline void _backlight_off(void)
{
}
void _buttonlight_on(void);
void _buttonlight_off(void);
#endif #endif