From 4e08aebc4f871e76794d9abd39777c7a0083534d Mon Sep 17 00:00:00 2001 From: saratoga Date: Sun, 18 Jan 2009 18:49:36 +0000 Subject: [PATCH] Commit second part of FS#9663 by Thomas Martitz. Enable button light on fuze and e200v2. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19792 a1c6a512-1295-4272-9138-f99709370657 --- firmware/export/as3525.h | 1 + firmware/target/arm/as3525/ata_sd_as3525.c | 12 ++++++++++-- firmware/target/arm/as3525/backlight-e200v2-fuze.c | 4 ++-- firmware/target/arm/as3525/sansa-fuze/button-fuze.c | 1 + 4 files changed, 14 insertions(+), 4 deletions(-) diff --git a/firmware/export/as3525.h b/firmware/export/as3525.h index 50b1fbe06..70462c7e8 100644 --- a/firmware/export/as3525.h +++ b/firmware/export/as3525.h @@ -273,6 +273,7 @@ interface */ #define UART_LNSTATUS_REG (*(volatile unsigned long*)(UART0_BASE + 0x14)) /* Line status register */ +#define SD_MCI_POWER (*(volatile unsigned long*)(SD_MCI_BASE + 0x0)) #define TIMER1_LOAD (*(volatile unsigned long*)(TIMER_BASE + 0x00)) /* 32-bit width */ diff --git a/firmware/target/arm/as3525/ata_sd_as3525.c b/firmware/target/arm/as3525/ata_sd_as3525.c index b68df4c93..44fe3e431 100644 --- a/firmware/target/arm/as3525/ata_sd_as3525.c +++ b/firmware/target/arm/as3525/ata_sd_as3525.c @@ -476,10 +476,10 @@ static void init_pl180_controller(const int drive) int sd_init(void) { int ret; - CGU_IDE = (1<<7) /* AHB interface enable */ | + CGU_IDE = (1<<7) /* AHB interface enable */ | (1<<6) /* interface enable */ | ((CLK_DIV(AS3525_PLLA_FREQ, AS3525_IDE_FREQ) - 1) << 2) | - 1 /* clock source = PLLA */; + 1; /* clock source = PLLA */ CGU_PERI |= CGU_NAF_CLOCK_ENABLE; @@ -741,6 +741,10 @@ void sd_enable(bool on) CGU_PERI |= CGU_NAF_CLOCK_ENABLE; #ifdef HAVE_MULTIVOLUME CGU_PERI |= CGU_MCI_CLOCK_ENABLE; + /* Needed for buttonlight and MicroSD to work at the same time */ + /* Turn ROD control on, as the OF does */ + SD_MCI_POWER |= (1<<7); + CCU_IO |= (1<<2); #endif CGU_IDE |= (1<<7) /* AHB interface enable */ | (1<<6) /* interface enable */; @@ -751,6 +755,10 @@ void sd_enable(bool on) CGU_PERI &= ~CGU_NAF_CLOCK_ENABLE; #ifdef HAVE_MULTIVOLUME CGU_PERI &= ~CGU_MCI_CLOCK_ENABLE; + /* Needed for buttonlight and MicroSD to work at the same time */ + /* Turn ROD control off, as the OF does */ + SD_MCI_POWER &= ~(1<<7); + CCU_IO &= ~(1<<2); #endif CGU_IDE &= ~((1<<7)|(1<<6)); sd_enabled = false; diff --git a/firmware/target/arm/as3525/backlight-e200v2-fuze.c b/firmware/target/arm/as3525/backlight-e200v2-fuze.c index c64206459..c26d3919c 100644 --- a/firmware/target/arm/as3525/backlight-e200v2-fuze.c +++ b/firmware/target/arm/as3525/backlight-e200v2-fuze.c @@ -57,12 +57,12 @@ void _backlight_off(void) void _buttonlight_on(void) { - GPIOD_PIN(7) = (1<<7); GPIOD_DIR |= (1<<7); + GPIOD_PIN(7) = (1<<7); } void _buttonlight_off(void) { GPIOD_PIN(7) = 0; - GPIOD_DIR |= (1<<7); + GPIOD_DIR &= ~(1<<7); } diff --git a/firmware/target/arm/as3525/sansa-fuze/button-fuze.c b/firmware/target/arm/as3525/sansa-fuze/button-fuze.c index 241490072..ff07965f9 100644 --- a/firmware/target/arm/as3525/sansa-fuze/button-fuze.c +++ b/firmware/target/arm/as3525/sansa-fuze/button-fuze.c @@ -108,6 +108,7 @@ static void get_wheel(void) * the rockbox menus */ if (queue_empty(&button_queue) && ++counter >= 4) { + buttonlight_on(); backlight_on(); /* 1<<24 is rather arbitary, seems to work well */ queue_post(&button_queue, btn, 1<<24); -- 2.11.4.GIT