/** @file
  HPET register definitions from the IA-PC HPET (High Precision Event Timers)
  Specification, Revision 1.0a, October 2004.

  Copyright (c) 2011 - 2018, Intel Corporation. All rights reserved.<BR>
  SPDX-License-Identifier: BSD-2-Clause-Patent

**/

#ifndef __HPET_REGISTER_H__
#define __HPET_REGISTER_H__

///
/// HPET General Register Offsets
///
#define HPET_GENERAL_CAPABILITIES_ID_OFFSET   0x000
#define HPET_GENERAL_CONFIGURATION_OFFSET     0x010
#define HPET_GENERAL_INTERRUPT_STATUS_OFFSET  0x020

///
/// HPET Timer Register Offsets
///
#define HPET_MAIN_COUNTER_OFFSET         0x0F0
#define HPET_TIMER_CONFIGURATION_OFFSET  0x100
#define HPET_TIMER_COMPARATOR_OFFSET     0x108
#define HPET_TIMER_MSI_ROUTE_OFFSET      0x110

///
/// Stride between sets of HPET Timer Registers
///
#define HPET_TIMER_STRIDE  0x20

#pragma pack(1)

///
/// HPET General Capabilities and ID Register
///
typedef union {
  struct {
    UINT32    Revision           : 8;
    UINT32    NumberOfTimers     : 5;
    UINT32    CounterSize        : 1;
    UINT32    Reserved0          : 1;
    UINT32    LegacyRoute        : 1;
    UINT32    VendorId           : 16;
    UINT32    CounterClockPeriod : 32;
  } Bits;
  UINT64    Uint64;
} HPET_GENERAL_CAPABILITIES_ID_REGISTER;

///
/// HPET General Configuration Register
///
typedef union {
  struct {
    UINT32    MainCounterEnable : 1;
    UINT32    LegacyRouteEnable : 1;
    UINT32    Reserved0         : 30;
    UINT32    Reserved1         : 32;
  } Bits;
  UINT64    Uint64;
} HPET_GENERAL_CONFIGURATION_REGISTER;

///
/// HPET Timer Configuration Register
///
typedef union {
  struct {
    UINT32    Reserved0                   : 1;
    UINT32    LevelTriggeredInterrupt     : 1;
    UINT32    InterruptEnable             : 1;
    UINT32    PeriodicInterruptEnable     : 1;
    UINT32    PeriodicInterruptCapability : 1;
    UINT32    CounterSizeCapability       : 1;
    UINT32    ValueSetEnable              : 1;
    UINT32    Reserved1                   : 1;
    UINT32    CounterSizeEnable           : 1;
    UINT32    InterruptRoute              : 5;
    UINT32    MsiInterruptEnable          : 1;
    UINT32    MsiInterruptCapability      : 1;
    UINT32    Reserved2                   : 16;
    UINT32    InterruptRouteCapability;
  } Bits;
  UINT64    Uint64;
} HPET_TIMER_CONFIGURATION_REGISTER;

///
/// HPET Timer MSI Route Register
///
typedef union {
  struct {
    UINT32    Value   : 32;
    UINT32    Address : 32;
  } Bits;
  UINT64    Uint64;
} HPET_TIMER_MSI_ROUTE_REGISTER;

#pragma pack()

#endif
