[commit] r2422 - in trunk/linux-2.6.x/arch/arm/mach-nds: . arm7
dslinux_sonny_jim at dslinux.in-berlin.de
dslinux_sonny_jim at dslinux.in-berlin.de
Tue Jun 30 23:55:53 CEST 2009
Author: dslinux_sonny_jim
Date: Tue Jun 30 23:55:53 2009
New Revision: 2422
Log:
Change method of calling backlight brightness and add in DSLite detection code
Modified:
trunk/linux-2.6.x/arch/arm/mach-nds/arm7/main.c
trunk/linux-2.6.x/arch/arm/mach-nds/arm7/spi.h
trunk/linux-2.6.x/arch/arm/mach-nds/fifo.c
Modified: trunk/linux-2.6.x/arch/arm/mach-nds/arm7/main.c
==============================================================================
--- trunk/linux-2.6.x/arch/arm/mach-nds/arm7/main.c (original)
+++ trunk/linux-2.6.x/arch/arm/mach-nds/arm7/main.c Tue Jun 30 23:55:53 2009
@@ -18,14 +18,24 @@
static struct nds_firmware_block *firmware_block;
+int DSLiteDetect(void)
+{
+ //u32 data;
+ //data = power_read(POWER_BACKLIGHT);
+ //data &= (1<<6);
+ if (power_read(POWER_BACKLIGHT) & (1<<6)) return 0;//DSLite
+ else
+ return 1;
+}
+
/* recieve outstanding FIFO commands from ARM9 */
static void recieveFIFOCommand(void)
{
u32 fifo_recv;
u32 data;
u32 seconds = 0;
- u32 power;
int cmd;
+ int cmddata;
struct nds_tx_packet *tx_packet = NULL;
while (!(NDS_REG_IPCFIFOCNT & FIFO_EMPTY)) {
@@ -51,18 +61,50 @@
break;
case FIFO_POWER:
cmd = FIFO_POWER_GET_CMD(data);
+ cmddata = FIFO_POWER_GET_DATA(data);
switch (cmd) {
- case FIFO_POWER_CMD_BACKLIGHT_ENABLE:
- power = power_read(POWER_CONTROL);
- power_write(POWER_CONTROL, power | POWER0_LOWER_BACKLIGHT | POWER0_UPPER_BACKLIGHT);
-
- break;
- case FIFO_POWER_CMD_BACKLIGHT_DISABLE:
- power = power_read(POWER_CONTROL);
- power &= ~(POWER0_LOWER_BACKLIGHT | POWER0_UPPER_BACKLIGHT);
- power_write(POWER_CONTROL, power);
-
- break;
+ case FIFO_POWER_CMD_BACKLIGHT_BRIGHTNESS:
+ if (DSLiteDetect() == 1) break;
+ switch (cmddata) {
+ case 0:
+ data = power_read(POWER_BACKLIGHT);
+ data &= ~3;
+ power_write(POWER_BACKLIGHT, data);
+ break;
+ case 1:
+ data = power_read(POWER_BACKLIGHT);
+ data &= ~3;
+ data |= (POWER4_BRIGHTNESS_MED);
+ power_write(POWER_BACKLIGHT, data);
+ break;
+ case 2:
+ data = power_read(POWER_BACKLIGHT);
+ data &= ~3;
+ data |= (POWER4_BRIGHTNESS_HIGH);
+ power_write(POWER_BACKLIGHT, data);
+ break;
+ case 3:
+
+ data = power_read(POWER_BACKLIGHT);
+ data |= (POWER4_BRIGHTNESS_MAX);
+ power_write(POWER_BACKLIGHT, data);
+ break;
+ }
+ break;
+ case FIFO_POWER_CMD_BACKLIGHT_POWER:
+ switch (cmddata) {
+ case 0:
+ data = power_read(POWER_CONTROL);
+ data &= ~(POWER0_LOWER_BACKLIGHT | POWER0_UPPER_BACKLIGHT);
+ power_write(POWER_CONTROL, data);
+ break;
+ case 1:
+ data = power_read(POWER_CONTROL);
+ data |= (POWER0_LOWER_BACKLIGHT | POWER0_UPPER_BACKLIGHT);
+ power_write(POWER_CONTROL, data);
+ break;
+ }
+ break;
case FIFO_POWER_CMD_SYSTEM_POWER:
power_write(POWER_CONTROL, POWER0_SYSTEM_POWER);
break;
Modified: trunk/linux-2.6.x/arch/arm/mach-nds/arm7/spi.h
==============================================================================
--- trunk/linux-2.6.x/arch/arm/mach-nds/arm7/spi.h (original)
+++ trunk/linux-2.6.x/arch/arm/mach-nds/arm7/spi.h Tue Jun 30 23:55:53 2009
@@ -10,11 +10,17 @@
#define POWER0_LED_FAST (1<<5)
#define POWER0_SYSTEM_POWER (1<<6)
+#define POWER4_BRIGHTNESS_LOW (0)
+#define POWER4_BRIGHTNESS_MED (1)
+#define POWER4_BRIGHTNESS_HIGH (2)
+#define POWER4_BRIGHTNESS_MAX (3)
+
enum power_reg {
POWER_CONTROL,
POWER_BATTERY,
POWER_MIC_CONTROL,
- POWER_MIC_GAIN
+ POWER_MIC_GAIN,
+ POWER_BACKLIGHT
};
u8 power_read(enum power_reg);
Modified: trunk/linux-2.6.x/arch/arm/mach-nds/fifo.c
==============================================================================
--- trunk/linux-2.6.x/arch/arm/mach-nds/fifo.c (original)
+++ trunk/linux-2.6.x/arch/arm/mach-nds/fifo.c Tue Jun 30 23:55:53 2009
@@ -67,7 +67,8 @@
break;
case FIFO_POWER:
cb->handler.power_handler(
- FIFO_POWER_GET_CMD(data));
+ FIFO_POWER_GET_CMD(data),
+ FIFO_POWER_GET_DATA(data));
break;
default:
break;
More information about the dslinux-commit
mailing list