forked from len0rd/rockbox
Ported to iRiver H100
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@5209 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
parent
74c445c0fd
commit
eb5463d158
1 changed files with 39 additions and 23 deletions
|
@ -18,7 +18,7 @@
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
#include "config.h"
|
#include "config.h"
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include "sh7034.h"
|
#include "cpu.h"
|
||||||
#include "kernel.h"
|
#include "kernel.h"
|
||||||
#include "thread.h"
|
#include "thread.h"
|
||||||
#include "i2c.h"
|
#include "i2c.h"
|
||||||
|
@ -49,6 +49,35 @@ static bool backlight_on_when_charging = 0;
|
||||||
static int backlight_timer;
|
static int backlight_timer;
|
||||||
static unsigned int backlight_timeout = 5;
|
static unsigned int backlight_timeout = 5;
|
||||||
|
|
||||||
|
static void __backlight_off(void)
|
||||||
|
{
|
||||||
|
#ifdef IRIVER_H100
|
||||||
|
GPIO1_OUT &= ~0x00020000;
|
||||||
|
#else
|
||||||
|
#ifdef HAVE_RTC
|
||||||
|
/* Disable square wave */
|
||||||
|
rtc_write(0x0a, rtc_read(0x0a) & ~0x40);
|
||||||
|
#else
|
||||||
|
and_b(~0x40, &PAIORH);
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
static void __backlight_on(void)
|
||||||
|
{
|
||||||
|
#ifdef IRIVER_H100
|
||||||
|
GPIO1_OUT |= 0x00020000;
|
||||||
|
#else
|
||||||
|
#ifdef HAVE_RTC
|
||||||
|
/* Enable square wave */
|
||||||
|
rtc_write(0x0a, rtc_read(0x0a) | 0x40);
|
||||||
|
#else
|
||||||
|
and_b(~0x40, &PADRH);
|
||||||
|
or_b(0x40, &PAIORH);
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
void backlight_thread(void)
|
void backlight_thread(void)
|
||||||
{
|
{
|
||||||
struct event ev;
|
struct event ev;
|
||||||
|
@ -69,36 +98,19 @@ void backlight_thread(void)
|
||||||
backlight_timer = HZ*backlight_timeout_value[backlight_timeout];
|
backlight_timer = HZ*backlight_timeout_value[backlight_timeout];
|
||||||
}
|
}
|
||||||
|
|
||||||
if(backlight_timer < 0)
|
if(backlight_timer < 0) /* Backlight == OFF in the setting? */
|
||||||
{
|
{
|
||||||
backlight_timer = 0; /* timer value 0 will not get ticked */
|
backlight_timer = 0; /* Disable the timeout */
|
||||||
#ifdef HAVE_RTC
|
__backlight_off();
|
||||||
/* Disable square wave */
|
|
||||||
rtc_write(0x0a, rtc_read(0x0a) & ~0x40);
|
|
||||||
#else
|
|
||||||
and_b(~0x40, &PAIORH);
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
/* else if(backlight_timer) */
|
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
#ifdef HAVE_RTC
|
__backlight_on();
|
||||||
/* Enable square wave */
|
|
||||||
rtc_write(0x0a, rtc_read(0x0a) | 0x40);
|
|
||||||
#else
|
|
||||||
and_b(~0x40, &PADRH);
|
|
||||||
or_b(0x40, &PAIORH);
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case BACKLIGHT_OFF:
|
case BACKLIGHT_OFF:
|
||||||
#ifdef HAVE_RTC
|
__backlight_off();
|
||||||
/* Disable square wave */
|
|
||||||
rtc_write(0x0a, rtc_read(0x0a) & ~0x40);
|
|
||||||
#else
|
|
||||||
and_b(~0x40, &PAIORH);
|
|
||||||
#endif
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case SYS_USB_CONNECTED:
|
case SYS_USB_CONNECTED:
|
||||||
|
@ -175,6 +187,10 @@ void backlight_init(void)
|
||||||
create_thread(backlight_thread, backlight_stack,
|
create_thread(backlight_thread, backlight_stack,
|
||||||
sizeof(backlight_stack), backlight_thread_name);
|
sizeof(backlight_stack), backlight_thread_name);
|
||||||
|
|
||||||
|
#ifdef IRIVER_H100
|
||||||
|
GPIO1_ENABLE |= 0x00020000;
|
||||||
|
GPIO1_FUNCTION |= 0x00020000;
|
||||||
|
#endif
|
||||||
backlight_on();
|
backlight_on();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue