// THIS HEADER FILE IS AUTOMATICALLY GENERATED -- DO NOT EDIT/** * Copyright (c) 2024 Raspberry Pi Ltd. * * SPDX-License-Identifier: BSD-3-Clause *//* ... */// =============================================================================// Register block : TIMER// Version : 1// Bus type : apb// Description : Controls time and alarms//// time is a 64 bit value indicating the time since power-on//// timeh is the top 32 bits of time & timel is the bottom 32// bits to change time write to timelw before timehw to read// time read from timelr before timehr//// An alarm is set by setting alarm_enable and writing to the// corresponding alarm register When an alarm is pending, the// corresponding alarm_running signal will be high An alarm can// be cancelled before it has finished by clearing the// alarm_enable When an alarm fires, the corresponding// alarm_irq is set and alarm_running is cleared To clear the// interrupt write a 1 to the corresponding alarm_irq The timer// can be locked to prevent writing// =============================================================================#ifndef_HARDWARE_REGS_TIMER_H#define_HARDWARE_REGS_TIMER_H// =============================================================================// Register : TIMER_TIMEHW// Description : Write to bits 63:32 of time always write timelw before timehw#defineTIMER_TIMEHW_OFFSET_u(0x00000000)#defineTIMER_TIMEHW_BITS_u(0xffffffff)#defineTIMER_TIMEHW_RESET_u(0x00000000)#defineTIMER_TIMEHW_MSB_u(31)#defineTIMER_TIMEHW_LSB_u(0)#defineTIMER_TIMEHW_ACCESS"WF"// =============================================================================// Register : TIMER_TIMELW// Description : Write to bits 31:0 of time writes do not get copied to time// until timehw is written#defineTIMER_TIMELW_OFFSET_u(0x00000004)#defineTIMER_TIMELW_BITS_u(0xffffffff)#defineTIMER_TIMELW_RESET_u(0x00000000)#defineTIMER_TIMELW_MSB_u(31)#defineTIMER_TIMELW_LSB_u(0)#defineTIMER_TIMELW_ACCESS"WF"// =============================================================================// Register : TIMER_TIMEHR// Description : Read from bits 63:32 of time always read timelr before timehr#defineTIMER_TIMEHR_OFFSET_u(0x00000008)#defineTIMER_TIMEHR_BITS_u(0xffffffff)#defineTIMER_TIMEHR_RESET_u(0x00000000)#defineTIMER_TIMEHR_MSB_u(31)#defineTIMER_TIMEHR_LSB_u(0)#defineTIMER_TIMEHR_ACCESS"RO"// =============================================================================// Register : TIMER_TIMELR// Description : Read from bits 31:0 of time#defineTIMER_TIMELR_OFFSET_u(0x0000000c)#defineTIMER_TIMELR_BITS_u(0xffffffff)#defineTIMER_TIMELR_RESET_u(0x00000000)#defineTIMER_TIMELR_MSB_u(31)#defineTIMER_TIMELR_LSB_u(0)#defineTIMER_TIMELR_ACCESS"RO"// =============================================================================// Register : TIMER_ALARM0// Description : Arm alarm 0, and configure the time it will fire. Once armed,// the alarm fires when TIMER_ALARM0 == TIMELR. The alarm will// disarm itself once it fires, and can be disarmed early using// the ARMED status register.#defineTIMER_ALARM0_OFFSET_u(0x00000010)#defineTIMER_ALARM0_BITS_u(0xffffffff)#defineTIMER_ALARM0_RESET_u(0x00000000)#defineTIMER_ALARM0_MSB_u(31)#defineTIMER_ALARM0_LSB_u(0)#defineTIMER_ALARM0_ACCESS"RW"// =============================================================================// Register : TIMER_ALARM1// Description : Arm alarm 1, and configure the time it will fire. Once armed,// the alarm fires when TIMER_ALARM1 == TIMELR. The alarm will// disarm itself once it fires, and can be disarmed early using// the ARMED status register.#defineTIMER_ALARM1_OFFSET_u(0x00000014)#defineTIMER_ALARM1_BITS_u(0xffffffff)#defineTIMER_ALARM1_RESET_u(0x00000000)#defineTIMER_ALARM1_MSB_u(31)#defineTIMER_ALARM1_LSB_u(0)#defineTIMER_ALARM1_ACCESS"RW"// =============================================================================// Register : TIMER_ALARM2// Description : Arm alarm 2, and configure the time it will fire. Once armed,// the alarm fires when TIMER_ALARM2 == TIMELR. The alarm will// disarm itself once it fires, and can be disarmed early using// the ARMED status register.#defineTIMER_ALARM2_OFFSET_u(0x00000018)#defineTIMER_ALARM2_BITS_u(0xffffffff)#defineTIMER_ALARM2_RESET_u(0x00000000)#defineTIMER_ALARM2_MSB_u(31)#defineTIMER_ALARM2_LSB_u(0)#defineTIMER_ALARM2_ACCESS"RW"// =============================================================================// Register : TIMER_ALARM3// Description : Arm alarm 3, and configure the time it will fire. Once armed,// the alarm fires when TIMER_ALARM3 == TIMELR. The alarm will// disarm itself once it fires, and can be disarmed early using// the ARMED status register.#defineTIMER_ALARM3_OFFSET_u(0x0000001c)#defineTIMER_ALARM3_BITS_u(0xffffffff)#defineTIMER_ALARM3_RESET_u(0x00000000)#defineTIMER_ALARM3_MSB_u(31)#defineTIMER_ALARM3_LSB_u(0)#defineTIMER_ALARM3_ACCESS"RW"// =============================================================================// Register : TIMER_ARMED// Description : Indicates the armed/disarmed status of each alarm. A write to// the corresponding ALARMx register arms the alarm. Alarms// automatically disarm upon firing, but writing ones here will// disarm immediately without waiting to fire.#defineTIMER_ARMED_OFFSET_u(0x00000020)#defineTIMER_ARMED_BITS_u(0x0000000f)#defineTIMER_ARMED_RESET_u(0x00000000)#defineTIMER_ARMED_MSB_u(3)#defineTIMER_ARMED_LSB_u(0)#defineTIMER_ARMED_ACCESS"WC"// =============================================================================// Register : TIMER_TIMERAWH// Description : Raw read from bits 63:32 of time (no side effects)#defineTIMER_TIMERAWH_OFFSET_u(0x00000024)#defineTIMER_TIMERAWH_BITS_u(0xffffffff)#defineTIMER_TIMERAWH_RESET_u(0x00000000)#defineTIMER_TIMERAWH_MSB_u(31)#defineTIMER_TIMERAWH_LSB_u(0)#defineTIMER_TIMERAWH_ACCESS"RO"// =============================================================================// Register : TIMER_TIMERAWL// Description : Raw read from bits 31:0 of time (no side effects)#defineTIMER_TIMERAWL_OFFSET_u(0x00000028)#defineTIMER_TIMERAWL_BITS_u(0xffffffff)#defineTIMER_TIMERAWL_RESET_u(0x00000000)#defineTIMER_TIMERAWL_MSB_u(31)#defineTIMER_TIMERAWL_LSB_u(0)#defineTIMER_TIMERAWL_ACCESS"RO"// =============================================================================// Register : TIMER_DBGPAUSE// Description : Set bits high to enable pause when the corresponding debug// ports are active#defineTIMER_DBGPAUSE_OFFSET_u(0x0000002c)#defineTIMER_DBGPAUSE_BITS_u(0x00000006)#defineTIMER_DBGPAUSE_RESET_u(0x00000007)// -----------------------------------------------------------------------------// Field : TIMER_DBGPAUSE_DBG1// Description : Pause when processor 1 is in debug mode#defineTIMER_DBGPAUSE_DBG1_RESET_u(0x1)#defineTIMER_DBGPAUSE_DBG1_BITS_u(0x00000004)#defineTIMER_DBGPAUSE_DBG1_MSB_u(2)#defineTIMER_DBGPAUSE_DBG1_LSB_u(2)#defineTIMER_DBGPAUSE_DBG1_ACCESS"RW"// -----------------------------------------------------------------------------// Field : TIMER_DBGPAUSE_DBG0// Description : Pause when processor 0 is in debug mode#defineTIMER_DBGPAUSE_DBG0_RESET_u(0x1)#defineTIMER_DBGPAUSE_DBG0_BITS_u(0x00000002)#defineTIMER_DBGPAUSE_DBG0_MSB_u(1)#defineTIMER_DBGPAUSE_DBG0_LSB_u(1)#defineTIMER_DBGPAUSE_DBG0_ACCESS"RW"// =============================================================================// Register : TIMER_PAUSE// Description : Set high to pause the timer#defineTIMER_PAUSE_OFFSET_u(0x00000030)#defineTIMER_PAUSE_BITS_u(0x00000001)#defineTIMER_PAUSE_RESET_u(0x00000000)#defineTIMER_PAUSE_MSB_u(0)#defineTIMER_PAUSE_LSB_u(0)#defineTIMER_PAUSE_ACCESS"RW"// =============================================================================// Register : TIMER_LOCKED// Description : Set locked bit to disable write access to timer Once set,// cannot be cleared (without a reset)#defineTIMER_LOCKED_OFFSET_u(0x00000034)#defineTIMER_LOCKED_BITS_u(0x00000001)#defineTIMER_LOCKED_RESET_u(0x00000000)#defineTIMER_LOCKED_MSB_u(0)#defineTIMER_LOCKED_LSB_u(0)#defineTIMER_LOCKED_ACCESS"RW"// =============================================================================// Register : TIMER_SOURCE// Description : Selects the source for the timer. Defaults to the normal tick// configured in the ticks block (typically configured to 1// microsecond). Writing to 1 will ignore the tick and count// clk_sys cycles instead.#defineTIMER_SOURCE_OFFSET_u(0x00000038)#defineTIMER_SOURCE_BITS_u(0x00000001)#defineTIMER_SOURCE_RESET_u(0x00000000)// -----------------------------------------------------------------------------// Field : TIMER_SOURCE_CLK_SYS// 0x0 -> TICK// 0x1 -> CLK_SYS#defineTIMER_SOURCE_CLK_SYS_RESET_u(0x0)#defineTIMER_SOURCE_CLK_SYS_BITS_u(0x00000001)#defineTIMER_SOURCE_CLK_SYS_MSB_u(0)#defineTIMER_SOURCE_CLK_SYS_LSB_u(0)#defineTIMER_SOURCE_CLK_SYS_ACCESS"RW"#defineTIMER_SOURCE_CLK_SYS_VALUE_TICK_u(0x0)#defineTIMER_SOURCE_CLK_SYS_VALUE_CLK_SYS_u(0x1)// =============================================================================// Register : TIMER_INTR// Description : Raw Interrupts#defineTIMER_INTR_OFFSET_u(0x0000003c)#defineTIMER_INTR_BITS_u(0x0000000f)#defineTIMER_INTR_RESET_u(0x00000000)// -----------------------------------------------------------------------------// Field : TIMER_INTR_ALARM_3#defineTIMER_INTR_ALARM_3_RESET_u(0x0)#defineTIMER_INTR_ALARM_3_BITS_u(0x00000008)#defineTIMER_INTR_ALARM_3_MSB_u(3)#defineTIMER_INTR_ALARM_3_LSB_u(3)#defineTIMER_INTR_ALARM_3_ACCESS"WC"// -----------------------------------------------------------------------------// Field : TIMER_INTR_ALARM_2#defineTIMER_INTR_ALARM_2_RESET_u(0x0)#defineTIMER_INTR_ALARM_2_BITS_u(0x00000004)#defineTIMER_INTR_ALARM_2_MSB_u(2)#defineTIMER_INTR_ALARM_2_LSB_u(2)#defineTIMER_INTR_ALARM_2_ACCESS"WC"// -----------------------------------------------------------------------------// Field : TIMER_INTR_ALARM_1#defineTIMER_INTR_ALARM_1_RESET_u(0x0)#defineTIMER_INTR_ALARM_1_BITS_u(0x00000002)#defineTIMER_INTR_ALARM_1_MSB_u(1)#defineTIMER_INTR_ALARM_1_LSB_u(1)#defineTIMER_INTR_ALARM_1_ACCESS"WC"// -----------------------------------------------------------------------------// Field : TIMER_INTR_ALARM_0#defineTIMER_INTR_ALARM_0_RESET_u(0x0)#defineTIMER_INTR_ALARM_0_BITS_u(0x00000001)#defineTIMER_INTR_ALARM_0_MSB_u(0)#defineTIMER_INTR_ALARM_0_LSB_u(0)#defineTIMER_INTR_ALARM_0_ACCESS"WC"// =============================================================================// Register : TIMER_INTE// Description : Interrupt Enable#defineTIMER_INTE_OFFSET_u(0x00000040)#defineTIMER_INTE_BITS_u(0x0000000f)#defineTIMER_INTE_RESET_u(0x00000000)// -----------------------------------------------------------------------------// Field : TIMER_INTE_ALARM_3#defineTIMER_INTE_ALARM_3_RESET_u(0x0)#defineTIMER_INTE_ALARM_3_BITS_u(0x00000008)#defineTIMER_INTE_ALARM_3_MSB_u(3)#defineTIMER_INTE_ALARM_3_LSB_u(3)#defineTIMER_INTE_ALARM_3_ACCESS"RW"// -----------------------------------------------------------------------------// Field : TIMER_INTE_ALARM_2#defineTIMER_INTE_ALARM_2_RESET_u(0x0)#defineTIMER_INTE_ALARM_2_BITS_u(0x00000004)#defineTIMER_INTE_ALARM_2_MSB_u(2)#defineTIMER_INTE_ALARM_2_LSB_u(2)#defineTIMER_INTE_ALARM_2_ACCESS"RW"// -----------------------------------------------------------------------------// Field : TIMER_INTE_ALARM_1#defineTIMER_INTE_ALARM_1_RESET_u(0x0)#defineTIMER_INTE_ALARM_1_BITS_u(0x00000002)#defineTIMER_INTE_ALARM_1_MSB_u(1)#defineTIMER_INTE_ALARM_1_LSB_u(1)#defineTIMER_INTE_ALARM_1_ACCESS"RW"// -----------------------------------------------------------------------------// Field : TIMER_INTE_ALARM_0#defineTIMER_INTE_ALARM_0_RESET_u(0x0)#defineTIMER_INTE_ALARM_0_BITS_u(0x00000001)#defineTIMER_INTE_ALARM_0_MSB_u(0)#defineTIMER_INTE_ALARM_0_LSB_u(0)#defineTIMER_INTE_ALARM_0_ACCESS"RW"// =============================================================================// Register : TIMER_INTF// Description : Interrupt Force#defineTIMER_INTF_OFFSET_u(0x00000044)#defineTIMER_INTF_BITS_u(0x0000000f)#defineTIMER_INTF_RESET_u(0x00000000)// -----------------------------------------------------------------------------// Field : TIMER_INTF_ALARM_3#defineTIMER_INTF_ALARM_3_RESET_u(0x0)#defineTIMER_INTF_ALARM_3_BITS_u(0x00000008)#defineTIMER_INTF_ALARM_3_MSB_u(3)#defineTIMER_INTF_ALARM_3_LSB_u(3)#defineTIMER_INTF_ALARM_3_ACCESS"RW"// -----------------------------------------------------------------------------// Field : TIMER_INTF_ALARM_2#defineTIMER_INTF_ALARM_2_RESET_u(0x0)#defineTIMER_INTF_ALARM_2_BITS_u(0x00000004)#defineTIMER_INTF_ALARM_2_MSB_u(2)#defineTIMER_INTF_ALARM_2_LSB_u(2)#defineTIMER_INTF_ALARM_2_ACCESS"RW"// -----------------------------------------------------------------------------// Field : TIMER_INTF_ALARM_1#defineTIMER_INTF_ALARM_1_RESET_u(0x0)#defineTIMER_INTF_ALARM_1_BITS_u(0x00000002)#defineTIMER_INTF_ALARM_1_MSB_u(1)#defineTIMER_INTF_ALARM_1_LSB_u(1)#defineTIMER_INTF_ALARM_1_ACCESS"RW"// -----------------------------------------------------------------------------// Field : TIMER_INTF_ALARM_0#defineTIMER_INTF_ALARM_0_RESET_u(0x0)#defineTIMER_INTF_ALARM_0_BITS_u(0x00000001)#defineTIMER_INTF_ALARM_0_MSB_u(0)#defineTIMER_INTF_ALARM_0_LSB_u(0)#defineTIMER_INTF_ALARM_0_ACCESS"RW"// =============================================================================// Register : TIMER_INTS// Description : Interrupt status after masking & forcing#defineTIMER_INTS_OFFSET_u(0x00000048)#defineTIMER_INTS_BITS_u(0x0000000f)#defineTIMER_INTS_RESET_u(0x00000000)// -----------------------------------------------------------------------------// Field : TIMER_INTS_ALARM_3#defineTIMER_INTS_ALARM_3_RESET_u(0x0)#defineTIMER_INTS_ALARM_3_BITS_u(0x00000008)#defineTIMER_INTS_ALARM_3_MSB_u(3)#defineTIMER_INTS_ALARM_3_LSB_u(3)#defineTIMER_INTS_ALARM_3_ACCESS"RO"// -----------------------------------------------------------------------------// Field : TIMER_INTS_ALARM_2#defineTIMER_INTS_ALARM_2_RESET_u(0x0)#defineTIMER_INTS_ALARM_2_BITS_u(0x00000004)#defineTIMER_INTS_ALARM_2_MSB_u(2)#defineTIMER_INTS_ALARM_2_LSB_u(2)#defineTIMER_INTS_ALARM_2_ACCESS"RO"// -----------------------------------------------------------------------------// Field : TIMER_INTS_ALARM_1#defineTIMER_INTS_ALARM_1_RESET_u(0x0)#defineTIMER_INTS_ALARM_1_BITS_u(0x00000002)#defineTIMER_INTS_ALARM_1_MSB_u(1)#defineTIMER_INTS_ALARM_1_LSB_u(1)#defineTIMER_INTS_ALARM_1_ACCESS"RO"// -----------------------------------------------------------------------------// Field : TIMER_INTS_ALARM_0#defineTIMER_INTS_ALARM_0_RESET_u(0x0)#defineTIMER_INTS_ALARM_0_BITS_u(0x00000001)#defineTIMER_INTS_ALARM_0_MSB_u(0)#defineTIMER_INTS_ALARM_0_LSB_u(0)#defineTIMER_INTS_ALARM_0_ACCESS"RO"194 defines// =============================================================================/* ... */#endif// _HARDWARE_REGS_TIMER_H
Details
Show: from
Types: Columns:
All items filtered out
All items filtered out
This file uses the notable symbols shown below. Click anywhere in the file to view more details.