Lines Matching +full:zynqmp +full:- +full:rtc

2  * QEMU model of the Xilinx ZynqMP Real Time Clock (RTC).
6 * Written-by: Alistair Francis <alistair.francis@xilinx.com>
36 #include "system/rtc.h"
38 #include "hw/rtc/xlnx-zynqmp-rtc.h"
47 bool pending = s->regs[R_RTC_INT_STATUS] & ~s->regs[R_RTC_INT_MASK]; in rtc_int_update_irq()
48 qemu_set_irq(s->irq_rtc_int, pending); in rtc_int_update_irq()
53 bool pending = s->regs[R_ADDR_ERROR] & ~s->regs[R_ADDR_ERROR_INT_MASK]; in addr_error_int_update_irq()
54 qemu_set_irq(s->irq_addr_error_int, pending); in addr_error_int_update_irq()
60 return s->tick_offset + now / NANOSECONDS_PER_SECOND; in rtc_get_count()
65 XlnxZynqMPRTC *s = XLNX_ZYNQMP_RTC(reg->opaque); in current_time_postr()
72 XlnxZynqMPRTC *s = XLNX_ZYNQMP_RTC(reg->opaque); in rtc_int_status_postw()
78 XlnxZynqMPRTC *s = XLNX_ZYNQMP_RTC(reg->opaque); in rtc_int_en_prew()
80 s->regs[R_RTC_INT_MASK] &= (uint32_t) ~val64; in rtc_int_en_prew()
87 XlnxZynqMPRTC *s = XLNX_ZYNQMP_RTC(reg->opaque); in rtc_int_dis_prew()
89 s->regs[R_RTC_INT_MASK] |= (uint32_t) val64; in rtc_int_dis_prew()
96 XlnxZynqMPRTC *s = XLNX_ZYNQMP_RTC(reg->opaque); in addr_error_postw()
102 XlnxZynqMPRTC *s = XLNX_ZYNQMP_RTC(reg->opaque); in addr_error_int_en_prew()
104 s->regs[R_ADDR_ERROR_INT_MASK] &= (uint32_t) ~val64; in addr_error_int_en_prew()
111 XlnxZynqMPRTC *s = XLNX_ZYNQMP_RTC(reg->opaque); in addr_error_int_dis_prew()
113 s->regs[R_ADDR_ERROR_INT_MASK] |= (uint32_t) val64; in addr_error_int_dis_prew()
166 for (i = 0; i < ARRAY_SIZE(s->regs_info); ++i) { in rtc_reset()
167 register_reset(&s->regs_info[i]); in rtc_reset()
191 memory_region_init(&s->iomem, obj, TYPE_XLNX_ZYNQMP_RTC, in rtc_init()
196 s->regs_info, s->regs, in rtc_init()
200 memory_region_add_subregion(&s->iomem, in rtc_init()
202 &reg_array->mem); in rtc_init()
203 sysbus_init_mmio(sbd, &s->iomem); in rtc_init()
204 sysbus_init_irq(sbd, &s->irq_rtc_int); in rtc_init()
205 sysbus_init_irq(sbd, &s->irq_addr_error_int); in rtc_init()
208 s->tick_offset = mktimegm(&current_tm) - in rtc_init()
222 s->tick_offset = s->tick_offset + now; in rtc_pre_save()
236 s->tick_offset = s->tick_offset - now; in rtc_post_load()
259 dc->vmsd = &vmstate_rtc; in rtc_class_init()