aboutsummaryrefslogtreecommitdiffstats
path: root/arch/m68knommu
diff options
context:
space:
mode:
Diffstat (limited to 'arch/m68knommu')
-rw-r--r--arch/m68knommu/platform/68360/config.c51
1 files changed, 16 insertions, 35 deletions
diff --git a/arch/m68knommu/platform/68360/config.c b/arch/m68knommu/platform/68360/config.c
index 155b72fe2607..2b3196af811f 100644
--- a/arch/m68knommu/platform/68360/config.c
+++ b/arch/m68knommu/platform/68360/config.c
@@ -14,8 +14,6 @@
14#include <linux/types.h> 14#include <linux/types.h>
15#include <linux/kernel.h> 15#include <linux/kernel.h>
16#include <linux/mm.h> 16#include <linux/mm.h>
17#include <linux/tty.h>
18#include <linux/console.h>
19#include <linux/interrupt.h> 17#include <linux/interrupt.h>
20#include <linux/irq.h> 18#include <linux/irq.h>
21 19
@@ -40,8 +38,6 @@ extern void m360_cpm_reset(void);
40 38
41unsigned long int system_clock; 39unsigned long int system_clock;
42 40
43void M68360_init_IRQ(void);
44
45extern QUICC *pquicc; 41extern QUICC *pquicc;
46 42
47/* TODO DON"T Hard Code this */ 43/* TODO DON"T Hard Code this */
@@ -49,14 +45,24 @@ extern QUICC *pquicc;
49// unsigned int system_clock = 33000000l; 45// unsigned int system_clock = 33000000l;
50extern unsigned long int system_clock; //In kernel setup.c 46extern unsigned long int system_clock; //In kernel setup.c
51 47
52extern void config_M68360_irq(void); 48
49static irqreturn_t hw_tick(int irq, void *dummy)
50{
51 /* Reset Timer1 */
52 /* TSTAT &= 0; */
53
54 pquicc->timer_ter1 = 0x0002; /* clear timer event */
55
56 return arch_timer_interrupt(irq, dummy);
57}
53 58
54static struct irqaction m68360_timer_irq = { 59static struct irqaction m68360_timer_irq = {
55 .name = "timer", 60 .name = "timer",
56 .flags = IRQF_DISABLED | IRQF_TIMER, 61 .flags = IRQF_DISABLED | IRQF_TIMER,
62 .handler = hw_tick,
57}; 63};
58 64
59void BSP_sched_init(irq_handler_t timer_routine) 65void hw_timer_init(void)
60{ 66{
61 unsigned char prescaler; 67 unsigned char prescaler;
62 unsigned short tgcr_save; 68 unsigned short tgcr_save;
@@ -90,7 +96,6 @@ void BSP_sched_init(irq_handler_t timer_routine)
90 pquicc->timer_ter1 = 0x0003; /* clear timer events */ 96 pquicc->timer_ter1 = 0x0003; /* clear timer events */
91 97
92 /* enable timer 1 interrupt in CIMR */ 98 /* enable timer 1 interrupt in CIMR */
93 m68360_timer_irq.handler = timer_routine;
94 setup_irq(CPMVEC_TIMER1, &m68360_timer_irq); 99 setup_irq(CPMVEC_TIMER1, &m68360_timer_irq);
95 100
96 /* Start timer 1: */ 101 /* Start timer 1: */
@@ -98,16 +103,7 @@ void BSP_sched_init(irq_handler_t timer_routine)
98 pquicc->timer_tgcr = tgcr_save; 103 pquicc->timer_tgcr = tgcr_save;
99} 104}
100 105
101 106unsigned long hw_timer_offset(void)
102void BSP_tick(void)
103{
104 /* Reset Timer1 */
105 /* TSTAT &= 0; */
106
107 pquicc->timer_ter1 = 0x0002; /* clear timer event */
108}
109
110unsigned long BSP_gettimeoffset (void)
111{ 107{
112 return 0; 108 return 0;
113} 109}
@@ -117,17 +113,7 @@ void BSP_gettod (int *yearp, int *monp, int *dayp,
117{ 113{
118} 114}
119 115
120int BSP_hwclk(int op, struct rtc_time *t) 116int BSP_set_clock_mmss(unsigned long nowtime)
121{
122 if (!op) {
123 /* read */
124 } else {
125 /* write */
126 }
127 return 0;
128}
129
130int BSP_set_clock_mmss (unsigned long nowtime)
131{ 117{
132#if 0 118#if 0
133 short real_seconds = nowtime % 60, real_minutes = (nowtime / 60) % 60; 119 short real_seconds = nowtime % 60, real_minutes = (nowtime / 60) % 60;
@@ -200,11 +186,6 @@ void config_BSP(char *command, int len)
200 scc1_hwaddr = "\00\01\02\03\04\05"; 186 scc1_hwaddr = "\00\01\02\03\04\05";
201#endif 187#endif
202 188
203 mach_sched_init = BSP_sched_init;
204 mach_tick = BSP_tick;
205 mach_gettimeoffset = BSP_gettimeoffset;
206 mach_gettod = BSP_gettod; 189 mach_gettod = BSP_gettod;
207 mach_hwclk = NULL;
208 mach_set_clock_mmss = NULL;
209 mach_reset = BSP_reset; 190 mach_reset = BSP_reset;
210} 191}