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