1 // THIS HEADER FILE IS AUTOMATICALLY GENERATED -- DO NOT EDIT 2 3 /** 4 * Copyright (c) 2024 Raspberry Pi Ltd. 5 * 6 * SPDX-License-Identifier: BSD-3-Clause 7 */ 8 // ============================================================================= 9 // Register block : WATCHDOG 10 // Version : 1 11 // Bus type : apb 12 // ============================================================================= 13 #ifndef _HARDWARE_REGS_WATCHDOG_H 14 #define _HARDWARE_REGS_WATCHDOG_H 15 // ============================================================================= 16 // Register : WATCHDOG_CTRL 17 // Description : Watchdog control 18 // The rst_wdsel register determines which subsystems are reset 19 // when the watchdog is triggered. 20 // The watchdog can be triggered in software. 21 #define WATCHDOG_CTRL_OFFSET _u(0x00000000) 22 #define WATCHDOG_CTRL_BITS _u(0xc7ffffff) 23 #define WATCHDOG_CTRL_RESET _u(0x07000000) 24 // ----------------------------------------------------------------------------- 25 // Field : WATCHDOG_CTRL_TRIGGER 26 // Description : Trigger a watchdog reset 27 #define WATCHDOG_CTRL_TRIGGER_RESET _u(0x0) 28 #define WATCHDOG_CTRL_TRIGGER_BITS _u(0x80000000) 29 #define WATCHDOG_CTRL_TRIGGER_MSB _u(31) 30 #define WATCHDOG_CTRL_TRIGGER_LSB _u(31) 31 #define WATCHDOG_CTRL_TRIGGER_ACCESS "SC" 32 // ----------------------------------------------------------------------------- 33 // Field : WATCHDOG_CTRL_ENABLE 34 // Description : When not enabled the watchdog timer is paused 35 #define WATCHDOG_CTRL_ENABLE_RESET _u(0x0) 36 #define WATCHDOG_CTRL_ENABLE_BITS _u(0x40000000) 37 #define WATCHDOG_CTRL_ENABLE_MSB _u(30) 38 #define WATCHDOG_CTRL_ENABLE_LSB _u(30) 39 #define WATCHDOG_CTRL_ENABLE_ACCESS "RW" 40 // ----------------------------------------------------------------------------- 41 // Field : WATCHDOG_CTRL_PAUSE_DBG1 42 // Description : Pause the watchdog timer when processor 1 is in debug mode 43 #define WATCHDOG_CTRL_PAUSE_DBG1_RESET _u(0x1) 44 #define WATCHDOG_CTRL_PAUSE_DBG1_BITS _u(0x04000000) 45 #define WATCHDOG_CTRL_PAUSE_DBG1_MSB _u(26) 46 #define WATCHDOG_CTRL_PAUSE_DBG1_LSB _u(26) 47 #define WATCHDOG_CTRL_PAUSE_DBG1_ACCESS "RW" 48 // ----------------------------------------------------------------------------- 49 // Field : WATCHDOG_CTRL_PAUSE_DBG0 50 // Description : Pause the watchdog timer when processor 0 is in debug mode 51 #define WATCHDOG_CTRL_PAUSE_DBG0_RESET _u(0x1) 52 #define WATCHDOG_CTRL_PAUSE_DBG0_BITS _u(0x02000000) 53 #define WATCHDOG_CTRL_PAUSE_DBG0_MSB _u(25) 54 #define WATCHDOG_CTRL_PAUSE_DBG0_LSB _u(25) 55 #define WATCHDOG_CTRL_PAUSE_DBG0_ACCESS "RW" 56 // ----------------------------------------------------------------------------- 57 // Field : WATCHDOG_CTRL_PAUSE_JTAG 58 // Description : Pause the watchdog timer when JTAG is accessing the bus fabric 59 #define WATCHDOG_CTRL_PAUSE_JTAG_RESET _u(0x1) 60 #define WATCHDOG_CTRL_PAUSE_JTAG_BITS _u(0x01000000) 61 #define WATCHDOG_CTRL_PAUSE_JTAG_MSB _u(24) 62 #define WATCHDOG_CTRL_PAUSE_JTAG_LSB _u(24) 63 #define WATCHDOG_CTRL_PAUSE_JTAG_ACCESS "RW" 64 // ----------------------------------------------------------------------------- 65 // Field : WATCHDOG_CTRL_TIME 66 // Description : Indicates the number of ticks / 2 (see errata RP2040-E1) before 67 // a watchdog reset will be triggered 68 #define WATCHDOG_CTRL_TIME_RESET _u(0x000000) 69 #define WATCHDOG_CTRL_TIME_BITS _u(0x00ffffff) 70 #define WATCHDOG_CTRL_TIME_MSB _u(23) 71 #define WATCHDOG_CTRL_TIME_LSB _u(0) 72 #define WATCHDOG_CTRL_TIME_ACCESS "RO" 73 // ============================================================================= 74 // Register : WATCHDOG_LOAD 75 // Description : Load the watchdog timer. The maximum setting is 0xffffff which 76 // corresponds to 0xffffff / 2 ticks before triggering a watchdog 77 // reset (see errata RP2040-E1). 78 #define WATCHDOG_LOAD_OFFSET _u(0x00000004) 79 #define WATCHDOG_LOAD_BITS _u(0x00ffffff) 80 #define WATCHDOG_LOAD_RESET _u(0x00000000) 81 #define WATCHDOG_LOAD_MSB _u(23) 82 #define WATCHDOG_LOAD_LSB _u(0) 83 #define WATCHDOG_LOAD_ACCESS "WF" 84 // ============================================================================= 85 // Register : WATCHDOG_REASON 86 // Description : Logs the reason for the last reset. Both bits are zero for the 87 // case of a hardware reset. 88 #define WATCHDOG_REASON_OFFSET _u(0x00000008) 89 #define WATCHDOG_REASON_BITS _u(0x00000003) 90 #define WATCHDOG_REASON_RESET _u(0x00000000) 91 // ----------------------------------------------------------------------------- 92 // Field : WATCHDOG_REASON_FORCE 93 #define WATCHDOG_REASON_FORCE_RESET _u(0x0) 94 #define WATCHDOG_REASON_FORCE_BITS _u(0x00000002) 95 #define WATCHDOG_REASON_FORCE_MSB _u(1) 96 #define WATCHDOG_REASON_FORCE_LSB _u(1) 97 #define WATCHDOG_REASON_FORCE_ACCESS "RO" 98 // ----------------------------------------------------------------------------- 99 // Field : WATCHDOG_REASON_TIMER 100 #define WATCHDOG_REASON_TIMER_RESET _u(0x0) 101 #define WATCHDOG_REASON_TIMER_BITS _u(0x00000001) 102 #define WATCHDOG_REASON_TIMER_MSB _u(0) 103 #define WATCHDOG_REASON_TIMER_LSB _u(0) 104 #define WATCHDOG_REASON_TIMER_ACCESS "RO" 105 // ============================================================================= 106 // Register : WATCHDOG_SCRATCH0 107 // Description : Scratch register. Information persists through soft reset of 108 // the chip. 109 #define WATCHDOG_SCRATCH0_OFFSET _u(0x0000000c) 110 #define WATCHDOG_SCRATCH0_BITS _u(0xffffffff) 111 #define WATCHDOG_SCRATCH0_RESET _u(0x00000000) 112 #define WATCHDOG_SCRATCH0_MSB _u(31) 113 #define WATCHDOG_SCRATCH0_LSB _u(0) 114 #define WATCHDOG_SCRATCH0_ACCESS "RW" 115 // ============================================================================= 116 // Register : WATCHDOG_SCRATCH1 117 // Description : Scratch register. Information persists through soft reset of 118 // the chip. 119 #define WATCHDOG_SCRATCH1_OFFSET _u(0x00000010) 120 #define WATCHDOG_SCRATCH1_BITS _u(0xffffffff) 121 #define WATCHDOG_SCRATCH1_RESET _u(0x00000000) 122 #define WATCHDOG_SCRATCH1_MSB _u(31) 123 #define WATCHDOG_SCRATCH1_LSB _u(0) 124 #define WATCHDOG_SCRATCH1_ACCESS "RW" 125 // ============================================================================= 126 // Register : WATCHDOG_SCRATCH2 127 // Description : Scratch register. Information persists through soft reset of 128 // the chip. 129 #define WATCHDOG_SCRATCH2_OFFSET _u(0x00000014) 130 #define WATCHDOG_SCRATCH2_BITS _u(0xffffffff) 131 #define WATCHDOG_SCRATCH2_RESET _u(0x00000000) 132 #define WATCHDOG_SCRATCH2_MSB _u(31) 133 #define WATCHDOG_SCRATCH2_LSB _u(0) 134 #define WATCHDOG_SCRATCH2_ACCESS "RW" 135 // ============================================================================= 136 // Register : WATCHDOG_SCRATCH3 137 // Description : Scratch register. Information persists through soft reset of 138 // the chip. 139 #define WATCHDOG_SCRATCH3_OFFSET _u(0x00000018) 140 #define WATCHDOG_SCRATCH3_BITS _u(0xffffffff) 141 #define WATCHDOG_SCRATCH3_RESET _u(0x00000000) 142 #define WATCHDOG_SCRATCH3_MSB _u(31) 143 #define WATCHDOG_SCRATCH3_LSB _u(0) 144 #define WATCHDOG_SCRATCH3_ACCESS "RW" 145 // ============================================================================= 146 // Register : WATCHDOG_SCRATCH4 147 // Description : Scratch register. Information persists through soft reset of 148 // the chip. 149 #define WATCHDOG_SCRATCH4_OFFSET _u(0x0000001c) 150 #define WATCHDOG_SCRATCH4_BITS _u(0xffffffff) 151 #define WATCHDOG_SCRATCH4_RESET _u(0x00000000) 152 #define WATCHDOG_SCRATCH4_MSB _u(31) 153 #define WATCHDOG_SCRATCH4_LSB _u(0) 154 #define WATCHDOG_SCRATCH4_ACCESS "RW" 155 // ============================================================================= 156 // Register : WATCHDOG_SCRATCH5 157 // Description : Scratch register. Information persists through soft reset of 158 // the chip. 159 #define WATCHDOG_SCRATCH5_OFFSET _u(0x00000020) 160 #define WATCHDOG_SCRATCH5_BITS _u(0xffffffff) 161 #define WATCHDOG_SCRATCH5_RESET _u(0x00000000) 162 #define WATCHDOG_SCRATCH5_MSB _u(31) 163 #define WATCHDOG_SCRATCH5_LSB _u(0) 164 #define WATCHDOG_SCRATCH5_ACCESS "RW" 165 // ============================================================================= 166 // Register : WATCHDOG_SCRATCH6 167 // Description : Scratch register. Information persists through soft reset of 168 // the chip. 169 #define WATCHDOG_SCRATCH6_OFFSET _u(0x00000024) 170 #define WATCHDOG_SCRATCH6_BITS _u(0xffffffff) 171 #define WATCHDOG_SCRATCH6_RESET _u(0x00000000) 172 #define WATCHDOG_SCRATCH6_MSB _u(31) 173 #define WATCHDOG_SCRATCH6_LSB _u(0) 174 #define WATCHDOG_SCRATCH6_ACCESS "RW" 175 // ============================================================================= 176 // Register : WATCHDOG_SCRATCH7 177 // Description : Scratch register. Information persists through soft reset of 178 // the chip. 179 #define WATCHDOG_SCRATCH7_OFFSET _u(0x00000028) 180 #define WATCHDOG_SCRATCH7_BITS _u(0xffffffff) 181 #define WATCHDOG_SCRATCH7_RESET _u(0x00000000) 182 #define WATCHDOG_SCRATCH7_MSB _u(31) 183 #define WATCHDOG_SCRATCH7_LSB _u(0) 184 #define WATCHDOG_SCRATCH7_ACCESS "RW" 185 // ============================================================================= 186 // Register : WATCHDOG_TICK 187 // Description : Controls the tick generator 188 #define WATCHDOG_TICK_OFFSET _u(0x0000002c) 189 #define WATCHDOG_TICK_BITS _u(0x000fffff) 190 #define WATCHDOG_TICK_RESET _u(0x00000200) 191 // ----------------------------------------------------------------------------- 192 // Field : WATCHDOG_TICK_COUNT 193 // Description : Count down timer: the remaining number clk_tick cycles before 194 // the next tick is generated. 195 #define WATCHDOG_TICK_COUNT_RESET "-" 196 #define WATCHDOG_TICK_COUNT_BITS _u(0x000ff800) 197 #define WATCHDOG_TICK_COUNT_MSB _u(19) 198 #define WATCHDOG_TICK_COUNT_LSB _u(11) 199 #define WATCHDOG_TICK_COUNT_ACCESS "RO" 200 // ----------------------------------------------------------------------------- 201 // Field : WATCHDOG_TICK_RUNNING 202 // Description : Is the tick generator running? 203 #define WATCHDOG_TICK_RUNNING_RESET "-" 204 #define WATCHDOG_TICK_RUNNING_BITS _u(0x00000400) 205 #define WATCHDOG_TICK_RUNNING_MSB _u(10) 206 #define WATCHDOG_TICK_RUNNING_LSB _u(10) 207 #define WATCHDOG_TICK_RUNNING_ACCESS "RO" 208 // ----------------------------------------------------------------------------- 209 // Field : WATCHDOG_TICK_ENABLE 210 // Description : start / stop tick generation 211 #define WATCHDOG_TICK_ENABLE_RESET _u(0x1) 212 #define WATCHDOG_TICK_ENABLE_BITS _u(0x00000200) 213 #define WATCHDOG_TICK_ENABLE_MSB _u(9) 214 #define WATCHDOG_TICK_ENABLE_LSB _u(9) 215 #define WATCHDOG_TICK_ENABLE_ACCESS "RW" 216 // ----------------------------------------------------------------------------- 217 // Field : WATCHDOG_TICK_CYCLES 218 // Description : Total number of clk_tick cycles before the next tick. 219 #define WATCHDOG_TICK_CYCLES_RESET _u(0x000) 220 #define WATCHDOG_TICK_CYCLES_BITS _u(0x000001ff) 221 #define WATCHDOG_TICK_CYCLES_MSB _u(8) 222 #define WATCHDOG_TICK_CYCLES_LSB _u(0) 223 #define WATCHDOG_TICK_CYCLES_ACCESS "RW" 224 // ============================================================================= 225 #endif // _HARDWARE_REGS_WATCHDOG_H 226 227