aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/clocksource/Kconfig7
-rw-r--r--drivers/clocksource/Makefile2
-rw-r--r--drivers/clocksource/timer-fttmr010.c (renamed from drivers/clocksource/timer-gemini.c)45
3 files changed, 27 insertions, 27 deletions
diff --git a/drivers/clocksource/Kconfig b/drivers/clocksource/Kconfig
index 483f3b1af4fd..7ca2c2461c9c 100644
--- a/drivers/clocksource/Kconfig
+++ b/drivers/clocksource/Kconfig
@@ -67,15 +67,16 @@ config DW_APB_TIMER_OF
67 select DW_APB_TIMER 67 select DW_APB_TIMER
68 select CLKSRC_OF 68 select CLKSRC_OF
69 69
70config GEMINI_TIMER 70config FTTMR010_TIMER
71 bool "Cortina Gemini timer driver" if COMPILE_TEST 71 bool "Faraday Technology timer driver" if COMPILE_TEST
72 depends on GENERIC_CLOCKEVENTS 72 depends on GENERIC_CLOCKEVENTS
73 depends on HAS_IOMEM 73 depends on HAS_IOMEM
74 select CLKSRC_MMIO 74 select CLKSRC_MMIO
75 select CLKSRC_OF 75 select CLKSRC_OF
76 select MFD_SYSCON 76 select MFD_SYSCON
77 help 77 help
78 Enables support for the Gemini timer 78 Enables support for the Faraday Technology timer block
79 FTTMR010.
79 80
80config ROCKCHIP_TIMER 81config ROCKCHIP_TIMER
81 bool "Rockchip timer driver" if COMPILE_TEST 82 bool "Rockchip timer driver" if COMPILE_TEST
diff --git a/drivers/clocksource/Makefile b/drivers/clocksource/Makefile
index d227d1314f14..2b5b56a6f00f 100644
--- a/drivers/clocksource/Makefile
+++ b/drivers/clocksource/Makefile
@@ -17,7 +17,7 @@ obj-$(CONFIG_CLKSRC_MMIO) += mmio.o
17obj-$(CONFIG_DIGICOLOR_TIMER) += timer-digicolor.o 17obj-$(CONFIG_DIGICOLOR_TIMER) += timer-digicolor.o
18obj-$(CONFIG_DW_APB_TIMER) += dw_apb_timer.o 18obj-$(CONFIG_DW_APB_TIMER) += dw_apb_timer.o
19obj-$(CONFIG_DW_APB_TIMER_OF) += dw_apb_timer_of.o 19obj-$(CONFIG_DW_APB_TIMER_OF) += dw_apb_timer_of.o
20obj-$(CONFIG_GEMINI_TIMER) += timer-gemini.o 20obj-$(CONFIG_FTTMR010_TIMER) += timer-fttmr010.o
21obj-$(CONFIG_ROCKCHIP_TIMER) += rockchip_timer.o 21obj-$(CONFIG_ROCKCHIP_TIMER) += rockchip_timer.o
22obj-$(CONFIG_CLKSRC_NOMADIK_MTU) += nomadik-mtu.o 22obj-$(CONFIG_CLKSRC_NOMADIK_MTU) += nomadik-mtu.o
23obj-$(CONFIG_CLKSRC_DBX500_PRCMU) += clksrc-dbx500-prcmu.o 23obj-$(CONFIG_CLKSRC_DBX500_PRCMU) += clksrc-dbx500-prcmu.o
diff --git a/drivers/clocksource/timer-gemini.c b/drivers/clocksource/timer-fttmr010.c
index dda27b7bf1a1..e37ec3d69a7e 100644
--- a/drivers/clocksource/timer-gemini.c
+++ b/drivers/clocksource/timer-fttmr010.c
@@ -1,5 +1,5 @@
1/* 1/*
2 * Gemini timer driver 2 * Faraday Technology FTTMR010 timer driver
3 * Copyright (C) 2017 Linus Walleij <linus.walleij@linaro.org> 3 * Copyright (C) 2017 Linus Walleij <linus.walleij@linaro.org>
4 * 4 *
5 * Based on a rewrite of arch/arm/mach-gemini/timer.c: 5 * Based on a rewrite of arch/arm/mach-gemini/timer.c:
@@ -77,12 +77,12 @@
77static unsigned int tick_rate; 77static unsigned int tick_rate;
78static void __iomem *base; 78static void __iomem *base;
79 79
80static u64 notrace gemini_read_sched_clock(void) 80static u64 notrace fttmr010_read_sched_clock(void)
81{ 81{
82 return readl(base + TIMER3_COUNT); 82 return readl(base + TIMER3_COUNT);
83} 83}
84 84
85static int gemini_timer_set_next_event(unsigned long cycles, 85static int fttmr010_timer_set_next_event(unsigned long cycles,
86 struct clock_event_device *evt) 86 struct clock_event_device *evt)
87{ 87{
88 u32 cr; 88 u32 cr;
@@ -96,7 +96,7 @@ static int gemini_timer_set_next_event(unsigned long cycles,
96 return 0; 96 return 0;
97} 97}
98 98
99static int gemini_timer_shutdown(struct clock_event_device *evt) 99static int fttmr010_timer_shutdown(struct clock_event_device *evt)
100{ 100{
101 u32 cr; 101 u32 cr;
102 102
@@ -127,7 +127,7 @@ static int gemini_timer_shutdown(struct clock_event_device *evt)
127 return 0; 127 return 0;
128} 128}
129 129
130static int gemini_timer_set_periodic(struct clock_event_device *evt) 130static int fttmr010_timer_set_periodic(struct clock_event_device *evt)
131{ 131{
132 u32 period = DIV_ROUND_CLOSEST(tick_rate, HZ); 132 u32 period = DIV_ROUND_CLOSEST(tick_rate, HZ);
133 u32 cr; 133 u32 cr;
@@ -158,35 +158,35 @@ static int gemini_timer_set_periodic(struct clock_event_device *evt)
158} 158}
159 159
160/* Use TIMER1 as clock event */ 160/* Use TIMER1 as clock event */
161static struct clock_event_device gemini_clockevent = { 161static struct clock_event_device fttmr010_clockevent = {
162 .name = "TIMER1", 162 .name = "TIMER1",
163 /* Reasonably fast and accurate clock event */ 163 /* Reasonably fast and accurate clock event */
164 .rating = 300, 164 .rating = 300,
165 .shift = 32, 165 .shift = 32,
166 .features = CLOCK_EVT_FEAT_PERIODIC | 166 .features = CLOCK_EVT_FEAT_PERIODIC |
167 CLOCK_EVT_FEAT_ONESHOT, 167 CLOCK_EVT_FEAT_ONESHOT,
168 .set_next_event = gemini_timer_set_next_event, 168 .set_next_event = fttmr010_timer_set_next_event,
169 .set_state_shutdown = gemini_timer_shutdown, 169 .set_state_shutdown = fttmr010_timer_shutdown,
170 .set_state_periodic = gemini_timer_set_periodic, 170 .set_state_periodic = fttmr010_timer_set_periodic,
171 .set_state_oneshot = gemini_timer_shutdown, 171 .set_state_oneshot = fttmr010_timer_shutdown,
172 .tick_resume = gemini_timer_shutdown, 172 .tick_resume = fttmr010_timer_shutdown,
173}; 173};
174 174
175/* 175/*
176 * IRQ handler for the timer 176 * IRQ handler for the timer
177 */ 177 */
178static irqreturn_t gemini_timer_interrupt(int irq, void *dev_id) 178static irqreturn_t fttmr010_timer_interrupt(int irq, void *dev_id)
179{ 179{
180 struct clock_event_device *evt = &gemini_clockevent; 180 struct clock_event_device *evt = &fttmr010_clockevent;
181 181
182 evt->event_handler(evt); 182 evt->event_handler(evt);
183 return IRQ_HANDLED; 183 return IRQ_HANDLED;
184} 184}
185 185
186static struct irqaction gemini_timer_irq = { 186static struct irqaction fttmr010_timer_irq = {
187 .name = "Gemini Timer Tick", 187 .name = "Faraday FTTMR010 Timer Tick",
188 .flags = IRQF_TIMER, 188 .flags = IRQF_TIMER,
189 .handler = gemini_timer_interrupt, 189 .handler = fttmr010_timer_interrupt,
190}; 190};
191 191
192static int __init gemini_timer_of_init(struct device_node *np) 192static int __init gemini_timer_of_init(struct device_node *np)
@@ -255,9 +255,9 @@ static int __init gemini_timer_of_init(struct device_node *np)
255 writel(0, base + TIMER3_MATCH1); 255 writel(0, base + TIMER3_MATCH1);
256 writel(0, base + TIMER3_MATCH2); 256 writel(0, base + TIMER3_MATCH2);
257 clocksource_mmio_init(base + TIMER3_COUNT, 257 clocksource_mmio_init(base + TIMER3_COUNT,
258 "gemini_clocksource", tick_rate, 258 "fttmr010_clocksource", tick_rate,
259 300, 32, clocksource_mmio_readl_up); 259 300, 32, clocksource_mmio_readl_up);
260 sched_clock_register(gemini_read_sched_clock, 32, tick_rate); 260 sched_clock_register(fttmr010_read_sched_clock, 32, tick_rate);
261 261
262 /* 262 /*
263 * Setup clockevent timer (interrupt-driven.) 263 * Setup clockevent timer (interrupt-driven.)
@@ -266,12 +266,11 @@ static int __init gemini_timer_of_init(struct device_node *np)
266 writel(0, base + TIMER1_LOAD); 266 writel(0, base + TIMER1_LOAD);
267 writel(0, base + TIMER1_MATCH1); 267 writel(0, base + TIMER1_MATCH1);
268 writel(0, base + TIMER1_MATCH2); 268 writel(0, base + TIMER1_MATCH2);
269 setup_irq(irq, &gemini_timer_irq); 269 setup_irq(irq, &fttmr010_timer_irq);
270 gemini_clockevent.cpumask = cpumask_of(0); 270 fttmr010_clockevent.cpumask = cpumask_of(0);
271 clockevents_config_and_register(&gemini_clockevent, tick_rate, 271 clockevents_config_and_register(&fttmr010_clockevent, tick_rate,
272 1, 0xffffffff); 272 1, 0xffffffff);
273 273
274 return 0; 274 return 0;
275} 275}
276CLOCKSOURCE_OF_DECLARE(nomadik_mtu, "cortina,gemini-timer", 276CLOCKSOURCE_OF_DECLARE(gemini, "cortina,gemini-timer", gemini_timer_of_init);
277 gemini_timer_of_init);