From b93667b30699a18daf3699cc969ad858077e406f Mon Sep 17 00:00:00 2001 From: Marc Guay Date: Sat, 21 Jun 2008 15:18:36 +0000 Subject: Add the Sansa c100 as a build target with basic drivers. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17742 a1c6a512-1295-4272-9138-f99709370657 --- firmware/target/arm/tcc77x/c100/button-c100.c | 62 +++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 firmware/target/arm/tcc77x/c100/button-c100.c (limited to 'firmware/target/arm/tcc77x/c100/button-c100.c') diff --git a/firmware/target/arm/tcc77x/c100/button-c100.c b/firmware/target/arm/tcc77x/c100/button-c100.c new file mode 100644 index 0000000000..0183a833ae --- /dev/null +++ b/firmware/target/arm/tcc77x/c100/button-c100.c @@ -0,0 +1,62 @@ +/*************************************************************************** + * __________ __ ___. + * Open \______ \ ____ ____ | | _\_ |__ _______ ___ + * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / + * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < + * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ + * \/ \/ \/ \/ \/ + * $Id: button-logikdax.c 15396 2007-11-01 23:38:57Z dave $ + * + * Copyright (C) 2007 by Dave Chapman + * + * 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 "config.h" +#include "cpu.h" +#include "button.h" +#include "adc.h" + +void button_init_device(void) +{ + GPIOA_DIR |= 0xC; +} + +int button_read_device(void) +{ + int btn = BUTTON_NONE; + + if (!button_hold()){ + GPIOA |= 0x4; + GPIOA &= ~0x8; + + int i=20; while (i--); + + if (GPIOA & 0x10) btn |= BUTTON_PLAYPAUSE; /* up */ + if (GPIOA & 0x20) btn |= BUTTON_RIGHT; + if (GPIOA & 0x40) btn |= BUTTON_LEFT; + + GPIOA |= 0x8; + GPIOA &= ~0x4; + + i=20; while (i--); + + if (GPIOA & 0x10) btn |= BUTTON_VOLUP; + if (GPIOA & 0x20) btn |= BUTTON_VOLDOWN; + if (GPIOA & 0x40) btn |= BUTTON_REPEATAB; /* down */ + + if (GPIOA & 0x80) btn |= BUTTON_SELECT; + if (GPIOA & 0x100) btn |= BUTTON_MENU; + } + return btn; +} + +bool button_hold(void) +{ + return (GPIOA & 0x2); +} -- cgit v1.2.3