From 22e7bf32b894acc1f9e2820e213f05a57bd4148c Mon Sep 17 00:00:00 2001 From: Mark Arigo Date: Fri, 27 Jun 2008 18:40:25 +0000 Subject: My Devcon 2008 contribution: port for Philips GoGear HDD1630 (PP5022-based). Current status is that the bootloader works to load Rockbox, but dual boot does not work: it freezes after decrypting the OF. When Rockbox boots, it freezes somewhere between showing the logo and the main menu. And there's no driver for the touchpad. So lots of work left. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17809 a1c6a512-1295-4272-9138-f99709370657 --- .../target/arm/philips/hdd1630/button-hdd1630.c | 65 ++++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100755 firmware/target/arm/philips/hdd1630/button-hdd1630.c (limited to 'firmware/target/arm/philips/hdd1630/button-hdd1630.c') diff --git a/firmware/target/arm/philips/hdd1630/button-hdd1630.c b/firmware/target/arm/philips/hdd1630/button-hdd1630.c new file mode 100755 index 0000000000..ac478065bc --- /dev/null +++ b/firmware/target/arm/philips/hdd1630/button-hdd1630.c @@ -0,0 +1,65 @@ +/*************************************************************************** + * __________ __ ___. + * Open \______ \ ____ ____ | | _\_ |__ _______ ___ + * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / + * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < + * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ + * \/ \/ \/ \/ \/ + * $Id$ + * + * Copyright (C) 2008 by Mark Arigo + * + * All files in this archive are subject to the GNU General Public License. + * See the file COPYING in the source tree root for full license agreement. + * + * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY + * KIND, either express or implied. + * + ****************************************************************************/ + +#include "system.h" +#include "button.h" +#include "backlight.h" + +void button_init_device(void) +{ + /* TODO...for now, hardware initialisation is done by the bootloader */ +} + +bool button_hold(void) +{ + return !(GPIOJ_INPUT_VAL & 0x8); +} + +/* + * Get button pressed from hardware + */ +int button_read_device(void) +{ + int btn = BUTTON_NONE; + static bool hold_button = false; + bool hold_button_old; + + /* Hold */ + hold_button_old = hold_button; + hold_button = button_hold(); + + /* device buttons */ + if (!hold_button) + { + if (!(GPIOA_INPUT_VAL & 0x01)) btn |= BUTTON_MENU; + if (!(GPIOA_INPUT_VAL & 0x02)) btn |= BUTTON_VOL_UP; + if (!(GPIOA_INPUT_VAL & 0x04)) btn |= BUTTON_VOL_DOWN; + if (!(GPIOA_INPUT_VAL & 0x08)) btn |= BUTTON_VIEW; + + if (!(GPIOD_INPUT_VAL & 0x20)) btn |= BUTTON_PLAYLIST; + if (!(GPIOD_INPUT_VAL & 0x40)) btn |= BUTTON_POWER; + } + + return btn; +} + +bool headphones_inserted(void) +{ + return true; +} -- cgit v1.2.3