aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/clocksource/timer-fttmr010.c21
1 files changed, 10 insertions, 11 deletions
diff --git a/drivers/clocksource/timer-fttmr010.c b/drivers/clocksource/timer-fttmr010.c
index 9df14cf13808..2d915d1455ab 100644
--- a/drivers/clocksource/timer-fttmr010.c
+++ b/drivers/clocksource/timer-fttmr010.c
@@ -49,9 +49,6 @@
49#define TIMER_1_CR_UPDOWN BIT(9) 49#define TIMER_1_CR_UPDOWN BIT(9)
50#define TIMER_2_CR_UPDOWN BIT(10) 50#define TIMER_2_CR_UPDOWN BIT(10)
51#define TIMER_3_CR_UPDOWN BIT(11) 51#define TIMER_3_CR_UPDOWN BIT(11)
52#define TIMER_DEFAULT_FLAGS (TIMER_1_CR_UPDOWN | \
53 TIMER_3_CR_ENABLE | \
54 TIMER_3_CR_UPDOWN)
55 52
56#define TIMER_1_INT_MATCH1 BIT(0) 53#define TIMER_1_INT_MATCH1 BIT(0)
57#define TIMER_1_INT_MATCH2 BIT(1) 54#define TIMER_1_INT_MATCH2 BIT(1)
@@ -80,7 +77,7 @@ static inline struct fttmr010 *to_fttmr010(struct clock_event_device *evt)
80 77
81static u64 notrace fttmr010_read_sched_clock(void) 78static u64 notrace fttmr010_read_sched_clock(void)
82{ 79{
83 return readl(local_fttmr->base + TIMER3_COUNT); 80 return readl(local_fttmr->base + TIMER2_COUNT);
84} 81}
85 82
86static int fttmr010_timer_set_next_event(unsigned long cycles, 83static int fttmr010_timer_set_next_event(unsigned long cycles,
@@ -230,19 +227,21 @@ static int __init fttmr010_timer_init(struct device_node *np)
230 */ 227 */
231 writel(TIMER_INT_ALL_MASK, fttmr010->base + TIMER_INTR_MASK); 228 writel(TIMER_INT_ALL_MASK, fttmr010->base + TIMER_INTR_MASK);
232 writel(0, fttmr010->base + TIMER_INTR_STATE); 229 writel(0, fttmr010->base + TIMER_INTR_STATE);
233 writel(TIMER_DEFAULT_FLAGS, fttmr010->base + TIMER_CR); 230 /* Enable timer 1 count up, timer 2 count up */
231 writel((TIMER_1_CR_UPDOWN | TIMER_2_CR_ENABLE | TIMER_2_CR_UPDOWN),
232 fttmr010->base + TIMER_CR);
234 233
235 /* 234 /*
236 * Setup free-running clocksource timer (interrupts 235 * Setup free-running clocksource timer (interrupts
237 * disabled.) 236 * disabled.)
238 */ 237 */
239 local_fttmr = fttmr010; 238 local_fttmr = fttmr010;
240 writel(0, fttmr010->base + TIMER3_COUNT); 239 writel(0, fttmr010->base + TIMER2_COUNT);
241 writel(0, fttmr010->base + TIMER3_LOAD); 240 writel(0, fttmr010->base + TIMER2_LOAD);
242 writel(0, fttmr010->base + TIMER3_MATCH1); 241 writel(0, fttmr010->base + TIMER2_MATCH1);
243 writel(0, fttmr010->base + TIMER3_MATCH2); 242 writel(0, fttmr010->base + TIMER2_MATCH2);
244 clocksource_mmio_init(fttmr010->base + TIMER3_COUNT, 243 clocksource_mmio_init(fttmr010->base + TIMER2_COUNT,
245 "FTTMR010-TIMER3", 244 "FTTMR010-TIMER2",
246 fttmr010->tick_rate, 245 fttmr010->tick_rate,
247 300, 32, clocksource_mmio_readl_up); 246 300, 32, clocksource_mmio_readl_up);
248 sched_clock_register(fttmr010_read_sched_clock, 32, 247 sched_clock_register(fttmr010_read_sched_clock, 32,