···1818#include <linux/clk.h>1919#include <linux/err.h>2020#include <linux/irq.h>2121+#include <linux/delay.h>21222223#include <mach/hardware.h>2324#include <mach/irqs.h>···346345 return readl(U300_TIMER_APP_VBASE + U300_TIMER_APP_GPT2CC);347346}348347348348+static unsigned long u300_read_current_timer(void)349349+{350350+ return readl(U300_TIMER_APP_VBASE + U300_TIMER_APP_GPT2CC);351351+}352352+353353+static struct delay_timer u300_delay_timer;349354350355/*351356 * This sets up the system timers, clock source and clock event.···368361 rate = clk_get_rate(clk);369362370363 setup_sched_clock(u300_read_sched_clock, 32, rate);364364+365365+ u300_delay_timer.read_current_timer = &u300_read_current_timer;366366+ u300_delay_timer.freq = rate;367367+ register_current_timer_delay(&u300_delay_timer);371368372369 /*373370 * Disable the "OS" and "DD" timers - these are designed for Symbian!