~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/arch/arm/mach-l7200/include/mach/time.h

Version: ~ [ linux-5.4-rc3 ] ~ [ linux-5.3.6 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.79 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.149 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.196 ] ~ [ linux-4.8.17 ] ~ [ linux-4.7.10 ] ~ [ linux-4.6.7 ] ~ [ linux-4.5.7 ] ~ [ linux-4.4.196 ] ~ [ linux-4.3.6 ] ~ [ linux-4.2.8 ] ~ [ linux-4.1.52 ] ~ [ linux-4.0.9 ] ~ [ linux-3.19.8 ] ~ [ linux-3.18.140 ] ~ [ linux-3.17.8 ] ~ [ linux-3.16.75 ] ~ [ linux-3.15.10 ] ~ [ linux-3.14.79 ] ~ [ linux-3.13.11 ] ~ [ linux-3.12.74 ] ~ [ linux-3.11.10 ] ~ [ linux-3.10.108 ] ~ [ linux-3.9.11 ] ~ [ linux-3.8.13 ] ~ [ linux-3.7.10 ] ~ [ linux-3.6.11 ] ~ [ linux-3.5.7 ] ~ [ linux-3.4.113 ] ~ [ linux-3.3.8 ] ~ [ linux-3.2.102 ] ~ [ linux-3.1.10 ] ~ [ linux-3.0.101 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.5 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 /*
  2  * arch/arm/mach-l7200/include/mach/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 <mach/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 irqreturn_t
 46 timer_interrupt(int irq, void *dev_id)
 47 {
 48         struct pt_regs *regs = get_irq_regs();
 49         do_timer(1);
 50 #ifndef CONFIG_SMP
 51         update_process_times(user_mode(regs));
 52 #endif
 53         do_profile(regs);
 54         RTC_RTCC = 0;                           /* Clear interrupt */
 55 
 56         return IRQ_HANDLED;
 57 }
 58 
 59 /*
 60  * Set up RTC timer interrupt, and return the current time in seconds.
 61  */
 62 void __init time_init(void)
 63 {
 64         RTC_RTCC = 0;                           /* Clear interrupt */
 65 
 66         timer_irq.handler = timer_interrupt;
 67 
 68         setup_irq(IRQ_RTC_TICK, &timer_irq);
 69 
 70         RTC_RTCCR = RTC_RATE_128 | RTC_EN_TIC;  /* Set rate and enable timer */
 71 }
 72 
 73 #endif
 74 

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | Wiki (Japanese) | Wiki (English) | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

osdn.jp