fttmr010          109 drivers/clocksource/timer-fttmr010.c static struct fttmr010 *local_fttmr;
fttmr010          111 drivers/clocksource/timer-fttmr010.c static inline struct fttmr010 *to_fttmr010(struct clock_event_device *evt)
fttmr010          113 drivers/clocksource/timer-fttmr010.c 	return container_of(evt, struct fttmr010, clkevt);
fttmr010          139 drivers/clocksource/timer-fttmr010.c 	struct fttmr010 *fttmr010 = to_fttmr010(evt);
fttmr010          143 drivers/clocksource/timer-fttmr010.c 	cr = readl(fttmr010->base + TIMER_CR);
fttmr010          144 drivers/clocksource/timer-fttmr010.c 	cr &= ~fttmr010->t1_enable_val;
fttmr010          145 drivers/clocksource/timer-fttmr010.c 	writel(cr, fttmr010->base + TIMER_CR);
fttmr010          147 drivers/clocksource/timer-fttmr010.c 	if (fttmr010->is_aspeed) {
fttmr010          152 drivers/clocksource/timer-fttmr010.c 		writel(cycles, fttmr010->base + TIMER1_LOAD);
fttmr010          155 drivers/clocksource/timer-fttmr010.c 		cr = readl(fttmr010->base + TIMER1_COUNT);
fttmr010          156 drivers/clocksource/timer-fttmr010.c 		writel(cr + cycles, fttmr010->base + TIMER1_MATCH1);
fttmr010          160 drivers/clocksource/timer-fttmr010.c 	cr = readl(fttmr010->base + TIMER_CR);
fttmr010          161 drivers/clocksource/timer-fttmr010.c 	cr |= fttmr010->t1_enable_val;
fttmr010          162 drivers/clocksource/timer-fttmr010.c 	writel(cr, fttmr010->base + TIMER_CR);
fttmr010          169 drivers/clocksource/timer-fttmr010.c 	struct fttmr010 *fttmr010 = to_fttmr010(evt);
fttmr010          173 drivers/clocksource/timer-fttmr010.c 	cr = readl(fttmr010->base + TIMER_CR);
fttmr010          174 drivers/clocksource/timer-fttmr010.c 	cr &= ~fttmr010->t1_enable_val;
fttmr010          175 drivers/clocksource/timer-fttmr010.c 	writel(cr, fttmr010->base + TIMER_CR);
fttmr010          182 drivers/clocksource/timer-fttmr010.c 	struct fttmr010 *fttmr010 = to_fttmr010(evt);
fttmr010          186 drivers/clocksource/timer-fttmr010.c 	cr = readl(fttmr010->base + TIMER_CR);
fttmr010          187 drivers/clocksource/timer-fttmr010.c 	cr &= ~fttmr010->t1_enable_val;
fttmr010          188 drivers/clocksource/timer-fttmr010.c 	writel(cr, fttmr010->base + TIMER_CR);
fttmr010          191 drivers/clocksource/timer-fttmr010.c 	writel(0, fttmr010->base + TIMER1_COUNT);
fttmr010          192 drivers/clocksource/timer-fttmr010.c 	if (fttmr010->is_aspeed) {
fttmr010          193 drivers/clocksource/timer-fttmr010.c 		writel(~0, fttmr010->base + TIMER1_LOAD);
fttmr010          195 drivers/clocksource/timer-fttmr010.c 		writel(0, fttmr010->base + TIMER1_LOAD);
fttmr010          198 drivers/clocksource/timer-fttmr010.c 		cr = readl(fttmr010->base + TIMER_INTR_MASK);
fttmr010          201 drivers/clocksource/timer-fttmr010.c 		writel(cr, fttmr010->base + TIMER_INTR_MASK);
fttmr010          209 drivers/clocksource/timer-fttmr010.c 	struct fttmr010 *fttmr010 = to_fttmr010(evt);
fttmr010          210 drivers/clocksource/timer-fttmr010.c 	u32 period = DIV_ROUND_CLOSEST(fttmr010->tick_rate, HZ);
fttmr010          214 drivers/clocksource/timer-fttmr010.c 	cr = readl(fttmr010->base + TIMER_CR);
fttmr010          215 drivers/clocksource/timer-fttmr010.c 	cr &= ~fttmr010->t1_enable_val;
fttmr010          216 drivers/clocksource/timer-fttmr010.c 	writel(cr, fttmr010->base + TIMER_CR);
fttmr010          219 drivers/clocksource/timer-fttmr010.c 	if (fttmr010->is_aspeed) {
fttmr010          220 drivers/clocksource/timer-fttmr010.c 		writel(period, fttmr010->base + TIMER1_LOAD);
fttmr010          223 drivers/clocksource/timer-fttmr010.c 		writel(cr, fttmr010->base + TIMER1_COUNT);
fttmr010          224 drivers/clocksource/timer-fttmr010.c 		writel(cr, fttmr010->base + TIMER1_LOAD);
fttmr010          227 drivers/clocksource/timer-fttmr010.c 		cr = readl(fttmr010->base + TIMER_INTR_MASK);
fttmr010          230 drivers/clocksource/timer-fttmr010.c 		writel(cr, fttmr010->base + TIMER_INTR_MASK);
fttmr010          234 drivers/clocksource/timer-fttmr010.c 	cr = readl(fttmr010->base + TIMER_CR);
fttmr010          235 drivers/clocksource/timer-fttmr010.c 	cr |= fttmr010->t1_enable_val;
fttmr010          236 drivers/clocksource/timer-fttmr010.c 	writel(cr, fttmr010->base + TIMER_CR);
fttmr010          254 drivers/clocksource/timer-fttmr010.c 	struct fttmr010 *fttmr010;
fttmr010          276 drivers/clocksource/timer-fttmr010.c 	fttmr010 = kzalloc(sizeof(*fttmr010), GFP_KERNEL);
fttmr010          277 drivers/clocksource/timer-fttmr010.c 	if (!fttmr010) {
fttmr010          281 drivers/clocksource/timer-fttmr010.c 	fttmr010->tick_rate = clk_get_rate(clk);
fttmr010          283 drivers/clocksource/timer-fttmr010.c 	fttmr010->base = of_iomap(np, 0);
fttmr010          284 drivers/clocksource/timer-fttmr010.c 	if (!fttmr010->base) {
fttmr010          301 drivers/clocksource/timer-fttmr010.c 		fttmr010->t1_enable_val = TIMER_1_CR_ASPEED_ENABLE |
fttmr010          303 drivers/clocksource/timer-fttmr010.c 		fttmr010->is_aspeed = true;
fttmr010          305 drivers/clocksource/timer-fttmr010.c 		fttmr010->t1_enable_val = TIMER_1_CR_ENABLE | TIMER_1_CR_INT;
fttmr010          310 drivers/clocksource/timer-fttmr010.c 		writel(TIMER_INT_ALL_MASK, fttmr010->base + TIMER_INTR_MASK);
fttmr010          311 drivers/clocksource/timer-fttmr010.c 		writel(0, fttmr010->base + TIMER_INTR_STATE);
fttmr010          324 drivers/clocksource/timer-fttmr010.c 	writel(val, fttmr010->base + TIMER_CR);
fttmr010          330 drivers/clocksource/timer-fttmr010.c 	local_fttmr = fttmr010;
fttmr010          331 drivers/clocksource/timer-fttmr010.c 	writel(0, fttmr010->base + TIMER2_COUNT);
fttmr010          332 drivers/clocksource/timer-fttmr010.c 	writel(0, fttmr010->base + TIMER2_MATCH1);
fttmr010          333 drivers/clocksource/timer-fttmr010.c 	writel(0, fttmr010->base + TIMER2_MATCH2);
fttmr010          335 drivers/clocksource/timer-fttmr010.c 	if (fttmr010->is_aspeed) {
fttmr010          336 drivers/clocksource/timer-fttmr010.c 		writel(~0, fttmr010->base + TIMER2_LOAD);
fttmr010          337 drivers/clocksource/timer-fttmr010.c 		clocksource_mmio_init(fttmr010->base + TIMER2_COUNT,
fttmr010          339 drivers/clocksource/timer-fttmr010.c 				      fttmr010->tick_rate,
fttmr010          342 drivers/clocksource/timer-fttmr010.c 				     fttmr010->tick_rate);
fttmr010          344 drivers/clocksource/timer-fttmr010.c 		writel(0, fttmr010->base + TIMER2_LOAD);
fttmr010          345 drivers/clocksource/timer-fttmr010.c 		clocksource_mmio_init(fttmr010->base + TIMER2_COUNT,
fttmr010          347 drivers/clocksource/timer-fttmr010.c 				      fttmr010->tick_rate,
fttmr010          350 drivers/clocksource/timer-fttmr010.c 				     fttmr010->tick_rate);
fttmr010          356 drivers/clocksource/timer-fttmr010.c 	writel(0, fttmr010->base + TIMER1_COUNT);
fttmr010          357 drivers/clocksource/timer-fttmr010.c 	writel(0, fttmr010->base + TIMER1_LOAD);
fttmr010          358 drivers/clocksource/timer-fttmr010.c 	writel(0, fttmr010->base + TIMER1_MATCH1);
fttmr010          359 drivers/clocksource/timer-fttmr010.c 	writel(0, fttmr010->base + TIMER1_MATCH2);
fttmr010          361 drivers/clocksource/timer-fttmr010.c 			  "FTTMR010-TIMER1", &fttmr010->clkevt);
fttmr010          367 drivers/clocksource/timer-fttmr010.c 	fttmr010->clkevt.name = "FTTMR010-TIMER1";
fttmr010          369 drivers/clocksource/timer-fttmr010.c 	fttmr010->clkevt.rating = 300;
fttmr010          370 drivers/clocksource/timer-fttmr010.c 	fttmr010->clkevt.features = CLOCK_EVT_FEAT_PERIODIC |
fttmr010          372 drivers/clocksource/timer-fttmr010.c 	fttmr010->clkevt.set_next_event = fttmr010_timer_set_next_event;
fttmr010          373 drivers/clocksource/timer-fttmr010.c 	fttmr010->clkevt.set_state_shutdown = fttmr010_timer_shutdown;
fttmr010          374 drivers/clocksource/timer-fttmr010.c 	fttmr010->clkevt.set_state_periodic = fttmr010_timer_set_periodic;
fttmr010          375 drivers/clocksource/timer-fttmr010.c 	fttmr010->clkevt.set_state_oneshot = fttmr010_timer_set_oneshot;
fttmr010          376 drivers/clocksource/timer-fttmr010.c 	fttmr010->clkevt.tick_resume = fttmr010_timer_shutdown;
fttmr010          377 drivers/clocksource/timer-fttmr010.c 	fttmr010->clkevt.cpumask = cpumask_of(0);
fttmr010          378 drivers/clocksource/timer-fttmr010.c 	fttmr010->clkevt.irq = irq;
fttmr010          379 drivers/clocksource/timer-fttmr010.c 	clockevents_config_and_register(&fttmr010->clkevt,
fttmr010          380 drivers/clocksource/timer-fttmr010.c 					fttmr010->tick_rate,
fttmr010          385 drivers/clocksource/timer-fttmr010.c 	if (fttmr010->is_aspeed)
fttmr010          386 drivers/clocksource/timer-fttmr010.c 		fttmr010->delay_timer.read_current_timer =
fttmr010          389 drivers/clocksource/timer-fttmr010.c 		fttmr010->delay_timer.read_current_timer =
fttmr010          391 drivers/clocksource/timer-fttmr010.c 	fttmr010->delay_timer.freq = fttmr010->tick_rate;
fttmr010          392 drivers/clocksource/timer-fttmr010.c 	register_current_timer_delay(&fttmr010->delay_timer);
fttmr010          398 drivers/clocksource/timer-fttmr010.c 	iounmap(fttmr010->base);
fttmr010          400 drivers/clocksource/timer-fttmr010.c 	kfree(fttmr010);
fttmr010          417 drivers/clocksource/timer-fttmr010.c TIMER_OF_DECLARE(fttmr010, "faraday,fttmr010", fttmr010_timer_init);