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:
parent
b771428d86
commit
8df1a7e29a
6 changed files with 93 additions and 25 deletions
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -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 */
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -228,6 +228,8 @@ void lcd_init_device(void)
|
|||
lcd_write_data(p_bytes, LCD_FULLSCREEN /* overscan */);
|
||||
}
|
||||
|
||||
lcd_enable(true);
|
||||
|
||||
lcd_update();
|
||||
}
|
||||
|
||||
|
|
71
firmware/target/arm/as3525/sansa-e200v2/backlight-e200v2.c
Normal file
71
firmware/target/arm/as3525/sansa-e200v2/backlight-e200v2.c
Normal 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 */
|
||||
}
|
|
@ -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
|
||||
|
|
Loading…
Reference in a new issue