summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDave Chapman <dave@dchapman.com>2008-10-29 01:42:03 +0000
committerDave Chapman <dave@dchapman.com>2008-10-29 01:42:03 +0000
commit8df1a7e29abd51cc455844a9633e1cc5e057065f (patch)
treefeff4d97ffbbc1bf2d55076fa72f4d160c61de4e
parentb771428d862cb6d1780f896550c177f2d5ae72a8 (diff)
downloadrockbox-8df1a7e29abd51cc455844a9633e1cc5e057065f.tar.gz
rockbox-8df1a7e29abd51cc455844a9633e1cc5e057065f.zip
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
-rw-r--r--bootloader/sansa_as3525.c17
-rw-r--r--firmware/SOURCES1
-rw-r--r--firmware/export/config-e200v2.h4
-rw-r--r--firmware/target/arm/as3525/sansa-clip/lcd-ssd1303.c2
-rw-r--r--firmware/target/arm/as3525/sansa-e200v2/backlight-e200v2.c71
-rw-r--r--firmware/target/arm/as3525/sansa-e200v2/backlight-target.h21
6 files changed, 92 insertions, 24 deletions
diff --git a/bootloader/sansa_as3525.c b/bootloader/sansa_as3525.c
index 2a4f7f0ccb..a88e206c3b 100644
--- a/bootloader/sansa_as3525.c
+++ b/bootloader/sansa_as3525.c
@@ -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_init();
- lcd_update();
+ show_logo();
-#ifdef HAVE_LCD_ENABLE
- lcd_enable(true);
-#endif
+ as3525_codec_init(); /* Required for backlight on e200v2 */
- show_logo();
+ _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);
}
diff --git a/firmware/SOURCES b/firmware/SOURCES
index 7a93d058b4..f2f8526494 100644
--- a/firmware/SOURCES
+++ b/firmware/SOURCES
@@ -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 */
diff --git a/firmware/export/config-e200v2.h b/firmware/export/config-e200v2.h
index 5b051f2a89..0dc87d4123 100644
--- a/firmware/export/config-e200v2.h
+++ b/firmware/export/config-e200v2.h
@@ -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
diff --git a/firmware/target/arm/as3525/sansa-clip/lcd-ssd1303.c b/firmware/target/arm/as3525/sansa-clip/lcd-ssd1303.c
index 4ae13a5fcc..ed4bcc7be9 100644
--- a/firmware/target/arm/as3525/sansa-clip/lcd-ssd1303.c
+++ b/firmware/target/arm/as3525/sansa-clip/lcd-ssd1303.c
@@ -228,6 +228,8 @@ void lcd_init_device(void)
lcd_write_data(p_bytes, LCD_FULLSCREEN /* overscan */);
}
+ lcd_enable(true);
+
lcd_update();
}
diff --git a/firmware/target/arm/as3525/sansa-e200v2/backlight-e200v2.c b/firmware/target/arm/as3525/sansa-e200v2/backlight-e200v2.c
new file mode 100644
index 0000000000..fd2b65ad5b
--- /dev/null
+++ b/firmware/target/arm/as3525/sansa-e200v2/backlight-e200v2.c
@@ -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 */
+}
diff --git a/firmware/target/arm/as3525/sansa-e200v2/backlight-target.h b/firmware/target/arm/as3525/sansa-e200v2/backlight-target.h
index 9533d0a6b5..db2cecc07a 100644
--- a/firmware/target/arm/as3525/sansa-e200v2/backlight-target.h
+++ b/firmware/target/arm/as3525/sansa-e200v2/backlight-target.h
@@ -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