diff options
author | Rob Purchase <shotofadds@rockbox.org> | 2008-01-14 22:04:48 +0000 |
---|---|---|
committer | Rob Purchase <shotofadds@rockbox.org> | 2008-01-14 22:04:48 +0000 |
commit | 47ea030e2e68a51f91a2c2302b7ea4d3ee1a2a07 (patch) | |
tree | 0a48ce653e22ec9a2673474f718217d9659e0c6b /firmware/target/arm/tcc780x/timer-tcc780x.c | |
parent | b30ca8ca5ab6c8ea27b8fe1f5fb38ebad09b7e62 (diff) | |
download | rockbox-47ea030e2e68a51f91a2c2302b7ea4d3ee1a2a07.tar.gz rockbox-47ea030e2e68a51f91a2c2302b7ea4d3ee1a2a07.zip |
Initial Cowon D2 commit:
* bootloader test program (basic LCD & button drivers, reads touchscreen)
* work-in-progress stubs for main build
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16090 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware/target/arm/tcc780x/timer-tcc780x.c')
-rw-r--r-- | firmware/target/arm/tcc780x/timer-tcc780x.c | 82 |
1 files changed, 82 insertions, 0 deletions
diff --git a/firmware/target/arm/tcc780x/timer-tcc780x.c b/firmware/target/arm/tcc780x/timer-tcc780x.c new file mode 100644 index 0000000000..c724c4b3a8 --- /dev/null +++ b/firmware/target/arm/tcc780x/timer-tcc780x.c @@ -0,0 +1,82 @@ +/*************************************************************************** +* __________ __ ___. +* Open \______ \ ____ ____ | | _\_ |__ _______ ___ +* Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / +* Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < +* Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ +* \/ \/ \/ \/ \/ +* $Id$ +* +* Copyright (C) 2008 by Rob Purchase +* +* 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 "system.h" +#include "timer.h" +#include "logf.h" + +/* Use the TC32 counter [sourced by Xin:12Mhz] for this timer, as it's the + only one that allows a 32-bit counter (Timer0-5 are 16/20 bit only). */ + +bool __timer_set(long cycles, bool start) +{ + #warning function not implemented + + (void)cycles; + (void)start; + return false; +} + +bool __timer_register(void) +{ + #warning function not implemented + + return false; +} + +void __timer_unregister(void) +{ + #warning function not implemented +} + + +/* Timer interrupt processing - all timers (inc. tick) have a single IRQ */ + +extern void (*tick_funcs[MAX_NUM_TICK_TASKS])(void); + +void TIMER(void) +{ + if (TIREQ & TF0) /* Timer0 reached ref value */ + { + int i; + + /* Run through the list of tick tasks */ + for(i = 0; i < MAX_NUM_TICK_TASKS; i++) + { + if(tick_funcs[i]) + { + tick_funcs[i](); + } + } + + current_tick++; + + /* reset Timer 0 IRQ & ref flags */ + TIREQ |= TI0 | TF0; + } + + if (TC32IRQ & (1<<3)) /* end of TC32 prescale */ + { + /* dispatch timer */ + } + + CREQ |= TIMER_IRQ_MASK; /* clear IRQ */ +} |