Lines Matching refs:tmr
86 struct ixp4xx_timer *tmr = dev_id; in ixp4xx_timer_interrupt() local
87 struct clock_event_device *evt = &tmr->clkevt; in ixp4xx_timer_interrupt()
91 tmr->base + IXP4XX_OSST_OFFSET); in ixp4xx_timer_interrupt()
101 struct ixp4xx_timer *tmr = to_ixp4xx_timer(evt); in ixp4xx_set_next_event() local
104 val = __raw_readl(tmr->base + IXP4XX_OSRT1_OFFSET); in ixp4xx_set_next_event()
108 tmr->base + IXP4XX_OSRT1_OFFSET); in ixp4xx_set_next_event()
115 struct ixp4xx_timer *tmr = to_ixp4xx_timer(evt); in ixp4xx_shutdown() local
118 val = __raw_readl(tmr->base + IXP4XX_OSRT1_OFFSET); in ixp4xx_shutdown()
120 __raw_writel(val, tmr->base + IXP4XX_OSRT1_OFFSET); in ixp4xx_shutdown()
127 struct ixp4xx_timer *tmr = to_ixp4xx_timer(evt); in ixp4xx_set_oneshot() local
130 tmr->base + IXP4XX_OSRT1_OFFSET); in ixp4xx_set_oneshot()
137 struct ixp4xx_timer *tmr = to_ixp4xx_timer(evt); in ixp4xx_set_periodic() local
140 val = tmr->latch & ~IXP4XX_OST_RELOAD_MASK; in ixp4xx_set_periodic()
142 __raw_writel(val, tmr->base + IXP4XX_OSRT1_OFFSET); in ixp4xx_set_periodic()
149 struct ixp4xx_timer *tmr = to_ixp4xx_timer(evt); in ixp4xx_resume() local
152 val = __raw_readl(tmr->base + IXP4XX_OSRT1_OFFSET); in ixp4xx_resume()
154 __raw_writel(val, tmr->base + IXP4XX_OSRT1_OFFSET); in ixp4xx_resume()
168 struct ixp4xx_timer *tmr; in ixp4xx_timer_register() local
171 tmr = kzalloc(sizeof(*tmr), GFP_KERNEL); in ixp4xx_timer_register()
172 if (!tmr) in ixp4xx_timer_register()
174 tmr->base = base; in ixp4xx_timer_register()
182 tmr->latch = DIV_ROUND_CLOSEST(timer_freq, in ixp4xx_timer_register()
186 local_ixp4xx_timer = tmr; in ixp4xx_timer_register()
189 __raw_writel(0, tmr->base + IXP4XX_OSRT1_OFFSET); in ixp4xx_timer_register()
193 tmr->base + IXP4XX_OSST_OFFSET); in ixp4xx_timer_register()
196 __raw_writel(0, tmr->base + IXP4XX_OSTS_OFFSET); in ixp4xx_timer_register()
201 tmr->clkevt.name = "ixp4xx timer1"; in ixp4xx_timer_register()
202 tmr->clkevt.features = CLOCK_EVT_FEAT_PERIODIC | CLOCK_EVT_FEAT_ONESHOT; in ixp4xx_timer_register()
203 tmr->clkevt.rating = 200; in ixp4xx_timer_register()
204 tmr->clkevt.set_state_shutdown = ixp4xx_shutdown; in ixp4xx_timer_register()
205 tmr->clkevt.set_state_periodic = ixp4xx_set_periodic; in ixp4xx_timer_register()
206 tmr->clkevt.set_state_oneshot = ixp4xx_set_oneshot; in ixp4xx_timer_register()
207 tmr->clkevt.tick_resume = ixp4xx_resume; in ixp4xx_timer_register()
208 tmr->clkevt.set_next_event = ixp4xx_set_next_event; in ixp4xx_timer_register()
209 tmr->clkevt.cpumask = cpumask_of(0); in ixp4xx_timer_register()
210 tmr->clkevt.irq = timer_irq; in ixp4xx_timer_register()
212 IRQF_TIMER, "IXP4XX-TIMER1", tmr); in ixp4xx_timer_register()
217 clockevents_config_and_register(&tmr->clkevt, timer_freq, in ixp4xx_timer_register()
224 tmr->delay_timer.read_current_timer = ixp4xx_read_timer; in ixp4xx_timer_register()
225 tmr->delay_timer.freq = timer_freq; in ixp4xx_timer_register()
226 register_current_timer_delay(&tmr->delay_timer); in ixp4xx_timer_register()