Lines Matching refs:regs
48 uint32_t fman_rtc_get_events(struct rtc_regs *regs) in fman_rtc_get_events() argument
50 return ioread32be(®s->tmr_tevent); in fman_rtc_get_events()
53 uint32_t fman_rtc_get_event(struct rtc_regs *regs, uint32_t ev_mask) in fman_rtc_get_event() argument
55 return ioread32be(®s->tmr_tevent) & ev_mask; in fman_rtc_get_event()
58 uint32_t fman_rtc_get_interrupt_mask(struct rtc_regs *regs) in fman_rtc_get_interrupt_mask() argument
60 return ioread32be(®s->tmr_temask); in fman_rtc_get_interrupt_mask()
63 void fman_rtc_set_interrupt_mask(struct rtc_regs *regs, uint32_t mask) in fman_rtc_set_interrupt_mask() argument
65 iowrite32be(mask, ®s->tmr_temask); in fman_rtc_set_interrupt_mask()
68 void fman_rtc_ack_event(struct rtc_regs *regs, uint32_t events) in fman_rtc_ack_event() argument
70 iowrite32be(events, ®s->tmr_tevent); in fman_rtc_ack_event()
73 uint32_t fman_rtc_check_and_clear_event(struct rtc_regs *regs) in fman_rtc_check_and_clear_event() argument
77 event = ioread32be(®s->tmr_tevent); in fman_rtc_check_and_clear_event()
78 event &= ioread32be(®s->tmr_temask); in fman_rtc_check_and_clear_event()
81 iowrite32be(event, ®s->tmr_tevent); in fman_rtc_check_and_clear_event()
85 uint32_t fman_rtc_get_frequency_compensation(struct rtc_regs *regs) in fman_rtc_get_frequency_compensation() argument
87 return ioread32be(®s->tmr_add); in fman_rtc_get_frequency_compensation()
90 void fman_rtc_set_frequency_compensation(struct rtc_regs *regs, uint32_t val) in fman_rtc_set_frequency_compensation() argument
92 iowrite32be(val, ®s->tmr_add); in fman_rtc_set_frequency_compensation()
95 void fman_rtc_enable_interupt(struct rtc_regs *regs, uint32_t events) in fman_rtc_enable_interupt() argument
97 fman_rtc_set_interrupt_mask(regs, fman_rtc_get_interrupt_mask(regs) | events); in fman_rtc_enable_interupt()
100 void fman_rtc_disable_interupt(struct rtc_regs *regs, uint32_t events) in fman_rtc_disable_interupt() argument
102 fman_rtc_set_interrupt_mask(regs, fman_rtc_get_interrupt_mask(regs) & ~events); in fman_rtc_disable_interupt()
105 void fman_rtc_set_timer_alarm_l(struct rtc_regs *regs, int index, uint32_t val) in fman_rtc_set_timer_alarm_l() argument
107 iowrite32be(val, ®s->tmr_alarm[index].tmr_alarm_l); in fman_rtc_set_timer_alarm_l()
110 void fman_rtc_set_timer_fiper(struct rtc_regs *regs, int index, uint32_t val) in fman_rtc_set_timer_fiper() argument
112 iowrite32be(val, ®s->tmr_fiper[index]); in fman_rtc_set_timer_fiper()
115 void fman_rtc_set_timer_alarm(struct rtc_regs *regs, int index, int64_t val) in fman_rtc_set_timer_alarm() argument
117 iowrite32be((uint32_t)val, ®s->tmr_alarm[index].tmr_alarm_l); in fman_rtc_set_timer_alarm()
118 iowrite32be((uint32_t)(val >> 32), ®s->tmr_alarm[index].tmr_alarm_h); in fman_rtc_set_timer_alarm()
121 void fman_rtc_set_timer_offset(struct rtc_regs *regs, int64_t val) in fman_rtc_set_timer_offset() argument
123 iowrite32be((uint32_t)val, ®s->tmr_off_l); in fman_rtc_set_timer_offset()
124 iowrite32be((uint32_t)(val >> 32), ®s->tmr_off_h); in fman_rtc_set_timer_offset()
127 uint64_t fman_rtc_get_trigger_stamp(struct rtc_regs *regs, int id) in fman_rtc_get_trigger_stamp() argument
131 time = (uint64_t)ioread32be(®s->tmr_etts[id].tmr_etts_l); in fman_rtc_get_trigger_stamp()
132 time |= ((uint64_t)ioread32be(®s->tmr_etts[id].tmr_etts_h) in fman_rtc_get_trigger_stamp()
138 uint32_t fman_rtc_get_timer_ctrl(struct rtc_regs *regs) in fman_rtc_get_timer_ctrl() argument
140 return ioread32be(®s->tmr_ctrl); in fman_rtc_get_timer_ctrl()
143 void fman_rtc_set_timer_ctrl(struct rtc_regs *regs, uint32_t val) in fman_rtc_set_timer_ctrl() argument
145 iowrite32be(val, ®s->tmr_ctrl); in fman_rtc_set_timer_ctrl()
148 void fman_rtc_timers_soft_reset(struct rtc_regs *regs) in fman_rtc_timers_soft_reset() argument
150 fman_rtc_set_timer_ctrl(regs, FMAN_RTC_TMR_CTRL_TMSR); in fman_rtc_timers_soft_reset()
152 fman_rtc_set_timer_ctrl(regs, 0); in fman_rtc_timers_soft_reset()
155 void fman_rtc_init(struct rtc_cfg *cfg, struct rtc_regs *regs, int num_alarms, in fman_rtc_init() argument
162 fman_rtc_timers_soft_reset(regs); in fman_rtc_init()
202 fman_rtc_set_timer_ctrl(regs, tmr_ctrl); in fman_rtc_init()
204 fman_rtc_set_frequency_compensation(regs, freq_compensation); in fman_rtc_init()
208 fman_rtc_set_timer_alarm(regs, i, 0xFFFFFFFFFFFFFFFFLL); in fman_rtc_init()
211 fman_rtc_ack_event(regs, FMAN_RTC_TMR_TEVENT_ALL); in fman_rtc_init()
214 fman_rtc_set_interrupt_mask(regs, 0); in fman_rtc_init()
218 fman_rtc_set_timer_fiper(regs, i, 0xFFFFFFFF); in fman_rtc_init()
221 iowrite32be(output_clock_divisor, ®s->tmr_prsc); in fman_rtc_init()
224 fman_rtc_set_timer_offset(regs, 0); in fman_rtc_init()
227 bool fman_rtc_is_enabled(struct rtc_regs *regs) in fman_rtc_is_enabled() argument
229 return (bool)(fman_rtc_get_timer_ctrl(regs) & FMAN_RTC_TMR_CTRL_TE); in fman_rtc_is_enabled()
232 void fman_rtc_enable(struct rtc_regs *regs, bool reset_clock) in fman_rtc_enable() argument
234 uint32_t tmr_ctrl = fman_rtc_get_timer_ctrl(regs); in fman_rtc_enable()
238 fman_rtc_set_timer_ctrl(regs, (tmr_ctrl | FMAN_RTC_TMR_CTRL_TMSR)); in fman_rtc_enable()
242 fman_rtc_set_timer_offset(regs, 0); in fman_rtc_enable()
245 fman_rtc_set_timer_ctrl(regs, (tmr_ctrl | FMAN_RTC_TMR_CTRL_TE)); in fman_rtc_enable()
248 void fman_rtc_disable(struct rtc_regs *regs) in fman_rtc_disable() argument
250 fman_rtc_set_timer_ctrl(regs, (fman_rtc_get_timer_ctrl(regs) in fman_rtc_disable()
254 void fman_rtc_clear_periodic_pulse(struct rtc_regs *regs, int id) in fman_rtc_clear_periodic_pulse() argument
261 fman_rtc_disable_interupt(regs, tmp_reg); in fman_rtc_clear_periodic_pulse()
263 tmp_reg = fman_rtc_get_timer_ctrl(regs); in fman_rtc_clear_periodic_pulse()
265 fman_rtc_set_timer_ctrl(regs, tmp_reg & ~FMAN_RTC_TMR_CTRL_FS); in fman_rtc_clear_periodic_pulse()
267 fman_rtc_set_timer_fiper(regs, id, 0xFFFFFFFF); in fman_rtc_clear_periodic_pulse()
270 void fman_rtc_clear_external_trigger(struct rtc_regs *regs, int id) in fman_rtc_clear_external_trigger() argument
278 fman_rtc_disable_interupt(regs, tmpReg); in fman_rtc_clear_external_trigger()
284 tmp_ctrl = fman_rtc_get_timer_ctrl(regs); in fman_rtc_clear_external_trigger()
286 fman_rtc_set_timer_ctrl(regs, tmp_ctrl & ~tmpReg); in fman_rtc_clear_external_trigger()
289 void fman_rtc_set_alarm(struct rtc_regs *regs, int id, uint32_t val, bool enable) in fman_rtc_set_alarm() argument
292 fman_rtc_set_timer_alarm(regs, id, val); in fman_rtc_set_alarm()
298 fman_rtc_enable_interupt(regs, tmpReg); in fman_rtc_set_alarm()
302 void fman_rtc_set_periodic_pulse(struct rtc_regs *regs, int id, uint32_t val, in fman_rtc_set_periodic_pulse() argument
306 fman_rtc_set_timer_fiper(regs, id, val); in fman_rtc_set_periodic_pulse()
312 fman_rtc_enable_interupt(regs, tmpReg); in fman_rtc_set_periodic_pulse()
316 void fman_rtc_set_ext_trigger(struct rtc_regs *regs, int id, bool enable, in fman_rtc_set_ext_trigger() argument
325 fman_rtc_enable_interupt(regs, tmpReg); in fman_rtc_set_ext_trigger()
332 fman_rtc_set_timer_ctrl(regs, fman_rtc_get_timer_ctrl(regs) | tmpReg); in fman_rtc_set_ext_trigger()