OpenCores
URL https://opencores.org/ocsvn/or1k/or1k/trunk

Subversion Repositories or1k

[/] [or1k/] [trunk/] [linux/] [linux-2.4/] [include/] [asm-arm/] [arch-l7200/] [time.h] - Blame information for rev 1774

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 1276 phoenix
/*
2
 * linux/include/asm-arm/arch-l7200/time.h
3
 *
4
 * Copyright (C) 2000 Rob Scott (rscott@mtrob.fdns.net)
5
 *                    Steve Hill (sjhill@cotw.com)
6
 *
7
 * Changelog:
8
 *   01-02-2000 RS      Created l7200 version, derived from rpc code
9
 *   05-03-2000 SJH     Complete rewrite
10
 */
11
#ifndef _ASM_ARCH_TIME_H
12
#define _ASM_ARCH_TIME_H
13
 
14
#include <asm/arch/irqs.h>
15
 
16
/*
17
 * RTC base register address
18
 */
19
#define RTC_BASE        (IO_BASE_2 + 0x2000)
20
 
21
/*
22
 * RTC registers
23
 */
24
#define RTC_RTCDR       (*(volatile unsigned char *) (RTC_BASE + 0x000))
25
#define RTC_RTCMR       (*(volatile unsigned char *) (RTC_BASE + 0x004))
26
#define RTC_RTCS        (*(volatile unsigned char *) (RTC_BASE + 0x008))
27
#define RTC_RTCC        (*(volatile unsigned char *) (RTC_BASE + 0x008))
28
#define RTC_RTCDV       (*(volatile unsigned char *) (RTC_BASE + 0x00c))
29
#define RTC_RTCCR       (*(volatile unsigned char *) (RTC_BASE + 0x010))
30
 
31
/*
32
 * RTCCR register values
33
 */
34
#define RTC_RATE_32     0x00      /* 32 Hz tick */
35
#define RTC_RATE_64     0x10      /* 64 Hz tick */
36
#define RTC_RATE_128    0x20      /* 128 Hz tick */
37
#define RTC_RATE_256    0x30      /* 256 Hz tick */
38
#define RTC_EN_ALARM    0x01      /* Enable alarm */
39
#define RTC_EN_TIC      0x04      /* Enable counter */
40
#define RTC_EN_STWDOG   0x08      /* Enable watchdog */
41
 
42
/*
43
 * Handler for RTC timer interrupt
44
 */
45
static void timer_interrupt(int irq, void *dev_id, struct pt_regs *regs)
46
{
47
        do_timer(regs);
48
        do_profile(regs);
49
        RTC_RTCC = 0;                            /* Clear interrupt */
50
}
51
 
52
/*
53
 * Set up RTC timer interrupt, and return the current time in seconds.
54
 */
55
static inline void setup_timer(void)
56
{
57
        RTC_RTCC = 0;                            /* Clear interrupt */
58
 
59
        timer_irq.handler = timer_interrupt;
60
 
61
        setup_arm_irq(IRQ_RTC_TICK, &timer_irq);
62
 
63
        RTC_RTCCR = RTC_RATE_128 | RTC_EN_TIC;  /* Set rate and enable timer */
64
}
65
 
66
#endif

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.