summaryrefslogtreecommitdiffstats
path: root/c/src/lib/libbsp/arm/lpc32xx/rtc/rtc-config.c
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2010-06-23 08:27:57 +0000
committerSebastian Huber <sebastian.huber@embedded-brains.de>2010-06-23 08:27:57 +0000
commit3103d4cbad582cc9e62aaf15fd5af308949a83f0 (patch)
treeb1ff4f68908b3177c614349a2f0252e4b64e9b18 /c/src/lib/libbsp/arm/lpc32xx/rtc/rtc-config.c
parent2010-06-23 Sebastian Huber <sebastian.huber@embedded-brains.de> (diff)
downloadrtems-3103d4cbad582cc9e62aaf15fd5af308949a83f0.tar.bz2
2010-06-23 Sebastian Huber <sebastian.huber@embedded-brains.de>
* make/custom/lpc32xx_mzx_boot_int.cfg, startup/linkcmds.lpc32xx_mzx_boot_int: Removed files. * include/boot.h, include/emc.h, include/i2c.h, include/nand-mlc.h, make/custom/lpc32xx_mzx.cfg, make/custom/lpc32xx_mzx_stage_1.cfg, make/custom/lpc32xx_mzx_stage_2.cfg, misc/boot.c, misc/emc.c, misc/i2c.c, misc/nand-mlc.c, misc/nand-mlc-read-blocks.c, misc/nand-mlc-write-blocks.c, misc/restart.c, startup/linkcmds.lpc32xx, startup/linkcmds.lpc32xx_mzx, startup/linkcmds.lpc32xx_mzx_stage_1, startup/linkcmds.lpc32xx_mzx_stage_2: New files. * configure.ac, Makefile.am, preinstall.am: Reflect changes above. * include/bsp.h, include/lpc32xx.h, irq/irq.c, rtc/rtc-config.c, startup/bspstart.c, startup/bspstarthooks.c, startup/linkcmds.lpc32xx_phycore: Changes throughout.
Diffstat (limited to 'c/src/lib/libbsp/arm/lpc32xx/rtc/rtc-config.c')
-rw-r--r--c/src/lib/libbsp/arm/lpc32xx/rtc/rtc-config.c40
1 files changed, 13 insertions, 27 deletions
diff --git a/c/src/lib/libbsp/arm/lpc32xx/rtc/rtc-config.c b/c/src/lib/libbsp/arm/lpc32xx/rtc/rtc-config.c
index b518db3c1f..014392f8d6 100644
--- a/c/src/lib/libbsp/arm/lpc32xx/rtc/rtc-config.c
+++ b/c/src/lib/libbsp/arm/lpc32xx/rtc/rtc-config.c
@@ -38,28 +38,14 @@
#define LPC32XX_RTC_CTRL_MATCH_1_INTR (1U << 1)
#define LPC32XX_RTC_CTRL_MATCH_0_INTR (1U << 0)
-typedef struct {
- uint32_t ucount;
- uint32_t dcount;
- uint32_t match0;
- uint32_t match1;
- uint32_t ctrl;
- uint32_t intstat;
- uint32_t key;
- uint32_t sram [32];
-} lpc32xx_rtc_registers;
-
-static volatile lpc32xx_rtc_registers *const lpc32xx_rtc =
- (volatile lpc32xx_rtc_registers *) LPC32XX_BASE_RTC;
-
static void lpc32xx_rtc_set(uint32_t val)
{
unsigned i = LPC32XX_ARM_CLK / LPC32XX_OSCILLATOR_RTC;
- lpc32xx_rtc->ctrl |= LPC32XX_RTC_CTRL_STOP;
- lpc32xx_rtc->ucount = val;
- lpc32xx_rtc->dcount = LPC32XX_RTC_COUNTER_DELTA - val;
- lpc32xx_rtc->ctrl &= ~LPC32XX_RTC_CTRL_STOP;
+ lpc32xx.rtc.ctrl |= LPC32XX_RTC_CTRL_STOP;
+ lpc32xx.rtc.ucount = val;
+ lpc32xx.rtc.dcount = LPC32XX_RTC_COUNTER_DELTA - val;
+ lpc32xx.rtc.ctrl &= ~LPC32XX_RTC_CTRL_STOP;
/* It needs some time before we can read the values back */
while (i != 0) {
@@ -70,9 +56,9 @@ static void lpc32xx_rtc_set(uint32_t val)
static void lpc32xx_rtc_reset(void)
{
- lpc32xx_rtc->ctrl = LPC32XX_RTC_CTRL_RESET;
- lpc32xx_rtc->ctrl = 0;
- lpc32xx_rtc->key = LPC32XX_RTC_KEY;
+ lpc32xx.rtc.ctrl = LPC32XX_RTC_CTRL_RESET;
+ lpc32xx.rtc.ctrl = 0;
+ lpc32xx.rtc.key = LPC32XX_RTC_KEY;
lpc32xx_rtc_set(0);
}
@@ -83,15 +69,15 @@ static void lpc32xx_rtc_initialize(int minor)
uint32_t down_first = 0;
uint32_t down_second = 0;
- if (lpc32xx_rtc->key != LPC32XX_RTC_KEY) {
+ if (lpc32xx.rtc.key != LPC32XX_RTC_KEY) {
lpc32xx_rtc_reset();
}
do {
- up_first = lpc32xx_rtc->ucount;
- down_first = lpc32xx_rtc->dcount;
- up_second = lpc32xx_rtc->ucount;
- down_second = lpc32xx_rtc->dcount;
+ up_first = lpc32xx.rtc.ucount;
+ down_first = lpc32xx.rtc.dcount;
+ up_second = lpc32xx.rtc.ucount;
+ down_second = lpc32xx.rtc.dcount;
} while (up_first != up_second || down_first != down_second);
if (up_first + down_first != LPC32XX_RTC_COUNTER_DELTA) {
@@ -102,7 +88,7 @@ static void lpc32xx_rtc_initialize(int minor)
static int lpc32xx_rtc_get_time(int minor, rtems_time_of_day *tod)
{
struct timeval now = {
- .tv_sec = lpc32xx_rtc->ucount,
+ .tv_sec = lpc32xx.rtc.ucount,
.tv_usec = 0
};
struct tm time;