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

@ -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