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

View file

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

View file

@ -47,6 +47,7 @@
#define LCD_DEPTH 16 /* 65536 colours */
#define LCD_PIXELFORMAT RGB565 /* rgb565 */
#ifndef BOOTLOADER
/* define this if you have LCD enable function */
#define HAVE_LCD_ENABLE
@ -54,6 +55,7 @@
should be defined as well. */
#define HAVE_LCD_SLEEP
#define HAVE_LCD_SLEEP_SETTING
#endif
/* define this if you can flip your LCD */
#define HAVE_LCD_FLIP
@ -165,7 +167,7 @@
#define CONFIG_USBOTG USBOTG_AS3525
/* enable these for the experimental usb stack */
#define HAVE_USBSTACK
//#define HAVE_USBSTACK
#define USB_VENDOR_ID 0x0781
#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_enable(true);
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$
*
* Copyright (C) 2008 ??
* Copyright (C) 2006 Barry Wardell
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
@ -21,17 +21,12 @@
#ifndef BACKLIGHT_TARGET_H
#define BACKLIGHT_TARGET_H
static inline bool _backlight_init(void)
{
return true;
}
static inline void _backlight_on(void)
{
}
static inline void _backlight_off(void)
{
}
#define _backlight_init() true
void _backlight_on(void);
void _backlight_off(void);
void _backlight_set_brightness(int brightness);
int __backlight_is_on(void);
void _buttonlight_on(void);
void _buttonlight_off(void);
#endif