1 /* 2 * ARM AMBA PrimeCell PL031 RTC 3 * 4 * Copyright (c) 2007 CodeSourcery 5 * 6 * This file is free software; you can redistribute it and/or modify 7 * it under the terms of the GNU General Public License version 2 as 8 * published by the Free Software Foundation. 9 * 10 * Contributions after 2012-01-13 are licensed under the terms of the 11 * GNU GPL, version 2 or (at your option) any later version. 12 */ 13 14 #ifndef HW_RTC_PL031_H 15 #define HW_RTC_PL031_H 16 17 #include "hw/sysbus.h" 18 #include "qemu/timer.h" 19 #include "qom/object.h" 20 21 #define TYPE_PL031 "pl031" 22 typedef struct PL031State PL031State; 23 DECLARE_INSTANCE_CHECKER(PL031State, PL031, 24 TYPE_PL031) 25 26 struct PL031State { 27 SysBusDevice parent_obj; 28 29 MemoryRegion iomem; 30 QEMUTimer *timer; 31 qemu_irq irq; 32 33 /* 34 * Needed to preserve the tick_count across migration, even if the 35 * absolute value of the rtc_clock is different on the source and 36 * destination. 37 */ 38 uint32_t tick_offset_vmstate; 39 uint32_t tick_offset; 40 bool tick_offset_migrated; 41 bool migrate_tick_offset; 42 43 uint32_t mr; 44 uint32_t lr; 45 uint32_t cr; 46 uint32_t im; 47 uint32_t is; 48 }; 49 50 #endif 51