49 lines
1.0 KiB
C
49 lines
1.0 KiB
C
![]() |
/*
|
||
|
* Luminary Micro Stellaris General Purpose Timer Module
|
||
|
*
|
||
|
* Copyright (c) 2006 CodeSourcery.
|
||
|
* Written by Paul Brook
|
||
|
*
|
||
|
* This code is licensed under the GPL.
|
||
|
*/
|
||
|
|
||
|
#ifndef HW_TIMER_STELLARIS_GPTM_H
|
||
|
#define HW_TIMER_STELLARIS_GPTM_H
|
||
|
|
||
|
#include "qom/object.h"
|
||
|
#include "hw/sysbus.h"
|
||
|
#include "hw/irq.h"
|
||
|
|
||
|
#define TYPE_STELLARIS_GPTM "stellaris-gptm"
|
||
|
OBJECT_DECLARE_SIMPLE_TYPE(gptm_state, STELLARIS_GPTM)
|
||
|
|
||
|
/*
|
||
|
* QEMU interface:
|
||
|
* + sysbus MMIO region 0: register bank
|
||
|
* + sysbus IRQ 0: timer interrupt
|
||
|
* + unnamed GPIO output 0: trigger output for the ADC
|
||
|
*/
|
||
|
struct gptm_state {
|
||
|
SysBusDevice parent_obj;
|
||
|
|
||
|
MemoryRegion iomem;
|
||
|
uint32_t config;
|
||
|
uint32_t mode[2];
|
||
|
uint32_t control;
|
||
|
uint32_t state;
|
||
|
uint32_t mask;
|
||
|
uint32_t load[2];
|
||
|
uint32_t match[2];
|
||
|
uint32_t prescale[2];
|
||
|
uint32_t match_prescale[2];
|
||
|
uint32_t rtc;
|
||
|
int64_t tick[2];
|
||
|
struct gptm_state *opaque[2];
|
||
|
QEMUTimer *timer[2];
|
||
|
/* The timers have an alternate output used to trigger the ADC. */
|
||
|
qemu_irq trigger;
|
||
|
qemu_irq irq;
|
||
|
};
|
||
|
|
||
|
#endif
|