From f81c0c05ce4c522ef7a59244c9e7dc1e3002d4fe Mon Sep 17 00:00:00 2001 From: Szymon Dziok Date: Thu, 21 Oct 2010 21:03:17 +0000 Subject: HDD6330 and HDD1630: split the code for the backlight, cause it's rather different for these targets. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28321 a1c6a512-1295-4272-9138-f99709370657 --- .../target/arm/philips/hdd6330/backlight-hdd6330.c | 91 ++++++++++++++++++++++ .../target/arm/philips/hdd6330/backlight-target.h | 38 +++++++++ 2 files changed, 129 insertions(+) create mode 100644 firmware/target/arm/philips/hdd6330/backlight-hdd6330.c create mode 100644 firmware/target/arm/philips/hdd6330/backlight-target.h (limited to 'firmware/target/arm/philips/hdd6330') diff --git a/firmware/target/arm/philips/hdd6330/backlight-hdd6330.c b/firmware/target/arm/philips/hdd6330/backlight-hdd6330.c new file mode 100644 index 0000000000..369f3a40f1 --- /dev/null +++ b/firmware/target/arm/philips/hdd6330/backlight-hdd6330.c @@ -0,0 +1,91 @@ +/*************************************************************************** + * __________ __ ___. + * Open \______ \ ____ ____ | | _\_ |__ _______ ___ + * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / + * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < + * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ + * \/ \/ \/ \/ \/ + * $Id: backlight-hdd.c 28307 2010-10-18 19:54:18Z b0hoon $ + * + * Copyright (C) 2008 by Mark Arigo + * + * 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 "backlight.h" +#include "synaptics-mep.h" + +#ifdef HAVE_BACKLIGHT_BRIGHTNESS +static const int brightness_vals[16] = + {255,237,219,201,183,165,147,130,112,94,76,58,40,22,5,0}; + +void _backlight_set_brightness(int brightness) +{ + outl(0x80000000 | (brightness_vals[brightness-1] << 16), 0x7000a000); +} +#endif + +void _backlight_on(void) +{ + GPO32_ENABLE |= 0x400; + GPO32_VAL |= 0x400; +} + +void _backlight_off(void) +{ + GPO32_ENABLE |= 0x400; + GPO32_VAL &= ~0x400; +} + +#ifdef HAVE_BUTTON_LIGHT +#define BUTTONLIGHT_MASK 0x7f +static unsigned short buttonight_brightness = DEFAULT_BRIGHTNESS_SETTING - 1; +static unsigned short buttonlight_status = 0; + +void _buttonlight_on(void) +{ + if (!buttonlight_status) + { + /* enable 3 leds (from 5) for PREV, PLAY and NEXT, */ + /* skip 2 leds because their light does not pass */ + /* through the panel anyway - on GPOs, module 0 */ + touchpad_set_parameter(0x00,0x22,0x15); + /* enable 1 led (from 2) for MENU - GPO, module 1 */ + /* no need to enable led for the hidden button */ + touchpad_set_parameter(0x01,0x21,0x01); + /* left, right and the scrollstrip */ + touchpad_set_buttonlights(BUTTONLIGHT_MASK, buttonight_brightness); + buttonlight_status = 1; + } +} + +void _buttonlight_off(void) +{ + if (buttonlight_status) + { + /* disable all leds on GPOs for module 0 and 1 */ + touchpad_set_parameter(0x00,0x22,0x00); + touchpad_set_parameter(0x01,0x21,0x00); + touchpad_set_buttonlights(BUTTONLIGHT_MASK, 0); + buttonlight_status = 0; + } +} + +void _buttonlight_set_brightness(int brightness) +{ + touchpad_set_parameter(0x00,0x22,0x15); + touchpad_set_parameter(0x01,0x21,0x01); + buttonight_brightness = brightness - 1; + touchpad_set_buttonlights(BUTTONLIGHT_MASK, buttonight_brightness); + buttonlight_status = 1; +} +#endif diff --git a/firmware/target/arm/philips/hdd6330/backlight-target.h b/firmware/target/arm/philips/hdd6330/backlight-target.h new file mode 100644 index 0000000000..63f3f5a8df --- /dev/null +++ b/firmware/target/arm/philips/hdd6330/backlight-target.h @@ -0,0 +1,38 @@ +/*************************************************************************** + * __________ __ ___. + * Open \______ \ ____ ____ | | _\_ |__ _______ ___ + * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / + * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < + * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ + * \/ \/ \/ \/ \/ + * $Id: backlight-target.h 24112 2009-12-25 04:05:01Z lowlight $ + * + * Copyright (C) 2008 by Mark Arigo + * + * 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. + * + ****************************************************************************/ +#ifndef BACKLIGHT_TARGET_H +#define BACKLIGHT_TARGET_H + +#define _backlight_init() true +void _backlight_on(void); +void _backlight_off(void); + +#ifdef HAVE_BACKLIGHT_BRIGHTNESS +void _backlight_set_brightness(int brightness); +#endif + +#ifdef HAVE_BUTTON_LIGHT +void _buttonlight_on(void); +void _buttonlight_off(void); +void _buttonlight_set_brightness(int brightness); +#endif + +#endif -- cgit v1.2.3