| 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/core/sysbus.h" |
| 18 | #include "qemu/timer.h" |
| 19 | #include "qom/object.h" |
| 20 | |
| 21 | #define TYPE_PL031 "pl031" |
| 22 | OBJECT_DECLARE_SIMPLE_TYPE(PL031State, PL031) |
| 23 | |
| 24 | struct PL031State { |
| 25 | SysBusDevice parent_obj; |
| 26 | |
| 27 | MemoryRegion iomem; |
| 28 | QEMUTimer *timer; |
| 29 | qemu_irq irq; |
| 30 | |
| 31 | /* |
| 32 | * Needed to preserve the tick_count across migration, even if the |
| 33 | * absolute value of the rtc_clock is different on the source and |
| 34 | * destination. |
| 35 | */ |
| 36 | uint32_t tick_offset_vmstate; |
| 37 | uint32_t tick_offset; |
| 38 | bool tick_offset_migrated; |
| 39 | |
| 40 | uint32_t mr; |
| 41 | uint32_t lr; |
| 42 | uint32_t cr; |
| 43 | uint32_t im; |
| 44 | uint32_t is; |
| 45 | }; |
| 46 | |
| 47 | #endif |