rockbox/firmware/target/arm/as3525/sansa-fuzev2/backlight-fuzev2.c
Rafaël Carré 79cfc221a5 fuzev2: fix buttonlight flashing on µSD access (2nd try)
it would still flash when the light was off
it turns out that if B5 is set to input the light can't be turned on
but we can still select between µSD slot and internal storage

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26059 a1c6a512-1295-4272-9138-f99709370657
2010-05-15 16:21:47 +00:00

72 lines
1.9 KiB
C

/***************************************************************************
* __________ __ ___.
* Open \______ \ ____ ____ | | _\_ |__ _______ ___
* Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
* Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
* Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
* \/ \/ \/ \/ \/
* $Id$
*
* Copyright (C) 2010 by Thomas Martitz
*
* 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 "ascodec-target.h"
#include "as3514.h"
int buttonlight_is_on = 0;
void _backlight_set_brightness(int brightness)
{
ascodec_write_pmu(AS3543_BACKLIGHT, 2, brightness * 10);
}
bool _backlight_init(void)
{
ascodec_write_pmu(AS3543_BACKLIGHT, 1, 0x80);
ascodec_write_pmu(AS3543_BACKLIGHT, 2, backlight_brightness * 10);
return true;
}
void _backlight_on(void)
{
#ifdef HAVE_LCD_ENABLE
lcd_enable(true); /* power on lcd + visible display */
#endif
ascodec_write_pmu(AS3543_BACKLIGHT, 1, 0x80);
}
void _backlight_off(void)
{
ascodec_write_pmu(AS3543_BACKLIGHT, 1, 0x0);
#ifdef HAVE_LCD_ENABLE
lcd_enable(false); /* power off visible display */
#endif
}
void _buttonlight_on(void)
{
GPIOB_DIR |= 1<<5;
GPIOB_PIN(5) = (1<<5);
buttonlight_is_on = 1;
}
void _buttonlight_off(void)
{
GPIOB_PIN(5) = 0;
GPIOB_DIR &= ~(1<<5);
buttonlight_is_on = 0;
}