implement the gigabeat backlight driver

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@11434 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
Marcoen Hirschberg 2006-11-05 07:54:08 +00:00
parent eda13cedc0
commit bce255d98b
2 changed files with 40 additions and 4 deletions

View file

@ -21,18 +21,25 @@
#include "system.h" #include "system.h"
#include "backlight.h" #include "backlight.h"
#include "lcd.h" #include "lcd.h"
#include "sc606-meg-fx.h"
int confval = SC606_LOW_FREQ;
void __backlight_on(void) void __backlight_on(void)
{ {
confval |= (SC606_LED_A1 | SC606_LED_A2);
sc606_write(SC606_REG_CONF, confval);
} }
void __backlight_off(void) void __backlight_off(void)
{ {
confval &= ~(SC606_LED_A1 | SC606_LED_A2);
sc606_write(SC606_REG_CONF, confval);
} }
void __backlight_set_brightness(int val) void __backlight_set_brightness(int brightness)
{ {
/* The SC606 LED driver of the gigabeat series /* The SC606 LED driver can set the brightness in 64 steps */
* can set the brightness in 64 steps */ brightness &= 0x3F;
val &= 0x3F; sc606_write(SC606_REG_A, brightness);
} }

View file

@ -0,0 +1,29 @@
#include "config.h"
#include "cpu.h"
#include <stdbool.h>
#include "kernel.h"
#include "system.h"
#include "hwcompat.h"
#include "logf.h"
#include "debug.h"
#include "string.h"
#define SC606_REG_A 0
#define SC606_REG_B 1
#define SC606_REG_C 2
#define SC606_REG_CONF 3
#define SC606_LED_A1 1 << 0
#define SC606_LED_A2 1 << 1
#define SC606_LED_B1 1 << 2
#define SC606_LED_B2 1 << 3
#define SC606_LED_C1 1 << 4
#define SC606_LED_C2 1 << 5
#define SC606_LOW_FREQ 1 << 6
int sc606_write(unsigned char reg, unsigned char data);
int sc606_read(unsigned char reg, unsigned char* data);
void sc606_init(void);