summaryrefslogtreecommitdiffstats
path: root/c/src/lib/libbsp/powerpc/mpc55xxevb/clock/clock-config.c
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2011-08-31 16:03:10 +0000
committerSebastian Huber <sebastian.huber@embedded-brains.de>2011-08-31 16:03:10 +0000
commit9e7758b2774cd3410d3f2477181e8a62a89399ce (patch)
treeada101a509e3178e33cbaa17c469699b4e7d4b89 /c/src/lib/libbsp/powerpc/mpc55xxevb/clock/clock-config.c
parent2011-08-31 Sebastian Huber <sebastian.huber@embedded-brains.de> (diff)
downloadrtems-9e7758b2774cd3410d3f2477181e8a62a89399ce.tar.bz2
2011-08-31 Sebastian Huber <sebastian.huber@embedded-brains.de>
* startup/bspgetworkarea.c, startup/linkcmds.base: Removed files. * include/mpc55xx-config.h, make/custom/mpc5674fevb.cfg, startup/early-init.c, startup/ebi-cal-cs-config.c, startup/ebi-cs-config.c, startup/exc-vector-base.S, startup/fmpll-syncr-vals.c, startup/linkcmds.mpc5674fevb, startup/mmu-config.c, startup/siu-pcr-config.c: New files. * Makefile.am, preinstall.am: Reflect changes above. * startup/linkcmds.gwlcfm, startup/linkcmds.mpc5566evb, startup/linkcmds.phycore_mpc5554: Use linker command base file. * configure.ac: Support MPC5674F. Changed eSCI options. * clock/clock-config.c: Support MPC5674F. * i2c/i2c_init.c, network/smsc9218i.c, startup/sd-card-init.c: Update due to API changes. * include/bsp.h: Define BSP_INTERRUPT_STACK_AT_WORK_AREA_BEGIN. * network/if_smc.c: Use HAS_SMC91111. * startup/start.S, startup/bspstart.c: Moved low-level initialization into new files. Overall cleanup.
Diffstat (limited to '')
-rw-r--r--c/src/lib/libbsp/powerpc/mpc55xxevb/clock/clock-config.c25
1 files changed, 8 insertions, 17 deletions
diff --git a/c/src/lib/libbsp/powerpc/mpc55xxevb/clock/clock-config.c b/c/src/lib/libbsp/powerpc/mpc55xxevb/clock/clock-config.c
index b3dc3bddab..0d1561880f 100644
--- a/c/src/lib/libbsp/powerpc/mpc55xxevb/clock/clock-config.c
+++ b/c/src/lib/libbsp/powerpc/mpc55xxevb/clock/clock-config.c
@@ -49,7 +49,7 @@ static void mpc55xx_clock_handler_install( rtems_isr_entry isr,
rtems_status_code sc = RTEMS_SUCCESSFUL;
sc = mpc55xx_interrupt_handler_install(
- MPC55XX_IRQ_EMIOS_GET_REQUEST( MPC55XX_CLOCK_EMIOS_CHANNEL),
+ MPC55XX_IRQ_EMIOS( MPC55XX_CLOCK_EMIOS_CHANNEL),
"clock",
RTEMS_INTERRUPT_UNIQUE,
MPC55XX_INTC_MIN_PRIORITY,
@@ -96,26 +96,17 @@ static void mpc55xx_clock_initialize( void)
csr.B.FLAG = 1;
regs->CSR.R = csr.R;
+ /* Set internal counter start value */
+ regs->CCNTR.R = 1;
+
/* Set timer period */
regs->CADR.R = (uint32_t) interval - 1;
- /* Set unused registers */
- regs->CBDR.R = 0;
- regs->CCNTR.R = 0;
-#if MPC55XX_CHIP_TYPE != 5554
- /* This is reserved on the MPC5554.
- */
- regs->ALTCADR.R = 0;
-#endif
-
/* Set control register */
- /* The mode change, made by Thomas for GW_LCFM support, breaks interrupts
- * on the MPC5554.
- */
-#if MPC55XX_CHIP_TYPE == 5554
- ccr.B.MODE = MPC55XX_EMIOS_MODE_MC_UP_INT_CLK;
-#else
+#if MPC55XX_CHIP_TYPE / 10 == 551
ccr.B.MODE = MPC55XX_EMIOS_MODE_MCB_UP_INT_CLK;
+#else
+ ccr.B.MODE = MPC55XX_EMIOS_MODE_MC_UP_INT_CLK;
#endif
ccr.B.UCPREN = 1;
ccr.B.FEN = 1;
@@ -135,7 +126,7 @@ static void mpc55xx_clock_cleanup( void)
/* Remove interrupt handler */
sc = rtems_interrupt_handler_remove(
- MPC55XX_IRQ_EMIOS_GET_REQUEST( MPC55XX_CLOCK_EMIOS_CHANNEL),
+ MPC55XX_IRQ_EMIOS( MPC55XX_CLOCK_EMIOS_CHANNEL),
(rtems_interrupt_handler) Clock_isr,
NULL
);