diff options
author | Till Straumann <strauman@slac.stanford.edu> | 2007-12-07 09:10:55 +0000 |
---|---|---|
committer | Till Straumann <strauman@slac.stanford.edu> | 2007-12-07 09:10:55 +0000 |
commit | 2a90ae752281d50af0bbc1aa33c65bdb750d258d (patch) | |
tree | b0de56c0720423d29fab81999aa0392891968875 /c/src/lib/libbsp/powerpc/shared/openpic | |
parent | Remove unused functions. (diff) | |
download | rtems-2a90ae752281d50af0bbc1aa33c65bdb750d258d.tar.bz2 |
2007-12-06 Till Straumann <strauman@slac.stanford.edu>
* shared/openpic/openpic.c, shared/openpic/openpic.h:
added routines to set timer period and interupt mask
and to read current count.
Diffstat (limited to 'c/src/lib/libbsp/powerpc/shared/openpic')
-rw-r--r-- | c/src/lib/libbsp/powerpc/shared/openpic/openpic.c | 22 | ||||
-rw-r--r-- | c/src/lib/libbsp/powerpc/shared/openpic/openpic.h | 2 |
2 files changed, 24 insertions, 0 deletions
diff --git a/c/src/lib/libbsp/powerpc/shared/openpic/openpic.c b/c/src/lib/libbsp/powerpc/shared/openpic/openpic.c index 46fc86d967..52de079062 100644 --- a/c/src/lib/libbsp/powerpc/shared/openpic/openpic.c +++ b/c/src/lib/libbsp/powerpc/shared/openpic/openpic.c @@ -492,6 +492,28 @@ void openpic_maptimer(unsigned int timer, unsigned int cpumask) openpic_write(&OpenPIC->Global.Timer[timer].Destination, cpumask); } + /* + * Set base count and / or enable / disable interrupt. + */ + + +void openpic_settimer(unsigned int timer, unsigned int base_count, int irq_enable) +{ + check_arg_timer(timer); + if ( base_count ) + openpic_write(&OpenPIC->Global.Timer[timer].Base_Count, base_count); + if ( irq_enable ) + openpic_clearfield(&OpenPIC->Global.Timer[timer].Vector_Priority, OPENPIC_MASK); + else + openpic_setfield(&OpenPIC->Global.Timer[timer].Vector_Priority, OPENPIC_MASK); +} + +unsigned int openpic_gettimer(unsigned int timer) +{ + check_arg_timer(timer); + return (openpic_read(&OpenPIC->Global.Timer[timer]) & ~OPENPIC_MASK); +} + /* -------- Interrupt Sources ---------------------------------------------- */ /* diff --git a/c/src/lib/libbsp/powerpc/shared/openpic/openpic.h b/c/src/lib/libbsp/powerpc/shared/openpic/openpic.h index 477d7b3699..7a9764857b 100644 --- a/c/src/lib/libbsp/powerpc/shared/openpic/openpic.h +++ b/c/src/lib/libbsp/powerpc/shared/openpic/openpic.h @@ -363,6 +363,8 @@ extern void openpic_cause_IPI(unsigned int cpu, unsigned int ipi, unsigned int c /* Timer Interrupts */ extern void openpic_inittimer(unsigned int timer, unsigned int pri, unsigned int vector); +extern void openpic_settimer(unsigned int timer, unsigned int base_count, int irq_enable); +extern unsigned int openpic_gettimer(unsigned int timer); extern void openpic_maptimer(unsigned int timer, unsigned int cpumask); /* Interrupt Sources */ |