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 : PIO
10 // Version        : 1
11 // Bus type       : ahbl
12 // Description    : Programmable IO block
13 // =============================================================================
14 #ifndef _HARDWARE_REGS_PIO_H
15 #define _HARDWARE_REGS_PIO_H
16 // =============================================================================
17 // Register    : PIO_CTRL
18 // Description : PIO control register
19 #define PIO_CTRL_OFFSET _u(0x00000000)
20 #define PIO_CTRL_BITS   _u(0x07ff0fff)
21 #define PIO_CTRL_RESET  _u(0x00000000)
22 // -----------------------------------------------------------------------------
23 // Field       : PIO_CTRL_NEXTPREV_CLKDIV_RESTART
24 // Description : Write 1 to restart the clock dividers of state machines in
25 //               neighbouring PIO blocks, as specified by NEXT_PIO_MASK and
26 //               PREV_PIO_MASK in the same write.
27 //
28 //               This is equivalent to writing 1 to the corresponding
29 //               CLKDIV_RESTART bits in those PIOs' CTRL registers.
30 #define PIO_CTRL_NEXTPREV_CLKDIV_RESTART_RESET  _u(0x0)
31 #define PIO_CTRL_NEXTPREV_CLKDIV_RESTART_BITS   _u(0x04000000)
32 #define PIO_CTRL_NEXTPREV_CLKDIV_RESTART_MSB    _u(26)
33 #define PIO_CTRL_NEXTPREV_CLKDIV_RESTART_LSB    _u(26)
34 #define PIO_CTRL_NEXTPREV_CLKDIV_RESTART_ACCESS "SC"
35 // -----------------------------------------------------------------------------
36 // Field       : PIO_CTRL_NEXTPREV_SM_DISABLE
37 // Description : Write 1 to disable state machines in neighbouring PIO blocks,
38 //               as specified by NEXT_PIO_MASK and PREV_PIO_MASK in the same
39 //               write.
40 //
41 //               This is equivalent to clearing the corresponding SM_ENABLE bits
42 //               in those PIOs' CTRL registers.
43 #define PIO_CTRL_NEXTPREV_SM_DISABLE_RESET  _u(0x0)
44 #define PIO_CTRL_NEXTPREV_SM_DISABLE_BITS   _u(0x02000000)
45 #define PIO_CTRL_NEXTPREV_SM_DISABLE_MSB    _u(25)
46 #define PIO_CTRL_NEXTPREV_SM_DISABLE_LSB    _u(25)
47 #define PIO_CTRL_NEXTPREV_SM_DISABLE_ACCESS "SC"
48 // -----------------------------------------------------------------------------
49 // Field       : PIO_CTRL_NEXTPREV_SM_ENABLE
50 // Description : Write 1 to enable state machines in neighbouring PIO blocks, as
51 //               specified by NEXT_PIO_MASK and PREV_PIO_MASK in the same write.
52 //
53 //               This is equivalent to setting the corresponding SM_ENABLE bits
54 //               in those PIOs' CTRL registers.
55 //
56 //               If both OTHERS_SM_ENABLE and OTHERS_SM_DISABLE are set, the
57 //               disable takes precedence.
58 #define PIO_CTRL_NEXTPREV_SM_ENABLE_RESET  _u(0x0)
59 #define PIO_CTRL_NEXTPREV_SM_ENABLE_BITS   _u(0x01000000)
60 #define PIO_CTRL_NEXTPREV_SM_ENABLE_MSB    _u(24)
61 #define PIO_CTRL_NEXTPREV_SM_ENABLE_LSB    _u(24)
62 #define PIO_CTRL_NEXTPREV_SM_ENABLE_ACCESS "SC"
63 // -----------------------------------------------------------------------------
64 // Field       : PIO_CTRL_NEXT_PIO_MASK
65 // Description : A mask of state machines in the neighbouring higher-numbered
66 //               PIO block in the system (or PIO block 0 if this is the highest-
67 //               numbered PIO block) to which to apply the operations specified
68 //               by NEXTPREV_CLKDIV_RESTART, NEXTPREV_SM_ENABLE, and
69 //               NEXTPREV_SM_DISABLE in the same write.
70 //
71 //               This allows state machines in a neighbouring PIO block to be
72 //               started/stopped/clock-synced exactly simultaneously with a
73 //               write to this PIO block's CTRL register.
74 //
75 //               Note that in a system with two PIOs, NEXT_PIO_MASK and
76 //               PREV_PIO_MASK actually indicate the same PIO block. In this
77 //               case the effects are applied cumulatively (as though the masks
78 //               were OR'd together).
79 //
80 //               Neighbouring PIO blocks are disconnected (status signals tied
81 //               to 0 and control signals ignored) if one block is accessible to
82 //               NonSecure code, and one is not.
83 #define PIO_CTRL_NEXT_PIO_MASK_RESET  _u(0x0)
84 #define PIO_CTRL_NEXT_PIO_MASK_BITS   _u(0x00f00000)
85 #define PIO_CTRL_NEXT_PIO_MASK_MSB    _u(23)
86 #define PIO_CTRL_NEXT_PIO_MASK_LSB    _u(20)
87 #define PIO_CTRL_NEXT_PIO_MASK_ACCESS "SC"
88 // -----------------------------------------------------------------------------
89 // Field       : PIO_CTRL_PREV_PIO_MASK
90 // Description : A mask of state machines in the neighbouring lower-numbered PIO
91 //               block in the system (or the highest-numbered PIO block if this
92 //               is PIO block 0) to which to apply the operations specified by
93 //               OP_CLKDIV_RESTART, OP_ENABLE, OP_DISABLE in the same write.
94 //
95 //               This allows state machines in a neighbouring PIO block to be
96 //               started/stopped/clock-synced exactly simultaneously with a
97 //               write to this PIO block's CTRL register.
98 //
99 //               Neighbouring PIO blocks are disconnected (status signals tied
100 //               to 0 and control signals ignored) if one block is accessible to
101 //               NonSecure code, and one is not.
102 #define PIO_CTRL_PREV_PIO_MASK_RESET  _u(0x0)
103 #define PIO_CTRL_PREV_PIO_MASK_BITS   _u(0x000f0000)
104 #define PIO_CTRL_PREV_PIO_MASK_MSB    _u(19)
105 #define PIO_CTRL_PREV_PIO_MASK_LSB    _u(16)
106 #define PIO_CTRL_PREV_PIO_MASK_ACCESS "SC"
107 // -----------------------------------------------------------------------------
108 // Field       : PIO_CTRL_CLKDIV_RESTART
109 // Description : Restart a state machine's clock divider from an initial phase
110 //               of 0. Clock dividers are free-running, so once started, their
111 //               output (including fractional jitter) is completely determined
112 //               by the integer/fractional divisor configured in SMx_CLKDIV.
113 //               This means that, if multiple clock dividers with the same
114 //               divisor are restarted simultaneously, by writing multiple 1
115 //               bits to this field, the execution clocks of those state
116 //               machines will run in precise lockstep.
117 //
118 //               Note that setting/clearing SM_ENABLE does not stop the clock
119 //               divider from running, so once multiple state machines' clocks
120 //               are synchronised, it is safe to disable/reenable a state
121 //               machine, whilst keeping the clock dividers in sync.
122 //
123 //               Note also that CLKDIV_RESTART can be written to whilst the
124 //               state machine is running, and this is useful to resynchronise
125 //               clock dividers after the divisors (SMx_CLKDIV) have been
126 //               changed on-the-fly.
127 #define PIO_CTRL_CLKDIV_RESTART_RESET  _u(0x0)
128 #define PIO_CTRL_CLKDIV_RESTART_BITS   _u(0x00000f00)
129 #define PIO_CTRL_CLKDIV_RESTART_MSB    _u(11)
130 #define PIO_CTRL_CLKDIV_RESTART_LSB    _u(8)
131 #define PIO_CTRL_CLKDIV_RESTART_ACCESS "SC"
132 // -----------------------------------------------------------------------------
133 // Field       : PIO_CTRL_SM_RESTART
134 // Description : Write 1 to instantly clear internal SM state which may be
135 //               otherwise difficult to access and will affect future execution.
136 //
137 //               Specifically, the following are cleared: input and output shift
138 //               counters; the contents of the input shift register; the delay
139 //               counter; the waiting-on-IRQ state; any stalled instruction
140 //               written to SMx_INSTR or run by OUT/MOV EXEC; any pin write left
141 //               asserted due to OUT_STICKY.
142 //
143 //               The contents of the output shift register and the X/Y scratch
144 //               registers are not affected.
145 #define PIO_CTRL_SM_RESTART_RESET  _u(0x0)
146 #define PIO_CTRL_SM_RESTART_BITS   _u(0x000000f0)
147 #define PIO_CTRL_SM_RESTART_MSB    _u(7)
148 #define PIO_CTRL_SM_RESTART_LSB    _u(4)
149 #define PIO_CTRL_SM_RESTART_ACCESS "SC"
150 // -----------------------------------------------------------------------------
151 // Field       : PIO_CTRL_SM_ENABLE
152 // Description : Enable/disable each of the four state machines by writing 1/0
153 //               to each of these four bits. When disabled, a state machine will
154 //               cease executing instructions, except those written directly to
155 //               SMx_INSTR by the system. Multiple bits can be set/cleared at
156 //               once to run/halt multiple state machines simultaneously.
157 #define PIO_CTRL_SM_ENABLE_RESET  _u(0x0)
158 #define PIO_CTRL_SM_ENABLE_BITS   _u(0x0000000f)
159 #define PIO_CTRL_SM_ENABLE_MSB    _u(3)
160 #define PIO_CTRL_SM_ENABLE_LSB    _u(0)
161 #define PIO_CTRL_SM_ENABLE_ACCESS "RW"
162 // =============================================================================
163 // Register    : PIO_FSTAT
164 // Description : FIFO status register
165 #define PIO_FSTAT_OFFSET _u(0x00000004)
166 #define PIO_FSTAT_BITS   _u(0x0f0f0f0f)
167 #define PIO_FSTAT_RESET  _u(0x0f000f00)
168 // -----------------------------------------------------------------------------
169 // Field       : PIO_FSTAT_TXEMPTY
170 // Description : State machine TX FIFO is empty
171 #define PIO_FSTAT_TXEMPTY_RESET  _u(0xf)
172 #define PIO_FSTAT_TXEMPTY_BITS   _u(0x0f000000)
173 #define PIO_FSTAT_TXEMPTY_MSB    _u(27)
174 #define PIO_FSTAT_TXEMPTY_LSB    _u(24)
175 #define PIO_FSTAT_TXEMPTY_ACCESS "RO"
176 // -----------------------------------------------------------------------------
177 // Field       : PIO_FSTAT_TXFULL
178 // Description : State machine TX FIFO is full
179 #define PIO_FSTAT_TXFULL_RESET  _u(0x0)
180 #define PIO_FSTAT_TXFULL_BITS   _u(0x000f0000)
181 #define PIO_FSTAT_TXFULL_MSB    _u(19)
182 #define PIO_FSTAT_TXFULL_LSB    _u(16)
183 #define PIO_FSTAT_TXFULL_ACCESS "RO"
184 // -----------------------------------------------------------------------------
185 // Field       : PIO_FSTAT_RXEMPTY
186 // Description : State machine RX FIFO is empty
187 #define PIO_FSTAT_RXEMPTY_RESET  _u(0xf)
188 #define PIO_FSTAT_RXEMPTY_BITS   _u(0x00000f00)
189 #define PIO_FSTAT_RXEMPTY_MSB    _u(11)
190 #define PIO_FSTAT_RXEMPTY_LSB    _u(8)
191 #define PIO_FSTAT_RXEMPTY_ACCESS "RO"
192 // -----------------------------------------------------------------------------
193 // Field       : PIO_FSTAT_RXFULL
194 // Description : State machine RX FIFO is full
195 #define PIO_FSTAT_RXFULL_RESET  _u(0x0)
196 #define PIO_FSTAT_RXFULL_BITS   _u(0x0000000f)
197 #define PIO_FSTAT_RXFULL_MSB    _u(3)
198 #define PIO_FSTAT_RXFULL_LSB    _u(0)
199 #define PIO_FSTAT_RXFULL_ACCESS "RO"
200 // =============================================================================
201 // Register    : PIO_FDEBUG
202 // Description : FIFO debug register
203 #define PIO_FDEBUG_OFFSET _u(0x00000008)
204 #define PIO_FDEBUG_BITS   _u(0x0f0f0f0f)
205 #define PIO_FDEBUG_RESET  _u(0x00000000)
206 // -----------------------------------------------------------------------------
207 // Field       : PIO_FDEBUG_TXSTALL
208 // Description : State machine has stalled on empty TX FIFO during a blocking
209 //               PULL, or an OUT with autopull enabled. Write 1 to clear.
210 #define PIO_FDEBUG_TXSTALL_RESET  _u(0x0)
211 #define PIO_FDEBUG_TXSTALL_BITS   _u(0x0f000000)
212 #define PIO_FDEBUG_TXSTALL_MSB    _u(27)
213 #define PIO_FDEBUG_TXSTALL_LSB    _u(24)
214 #define PIO_FDEBUG_TXSTALL_ACCESS "WC"
215 // -----------------------------------------------------------------------------
216 // Field       : PIO_FDEBUG_TXOVER
217 // Description : TX FIFO overflow (i.e. write-on-full by the system) has
218 //               occurred. Write 1 to clear. Note that write-on-full does not
219 //               alter the state or contents of the FIFO in any way, but the
220 //               data that the system attempted to write is dropped, so if this
221 //               flag is set, your software has quite likely dropped some data
222 //               on the floor.
223 #define PIO_FDEBUG_TXOVER_RESET  _u(0x0)
224 #define PIO_FDEBUG_TXOVER_BITS   _u(0x000f0000)
225 #define PIO_FDEBUG_TXOVER_MSB    _u(19)
226 #define PIO_FDEBUG_TXOVER_LSB    _u(16)
227 #define PIO_FDEBUG_TXOVER_ACCESS "WC"
228 // -----------------------------------------------------------------------------
229 // Field       : PIO_FDEBUG_RXUNDER
230 // Description : RX FIFO underflow (i.e. read-on-empty by the system) has
231 //               occurred. Write 1 to clear. Note that read-on-empty does not
232 //               perturb the state of the FIFO in any way, but the data returned
233 //               by reading from an empty FIFO is undefined, so this flag
234 //               generally only becomes set due to some kind of software error.
235 #define PIO_FDEBUG_RXUNDER_RESET  _u(0x0)
236 #define PIO_FDEBUG_RXUNDER_BITS   _u(0x00000f00)
237 #define PIO_FDEBUG_RXUNDER_MSB    _u(11)
238 #define PIO_FDEBUG_RXUNDER_LSB    _u(8)
239 #define PIO_FDEBUG_RXUNDER_ACCESS "WC"
240 // -----------------------------------------------------------------------------
241 // Field       : PIO_FDEBUG_RXSTALL
242 // Description : State machine has stalled on full RX FIFO during a blocking
243 //               PUSH, or an IN with autopush enabled. This flag is also set
244 //               when a nonblocking PUSH to a full FIFO took place, in which
245 //               case the state machine has dropped data. Write 1 to clear.
246 #define PIO_FDEBUG_RXSTALL_RESET  _u(0x0)
247 #define PIO_FDEBUG_RXSTALL_BITS   _u(0x0000000f)
248 #define PIO_FDEBUG_RXSTALL_MSB    _u(3)
249 #define PIO_FDEBUG_RXSTALL_LSB    _u(0)
250 #define PIO_FDEBUG_RXSTALL_ACCESS "WC"
251 // =============================================================================
252 // Register    : PIO_FLEVEL
253 // Description : FIFO levels
254 #define PIO_FLEVEL_OFFSET _u(0x0000000c)
255 #define PIO_FLEVEL_BITS   _u(0xffffffff)
256 #define PIO_FLEVEL_RESET  _u(0x00000000)
257 // -----------------------------------------------------------------------------
258 // Field       : PIO_FLEVEL_RX3
259 #define PIO_FLEVEL_RX3_RESET  _u(0x0)
260 #define PIO_FLEVEL_RX3_BITS   _u(0xf0000000)
261 #define PIO_FLEVEL_RX3_MSB    _u(31)
262 #define PIO_FLEVEL_RX3_LSB    _u(28)
263 #define PIO_FLEVEL_RX3_ACCESS "RO"
264 // -----------------------------------------------------------------------------
265 // Field       : PIO_FLEVEL_TX3
266 #define PIO_FLEVEL_TX3_RESET  _u(0x0)
267 #define PIO_FLEVEL_TX3_BITS   _u(0x0f000000)
268 #define PIO_FLEVEL_TX3_MSB    _u(27)
269 #define PIO_FLEVEL_TX3_LSB    _u(24)
270 #define PIO_FLEVEL_TX3_ACCESS "RO"
271 // -----------------------------------------------------------------------------
272 // Field       : PIO_FLEVEL_RX2
273 #define PIO_FLEVEL_RX2_RESET  _u(0x0)
274 #define PIO_FLEVEL_RX2_BITS   _u(0x00f00000)
275 #define PIO_FLEVEL_RX2_MSB    _u(23)
276 #define PIO_FLEVEL_RX2_LSB    _u(20)
277 #define PIO_FLEVEL_RX2_ACCESS "RO"
278 // -----------------------------------------------------------------------------
279 // Field       : PIO_FLEVEL_TX2
280 #define PIO_FLEVEL_TX2_RESET  _u(0x0)
281 #define PIO_FLEVEL_TX2_BITS   _u(0x000f0000)
282 #define PIO_FLEVEL_TX2_MSB    _u(19)
283 #define PIO_FLEVEL_TX2_LSB    _u(16)
284 #define PIO_FLEVEL_TX2_ACCESS "RO"
285 // -----------------------------------------------------------------------------
286 // Field       : PIO_FLEVEL_RX1
287 #define PIO_FLEVEL_RX1_RESET  _u(0x0)
288 #define PIO_FLEVEL_RX1_BITS   _u(0x0000f000)
289 #define PIO_FLEVEL_RX1_MSB    _u(15)
290 #define PIO_FLEVEL_RX1_LSB    _u(12)
291 #define PIO_FLEVEL_RX1_ACCESS "RO"
292 // -----------------------------------------------------------------------------
293 // Field       : PIO_FLEVEL_TX1
294 #define PIO_FLEVEL_TX1_RESET  _u(0x0)
295 #define PIO_FLEVEL_TX1_BITS   _u(0x00000f00)
296 #define PIO_FLEVEL_TX1_MSB    _u(11)
297 #define PIO_FLEVEL_TX1_LSB    _u(8)
298 #define PIO_FLEVEL_TX1_ACCESS "RO"
299 // -----------------------------------------------------------------------------
300 // Field       : PIO_FLEVEL_RX0
301 #define PIO_FLEVEL_RX0_RESET  _u(0x0)
302 #define PIO_FLEVEL_RX0_BITS   _u(0x000000f0)
303 #define PIO_FLEVEL_RX0_MSB    _u(7)
304 #define PIO_FLEVEL_RX0_LSB    _u(4)
305 #define PIO_FLEVEL_RX0_ACCESS "RO"
306 // -----------------------------------------------------------------------------
307 // Field       : PIO_FLEVEL_TX0
308 #define PIO_FLEVEL_TX0_RESET  _u(0x0)
309 #define PIO_FLEVEL_TX0_BITS   _u(0x0000000f)
310 #define PIO_FLEVEL_TX0_MSB    _u(3)
311 #define PIO_FLEVEL_TX0_LSB    _u(0)
312 #define PIO_FLEVEL_TX0_ACCESS "RO"
313 // =============================================================================
314 // Register    : PIO_TXF0
315 // Description : Direct write access to the TX FIFO for this state machine. Each
316 //               write pushes one word to the FIFO. Attempting to write to a
317 //               full FIFO has no effect on the FIFO state or contents, and sets
318 //               the sticky FDEBUG_TXOVER error flag for this FIFO.
319 #define PIO_TXF0_OFFSET _u(0x00000010)
320 #define PIO_TXF0_BITS   _u(0xffffffff)
321 #define PIO_TXF0_RESET  _u(0x00000000)
322 #define PIO_TXF0_MSB    _u(31)
323 #define PIO_TXF0_LSB    _u(0)
324 #define PIO_TXF0_ACCESS "WF"
325 // =============================================================================
326 // Register    : PIO_TXF1
327 // Description : Direct write access to the TX FIFO for this state machine. Each
328 //               write pushes one word to the FIFO. Attempting to write to a
329 //               full FIFO has no effect on the FIFO state or contents, and sets
330 //               the sticky FDEBUG_TXOVER error flag for this FIFO.
331 #define PIO_TXF1_OFFSET _u(0x00000014)
332 #define PIO_TXF1_BITS   _u(0xffffffff)
333 #define PIO_TXF1_RESET  _u(0x00000000)
334 #define PIO_TXF1_MSB    _u(31)
335 #define PIO_TXF1_LSB    _u(0)
336 #define PIO_TXF1_ACCESS "WF"
337 // =============================================================================
338 // Register    : PIO_TXF2
339 // Description : Direct write access to the TX FIFO for this state machine. Each
340 //               write pushes one word to the FIFO. Attempting to write to a
341 //               full FIFO has no effect on the FIFO state or contents, and sets
342 //               the sticky FDEBUG_TXOVER error flag for this FIFO.
343 #define PIO_TXF2_OFFSET _u(0x00000018)
344 #define PIO_TXF2_BITS   _u(0xffffffff)
345 #define PIO_TXF2_RESET  _u(0x00000000)
346 #define PIO_TXF2_MSB    _u(31)
347 #define PIO_TXF2_LSB    _u(0)
348 #define PIO_TXF2_ACCESS "WF"
349 // =============================================================================
350 // Register    : PIO_TXF3
351 // Description : Direct write access to the TX FIFO for this state machine. Each
352 //               write pushes one word to the FIFO. Attempting to write to a
353 //               full FIFO has no effect on the FIFO state or contents, and sets
354 //               the sticky FDEBUG_TXOVER error flag for this FIFO.
355 #define PIO_TXF3_OFFSET _u(0x0000001c)
356 #define PIO_TXF3_BITS   _u(0xffffffff)
357 #define PIO_TXF3_RESET  _u(0x00000000)
358 #define PIO_TXF3_MSB    _u(31)
359 #define PIO_TXF3_LSB    _u(0)
360 #define PIO_TXF3_ACCESS "WF"
361 // =============================================================================
362 // Register    : PIO_RXF0
363 // Description : Direct read access to the RX FIFO for this state machine. Each
364 //               read pops one word from the FIFO. Attempting to read from an
365 //               empty FIFO has no effect on the FIFO state, and sets the sticky
366 //               FDEBUG_RXUNDER error flag for this FIFO. The data returned to
367 //               the system on a read from an empty FIFO is undefined.
368 #define PIO_RXF0_OFFSET _u(0x00000020)
369 #define PIO_RXF0_BITS   _u(0xffffffff)
370 #define PIO_RXF0_RESET  "-"
371 #define PIO_RXF0_MSB    _u(31)
372 #define PIO_RXF0_LSB    _u(0)
373 #define PIO_RXF0_ACCESS "RF"
374 // =============================================================================
375 // Register    : PIO_RXF1
376 // Description : Direct read access to the RX FIFO for this state machine. Each
377 //               read pops one word from the FIFO. Attempting to read from an
378 //               empty FIFO has no effect on the FIFO state, and sets the sticky
379 //               FDEBUG_RXUNDER error flag for this FIFO. The data returned to
380 //               the system on a read from an empty FIFO is undefined.
381 #define PIO_RXF1_OFFSET _u(0x00000024)
382 #define PIO_RXF1_BITS   _u(0xffffffff)
383 #define PIO_RXF1_RESET  "-"
384 #define PIO_RXF1_MSB    _u(31)
385 #define PIO_RXF1_LSB    _u(0)
386 #define PIO_RXF1_ACCESS "RF"
387 // =============================================================================
388 // Register    : PIO_RXF2
389 // Description : Direct read access to the RX FIFO for this state machine. Each
390 //               read pops one word from the FIFO. Attempting to read from an
391 //               empty FIFO has no effect on the FIFO state, and sets the sticky
392 //               FDEBUG_RXUNDER error flag for this FIFO. The data returned to
393 //               the system on a read from an empty FIFO is undefined.
394 #define PIO_RXF2_OFFSET _u(0x00000028)
395 #define PIO_RXF2_BITS   _u(0xffffffff)
396 #define PIO_RXF2_RESET  "-"
397 #define PIO_RXF2_MSB    _u(31)
398 #define PIO_RXF2_LSB    _u(0)
399 #define PIO_RXF2_ACCESS "RF"
400 // =============================================================================
401 // Register    : PIO_RXF3
402 // Description : Direct read access to the RX FIFO for this state machine. Each
403 //               read pops one word from the FIFO. Attempting to read from an
404 //               empty FIFO has no effect on the FIFO state, and sets the sticky
405 //               FDEBUG_RXUNDER error flag for this FIFO. The data returned to
406 //               the system on a read from an empty FIFO is undefined.
407 #define PIO_RXF3_OFFSET _u(0x0000002c)
408 #define PIO_RXF3_BITS   _u(0xffffffff)
409 #define PIO_RXF3_RESET  "-"
410 #define PIO_RXF3_MSB    _u(31)
411 #define PIO_RXF3_LSB    _u(0)
412 #define PIO_RXF3_ACCESS "RF"
413 // =============================================================================
414 // Register    : PIO_IRQ
415 // Description : State machine IRQ flags register. Write 1 to clear. There are
416 //               eight state machine IRQ flags, which can be set, cleared, and
417 //               waited on by the state machines. There's no fixed association
418 //               between flags and state machines -- any state machine can use
419 //               any flag.
420 //
421 //               Any of the eight flags can be used for timing synchronisation
422 //               between state machines, using IRQ and WAIT instructions. Any
423 //               combination of the eight flags can also routed out to either of
424 //               the two system-level interrupt requests, alongside FIFO status
425 //               interrupts -- see e.g. IRQ0_INTE.
426 #define PIO_IRQ_OFFSET _u(0x00000030)
427 #define PIO_IRQ_BITS   _u(0x000000ff)
428 #define PIO_IRQ_RESET  _u(0x00000000)
429 #define PIO_IRQ_MSB    _u(7)
430 #define PIO_IRQ_LSB    _u(0)
431 #define PIO_IRQ_ACCESS "WC"
432 // =============================================================================
433 // Register    : PIO_IRQ_FORCE
434 // Description : Writing a 1 to each of these bits will forcibly assert the
435 //               corresponding IRQ. Note this is different to the INTF register:
436 //               writing here affects PIO internal state. INTF just asserts the
437 //               processor-facing IRQ signal for testing ISRs, and is not
438 //               visible to the state machines.
439 #define PIO_IRQ_FORCE_OFFSET _u(0x00000034)
440 #define PIO_IRQ_FORCE_BITS   _u(0x000000ff)
441 #define PIO_IRQ_FORCE_RESET  _u(0x00000000)
442 #define PIO_IRQ_FORCE_MSB    _u(7)
443 #define PIO_IRQ_FORCE_LSB    _u(0)
444 #define PIO_IRQ_FORCE_ACCESS "WF"
445 // =============================================================================
446 // Register    : PIO_INPUT_SYNC_BYPASS
447 // Description : There is a 2-flipflop synchronizer on each GPIO input, which
448 //               protects PIO logic from metastabilities. This increases input
449 //               delay, and for fast synchronous IO (e.g. SPI) these
450 //               synchronizers may need to be bypassed. Each bit in this
451 //               register corresponds to one GPIO.
452 //               0 -> input is synchronized (default)
453 //               1 -> synchronizer is bypassed
454 //               If in doubt, leave this register as all zeroes.
455 #define PIO_INPUT_SYNC_BYPASS_OFFSET _u(0x00000038)
456 #define PIO_INPUT_SYNC_BYPASS_BITS   _u(0xffffffff)
457 #define PIO_INPUT_SYNC_BYPASS_RESET  _u(0x00000000)
458 #define PIO_INPUT_SYNC_BYPASS_MSB    _u(31)
459 #define PIO_INPUT_SYNC_BYPASS_LSB    _u(0)
460 #define PIO_INPUT_SYNC_BYPASS_ACCESS "RW"
461 // =============================================================================
462 // Register    : PIO_DBG_PADOUT
463 // Description : Read to sample the pad output values PIO is currently driving
464 //               to the GPIOs. On RP2040 there are 30 GPIOs, so the two most
465 //               significant bits are hardwired to 0.
466 #define PIO_DBG_PADOUT_OFFSET _u(0x0000003c)
467 #define PIO_DBG_PADOUT_BITS   _u(0xffffffff)
468 #define PIO_DBG_PADOUT_RESET  _u(0x00000000)
469 #define PIO_DBG_PADOUT_MSB    _u(31)
470 #define PIO_DBG_PADOUT_LSB    _u(0)
471 #define PIO_DBG_PADOUT_ACCESS "RO"
472 // =============================================================================
473 // Register    : PIO_DBG_PADOE
474 // Description : Read to sample the pad output enables (direction) PIO is
475 //               currently driving to the GPIOs. On RP2040 there are 30 GPIOs,
476 //               so the two most significant bits are hardwired to 0.
477 #define PIO_DBG_PADOE_OFFSET _u(0x00000040)
478 #define PIO_DBG_PADOE_BITS   _u(0xffffffff)
479 #define PIO_DBG_PADOE_RESET  _u(0x00000000)
480 #define PIO_DBG_PADOE_MSB    _u(31)
481 #define PIO_DBG_PADOE_LSB    _u(0)
482 #define PIO_DBG_PADOE_ACCESS "RO"
483 // =============================================================================
484 // Register    : PIO_DBG_CFGINFO
485 // Description : The PIO hardware has some free parameters that may vary between
486 //               chip products.
487 //               These should be provided in the chip datasheet, but are also
488 //               exposed here.
489 #define PIO_DBG_CFGINFO_OFFSET _u(0x00000044)
490 #define PIO_DBG_CFGINFO_BITS   _u(0xf03f0f3f)
491 #define PIO_DBG_CFGINFO_RESET  _u(0x10000000)
492 // -----------------------------------------------------------------------------
493 // Field       : PIO_DBG_CFGINFO_VERSION
494 // Description : Version of the core PIO hardware.
495 //               0x0 -> Version 0 (RP2040)
496 //               0x1 -> Version 1 (RP2350)
497 #define PIO_DBG_CFGINFO_VERSION_RESET  _u(0x1)
498 #define PIO_DBG_CFGINFO_VERSION_BITS   _u(0xf0000000)
499 #define PIO_DBG_CFGINFO_VERSION_MSB    _u(31)
500 #define PIO_DBG_CFGINFO_VERSION_LSB    _u(28)
501 #define PIO_DBG_CFGINFO_VERSION_ACCESS "RO"
502 #define PIO_DBG_CFGINFO_VERSION_VALUE_V0 _u(0x0)
503 #define PIO_DBG_CFGINFO_VERSION_VALUE_V1 _u(0x1)
504 // -----------------------------------------------------------------------------
505 // Field       : PIO_DBG_CFGINFO_IMEM_SIZE
506 // Description : The size of the instruction memory, measured in units of one
507 //               instruction
508 #define PIO_DBG_CFGINFO_IMEM_SIZE_RESET  "-"
509 #define PIO_DBG_CFGINFO_IMEM_SIZE_BITS   _u(0x003f0000)
510 #define PIO_DBG_CFGINFO_IMEM_SIZE_MSB    _u(21)
511 #define PIO_DBG_CFGINFO_IMEM_SIZE_LSB    _u(16)
512 #define PIO_DBG_CFGINFO_IMEM_SIZE_ACCESS "RO"
513 // -----------------------------------------------------------------------------
514 // Field       : PIO_DBG_CFGINFO_SM_COUNT
515 // Description : The number of state machines this PIO instance is equipped
516 //               with.
517 #define PIO_DBG_CFGINFO_SM_COUNT_RESET  "-"
518 #define PIO_DBG_CFGINFO_SM_COUNT_BITS   _u(0x00000f00)
519 #define PIO_DBG_CFGINFO_SM_COUNT_MSB    _u(11)
520 #define PIO_DBG_CFGINFO_SM_COUNT_LSB    _u(8)
521 #define PIO_DBG_CFGINFO_SM_COUNT_ACCESS "RO"
522 // -----------------------------------------------------------------------------
523 // Field       : PIO_DBG_CFGINFO_FIFO_DEPTH
524 // Description : The depth of the state machine TX/RX FIFOs, measured in words.
525 //               Joining fifos via SHIFTCTRL_FJOIN gives one FIFO with double
526 //               this depth.
527 #define PIO_DBG_CFGINFO_FIFO_DEPTH_RESET  "-"
528 #define PIO_DBG_CFGINFO_FIFO_DEPTH_BITS   _u(0x0000003f)
529 #define PIO_DBG_CFGINFO_FIFO_DEPTH_MSB    _u(5)
530 #define PIO_DBG_CFGINFO_FIFO_DEPTH_LSB    _u(0)
531 #define PIO_DBG_CFGINFO_FIFO_DEPTH_ACCESS "RO"
532 // =============================================================================
533 // Register    : PIO_INSTR_MEM0
534 // Description : Write-only access to instruction memory location 0
535 #define PIO_INSTR_MEM0_OFFSET _u(0x00000048)
536 #define PIO_INSTR_MEM0_BITS   _u(0x0000ffff)
537 #define PIO_INSTR_MEM0_RESET  _u(0x00000000)
538 #define PIO_INSTR_MEM0_MSB    _u(15)
539 #define PIO_INSTR_MEM0_LSB    _u(0)
540 #define PIO_INSTR_MEM0_ACCESS "WO"
541 // =============================================================================
542 // Register    : PIO_INSTR_MEM1
543 // Description : Write-only access to instruction memory location 1
544 #define PIO_INSTR_MEM1_OFFSET _u(0x0000004c)
545 #define PIO_INSTR_MEM1_BITS   _u(0x0000ffff)
546 #define PIO_INSTR_MEM1_RESET  _u(0x00000000)
547 #define PIO_INSTR_MEM1_MSB    _u(15)
548 #define PIO_INSTR_MEM1_LSB    _u(0)
549 #define PIO_INSTR_MEM1_ACCESS "WO"
550 // =============================================================================
551 // Register    : PIO_INSTR_MEM2
552 // Description : Write-only access to instruction memory location 2
553 #define PIO_INSTR_MEM2_OFFSET _u(0x00000050)
554 #define PIO_INSTR_MEM2_BITS   _u(0x0000ffff)
555 #define PIO_INSTR_MEM2_RESET  _u(0x00000000)
556 #define PIO_INSTR_MEM2_MSB    _u(15)
557 #define PIO_INSTR_MEM2_LSB    _u(0)
558 #define PIO_INSTR_MEM2_ACCESS "WO"
559 // =============================================================================
560 // Register    : PIO_INSTR_MEM3
561 // Description : Write-only access to instruction memory location 3
562 #define PIO_INSTR_MEM3_OFFSET _u(0x00000054)
563 #define PIO_INSTR_MEM3_BITS   _u(0x0000ffff)
564 #define PIO_INSTR_MEM3_RESET  _u(0x00000000)
565 #define PIO_INSTR_MEM3_MSB    _u(15)
566 #define PIO_INSTR_MEM3_LSB    _u(0)
567 #define PIO_INSTR_MEM3_ACCESS "WO"
568 // =============================================================================
569 // Register    : PIO_INSTR_MEM4
570 // Description : Write-only access to instruction memory location 4
571 #define PIO_INSTR_MEM4_OFFSET _u(0x00000058)
572 #define PIO_INSTR_MEM4_BITS   _u(0x0000ffff)
573 #define PIO_INSTR_MEM4_RESET  _u(0x00000000)
574 #define PIO_INSTR_MEM4_MSB    _u(15)
575 #define PIO_INSTR_MEM4_LSB    _u(0)
576 #define PIO_INSTR_MEM4_ACCESS "WO"
577 // =============================================================================
578 // Register    : PIO_INSTR_MEM5
579 // Description : Write-only access to instruction memory location 5
580 #define PIO_INSTR_MEM5_OFFSET _u(0x0000005c)
581 #define PIO_INSTR_MEM5_BITS   _u(0x0000ffff)
582 #define PIO_INSTR_MEM5_RESET  _u(0x00000000)
583 #define PIO_INSTR_MEM5_MSB    _u(15)
584 #define PIO_INSTR_MEM5_LSB    _u(0)
585 #define PIO_INSTR_MEM5_ACCESS "WO"
586 // =============================================================================
587 // Register    : PIO_INSTR_MEM6
588 // Description : Write-only access to instruction memory location 6
589 #define PIO_INSTR_MEM6_OFFSET _u(0x00000060)
590 #define PIO_INSTR_MEM6_BITS   _u(0x0000ffff)
591 #define PIO_INSTR_MEM6_RESET  _u(0x00000000)
592 #define PIO_INSTR_MEM6_MSB    _u(15)
593 #define PIO_INSTR_MEM6_LSB    _u(0)
594 #define PIO_INSTR_MEM6_ACCESS "WO"
595 // =============================================================================
596 // Register    : PIO_INSTR_MEM7
597 // Description : Write-only access to instruction memory location 7
598 #define PIO_INSTR_MEM7_OFFSET _u(0x00000064)
599 #define PIO_INSTR_MEM7_BITS   _u(0x0000ffff)
600 #define PIO_INSTR_MEM7_RESET  _u(0x00000000)
601 #define PIO_INSTR_MEM7_MSB    _u(15)
602 #define PIO_INSTR_MEM7_LSB    _u(0)
603 #define PIO_INSTR_MEM7_ACCESS "WO"
604 // =============================================================================
605 // Register    : PIO_INSTR_MEM8
606 // Description : Write-only access to instruction memory location 8
607 #define PIO_INSTR_MEM8_OFFSET _u(0x00000068)
608 #define PIO_INSTR_MEM8_BITS   _u(0x0000ffff)
609 #define PIO_INSTR_MEM8_RESET  _u(0x00000000)
610 #define PIO_INSTR_MEM8_MSB    _u(15)
611 #define PIO_INSTR_MEM8_LSB    _u(0)
612 #define PIO_INSTR_MEM8_ACCESS "WO"
613 // =============================================================================
614 // Register    : PIO_INSTR_MEM9
615 // Description : Write-only access to instruction memory location 9
616 #define PIO_INSTR_MEM9_OFFSET _u(0x0000006c)
617 #define PIO_INSTR_MEM9_BITS   _u(0x0000ffff)
618 #define PIO_INSTR_MEM9_RESET  _u(0x00000000)
619 #define PIO_INSTR_MEM9_MSB    _u(15)
620 #define PIO_INSTR_MEM9_LSB    _u(0)
621 #define PIO_INSTR_MEM9_ACCESS "WO"
622 // =============================================================================
623 // Register    : PIO_INSTR_MEM10
624 // Description : Write-only access to instruction memory location 10
625 #define PIO_INSTR_MEM10_OFFSET _u(0x00000070)
626 #define PIO_INSTR_MEM10_BITS   _u(0x0000ffff)
627 #define PIO_INSTR_MEM10_RESET  _u(0x00000000)
628 #define PIO_INSTR_MEM10_MSB    _u(15)
629 #define PIO_INSTR_MEM10_LSB    _u(0)
630 #define PIO_INSTR_MEM10_ACCESS "WO"
631 // =============================================================================
632 // Register    : PIO_INSTR_MEM11
633 // Description : Write-only access to instruction memory location 11
634 #define PIO_INSTR_MEM11_OFFSET _u(0x00000074)
635 #define PIO_INSTR_MEM11_BITS   _u(0x0000ffff)
636 #define PIO_INSTR_MEM11_RESET  _u(0x00000000)
637 #define PIO_INSTR_MEM11_MSB    _u(15)
638 #define PIO_INSTR_MEM11_LSB    _u(0)
639 #define PIO_INSTR_MEM11_ACCESS "WO"
640 // =============================================================================
641 // Register    : PIO_INSTR_MEM12
642 // Description : Write-only access to instruction memory location 12
643 #define PIO_INSTR_MEM12_OFFSET _u(0x00000078)
644 #define PIO_INSTR_MEM12_BITS   _u(0x0000ffff)
645 #define PIO_INSTR_MEM12_RESET  _u(0x00000000)
646 #define PIO_INSTR_MEM12_MSB    _u(15)
647 #define PIO_INSTR_MEM12_LSB    _u(0)
648 #define PIO_INSTR_MEM12_ACCESS "WO"
649 // =============================================================================
650 // Register    : PIO_INSTR_MEM13
651 // Description : Write-only access to instruction memory location 13
652 #define PIO_INSTR_MEM13_OFFSET _u(0x0000007c)
653 #define PIO_INSTR_MEM13_BITS   _u(0x0000ffff)
654 #define PIO_INSTR_MEM13_RESET  _u(0x00000000)
655 #define PIO_INSTR_MEM13_MSB    _u(15)
656 #define PIO_INSTR_MEM13_LSB    _u(0)
657 #define PIO_INSTR_MEM13_ACCESS "WO"
658 // =============================================================================
659 // Register    : PIO_INSTR_MEM14
660 // Description : Write-only access to instruction memory location 14
661 #define PIO_INSTR_MEM14_OFFSET _u(0x00000080)
662 #define PIO_INSTR_MEM14_BITS   _u(0x0000ffff)
663 #define PIO_INSTR_MEM14_RESET  _u(0x00000000)
664 #define PIO_INSTR_MEM14_MSB    _u(15)
665 #define PIO_INSTR_MEM14_LSB    _u(0)
666 #define PIO_INSTR_MEM14_ACCESS "WO"
667 // =============================================================================
668 // Register    : PIO_INSTR_MEM15
669 // Description : Write-only access to instruction memory location 15
670 #define PIO_INSTR_MEM15_OFFSET _u(0x00000084)
671 #define PIO_INSTR_MEM15_BITS   _u(0x0000ffff)
672 #define PIO_INSTR_MEM15_RESET  _u(0x00000000)
673 #define PIO_INSTR_MEM15_MSB    _u(15)
674 #define PIO_INSTR_MEM15_LSB    _u(0)
675 #define PIO_INSTR_MEM15_ACCESS "WO"
676 // =============================================================================
677 // Register    : PIO_INSTR_MEM16
678 // Description : Write-only access to instruction memory location 16
679 #define PIO_INSTR_MEM16_OFFSET _u(0x00000088)
680 #define PIO_INSTR_MEM16_BITS   _u(0x0000ffff)
681 #define PIO_INSTR_MEM16_RESET  _u(0x00000000)
682 #define PIO_INSTR_MEM16_MSB    _u(15)
683 #define PIO_INSTR_MEM16_LSB    _u(0)
684 #define PIO_INSTR_MEM16_ACCESS "WO"
685 // =============================================================================
686 // Register    : PIO_INSTR_MEM17
687 // Description : Write-only access to instruction memory location 17
688 #define PIO_INSTR_MEM17_OFFSET _u(0x0000008c)
689 #define PIO_INSTR_MEM17_BITS   _u(0x0000ffff)
690 #define PIO_INSTR_MEM17_RESET  _u(0x00000000)
691 #define PIO_INSTR_MEM17_MSB    _u(15)
692 #define PIO_INSTR_MEM17_LSB    _u(0)
693 #define PIO_INSTR_MEM17_ACCESS "WO"
694 // =============================================================================
695 // Register    : PIO_INSTR_MEM18
696 // Description : Write-only access to instruction memory location 18
697 #define PIO_INSTR_MEM18_OFFSET _u(0x00000090)
698 #define PIO_INSTR_MEM18_BITS   _u(0x0000ffff)
699 #define PIO_INSTR_MEM18_RESET  _u(0x00000000)
700 #define PIO_INSTR_MEM18_MSB    _u(15)
701 #define PIO_INSTR_MEM18_LSB    _u(0)
702 #define PIO_INSTR_MEM18_ACCESS "WO"
703 // =============================================================================
704 // Register    : PIO_INSTR_MEM19
705 // Description : Write-only access to instruction memory location 19
706 #define PIO_INSTR_MEM19_OFFSET _u(0x00000094)
707 #define PIO_INSTR_MEM19_BITS   _u(0x0000ffff)
708 #define PIO_INSTR_MEM19_RESET  _u(0x00000000)
709 #define PIO_INSTR_MEM19_MSB    _u(15)
710 #define PIO_INSTR_MEM19_LSB    _u(0)
711 #define PIO_INSTR_MEM19_ACCESS "WO"
712 // =============================================================================
713 // Register    : PIO_INSTR_MEM20
714 // Description : Write-only access to instruction memory location 20
715 #define PIO_INSTR_MEM20_OFFSET _u(0x00000098)
716 #define PIO_INSTR_MEM20_BITS   _u(0x0000ffff)
717 #define PIO_INSTR_MEM20_RESET  _u(0x00000000)
718 #define PIO_INSTR_MEM20_MSB    _u(15)
719 #define PIO_INSTR_MEM20_LSB    _u(0)
720 #define PIO_INSTR_MEM20_ACCESS "WO"
721 // =============================================================================
722 // Register    : PIO_INSTR_MEM21
723 // Description : Write-only access to instruction memory location 21
724 #define PIO_INSTR_MEM21_OFFSET _u(0x0000009c)
725 #define PIO_INSTR_MEM21_BITS   _u(0x0000ffff)
726 #define PIO_INSTR_MEM21_RESET  _u(0x00000000)
727 #define PIO_INSTR_MEM21_MSB    _u(15)
728 #define PIO_INSTR_MEM21_LSB    _u(0)
729 #define PIO_INSTR_MEM21_ACCESS "WO"
730 // =============================================================================
731 // Register    : PIO_INSTR_MEM22
732 // Description : Write-only access to instruction memory location 22
733 #define PIO_INSTR_MEM22_OFFSET _u(0x000000a0)
734 #define PIO_INSTR_MEM22_BITS   _u(0x0000ffff)
735 #define PIO_INSTR_MEM22_RESET  _u(0x00000000)
736 #define PIO_INSTR_MEM22_MSB    _u(15)
737 #define PIO_INSTR_MEM22_LSB    _u(0)
738 #define PIO_INSTR_MEM22_ACCESS "WO"
739 // =============================================================================
740 // Register    : PIO_INSTR_MEM23
741 // Description : Write-only access to instruction memory location 23
742 #define PIO_INSTR_MEM23_OFFSET _u(0x000000a4)
743 #define PIO_INSTR_MEM23_BITS   _u(0x0000ffff)
744 #define PIO_INSTR_MEM23_RESET  _u(0x00000000)
745 #define PIO_INSTR_MEM23_MSB    _u(15)
746 #define PIO_INSTR_MEM23_LSB    _u(0)
747 #define PIO_INSTR_MEM23_ACCESS "WO"
748 // =============================================================================
749 // Register    : PIO_INSTR_MEM24
750 // Description : Write-only access to instruction memory location 24
751 #define PIO_INSTR_MEM24_OFFSET _u(0x000000a8)
752 #define PIO_INSTR_MEM24_BITS   _u(0x0000ffff)
753 #define PIO_INSTR_MEM24_RESET  _u(0x00000000)
754 #define PIO_INSTR_MEM24_MSB    _u(15)
755 #define PIO_INSTR_MEM24_LSB    _u(0)
756 #define PIO_INSTR_MEM24_ACCESS "WO"
757 // =============================================================================
758 // Register    : PIO_INSTR_MEM25
759 // Description : Write-only access to instruction memory location 25
760 #define PIO_INSTR_MEM25_OFFSET _u(0x000000ac)
761 #define PIO_INSTR_MEM25_BITS   _u(0x0000ffff)
762 #define PIO_INSTR_MEM25_RESET  _u(0x00000000)
763 #define PIO_INSTR_MEM25_MSB    _u(15)
764 #define PIO_INSTR_MEM25_LSB    _u(0)
765 #define PIO_INSTR_MEM25_ACCESS "WO"
766 // =============================================================================
767 // Register    : PIO_INSTR_MEM26
768 // Description : Write-only access to instruction memory location 26
769 #define PIO_INSTR_MEM26_OFFSET _u(0x000000b0)
770 #define PIO_INSTR_MEM26_BITS   _u(0x0000ffff)
771 #define PIO_INSTR_MEM26_RESET  _u(0x00000000)
772 #define PIO_INSTR_MEM26_MSB    _u(15)
773 #define PIO_INSTR_MEM26_LSB    _u(0)
774 #define PIO_INSTR_MEM26_ACCESS "WO"
775 // =============================================================================
776 // Register    : PIO_INSTR_MEM27
777 // Description : Write-only access to instruction memory location 27
778 #define PIO_INSTR_MEM27_OFFSET _u(0x000000b4)
779 #define PIO_INSTR_MEM27_BITS   _u(0x0000ffff)
780 #define PIO_INSTR_MEM27_RESET  _u(0x00000000)
781 #define PIO_INSTR_MEM27_MSB    _u(15)
782 #define PIO_INSTR_MEM27_LSB    _u(0)
783 #define PIO_INSTR_MEM27_ACCESS "WO"
784 // =============================================================================
785 // Register    : PIO_INSTR_MEM28
786 // Description : Write-only access to instruction memory location 28
787 #define PIO_INSTR_MEM28_OFFSET _u(0x000000b8)
788 #define PIO_INSTR_MEM28_BITS   _u(0x0000ffff)
789 #define PIO_INSTR_MEM28_RESET  _u(0x00000000)
790 #define PIO_INSTR_MEM28_MSB    _u(15)
791 #define PIO_INSTR_MEM28_LSB    _u(0)
792 #define PIO_INSTR_MEM28_ACCESS "WO"
793 // =============================================================================
794 // Register    : PIO_INSTR_MEM29
795 // Description : Write-only access to instruction memory location 29
796 #define PIO_INSTR_MEM29_OFFSET _u(0x000000bc)
797 #define PIO_INSTR_MEM29_BITS   _u(0x0000ffff)
798 #define PIO_INSTR_MEM29_RESET  _u(0x00000000)
799 #define PIO_INSTR_MEM29_MSB    _u(15)
800 #define PIO_INSTR_MEM29_LSB    _u(0)
801 #define PIO_INSTR_MEM29_ACCESS "WO"
802 // =============================================================================
803 // Register    : PIO_INSTR_MEM30
804 // Description : Write-only access to instruction memory location 30
805 #define PIO_INSTR_MEM30_OFFSET _u(0x000000c0)
806 #define PIO_INSTR_MEM30_BITS   _u(0x0000ffff)
807 #define PIO_INSTR_MEM30_RESET  _u(0x00000000)
808 #define PIO_INSTR_MEM30_MSB    _u(15)
809 #define PIO_INSTR_MEM30_LSB    _u(0)
810 #define PIO_INSTR_MEM30_ACCESS "WO"
811 // =============================================================================
812 // Register    : PIO_INSTR_MEM31
813 // Description : Write-only access to instruction memory location 31
814 #define PIO_INSTR_MEM31_OFFSET _u(0x000000c4)
815 #define PIO_INSTR_MEM31_BITS   _u(0x0000ffff)
816 #define PIO_INSTR_MEM31_RESET  _u(0x00000000)
817 #define PIO_INSTR_MEM31_MSB    _u(15)
818 #define PIO_INSTR_MEM31_LSB    _u(0)
819 #define PIO_INSTR_MEM31_ACCESS "WO"
820 // =============================================================================
821 // Register    : PIO_SM0_CLKDIV
822 // Description : Clock divisor register for state machine 0
823 //               Frequency = clock freq / (CLKDIV_INT + CLKDIV_FRAC / 256)
824 #define PIO_SM0_CLKDIV_OFFSET _u(0x000000c8)
825 #define PIO_SM0_CLKDIV_BITS   _u(0xffffff00)
826 #define PIO_SM0_CLKDIV_RESET  _u(0x00010000)
827 // -----------------------------------------------------------------------------
828 // Field       : PIO_SM0_CLKDIV_INT
829 // Description : Effective frequency is sysclk/(int + frac/256).
830 //               Value of 0 is interpreted as 65536. If INT is 0, FRAC must also
831 //               be 0.
832 #define PIO_SM0_CLKDIV_INT_RESET  _u(0x0001)
833 #define PIO_SM0_CLKDIV_INT_BITS   _u(0xffff0000)
834 #define PIO_SM0_CLKDIV_INT_MSB    _u(31)
835 #define PIO_SM0_CLKDIV_INT_LSB    _u(16)
836 #define PIO_SM0_CLKDIV_INT_ACCESS "RW"
837 // -----------------------------------------------------------------------------
838 // Field       : PIO_SM0_CLKDIV_FRAC
839 // Description : Fractional part of clock divisor
840 #define PIO_SM0_CLKDIV_FRAC_RESET  _u(0x00)
841 #define PIO_SM0_CLKDIV_FRAC_BITS   _u(0x0000ff00)
842 #define PIO_SM0_CLKDIV_FRAC_MSB    _u(15)
843 #define PIO_SM0_CLKDIV_FRAC_LSB    _u(8)
844 #define PIO_SM0_CLKDIV_FRAC_ACCESS "RW"
845 // =============================================================================
846 // Register    : PIO_SM0_EXECCTRL
847 // Description : Execution/behavioural settings for state machine 0
848 #define PIO_SM0_EXECCTRL_OFFSET _u(0x000000cc)
849 #define PIO_SM0_EXECCTRL_BITS   _u(0xffffffff)
850 #define PIO_SM0_EXECCTRL_RESET  _u(0x0001f000)
851 // -----------------------------------------------------------------------------
852 // Field       : PIO_SM0_EXECCTRL_EXEC_STALLED
853 // Description : If 1, an instruction written to SMx_INSTR is stalled, and
854 //               latched by the state machine. Will clear to 0 once this
855 //               instruction completes.
856 #define PIO_SM0_EXECCTRL_EXEC_STALLED_RESET  _u(0x0)
857 #define PIO_SM0_EXECCTRL_EXEC_STALLED_BITS   _u(0x80000000)
858 #define PIO_SM0_EXECCTRL_EXEC_STALLED_MSB    _u(31)
859 #define PIO_SM0_EXECCTRL_EXEC_STALLED_LSB    _u(31)
860 #define PIO_SM0_EXECCTRL_EXEC_STALLED_ACCESS "RO"
861 // -----------------------------------------------------------------------------
862 // Field       : PIO_SM0_EXECCTRL_SIDE_EN
863 // Description : If 1, the MSB of the Delay/Side-set instruction field is used
864 //               as side-set enable, rather than a side-set data bit. This
865 //               allows instructions to perform side-set optionally, rather than
866 //               on every instruction, but the maximum possible side-set width
867 //               is reduced from 5 to 4. Note that the value of
868 //               PINCTRL_SIDESET_COUNT is inclusive of this enable bit.
869 #define PIO_SM0_EXECCTRL_SIDE_EN_RESET  _u(0x0)
870 #define PIO_SM0_EXECCTRL_SIDE_EN_BITS   _u(0x40000000)
871 #define PIO_SM0_EXECCTRL_SIDE_EN_MSB    _u(30)
872 #define PIO_SM0_EXECCTRL_SIDE_EN_LSB    _u(30)
873 #define PIO_SM0_EXECCTRL_SIDE_EN_ACCESS "RW"
874 // -----------------------------------------------------------------------------
875 // Field       : PIO_SM0_EXECCTRL_SIDE_PINDIR
876 // Description : If 1, side-set data is asserted to pin directions, instead of
877 //               pin values
878 #define PIO_SM0_EXECCTRL_SIDE_PINDIR_RESET  _u(0x0)
879 #define PIO_SM0_EXECCTRL_SIDE_PINDIR_BITS   _u(0x20000000)
880 #define PIO_SM0_EXECCTRL_SIDE_PINDIR_MSB    _u(29)
881 #define PIO_SM0_EXECCTRL_SIDE_PINDIR_LSB    _u(29)
882 #define PIO_SM0_EXECCTRL_SIDE_PINDIR_ACCESS "RW"
883 // -----------------------------------------------------------------------------
884 // Field       : PIO_SM0_EXECCTRL_JMP_PIN
885 // Description : The GPIO number to use as condition for JMP PIN. Unaffected by
886 //               input mapping.
887 #define PIO_SM0_EXECCTRL_JMP_PIN_RESET  _u(0x00)
888 #define PIO_SM0_EXECCTRL_JMP_PIN_BITS   _u(0x1f000000)
889 #define PIO_SM0_EXECCTRL_JMP_PIN_MSB    _u(28)
890 #define PIO_SM0_EXECCTRL_JMP_PIN_LSB    _u(24)
891 #define PIO_SM0_EXECCTRL_JMP_PIN_ACCESS "RW"
892 // -----------------------------------------------------------------------------
893 // Field       : PIO_SM0_EXECCTRL_OUT_EN_SEL
894 // Description : Which data bit to use for inline OUT enable
895 #define PIO_SM0_EXECCTRL_OUT_EN_SEL_RESET  _u(0x00)
896 #define PIO_SM0_EXECCTRL_OUT_EN_SEL_BITS   _u(0x00f80000)
897 #define PIO_SM0_EXECCTRL_OUT_EN_SEL_MSB    _u(23)
898 #define PIO_SM0_EXECCTRL_OUT_EN_SEL_LSB    _u(19)
899 #define PIO_SM0_EXECCTRL_OUT_EN_SEL_ACCESS "RW"
900 // -----------------------------------------------------------------------------
901 // Field       : PIO_SM0_EXECCTRL_INLINE_OUT_EN
902 // Description : If 1, use a bit of OUT data as an auxiliary write enable
903 //               When used in conjunction with OUT_STICKY, writes with an enable
904 //               of 0 will
905 //               deassert the latest pin write. This can create useful
906 //               masking/override behaviour
907 //               due to the priority ordering of state machine pin writes (SM0 <
908 //               SM1 < ...)
909 #define PIO_SM0_EXECCTRL_INLINE_OUT_EN_RESET  _u(0x0)
910 #define PIO_SM0_EXECCTRL_INLINE_OUT_EN_BITS   _u(0x00040000)
911 #define PIO_SM0_EXECCTRL_INLINE_OUT_EN_MSB    _u(18)
912 #define PIO_SM0_EXECCTRL_INLINE_OUT_EN_LSB    _u(18)
913 #define PIO_SM0_EXECCTRL_INLINE_OUT_EN_ACCESS "RW"
914 // -----------------------------------------------------------------------------
915 // Field       : PIO_SM0_EXECCTRL_OUT_STICKY
916 // Description : Continuously assert the most recent OUT/SET to the pins
917 #define PIO_SM0_EXECCTRL_OUT_STICKY_RESET  _u(0x0)
918 #define PIO_SM0_EXECCTRL_OUT_STICKY_BITS   _u(0x00020000)
919 #define PIO_SM0_EXECCTRL_OUT_STICKY_MSB    _u(17)
920 #define PIO_SM0_EXECCTRL_OUT_STICKY_LSB    _u(17)
921 #define PIO_SM0_EXECCTRL_OUT_STICKY_ACCESS "RW"
922 // -----------------------------------------------------------------------------
923 // Field       : PIO_SM0_EXECCTRL_WRAP_TOP
924 // Description : After reaching this address, execution is wrapped to
925 //               wrap_bottom.
926 //               If the instruction is a jump, and the jump condition is true,
927 //               the jump takes priority.
928 #define PIO_SM0_EXECCTRL_WRAP_TOP_RESET  _u(0x1f)
929 #define PIO_SM0_EXECCTRL_WRAP_TOP_BITS   _u(0x0001f000)
930 #define PIO_SM0_EXECCTRL_WRAP_TOP_MSB    _u(16)
931 #define PIO_SM0_EXECCTRL_WRAP_TOP_LSB    _u(12)
932 #define PIO_SM0_EXECCTRL_WRAP_TOP_ACCESS "RW"
933 // -----------------------------------------------------------------------------
934 // Field       : PIO_SM0_EXECCTRL_WRAP_BOTTOM
935 // Description : After reaching wrap_top, execution is wrapped to this address.
936 #define PIO_SM0_EXECCTRL_WRAP_BOTTOM_RESET  _u(0x00)
937 #define PIO_SM0_EXECCTRL_WRAP_BOTTOM_BITS   _u(0x00000f80)
938 #define PIO_SM0_EXECCTRL_WRAP_BOTTOM_MSB    _u(11)
939 #define PIO_SM0_EXECCTRL_WRAP_BOTTOM_LSB    _u(7)
940 #define PIO_SM0_EXECCTRL_WRAP_BOTTOM_ACCESS "RW"
941 // -----------------------------------------------------------------------------
942 // Field       : PIO_SM0_EXECCTRL_STATUS_SEL
943 // Description : Comparison used for the MOV x, STATUS instruction.
944 //               0x0 -> All-ones if TX FIFO level < N, otherwise all-zeroes
945 //               0x1 -> All-ones if RX FIFO level < N, otherwise all-zeroes
946 //               0x2 -> All-ones if the indexed IRQ flag is raised, otherwise all-zeroes
947 #define PIO_SM0_EXECCTRL_STATUS_SEL_RESET  _u(0x0)
948 #define PIO_SM0_EXECCTRL_STATUS_SEL_BITS   _u(0x00000060)
949 #define PIO_SM0_EXECCTRL_STATUS_SEL_MSB    _u(6)
950 #define PIO_SM0_EXECCTRL_STATUS_SEL_LSB    _u(5)
951 #define PIO_SM0_EXECCTRL_STATUS_SEL_ACCESS "RW"
952 #define PIO_SM0_EXECCTRL_STATUS_SEL_VALUE_TXLEVEL _u(0x0)
953 #define PIO_SM0_EXECCTRL_STATUS_SEL_VALUE_RXLEVEL _u(0x1)
954 #define PIO_SM0_EXECCTRL_STATUS_SEL_VALUE_IRQ _u(0x2)
955 // -----------------------------------------------------------------------------
956 // Field       : PIO_SM0_EXECCTRL_STATUS_N
957 // Description : Comparison level or IRQ index for the MOV x, STATUS
958 //               instruction.
959 //
960 //               If STATUS_SEL is TXLEVEL or RXLEVEL, then values of STATUS_N
961 //               greater than the current FIFO depth are reserved, and have
962 //               undefined behaviour.
963 //               0x00 -> Index 0-7 of an IRQ flag in this PIO block
964 //               0x08 -> Index 0-7 of an IRQ flag in the next lower-numbered PIO block
965 //               0x10 -> Index 0-7 of an IRQ flag in the next higher-numbered PIO block
966 #define PIO_SM0_EXECCTRL_STATUS_N_RESET  _u(0x00)
967 #define PIO_SM0_EXECCTRL_STATUS_N_BITS   _u(0x0000001f)
968 #define PIO_SM0_EXECCTRL_STATUS_N_MSB    _u(4)
969 #define PIO_SM0_EXECCTRL_STATUS_N_LSB    _u(0)
970 #define PIO_SM0_EXECCTRL_STATUS_N_ACCESS "RW"
971 #define PIO_SM0_EXECCTRL_STATUS_N_VALUE_IRQ _u(0x00)
972 #define PIO_SM0_EXECCTRL_STATUS_N_VALUE_IRQ_PREVPIO _u(0x08)
973 #define PIO_SM0_EXECCTRL_STATUS_N_VALUE_IRQ_NEXTPIO _u(0x10)
974 // =============================================================================
975 // Register    : PIO_SM0_SHIFTCTRL
976 // Description : Control behaviour of the input/output shift registers for state
977 //               machine 0
978 #define PIO_SM0_SHIFTCTRL_OFFSET _u(0x000000d0)
979 #define PIO_SM0_SHIFTCTRL_BITS   _u(0xffffc01f)
980 #define PIO_SM0_SHIFTCTRL_RESET  _u(0x000c0000)
981 // -----------------------------------------------------------------------------
982 // Field       : PIO_SM0_SHIFTCTRL_FJOIN_RX
983 // Description : When 1, RX FIFO steals the TX FIFO's storage, and becomes twice
984 //               as deep.
985 //               TX FIFO is disabled as a result (always reads as both full and
986 //               empty).
987 //               FIFOs are flushed when this bit is changed.
988 #define PIO_SM0_SHIFTCTRL_FJOIN_RX_RESET  _u(0x0)
989 #define PIO_SM0_SHIFTCTRL_FJOIN_RX_BITS   _u(0x80000000)
990 #define PIO_SM0_SHIFTCTRL_FJOIN_RX_MSB    _u(31)
991 #define PIO_SM0_SHIFTCTRL_FJOIN_RX_LSB    _u(31)
992 #define PIO_SM0_SHIFTCTRL_FJOIN_RX_ACCESS "RW"
993 // -----------------------------------------------------------------------------
994 // Field       : PIO_SM0_SHIFTCTRL_FJOIN_TX
995 // Description : When 1, TX FIFO steals the RX FIFO's storage, and becomes twice
996 //               as deep.
997 //               RX FIFO is disabled as a result (always reads as both full and
998 //               empty).
999 //               FIFOs are flushed when this bit is changed.
1000 #define PIO_SM0_SHIFTCTRL_FJOIN_TX_RESET  _u(0x0)
1001 #define PIO_SM0_SHIFTCTRL_FJOIN_TX_BITS   _u(0x40000000)
1002 #define PIO_SM0_SHIFTCTRL_FJOIN_TX_MSB    _u(30)
1003 #define PIO_SM0_SHIFTCTRL_FJOIN_TX_LSB    _u(30)
1004 #define PIO_SM0_SHIFTCTRL_FJOIN_TX_ACCESS "RW"
1005 // -----------------------------------------------------------------------------
1006 // Field       : PIO_SM0_SHIFTCTRL_PULL_THRESH
1007 // Description : Number of bits shifted out of OSR before autopull, or
1008 //               conditional pull (PULL IFEMPTY), will take place.
1009 //               Write 0 for value of 32.
1010 #define PIO_SM0_SHIFTCTRL_PULL_THRESH_RESET  _u(0x00)
1011 #define PIO_SM0_SHIFTCTRL_PULL_THRESH_BITS   _u(0x3e000000)
1012 #define PIO_SM0_SHIFTCTRL_PULL_THRESH_MSB    _u(29)
1013 #define PIO_SM0_SHIFTCTRL_PULL_THRESH_LSB    _u(25)
1014 #define PIO_SM0_SHIFTCTRL_PULL_THRESH_ACCESS "RW"
1015 // -----------------------------------------------------------------------------
1016 // Field       : PIO_SM0_SHIFTCTRL_PUSH_THRESH
1017 // Description : Number of bits shifted into ISR before autopush, or conditional
1018 //               push (PUSH IFFULL), will take place.
1019 //               Write 0 for value of 32.
1020 #define PIO_SM0_SHIFTCTRL_PUSH_THRESH_RESET  _u(0x00)
1021 #define PIO_SM0_SHIFTCTRL_PUSH_THRESH_BITS   _u(0x01f00000)
1022 #define PIO_SM0_SHIFTCTRL_PUSH_THRESH_MSB    _u(24)
1023 #define PIO_SM0_SHIFTCTRL_PUSH_THRESH_LSB    _u(20)
1024 #define PIO_SM0_SHIFTCTRL_PUSH_THRESH_ACCESS "RW"
1025 // -----------------------------------------------------------------------------
1026 // Field       : PIO_SM0_SHIFTCTRL_OUT_SHIFTDIR
1027 // Description : 1 = shift out of output shift register to right. 0 = to left.
1028 #define PIO_SM0_SHIFTCTRL_OUT_SHIFTDIR_RESET  _u(0x1)
1029 #define PIO_SM0_SHIFTCTRL_OUT_SHIFTDIR_BITS   _u(0x00080000)
1030 #define PIO_SM0_SHIFTCTRL_OUT_SHIFTDIR_MSB    _u(19)
1031 #define PIO_SM0_SHIFTCTRL_OUT_SHIFTDIR_LSB    _u(19)
1032 #define PIO_SM0_SHIFTCTRL_OUT_SHIFTDIR_ACCESS "RW"
1033 // -----------------------------------------------------------------------------
1034 // Field       : PIO_SM0_SHIFTCTRL_IN_SHIFTDIR
1035 // Description : 1 = shift input shift register to right (data enters from
1036 //               left). 0 = to left.
1037 #define PIO_SM0_SHIFTCTRL_IN_SHIFTDIR_RESET  _u(0x1)
1038 #define PIO_SM0_SHIFTCTRL_IN_SHIFTDIR_BITS   _u(0x00040000)
1039 #define PIO_SM0_SHIFTCTRL_IN_SHIFTDIR_MSB    _u(18)
1040 #define PIO_SM0_SHIFTCTRL_IN_SHIFTDIR_LSB    _u(18)
1041 #define PIO_SM0_SHIFTCTRL_IN_SHIFTDIR_ACCESS "RW"
1042 // -----------------------------------------------------------------------------
1043 // Field       : PIO_SM0_SHIFTCTRL_AUTOPULL
1044 // Description : Pull automatically when the output shift register is emptied,
1045 //               i.e. on or following an OUT instruction which causes the output
1046 //               shift counter to reach or exceed PULL_THRESH.
1047 #define PIO_SM0_SHIFTCTRL_AUTOPULL_RESET  _u(0x0)
1048 #define PIO_SM0_SHIFTCTRL_AUTOPULL_BITS   _u(0x00020000)
1049 #define PIO_SM0_SHIFTCTRL_AUTOPULL_MSB    _u(17)
1050 #define PIO_SM0_SHIFTCTRL_AUTOPULL_LSB    _u(17)
1051 #define PIO_SM0_SHIFTCTRL_AUTOPULL_ACCESS "RW"
1052 // -----------------------------------------------------------------------------
1053 // Field       : PIO_SM0_SHIFTCTRL_AUTOPUSH
1054 // Description : Push automatically when the input shift register is filled,
1055 //               i.e. on an IN instruction which causes the input shift counter
1056 //               to reach or exceed PUSH_THRESH.
1057 #define PIO_SM0_SHIFTCTRL_AUTOPUSH_RESET  _u(0x0)
1058 #define PIO_SM0_SHIFTCTRL_AUTOPUSH_BITS   _u(0x00010000)
1059 #define PIO_SM0_SHIFTCTRL_AUTOPUSH_MSB    _u(16)
1060 #define PIO_SM0_SHIFTCTRL_AUTOPUSH_LSB    _u(16)
1061 #define PIO_SM0_SHIFTCTRL_AUTOPUSH_ACCESS "RW"
1062 // -----------------------------------------------------------------------------
1063 // Field       : PIO_SM0_SHIFTCTRL_FJOIN_RX_PUT
1064 // Description : If 1, disable this state machine's RX FIFO, make its storage
1065 //               available for random write access by the state machine (using
1066 //               the `put` instruction) and, unless FJOIN_RX_GET is also set,
1067 //               random read access by the processor (through the RXFx_PUTGETy
1068 //               registers).
1069 //
1070 //               If FJOIN_RX_PUT and FJOIN_RX_GET are both set, then the RX
1071 //               FIFO's registers can be randomly read/written by the state
1072 //               machine, but are completely inaccessible to the processor.
1073 //
1074 //               Setting this bit will clear the FJOIN_TX and FJOIN_RX bits.
1075 #define PIO_SM0_SHIFTCTRL_FJOIN_RX_PUT_RESET  _u(0x0)
1076 #define PIO_SM0_SHIFTCTRL_FJOIN_RX_PUT_BITS   _u(0x00008000)
1077 #define PIO_SM0_SHIFTCTRL_FJOIN_RX_PUT_MSB    _u(15)
1078 #define PIO_SM0_SHIFTCTRL_FJOIN_RX_PUT_LSB    _u(15)
1079 #define PIO_SM0_SHIFTCTRL_FJOIN_RX_PUT_ACCESS "RW"
1080 // -----------------------------------------------------------------------------
1081 // Field       : PIO_SM0_SHIFTCTRL_FJOIN_RX_GET
1082 // Description : If 1, disable this state machine's RX FIFO, make its storage
1083 //               available for random read access by the state machine (using
1084 //               the `get` instruction) and, unless FJOIN_RX_PUT is also set,
1085 //               random write access by the processor (through the RXFx_PUTGETy
1086 //               registers).
1087 //
1088 //               If FJOIN_RX_PUT and FJOIN_RX_GET are both set, then the RX
1089 //               FIFO's registers can be randomly read/written by the state
1090 //               machine, but are completely inaccessible to the processor.
1091 //
1092 //               Setting this bit will clear the FJOIN_TX and FJOIN_RX bits.
1093 #define PIO_SM0_SHIFTCTRL_FJOIN_RX_GET_RESET  _u(0x0)
1094 #define PIO_SM0_SHIFTCTRL_FJOIN_RX_GET_BITS   _u(0x00004000)
1095 #define PIO_SM0_SHIFTCTRL_FJOIN_RX_GET_MSB    _u(14)
1096 #define PIO_SM0_SHIFTCTRL_FJOIN_RX_GET_LSB    _u(14)
1097 #define PIO_SM0_SHIFTCTRL_FJOIN_RX_GET_ACCESS "RW"
1098 // -----------------------------------------------------------------------------
1099 // Field       : PIO_SM0_SHIFTCTRL_IN_COUNT
1100 // Description : Set the number of pins which are not masked to 0 when read by
1101 //               an IN PINS, WAIT PIN or MOV x, PINS instruction.
1102 //
1103 //               For example, an IN_COUNT of 5 means that the 5 LSBs of the IN
1104 //               pin group are visible (bits 4:0), but the remaining 27 MSBs are
1105 //               masked to 0. A count of 32 is encoded with a field value of 0,
1106 //               so the default behaviour is to not perform any masking.
1107 //
1108 //               Note this masking is applied in addition to the masking usually
1109 //               performed by the IN instruction. This is mainly useful for the
1110 //               MOV x, PINS instruction, which otherwise has no way of masking
1111 //               pins.
1112 #define PIO_SM0_SHIFTCTRL_IN_COUNT_RESET  _u(0x00)
1113 #define PIO_SM0_SHIFTCTRL_IN_COUNT_BITS   _u(0x0000001f)
1114 #define PIO_SM0_SHIFTCTRL_IN_COUNT_MSB    _u(4)
1115 #define PIO_SM0_SHIFTCTRL_IN_COUNT_LSB    _u(0)
1116 #define PIO_SM0_SHIFTCTRL_IN_COUNT_ACCESS "RW"
1117 // =============================================================================
1118 // Register    : PIO_SM0_ADDR
1119 // Description : Current instruction address of state machine 0
1120 #define PIO_SM0_ADDR_OFFSET _u(0x000000d4)
1121 #define PIO_SM0_ADDR_BITS   _u(0x0000001f)
1122 #define PIO_SM0_ADDR_RESET  _u(0x00000000)
1123 #define PIO_SM0_ADDR_MSB    _u(4)
1124 #define PIO_SM0_ADDR_LSB    _u(0)
1125 #define PIO_SM0_ADDR_ACCESS "RO"
1126 // =============================================================================
1127 // Register    : PIO_SM0_INSTR
1128 // Description : Read to see the instruction currently addressed by state
1129 //               machine 0's program counter
1130 //               Write to execute an instruction immediately (including jumps)
1131 //               and then resume execution.
1132 #define PIO_SM0_INSTR_OFFSET _u(0x000000d8)
1133 #define PIO_SM0_INSTR_BITS   _u(0x0000ffff)
1134 #define PIO_SM0_INSTR_RESET  "-"
1135 #define PIO_SM0_INSTR_MSB    _u(15)
1136 #define PIO_SM0_INSTR_LSB    _u(0)
1137 #define PIO_SM0_INSTR_ACCESS "RW"
1138 // =============================================================================
1139 // Register    : PIO_SM0_PINCTRL
1140 // Description : State machine pin control
1141 #define PIO_SM0_PINCTRL_OFFSET _u(0x000000dc)
1142 #define PIO_SM0_PINCTRL_BITS   _u(0xffffffff)
1143 #define PIO_SM0_PINCTRL_RESET  _u(0x14000000)
1144 // -----------------------------------------------------------------------------
1145 // Field       : PIO_SM0_PINCTRL_SIDESET_COUNT
1146 // Description : The number of MSBs of the Delay/Side-set instruction field
1147 //               which are used for side-set. Inclusive of the enable bit, if
1148 //               present. Minimum of 0 (all delay bits, no side-set) and maximum
1149 //               of 5 (all side-set, no delay).
1150 #define PIO_SM0_PINCTRL_SIDESET_COUNT_RESET  _u(0x0)
1151 #define PIO_SM0_PINCTRL_SIDESET_COUNT_BITS   _u(0xe0000000)
1152 #define PIO_SM0_PINCTRL_SIDESET_COUNT_MSB    _u(31)
1153 #define PIO_SM0_PINCTRL_SIDESET_COUNT_LSB    _u(29)
1154 #define PIO_SM0_PINCTRL_SIDESET_COUNT_ACCESS "RW"
1155 // -----------------------------------------------------------------------------
1156 // Field       : PIO_SM0_PINCTRL_SET_COUNT
1157 // Description : The number of pins asserted by a SET. In the range 0 to 5
1158 //               inclusive.
1159 #define PIO_SM0_PINCTRL_SET_COUNT_RESET  _u(0x5)
1160 #define PIO_SM0_PINCTRL_SET_COUNT_BITS   _u(0x1c000000)
1161 #define PIO_SM0_PINCTRL_SET_COUNT_MSB    _u(28)
1162 #define PIO_SM0_PINCTRL_SET_COUNT_LSB    _u(26)
1163 #define PIO_SM0_PINCTRL_SET_COUNT_ACCESS "RW"
1164 // -----------------------------------------------------------------------------
1165 // Field       : PIO_SM0_PINCTRL_OUT_COUNT
1166 // Description : The number of pins asserted by an OUT PINS, OUT PINDIRS or MOV
1167 //               PINS instruction. In the range 0 to 32 inclusive.
1168 #define PIO_SM0_PINCTRL_OUT_COUNT_RESET  _u(0x00)
1169 #define PIO_SM0_PINCTRL_OUT_COUNT_BITS   _u(0x03f00000)
1170 #define PIO_SM0_PINCTRL_OUT_COUNT_MSB    _u(25)
1171 #define PIO_SM0_PINCTRL_OUT_COUNT_LSB    _u(20)
1172 #define PIO_SM0_PINCTRL_OUT_COUNT_ACCESS "RW"
1173 // -----------------------------------------------------------------------------
1174 // Field       : PIO_SM0_PINCTRL_IN_BASE
1175 // Description : The pin which is mapped to the least-significant bit of a state
1176 //               machine's IN data bus. Higher-numbered pins are mapped to
1177 //               consecutively more-significant data bits, with a modulo of 32
1178 //               applied to pin number.
1179 #define PIO_SM0_PINCTRL_IN_BASE_RESET  _u(0x00)
1180 #define PIO_SM0_PINCTRL_IN_BASE_BITS   _u(0x000f8000)
1181 #define PIO_SM0_PINCTRL_IN_BASE_MSB    _u(19)
1182 #define PIO_SM0_PINCTRL_IN_BASE_LSB    _u(15)
1183 #define PIO_SM0_PINCTRL_IN_BASE_ACCESS "RW"
1184 // -----------------------------------------------------------------------------
1185 // Field       : PIO_SM0_PINCTRL_SIDESET_BASE
1186 // Description : The lowest-numbered pin that will be affected by a side-set
1187 //               operation. The MSBs of an instruction's side-set/delay field
1188 //               (up to 5, determined by SIDESET_COUNT) are used for side-set
1189 //               data, with the remaining LSBs used for delay. The least-
1190 //               significant bit of the side-set portion is the bit written to
1191 //               this pin, with more-significant bits written to higher-numbered
1192 //               pins.
1193 #define PIO_SM0_PINCTRL_SIDESET_BASE_RESET  _u(0x00)
1194 #define PIO_SM0_PINCTRL_SIDESET_BASE_BITS   _u(0x00007c00)
1195 #define PIO_SM0_PINCTRL_SIDESET_BASE_MSB    _u(14)
1196 #define PIO_SM0_PINCTRL_SIDESET_BASE_LSB    _u(10)
1197 #define PIO_SM0_PINCTRL_SIDESET_BASE_ACCESS "RW"
1198 // -----------------------------------------------------------------------------
1199 // Field       : PIO_SM0_PINCTRL_SET_BASE
1200 // Description : The lowest-numbered pin that will be affected by a SET PINS or
1201 //               SET PINDIRS instruction. The data written to this pin is the
1202 //               least-significant bit of the SET data.
1203 #define PIO_SM0_PINCTRL_SET_BASE_RESET  _u(0x00)
1204 #define PIO_SM0_PINCTRL_SET_BASE_BITS   _u(0x000003e0)
1205 #define PIO_SM0_PINCTRL_SET_BASE_MSB    _u(9)
1206 #define PIO_SM0_PINCTRL_SET_BASE_LSB    _u(5)
1207 #define PIO_SM0_PINCTRL_SET_BASE_ACCESS "RW"
1208 // -----------------------------------------------------------------------------
1209 // Field       : PIO_SM0_PINCTRL_OUT_BASE
1210 // Description : The lowest-numbered pin that will be affected by an OUT PINS,
1211 //               OUT PINDIRS or MOV PINS instruction. The data written to this
1212 //               pin will always be the least-significant bit of the OUT or MOV
1213 //               data.
1214 #define PIO_SM0_PINCTRL_OUT_BASE_RESET  _u(0x00)
1215 #define PIO_SM0_PINCTRL_OUT_BASE_BITS   _u(0x0000001f)
1216 #define PIO_SM0_PINCTRL_OUT_BASE_MSB    _u(4)
1217 #define PIO_SM0_PINCTRL_OUT_BASE_LSB    _u(0)
1218 #define PIO_SM0_PINCTRL_OUT_BASE_ACCESS "RW"
1219 // =============================================================================
1220 // Register    : PIO_SM1_CLKDIV
1221 // Description : Clock divisor register for state machine 1
1222 //               Frequency = clock freq / (CLKDIV_INT + CLKDIV_FRAC / 256)
1223 #define PIO_SM1_CLKDIV_OFFSET _u(0x000000e0)
1224 #define PIO_SM1_CLKDIV_BITS   _u(0xffffff00)
1225 #define PIO_SM1_CLKDIV_RESET  _u(0x00010000)
1226 // -----------------------------------------------------------------------------
1227 // Field       : PIO_SM1_CLKDIV_INT
1228 // Description : Effective frequency is sysclk/(int + frac/256).
1229 //               Value of 0 is interpreted as 65536. If INT is 0, FRAC must also
1230 //               be 0.
1231 #define PIO_SM1_CLKDIV_INT_RESET  _u(0x0001)
1232 #define PIO_SM1_CLKDIV_INT_BITS   _u(0xffff0000)
1233 #define PIO_SM1_CLKDIV_INT_MSB    _u(31)
1234 #define PIO_SM1_CLKDIV_INT_LSB    _u(16)
1235 #define PIO_SM1_CLKDIV_INT_ACCESS "RW"
1236 // -----------------------------------------------------------------------------
1237 // Field       : PIO_SM1_CLKDIV_FRAC
1238 // Description : Fractional part of clock divisor
1239 #define PIO_SM1_CLKDIV_FRAC_RESET  _u(0x00)
1240 #define PIO_SM1_CLKDIV_FRAC_BITS   _u(0x0000ff00)
1241 #define PIO_SM1_CLKDIV_FRAC_MSB    _u(15)
1242 #define PIO_SM1_CLKDIV_FRAC_LSB    _u(8)
1243 #define PIO_SM1_CLKDIV_FRAC_ACCESS "RW"
1244 // =============================================================================
1245 // Register    : PIO_SM1_EXECCTRL
1246 // Description : Execution/behavioural settings for state machine 1
1247 #define PIO_SM1_EXECCTRL_OFFSET _u(0x000000e4)
1248 #define PIO_SM1_EXECCTRL_BITS   _u(0xffffffff)
1249 #define PIO_SM1_EXECCTRL_RESET  _u(0x0001f000)
1250 // -----------------------------------------------------------------------------
1251 // Field       : PIO_SM1_EXECCTRL_EXEC_STALLED
1252 // Description : If 1, an instruction written to SMx_INSTR is stalled, and
1253 //               latched by the state machine. Will clear to 0 once this
1254 //               instruction completes.
1255 #define PIO_SM1_EXECCTRL_EXEC_STALLED_RESET  _u(0x0)
1256 #define PIO_SM1_EXECCTRL_EXEC_STALLED_BITS   _u(0x80000000)
1257 #define PIO_SM1_EXECCTRL_EXEC_STALLED_MSB    _u(31)
1258 #define PIO_SM1_EXECCTRL_EXEC_STALLED_LSB    _u(31)
1259 #define PIO_SM1_EXECCTRL_EXEC_STALLED_ACCESS "RO"
1260 // -----------------------------------------------------------------------------
1261 // Field       : PIO_SM1_EXECCTRL_SIDE_EN
1262 // Description : If 1, the MSB of the Delay/Side-set instruction field is used
1263 //               as side-set enable, rather than a side-set data bit. This
1264 //               allows instructions to perform side-set optionally, rather than
1265 //               on every instruction, but the maximum possible side-set width
1266 //               is reduced from 5 to 4. Note that the value of
1267 //               PINCTRL_SIDESET_COUNT is inclusive of this enable bit.
1268 #define PIO_SM1_EXECCTRL_SIDE_EN_RESET  _u(0x0)
1269 #define PIO_SM1_EXECCTRL_SIDE_EN_BITS   _u(0x40000000)
1270 #define PIO_SM1_EXECCTRL_SIDE_EN_MSB    _u(30)
1271 #define PIO_SM1_EXECCTRL_SIDE_EN_LSB    _u(30)
1272 #define PIO_SM1_EXECCTRL_SIDE_EN_ACCESS "RW"
1273 // -----------------------------------------------------------------------------
1274 // Field       : PIO_SM1_EXECCTRL_SIDE_PINDIR
1275 // Description : If 1, side-set data is asserted to pin directions, instead of
1276 //               pin values
1277 #define PIO_SM1_EXECCTRL_SIDE_PINDIR_RESET  _u(0x0)
1278 #define PIO_SM1_EXECCTRL_SIDE_PINDIR_BITS   _u(0x20000000)
1279 #define PIO_SM1_EXECCTRL_SIDE_PINDIR_MSB    _u(29)
1280 #define PIO_SM1_EXECCTRL_SIDE_PINDIR_LSB    _u(29)
1281 #define PIO_SM1_EXECCTRL_SIDE_PINDIR_ACCESS "RW"
1282 // -----------------------------------------------------------------------------
1283 // Field       : PIO_SM1_EXECCTRL_JMP_PIN
1284 // Description : The GPIO number to use as condition for JMP PIN. Unaffected by
1285 //               input mapping.
1286 #define PIO_SM1_EXECCTRL_JMP_PIN_RESET  _u(0x00)
1287 #define PIO_SM1_EXECCTRL_JMP_PIN_BITS   _u(0x1f000000)
1288 #define PIO_SM1_EXECCTRL_JMP_PIN_MSB    _u(28)
1289 #define PIO_SM1_EXECCTRL_JMP_PIN_LSB    _u(24)
1290 #define PIO_SM1_EXECCTRL_JMP_PIN_ACCESS "RW"
1291 // -----------------------------------------------------------------------------
1292 // Field       : PIO_SM1_EXECCTRL_OUT_EN_SEL
1293 // Description : Which data bit to use for inline OUT enable
1294 #define PIO_SM1_EXECCTRL_OUT_EN_SEL_RESET  _u(0x00)
1295 #define PIO_SM1_EXECCTRL_OUT_EN_SEL_BITS   _u(0x00f80000)
1296 #define PIO_SM1_EXECCTRL_OUT_EN_SEL_MSB    _u(23)
1297 #define PIO_SM1_EXECCTRL_OUT_EN_SEL_LSB    _u(19)
1298 #define PIO_SM1_EXECCTRL_OUT_EN_SEL_ACCESS "RW"
1299 // -----------------------------------------------------------------------------
1300 // Field       : PIO_SM1_EXECCTRL_INLINE_OUT_EN
1301 // Description : If 1, use a bit of OUT data as an auxiliary write enable
1302 //               When used in conjunction with OUT_STICKY, writes with an enable
1303 //               of 0 will
1304 //               deassert the latest pin write. This can create useful
1305 //               masking/override behaviour
1306 //               due to the priority ordering of state machine pin writes (SM0 <
1307 //               SM1 < ...)
1308 #define PIO_SM1_EXECCTRL_INLINE_OUT_EN_RESET  _u(0x0)
1309 #define PIO_SM1_EXECCTRL_INLINE_OUT_EN_BITS   _u(0x00040000)
1310 #define PIO_SM1_EXECCTRL_INLINE_OUT_EN_MSB    _u(18)
1311 #define PIO_SM1_EXECCTRL_INLINE_OUT_EN_LSB    _u(18)
1312 #define PIO_SM1_EXECCTRL_INLINE_OUT_EN_ACCESS "RW"
1313 // -----------------------------------------------------------------------------
1314 // Field       : PIO_SM1_EXECCTRL_OUT_STICKY
1315 // Description : Continuously assert the most recent OUT/SET to the pins
1316 #define PIO_SM1_EXECCTRL_OUT_STICKY_RESET  _u(0x0)
1317 #define PIO_SM1_EXECCTRL_OUT_STICKY_BITS   _u(0x00020000)
1318 #define PIO_SM1_EXECCTRL_OUT_STICKY_MSB    _u(17)
1319 #define PIO_SM1_EXECCTRL_OUT_STICKY_LSB    _u(17)
1320 #define PIO_SM1_EXECCTRL_OUT_STICKY_ACCESS "RW"
1321 // -----------------------------------------------------------------------------
1322 // Field       : PIO_SM1_EXECCTRL_WRAP_TOP
1323 // Description : After reaching this address, execution is wrapped to
1324 //               wrap_bottom.
1325 //               If the instruction is a jump, and the jump condition is true,
1326 //               the jump takes priority.
1327 #define PIO_SM1_EXECCTRL_WRAP_TOP_RESET  _u(0x1f)
1328 #define PIO_SM1_EXECCTRL_WRAP_TOP_BITS   _u(0x0001f000)
1329 #define PIO_SM1_EXECCTRL_WRAP_TOP_MSB    _u(16)
1330 #define PIO_SM1_EXECCTRL_WRAP_TOP_LSB    _u(12)
1331 #define PIO_SM1_EXECCTRL_WRAP_TOP_ACCESS "RW"
1332 // -----------------------------------------------------------------------------
1333 // Field       : PIO_SM1_EXECCTRL_WRAP_BOTTOM
1334 // Description : After reaching wrap_top, execution is wrapped to this address.
1335 #define PIO_SM1_EXECCTRL_WRAP_BOTTOM_RESET  _u(0x00)
1336 #define PIO_SM1_EXECCTRL_WRAP_BOTTOM_BITS   _u(0x00000f80)
1337 #define PIO_SM1_EXECCTRL_WRAP_BOTTOM_MSB    _u(11)
1338 #define PIO_SM1_EXECCTRL_WRAP_BOTTOM_LSB    _u(7)
1339 #define PIO_SM1_EXECCTRL_WRAP_BOTTOM_ACCESS "RW"
1340 // -----------------------------------------------------------------------------
1341 // Field       : PIO_SM1_EXECCTRL_STATUS_SEL
1342 // Description : Comparison used for the MOV x, STATUS instruction.
1343 //               0x0 -> All-ones if TX FIFO level < N, otherwise all-zeroes
1344 //               0x1 -> All-ones if RX FIFO level < N, otherwise all-zeroes
1345 //               0x2 -> All-ones if the indexed IRQ flag is raised, otherwise all-zeroes
1346 #define PIO_SM1_EXECCTRL_STATUS_SEL_RESET  _u(0x0)
1347 #define PIO_SM1_EXECCTRL_STATUS_SEL_BITS   _u(0x00000060)
1348 #define PIO_SM1_EXECCTRL_STATUS_SEL_MSB    _u(6)
1349 #define PIO_SM1_EXECCTRL_STATUS_SEL_LSB    _u(5)
1350 #define PIO_SM1_EXECCTRL_STATUS_SEL_ACCESS "RW"
1351 #define PIO_SM1_EXECCTRL_STATUS_SEL_VALUE_TXLEVEL _u(0x0)
1352 #define PIO_SM1_EXECCTRL_STATUS_SEL_VALUE_RXLEVEL _u(0x1)
1353 #define PIO_SM1_EXECCTRL_STATUS_SEL_VALUE_IRQ _u(0x2)
1354 // -----------------------------------------------------------------------------
1355 // Field       : PIO_SM1_EXECCTRL_STATUS_N
1356 // Description : Comparison level or IRQ index for the MOV x, STATUS
1357 //               instruction.
1358 //
1359 //               If STATUS_SEL is TXLEVEL or RXLEVEL, then values of STATUS_N
1360 //               greater than the current FIFO depth are reserved, and have
1361 //               undefined behaviour.
1362 //               0x00 -> Index 0-7 of an IRQ flag in this PIO block
1363 //               0x08 -> Index 0-7 of an IRQ flag in the next lower-numbered PIO block
1364 //               0x10 -> Index 0-7 of an IRQ flag in the next higher-numbered PIO block
1365 #define PIO_SM1_EXECCTRL_STATUS_N_RESET  _u(0x00)
1366 #define PIO_SM1_EXECCTRL_STATUS_N_BITS   _u(0x0000001f)
1367 #define PIO_SM1_EXECCTRL_STATUS_N_MSB    _u(4)
1368 #define PIO_SM1_EXECCTRL_STATUS_N_LSB    _u(0)
1369 #define PIO_SM1_EXECCTRL_STATUS_N_ACCESS "RW"
1370 #define PIO_SM1_EXECCTRL_STATUS_N_VALUE_IRQ _u(0x00)
1371 #define PIO_SM1_EXECCTRL_STATUS_N_VALUE_IRQ_PREVPIO _u(0x08)
1372 #define PIO_SM1_EXECCTRL_STATUS_N_VALUE_IRQ_NEXTPIO _u(0x10)
1373 // =============================================================================
1374 // Register    : PIO_SM1_SHIFTCTRL
1375 // Description : Control behaviour of the input/output shift registers for state
1376 //               machine 1
1377 #define PIO_SM1_SHIFTCTRL_OFFSET _u(0x000000e8)
1378 #define PIO_SM1_SHIFTCTRL_BITS   _u(0xffffc01f)
1379 #define PIO_SM1_SHIFTCTRL_RESET  _u(0x000c0000)
1380 // -----------------------------------------------------------------------------
1381 // Field       : PIO_SM1_SHIFTCTRL_FJOIN_RX
1382 // Description : When 1, RX FIFO steals the TX FIFO's storage, and becomes twice
1383 //               as deep.
1384 //               TX FIFO is disabled as a result (always reads as both full and
1385 //               empty).
1386 //               FIFOs are flushed when this bit is changed.
1387 #define PIO_SM1_SHIFTCTRL_FJOIN_RX_RESET  _u(0x0)
1388 #define PIO_SM1_SHIFTCTRL_FJOIN_RX_BITS   _u(0x80000000)
1389 #define PIO_SM1_SHIFTCTRL_FJOIN_RX_MSB    _u(31)
1390 #define PIO_SM1_SHIFTCTRL_FJOIN_RX_LSB    _u(31)
1391 #define PIO_SM1_SHIFTCTRL_FJOIN_RX_ACCESS "RW"
1392 // -----------------------------------------------------------------------------
1393 // Field       : PIO_SM1_SHIFTCTRL_FJOIN_TX
1394 // Description : When 1, TX FIFO steals the RX FIFO's storage, and becomes twice
1395 //               as deep.
1396 //               RX FIFO is disabled as a result (always reads as both full and
1397 //               empty).
1398 //               FIFOs are flushed when this bit is changed.
1399 #define PIO_SM1_SHIFTCTRL_FJOIN_TX_RESET  _u(0x0)
1400 #define PIO_SM1_SHIFTCTRL_FJOIN_TX_BITS   _u(0x40000000)
1401 #define PIO_SM1_SHIFTCTRL_FJOIN_TX_MSB    _u(30)
1402 #define PIO_SM1_SHIFTCTRL_FJOIN_TX_LSB    _u(30)
1403 #define PIO_SM1_SHIFTCTRL_FJOIN_TX_ACCESS "RW"
1404 // -----------------------------------------------------------------------------
1405 // Field       : PIO_SM1_SHIFTCTRL_PULL_THRESH
1406 // Description : Number of bits shifted out of OSR before autopull, or
1407 //               conditional pull (PULL IFEMPTY), will take place.
1408 //               Write 0 for value of 32.
1409 #define PIO_SM1_SHIFTCTRL_PULL_THRESH_RESET  _u(0x00)
1410 #define PIO_SM1_SHIFTCTRL_PULL_THRESH_BITS   _u(0x3e000000)
1411 #define PIO_SM1_SHIFTCTRL_PULL_THRESH_MSB    _u(29)
1412 #define PIO_SM1_SHIFTCTRL_PULL_THRESH_LSB    _u(25)
1413 #define PIO_SM1_SHIFTCTRL_PULL_THRESH_ACCESS "RW"
1414 // -----------------------------------------------------------------------------
1415 // Field       : PIO_SM1_SHIFTCTRL_PUSH_THRESH
1416 // Description : Number of bits shifted into ISR before autopush, or conditional
1417 //               push (PUSH IFFULL), will take place.
1418 //               Write 0 for value of 32.
1419 #define PIO_SM1_SHIFTCTRL_PUSH_THRESH_RESET  _u(0x00)
1420 #define PIO_SM1_SHIFTCTRL_PUSH_THRESH_BITS   _u(0x01f00000)
1421 #define PIO_SM1_SHIFTCTRL_PUSH_THRESH_MSB    _u(24)
1422 #define PIO_SM1_SHIFTCTRL_PUSH_THRESH_LSB    _u(20)
1423 #define PIO_SM1_SHIFTCTRL_PUSH_THRESH_ACCESS "RW"
1424 // -----------------------------------------------------------------------------
1425 // Field       : PIO_SM1_SHIFTCTRL_OUT_SHIFTDIR
1426 // Description : 1 = shift out of output shift register to right. 0 = to left.
1427 #define PIO_SM1_SHIFTCTRL_OUT_SHIFTDIR_RESET  _u(0x1)
1428 #define PIO_SM1_SHIFTCTRL_OUT_SHIFTDIR_BITS   _u(0x00080000)
1429 #define PIO_SM1_SHIFTCTRL_OUT_SHIFTDIR_MSB    _u(19)
1430 #define PIO_SM1_SHIFTCTRL_OUT_SHIFTDIR_LSB    _u(19)
1431 #define PIO_SM1_SHIFTCTRL_OUT_SHIFTDIR_ACCESS "RW"
1432 // -----------------------------------------------------------------------------
1433 // Field       : PIO_SM1_SHIFTCTRL_IN_SHIFTDIR
1434 // Description : 1 = shift input shift register to right (data enters from
1435 //               left). 0 = to left.
1436 #define PIO_SM1_SHIFTCTRL_IN_SHIFTDIR_RESET  _u(0x1)
1437 #define PIO_SM1_SHIFTCTRL_IN_SHIFTDIR_BITS   _u(0x00040000)
1438 #define PIO_SM1_SHIFTCTRL_IN_SHIFTDIR_MSB    _u(18)
1439 #define PIO_SM1_SHIFTCTRL_IN_SHIFTDIR_LSB    _u(18)
1440 #define PIO_SM1_SHIFTCTRL_IN_SHIFTDIR_ACCESS "RW"
1441 // -----------------------------------------------------------------------------
1442 // Field       : PIO_SM1_SHIFTCTRL_AUTOPULL
1443 // Description : Pull automatically when the output shift register is emptied,
1444 //               i.e. on or following an OUT instruction which causes the output
1445 //               shift counter to reach or exceed PULL_THRESH.
1446 #define PIO_SM1_SHIFTCTRL_AUTOPULL_RESET  _u(0x0)
1447 #define PIO_SM1_SHIFTCTRL_AUTOPULL_BITS   _u(0x00020000)
1448 #define PIO_SM1_SHIFTCTRL_AUTOPULL_MSB    _u(17)
1449 #define PIO_SM1_SHIFTCTRL_AUTOPULL_LSB    _u(17)
1450 #define PIO_SM1_SHIFTCTRL_AUTOPULL_ACCESS "RW"
1451 // -----------------------------------------------------------------------------
1452 // Field       : PIO_SM1_SHIFTCTRL_AUTOPUSH
1453 // Description : Push automatically when the input shift register is filled,
1454 //               i.e. on an IN instruction which causes the input shift counter
1455 //               to reach or exceed PUSH_THRESH.
1456 #define PIO_SM1_SHIFTCTRL_AUTOPUSH_RESET  _u(0x0)
1457 #define PIO_SM1_SHIFTCTRL_AUTOPUSH_BITS   _u(0x00010000)
1458 #define PIO_SM1_SHIFTCTRL_AUTOPUSH_MSB    _u(16)
1459 #define PIO_SM1_SHIFTCTRL_AUTOPUSH_LSB    _u(16)
1460 #define PIO_SM1_SHIFTCTRL_AUTOPUSH_ACCESS "RW"
1461 // -----------------------------------------------------------------------------
1462 // Field       : PIO_SM1_SHIFTCTRL_FJOIN_RX_PUT
1463 // Description : If 1, disable this state machine's RX FIFO, make its storage
1464 //               available for random write access by the state machine (using
1465 //               the `put` instruction) and, unless FJOIN_RX_GET is also set,
1466 //               random read access by the processor (through the RXFx_PUTGETy
1467 //               registers).
1468 //
1469 //               If FJOIN_RX_PUT and FJOIN_RX_GET are both set, then the RX
1470 //               FIFO's registers can be randomly read/written by the state
1471 //               machine, but are completely inaccessible to the processor.
1472 //
1473 //               Setting this bit will clear the FJOIN_TX and FJOIN_RX bits.
1474 #define PIO_SM1_SHIFTCTRL_FJOIN_RX_PUT_RESET  _u(0x0)
1475 #define PIO_SM1_SHIFTCTRL_FJOIN_RX_PUT_BITS   _u(0x00008000)
1476 #define PIO_SM1_SHIFTCTRL_FJOIN_RX_PUT_MSB    _u(15)
1477 #define PIO_SM1_SHIFTCTRL_FJOIN_RX_PUT_LSB    _u(15)
1478 #define PIO_SM1_SHIFTCTRL_FJOIN_RX_PUT_ACCESS "RW"
1479 // -----------------------------------------------------------------------------
1480 // Field       : PIO_SM1_SHIFTCTRL_FJOIN_RX_GET
1481 // Description : If 1, disable this state machine's RX FIFO, make its storage
1482 //               available for random read access by the state machine (using
1483 //               the `get` instruction) and, unless FJOIN_RX_PUT is also set,
1484 //               random write access by the processor (through the RXFx_PUTGETy
1485 //               registers).
1486 //
1487 //               If FJOIN_RX_PUT and FJOIN_RX_GET are both set, then the RX
1488 //               FIFO's registers can be randomly read/written by the state
1489 //               machine, but are completely inaccessible to the processor.
1490 //
1491 //               Setting this bit will clear the FJOIN_TX and FJOIN_RX bits.
1492 #define PIO_SM1_SHIFTCTRL_FJOIN_RX_GET_RESET  _u(0x0)
1493 #define PIO_SM1_SHIFTCTRL_FJOIN_RX_GET_BITS   _u(0x00004000)
1494 #define PIO_SM1_SHIFTCTRL_FJOIN_RX_GET_MSB    _u(14)
1495 #define PIO_SM1_SHIFTCTRL_FJOIN_RX_GET_LSB    _u(14)
1496 #define PIO_SM1_SHIFTCTRL_FJOIN_RX_GET_ACCESS "RW"
1497 // -----------------------------------------------------------------------------
1498 // Field       : PIO_SM1_SHIFTCTRL_IN_COUNT
1499 // Description : Set the number of pins which are not masked to 0 when read by
1500 //               an IN PINS, WAIT PIN or MOV x, PINS instruction.
1501 //
1502 //               For example, an IN_COUNT of 5 means that the 5 LSBs of the IN
1503 //               pin group are visible (bits 4:0), but the remaining 27 MSBs are
1504 //               masked to 0. A count of 32 is encoded with a field value of 0,
1505 //               so the default behaviour is to not perform any masking.
1506 //
1507 //               Note this masking is applied in addition to the masking usually
1508 //               performed by the IN instruction. This is mainly useful for the
1509 //               MOV x, PINS instruction, which otherwise has no way of masking
1510 //               pins.
1511 #define PIO_SM1_SHIFTCTRL_IN_COUNT_RESET  _u(0x00)
1512 #define PIO_SM1_SHIFTCTRL_IN_COUNT_BITS   _u(0x0000001f)
1513 #define PIO_SM1_SHIFTCTRL_IN_COUNT_MSB    _u(4)
1514 #define PIO_SM1_SHIFTCTRL_IN_COUNT_LSB    _u(0)
1515 #define PIO_SM1_SHIFTCTRL_IN_COUNT_ACCESS "RW"
1516 // =============================================================================
1517 // Register    : PIO_SM1_ADDR
1518 // Description : Current instruction address of state machine 1
1519 #define PIO_SM1_ADDR_OFFSET _u(0x000000ec)
1520 #define PIO_SM1_ADDR_BITS   _u(0x0000001f)
1521 #define PIO_SM1_ADDR_RESET  _u(0x00000000)
1522 #define PIO_SM1_ADDR_MSB    _u(4)
1523 #define PIO_SM1_ADDR_LSB    _u(0)
1524 #define PIO_SM1_ADDR_ACCESS "RO"
1525 // =============================================================================
1526 // Register    : PIO_SM1_INSTR
1527 // Description : Read to see the instruction currently addressed by state
1528 //               machine 1's program counter
1529 //               Write to execute an instruction immediately (including jumps)
1530 //               and then resume execution.
1531 #define PIO_SM1_INSTR_OFFSET _u(0x000000f0)
1532 #define PIO_SM1_INSTR_BITS   _u(0x0000ffff)
1533 #define PIO_SM1_INSTR_RESET  "-"
1534 #define PIO_SM1_INSTR_MSB    _u(15)
1535 #define PIO_SM1_INSTR_LSB    _u(0)
1536 #define PIO_SM1_INSTR_ACCESS "RW"
1537 // =============================================================================
1538 // Register    : PIO_SM1_PINCTRL
1539 // Description : State machine pin control
1540 #define PIO_SM1_PINCTRL_OFFSET _u(0x000000f4)
1541 #define PIO_SM1_PINCTRL_BITS   _u(0xffffffff)
1542 #define PIO_SM1_PINCTRL_RESET  _u(0x14000000)
1543 // -----------------------------------------------------------------------------
1544 // Field       : PIO_SM1_PINCTRL_SIDESET_COUNT
1545 // Description : The number of MSBs of the Delay/Side-set instruction field
1546 //               which are used for side-set. Inclusive of the enable bit, if
1547 //               present. Minimum of 0 (all delay bits, no side-set) and maximum
1548 //               of 5 (all side-set, no delay).
1549 #define PIO_SM1_PINCTRL_SIDESET_COUNT_RESET  _u(0x0)
1550 #define PIO_SM1_PINCTRL_SIDESET_COUNT_BITS   _u(0xe0000000)
1551 #define PIO_SM1_PINCTRL_SIDESET_COUNT_MSB    _u(31)
1552 #define PIO_SM1_PINCTRL_SIDESET_COUNT_LSB    _u(29)
1553 #define PIO_SM1_PINCTRL_SIDESET_COUNT_ACCESS "RW"
1554 // -----------------------------------------------------------------------------
1555 // Field       : PIO_SM1_PINCTRL_SET_COUNT
1556 // Description : The number of pins asserted by a SET. In the range 0 to 5
1557 //               inclusive.
1558 #define PIO_SM1_PINCTRL_SET_COUNT_RESET  _u(0x5)
1559 #define PIO_SM1_PINCTRL_SET_COUNT_BITS   _u(0x1c000000)
1560 #define PIO_SM1_PINCTRL_SET_COUNT_MSB    _u(28)
1561 #define PIO_SM1_PINCTRL_SET_COUNT_LSB    _u(26)
1562 #define PIO_SM1_PINCTRL_SET_COUNT_ACCESS "RW"
1563 // -----------------------------------------------------------------------------
1564 // Field       : PIO_SM1_PINCTRL_OUT_COUNT
1565 // Description : The number of pins asserted by an OUT PINS, OUT PINDIRS or MOV
1566 //               PINS instruction. In the range 0 to 32 inclusive.
1567 #define PIO_SM1_PINCTRL_OUT_COUNT_RESET  _u(0x00)
1568 #define PIO_SM1_PINCTRL_OUT_COUNT_BITS   _u(0x03f00000)
1569 #define PIO_SM1_PINCTRL_OUT_COUNT_MSB    _u(25)
1570 #define PIO_SM1_PINCTRL_OUT_COUNT_LSB    _u(20)
1571 #define PIO_SM1_PINCTRL_OUT_COUNT_ACCESS "RW"
1572 // -----------------------------------------------------------------------------
1573 // Field       : PIO_SM1_PINCTRL_IN_BASE
1574 // Description : The pin which is mapped to the least-significant bit of a state
1575 //               machine's IN data bus. Higher-numbered pins are mapped to
1576 //               consecutively more-significant data bits, with a modulo of 32
1577 //               applied to pin number.
1578 #define PIO_SM1_PINCTRL_IN_BASE_RESET  _u(0x00)
1579 #define PIO_SM1_PINCTRL_IN_BASE_BITS   _u(0x000f8000)
1580 #define PIO_SM1_PINCTRL_IN_BASE_MSB    _u(19)
1581 #define PIO_SM1_PINCTRL_IN_BASE_LSB    _u(15)
1582 #define PIO_SM1_PINCTRL_IN_BASE_ACCESS "RW"
1583 // -----------------------------------------------------------------------------
1584 // Field       : PIO_SM1_PINCTRL_SIDESET_BASE
1585 // Description : The lowest-numbered pin that will be affected by a side-set
1586 //               operation. The MSBs of an instruction's side-set/delay field
1587 //               (up to 5, determined by SIDESET_COUNT) are used for side-set
1588 //               data, with the remaining LSBs used for delay. The least-
1589 //               significant bit of the side-set portion is the bit written to
1590 //               this pin, with more-significant bits written to higher-numbered
1591 //               pins.
1592 #define PIO_SM1_PINCTRL_SIDESET_BASE_RESET  _u(0x00)
1593 #define PIO_SM1_PINCTRL_SIDESET_BASE_BITS   _u(0x00007c00)
1594 #define PIO_SM1_PINCTRL_SIDESET_BASE_MSB    _u(14)
1595 #define PIO_SM1_PINCTRL_SIDESET_BASE_LSB    _u(10)
1596 #define PIO_SM1_PINCTRL_SIDESET_BASE_ACCESS "RW"
1597 // -----------------------------------------------------------------------------
1598 // Field       : PIO_SM1_PINCTRL_SET_BASE
1599 // Description : The lowest-numbered pin that will be affected by a SET PINS or
1600 //               SET PINDIRS instruction. The data written to this pin is the
1601 //               least-significant bit of the SET data.
1602 #define PIO_SM1_PINCTRL_SET_BASE_RESET  _u(0x00)
1603 #define PIO_SM1_PINCTRL_SET_BASE_BITS   _u(0x000003e0)
1604 #define PIO_SM1_PINCTRL_SET_BASE_MSB    _u(9)
1605 #define PIO_SM1_PINCTRL_SET_BASE_LSB    _u(5)
1606 #define PIO_SM1_PINCTRL_SET_BASE_ACCESS "RW"
1607 // -----------------------------------------------------------------------------
1608 // Field       : PIO_SM1_PINCTRL_OUT_BASE
1609 // Description : The lowest-numbered pin that will be affected by an OUT PINS,
1610 //               OUT PINDIRS or MOV PINS instruction. The data written to this
1611 //               pin will always be the least-significant bit of the OUT or MOV
1612 //               data.
1613 #define PIO_SM1_PINCTRL_OUT_BASE_RESET  _u(0x00)
1614 #define PIO_SM1_PINCTRL_OUT_BASE_BITS   _u(0x0000001f)
1615 #define PIO_SM1_PINCTRL_OUT_BASE_MSB    _u(4)
1616 #define PIO_SM1_PINCTRL_OUT_BASE_LSB    _u(0)
1617 #define PIO_SM1_PINCTRL_OUT_BASE_ACCESS "RW"
1618 // =============================================================================
1619 // Register    : PIO_SM2_CLKDIV
1620 // Description : Clock divisor register for state machine 2
1621 //               Frequency = clock freq / (CLKDIV_INT + CLKDIV_FRAC / 256)
1622 #define PIO_SM2_CLKDIV_OFFSET _u(0x000000f8)
1623 #define PIO_SM2_CLKDIV_BITS   _u(0xffffff00)
1624 #define PIO_SM2_CLKDIV_RESET  _u(0x00010000)
1625 // -----------------------------------------------------------------------------
1626 // Field       : PIO_SM2_CLKDIV_INT
1627 // Description : Effective frequency is sysclk/(int + frac/256).
1628 //               Value of 0 is interpreted as 65536. If INT is 0, FRAC must also
1629 //               be 0.
1630 #define PIO_SM2_CLKDIV_INT_RESET  _u(0x0001)
1631 #define PIO_SM2_CLKDIV_INT_BITS   _u(0xffff0000)
1632 #define PIO_SM2_CLKDIV_INT_MSB    _u(31)
1633 #define PIO_SM2_CLKDIV_INT_LSB    _u(16)
1634 #define PIO_SM2_CLKDIV_INT_ACCESS "RW"
1635 // -----------------------------------------------------------------------------
1636 // Field       : PIO_SM2_CLKDIV_FRAC
1637 // Description : Fractional part of clock divisor
1638 #define PIO_SM2_CLKDIV_FRAC_RESET  _u(0x00)
1639 #define PIO_SM2_CLKDIV_FRAC_BITS   _u(0x0000ff00)
1640 #define PIO_SM2_CLKDIV_FRAC_MSB    _u(15)
1641 #define PIO_SM2_CLKDIV_FRAC_LSB    _u(8)
1642 #define PIO_SM2_CLKDIV_FRAC_ACCESS "RW"
1643 // =============================================================================
1644 // Register    : PIO_SM2_EXECCTRL
1645 // Description : Execution/behavioural settings for state machine 2
1646 #define PIO_SM2_EXECCTRL_OFFSET _u(0x000000fc)
1647 #define PIO_SM2_EXECCTRL_BITS   _u(0xffffffff)
1648 #define PIO_SM2_EXECCTRL_RESET  _u(0x0001f000)
1649 // -----------------------------------------------------------------------------
1650 // Field       : PIO_SM2_EXECCTRL_EXEC_STALLED
1651 // Description : If 1, an instruction written to SMx_INSTR is stalled, and
1652 //               latched by the state machine. Will clear to 0 once this
1653 //               instruction completes.
1654 #define PIO_SM2_EXECCTRL_EXEC_STALLED_RESET  _u(0x0)
1655 #define PIO_SM2_EXECCTRL_EXEC_STALLED_BITS   _u(0x80000000)
1656 #define PIO_SM2_EXECCTRL_EXEC_STALLED_MSB    _u(31)
1657 #define PIO_SM2_EXECCTRL_EXEC_STALLED_LSB    _u(31)
1658 #define PIO_SM2_EXECCTRL_EXEC_STALLED_ACCESS "RO"
1659 // -----------------------------------------------------------------------------
1660 // Field       : PIO_SM2_EXECCTRL_SIDE_EN
1661 // Description : If 1, the MSB of the Delay/Side-set instruction field is used
1662 //               as side-set enable, rather than a side-set data bit. This
1663 //               allows instructions to perform side-set optionally, rather than
1664 //               on every instruction, but the maximum possible side-set width
1665 //               is reduced from 5 to 4. Note that the value of
1666 //               PINCTRL_SIDESET_COUNT is inclusive of this enable bit.
1667 #define PIO_SM2_EXECCTRL_SIDE_EN_RESET  _u(0x0)
1668 #define PIO_SM2_EXECCTRL_SIDE_EN_BITS   _u(0x40000000)
1669 #define PIO_SM2_EXECCTRL_SIDE_EN_MSB    _u(30)
1670 #define PIO_SM2_EXECCTRL_SIDE_EN_LSB    _u(30)
1671 #define PIO_SM2_EXECCTRL_SIDE_EN_ACCESS "RW"
1672 // -----------------------------------------------------------------------------
1673 // Field       : PIO_SM2_EXECCTRL_SIDE_PINDIR
1674 // Description : If 1, side-set data is asserted to pin directions, instead of
1675 //               pin values
1676 #define PIO_SM2_EXECCTRL_SIDE_PINDIR_RESET  _u(0x0)
1677 #define PIO_SM2_EXECCTRL_SIDE_PINDIR_BITS   _u(0x20000000)
1678 #define PIO_SM2_EXECCTRL_SIDE_PINDIR_MSB    _u(29)
1679 #define PIO_SM2_EXECCTRL_SIDE_PINDIR_LSB    _u(29)
1680 #define PIO_SM2_EXECCTRL_SIDE_PINDIR_ACCESS "RW"
1681 // -----------------------------------------------------------------------------
1682 // Field       : PIO_SM2_EXECCTRL_JMP_PIN
1683 // Description : The GPIO number to use as condition for JMP PIN. Unaffected by
1684 //               input mapping.
1685 #define PIO_SM2_EXECCTRL_JMP_PIN_RESET  _u(0x00)
1686 #define PIO_SM2_EXECCTRL_JMP_PIN_BITS   _u(0x1f000000)
1687 #define PIO_SM2_EXECCTRL_JMP_PIN_MSB    _u(28)
1688 #define PIO_SM2_EXECCTRL_JMP_PIN_LSB    _u(24)
1689 #define PIO_SM2_EXECCTRL_JMP_PIN_ACCESS "RW"
1690 // -----------------------------------------------------------------------------
1691 // Field       : PIO_SM2_EXECCTRL_OUT_EN_SEL
1692 // Description : Which data bit to use for inline OUT enable
1693 #define PIO_SM2_EXECCTRL_OUT_EN_SEL_RESET  _u(0x00)
1694 #define PIO_SM2_EXECCTRL_OUT_EN_SEL_BITS   _u(0x00f80000)
1695 #define PIO_SM2_EXECCTRL_OUT_EN_SEL_MSB    _u(23)
1696 #define PIO_SM2_EXECCTRL_OUT_EN_SEL_LSB    _u(19)
1697 #define PIO_SM2_EXECCTRL_OUT_EN_SEL_ACCESS "RW"
1698 // -----------------------------------------------------------------------------
1699 // Field       : PIO_SM2_EXECCTRL_INLINE_OUT_EN
1700 // Description : If 1, use a bit of OUT data as an auxiliary write enable
1701 //               When used in conjunction with OUT_STICKY, writes with an enable
1702 //               of 0 will
1703 //               deassert the latest pin write. This can create useful
1704 //               masking/override behaviour
1705 //               due to the priority ordering of state machine pin writes (SM0 <
1706 //               SM1 < ...)
1707 #define PIO_SM2_EXECCTRL_INLINE_OUT_EN_RESET  _u(0x0)
1708 #define PIO_SM2_EXECCTRL_INLINE_OUT_EN_BITS   _u(0x00040000)
1709 #define PIO_SM2_EXECCTRL_INLINE_OUT_EN_MSB    _u(18)
1710 #define PIO_SM2_EXECCTRL_INLINE_OUT_EN_LSB    _u(18)
1711 #define PIO_SM2_EXECCTRL_INLINE_OUT_EN_ACCESS "RW"
1712 // -----------------------------------------------------------------------------
1713 // Field       : PIO_SM2_EXECCTRL_OUT_STICKY
1714 // Description : Continuously assert the most recent OUT/SET to the pins
1715 #define PIO_SM2_EXECCTRL_OUT_STICKY_RESET  _u(0x0)
1716 #define PIO_SM2_EXECCTRL_OUT_STICKY_BITS   _u(0x00020000)
1717 #define PIO_SM2_EXECCTRL_OUT_STICKY_MSB    _u(17)
1718 #define PIO_SM2_EXECCTRL_OUT_STICKY_LSB    _u(17)
1719 #define PIO_SM2_EXECCTRL_OUT_STICKY_ACCESS "RW"
1720 // -----------------------------------------------------------------------------
1721 // Field       : PIO_SM2_EXECCTRL_WRAP_TOP
1722 // Description : After reaching this address, execution is wrapped to
1723 //               wrap_bottom.
1724 //               If the instruction is a jump, and the jump condition is true,
1725 //               the jump takes priority.
1726 #define PIO_SM2_EXECCTRL_WRAP_TOP_RESET  _u(0x1f)
1727 #define PIO_SM2_EXECCTRL_WRAP_TOP_BITS   _u(0x0001f000)
1728 #define PIO_SM2_EXECCTRL_WRAP_TOP_MSB    _u(16)
1729 #define PIO_SM2_EXECCTRL_WRAP_TOP_LSB    _u(12)
1730 #define PIO_SM2_EXECCTRL_WRAP_TOP_ACCESS "RW"
1731 // -----------------------------------------------------------------------------
1732 // Field       : PIO_SM2_EXECCTRL_WRAP_BOTTOM
1733 // Description : After reaching wrap_top, execution is wrapped to this address.
1734 #define PIO_SM2_EXECCTRL_WRAP_BOTTOM_RESET  _u(0x00)
1735 #define PIO_SM2_EXECCTRL_WRAP_BOTTOM_BITS   _u(0x00000f80)
1736 #define PIO_SM2_EXECCTRL_WRAP_BOTTOM_MSB    _u(11)
1737 #define PIO_SM2_EXECCTRL_WRAP_BOTTOM_LSB    _u(7)
1738 #define PIO_SM2_EXECCTRL_WRAP_BOTTOM_ACCESS "RW"
1739 // -----------------------------------------------------------------------------
1740 // Field       : PIO_SM2_EXECCTRL_STATUS_SEL
1741 // Description : Comparison used for the MOV x, STATUS instruction.
1742 //               0x0 -> All-ones if TX FIFO level < N, otherwise all-zeroes
1743 //               0x1 -> All-ones if RX FIFO level < N, otherwise all-zeroes
1744 //               0x2 -> All-ones if the indexed IRQ flag is raised, otherwise all-zeroes
1745 #define PIO_SM2_EXECCTRL_STATUS_SEL_RESET  _u(0x0)
1746 #define PIO_SM2_EXECCTRL_STATUS_SEL_BITS   _u(0x00000060)
1747 #define PIO_SM2_EXECCTRL_STATUS_SEL_MSB    _u(6)
1748 #define PIO_SM2_EXECCTRL_STATUS_SEL_LSB    _u(5)
1749 #define PIO_SM2_EXECCTRL_STATUS_SEL_ACCESS "RW"
1750 #define PIO_SM2_EXECCTRL_STATUS_SEL_VALUE_TXLEVEL _u(0x0)
1751 #define PIO_SM2_EXECCTRL_STATUS_SEL_VALUE_RXLEVEL _u(0x1)
1752 #define PIO_SM2_EXECCTRL_STATUS_SEL_VALUE_IRQ _u(0x2)
1753 // -----------------------------------------------------------------------------
1754 // Field       : PIO_SM2_EXECCTRL_STATUS_N
1755 // Description : Comparison level or IRQ index for the MOV x, STATUS
1756 //               instruction.
1757 //
1758 //               If STATUS_SEL is TXLEVEL or RXLEVEL, then values of STATUS_N
1759 //               greater than the current FIFO depth are reserved, and have
1760 //               undefined behaviour.
1761 //               0x00 -> Index 0-7 of an IRQ flag in this PIO block
1762 //               0x08 -> Index 0-7 of an IRQ flag in the next lower-numbered PIO block
1763 //               0x10 -> Index 0-7 of an IRQ flag in the next higher-numbered PIO block
1764 #define PIO_SM2_EXECCTRL_STATUS_N_RESET  _u(0x00)
1765 #define PIO_SM2_EXECCTRL_STATUS_N_BITS   _u(0x0000001f)
1766 #define PIO_SM2_EXECCTRL_STATUS_N_MSB    _u(4)
1767 #define PIO_SM2_EXECCTRL_STATUS_N_LSB    _u(0)
1768 #define PIO_SM2_EXECCTRL_STATUS_N_ACCESS "RW"
1769 #define PIO_SM2_EXECCTRL_STATUS_N_VALUE_IRQ _u(0x00)
1770 #define PIO_SM2_EXECCTRL_STATUS_N_VALUE_IRQ_PREVPIO _u(0x08)
1771 #define PIO_SM2_EXECCTRL_STATUS_N_VALUE_IRQ_NEXTPIO _u(0x10)
1772 // =============================================================================
1773 // Register    : PIO_SM2_SHIFTCTRL
1774 // Description : Control behaviour of the input/output shift registers for state
1775 //               machine 2
1776 #define PIO_SM2_SHIFTCTRL_OFFSET _u(0x00000100)
1777 #define PIO_SM2_SHIFTCTRL_BITS   _u(0xffffc01f)
1778 #define PIO_SM2_SHIFTCTRL_RESET  _u(0x000c0000)
1779 // -----------------------------------------------------------------------------
1780 // Field       : PIO_SM2_SHIFTCTRL_FJOIN_RX
1781 // Description : When 1, RX FIFO steals the TX FIFO's storage, and becomes twice
1782 //               as deep.
1783 //               TX FIFO is disabled as a result (always reads as both full and
1784 //               empty).
1785 //               FIFOs are flushed when this bit is changed.
1786 #define PIO_SM2_SHIFTCTRL_FJOIN_RX_RESET  _u(0x0)
1787 #define PIO_SM2_SHIFTCTRL_FJOIN_RX_BITS   _u(0x80000000)
1788 #define PIO_SM2_SHIFTCTRL_FJOIN_RX_MSB    _u(31)
1789 #define PIO_SM2_SHIFTCTRL_FJOIN_RX_LSB    _u(31)
1790 #define PIO_SM2_SHIFTCTRL_FJOIN_RX_ACCESS "RW"
1791 // -----------------------------------------------------------------------------
1792 // Field       : PIO_SM2_SHIFTCTRL_FJOIN_TX
1793 // Description : When 1, TX FIFO steals the RX FIFO's storage, and becomes twice
1794 //               as deep.
1795 //               RX FIFO is disabled as a result (always reads as both full and
1796 //               empty).
1797 //               FIFOs are flushed when this bit is changed.
1798 #define PIO_SM2_SHIFTCTRL_FJOIN_TX_RESET  _u(0x0)
1799 #define PIO_SM2_SHIFTCTRL_FJOIN_TX_BITS   _u(0x40000000)
1800 #define PIO_SM2_SHIFTCTRL_FJOIN_TX_MSB    _u(30)
1801 #define PIO_SM2_SHIFTCTRL_FJOIN_TX_LSB    _u(30)
1802 #define PIO_SM2_SHIFTCTRL_FJOIN_TX_ACCESS "RW"
1803 // -----------------------------------------------------------------------------
1804 // Field       : PIO_SM2_SHIFTCTRL_PULL_THRESH
1805 // Description : Number of bits shifted out of OSR before autopull, or
1806 //               conditional pull (PULL IFEMPTY), will take place.
1807 //               Write 0 for value of 32.
1808 #define PIO_SM2_SHIFTCTRL_PULL_THRESH_RESET  _u(0x00)
1809 #define PIO_SM2_SHIFTCTRL_PULL_THRESH_BITS   _u(0x3e000000)
1810 #define PIO_SM2_SHIFTCTRL_PULL_THRESH_MSB    _u(29)
1811 #define PIO_SM2_SHIFTCTRL_PULL_THRESH_LSB    _u(25)
1812 #define PIO_SM2_SHIFTCTRL_PULL_THRESH_ACCESS "RW"
1813 // -----------------------------------------------------------------------------
1814 // Field       : PIO_SM2_SHIFTCTRL_PUSH_THRESH
1815 // Description : Number of bits shifted into ISR before autopush, or conditional
1816 //               push (PUSH IFFULL), will take place.
1817 //               Write 0 for value of 32.
1818 #define PIO_SM2_SHIFTCTRL_PUSH_THRESH_RESET  _u(0x00)
1819 #define PIO_SM2_SHIFTCTRL_PUSH_THRESH_BITS   _u(0x01f00000)
1820 #define PIO_SM2_SHIFTCTRL_PUSH_THRESH_MSB    _u(24)
1821 #define PIO_SM2_SHIFTCTRL_PUSH_THRESH_LSB    _u(20)
1822 #define PIO_SM2_SHIFTCTRL_PUSH_THRESH_ACCESS "RW"
1823 // -----------------------------------------------------------------------------
1824 // Field       : PIO_SM2_SHIFTCTRL_OUT_SHIFTDIR
1825 // Description : 1 = shift out of output shift register to right. 0 = to left.
1826 #define PIO_SM2_SHIFTCTRL_OUT_SHIFTDIR_RESET  _u(0x1)
1827 #define PIO_SM2_SHIFTCTRL_OUT_SHIFTDIR_BITS   _u(0x00080000)
1828 #define PIO_SM2_SHIFTCTRL_OUT_SHIFTDIR_MSB    _u(19)
1829 #define PIO_SM2_SHIFTCTRL_OUT_SHIFTDIR_LSB    _u(19)
1830 #define PIO_SM2_SHIFTCTRL_OUT_SHIFTDIR_ACCESS "RW"
1831 // -----------------------------------------------------------------------------
1832 // Field       : PIO_SM2_SHIFTCTRL_IN_SHIFTDIR
1833 // Description : 1 = shift input shift register to right (data enters from
1834 //               left). 0 = to left.
1835 #define PIO_SM2_SHIFTCTRL_IN_SHIFTDIR_RESET  _u(0x1)
1836 #define PIO_SM2_SHIFTCTRL_IN_SHIFTDIR_BITS   _u(0x00040000)
1837 #define PIO_SM2_SHIFTCTRL_IN_SHIFTDIR_MSB    _u(18)
1838 #define PIO_SM2_SHIFTCTRL_IN_SHIFTDIR_LSB    _u(18)
1839 #define PIO_SM2_SHIFTCTRL_IN_SHIFTDIR_ACCESS "RW"
1840 // -----------------------------------------------------------------------------
1841 // Field       : PIO_SM2_SHIFTCTRL_AUTOPULL
1842 // Description : Pull automatically when the output shift register is emptied,
1843 //               i.e. on or following an OUT instruction which causes the output
1844 //               shift counter to reach or exceed PULL_THRESH.
1845 #define PIO_SM2_SHIFTCTRL_AUTOPULL_RESET  _u(0x0)
1846 #define PIO_SM2_SHIFTCTRL_AUTOPULL_BITS   _u(0x00020000)
1847 #define PIO_SM2_SHIFTCTRL_AUTOPULL_MSB    _u(17)
1848 #define PIO_SM2_SHIFTCTRL_AUTOPULL_LSB    _u(17)
1849 #define PIO_SM2_SHIFTCTRL_AUTOPULL_ACCESS "RW"
1850 // -----------------------------------------------------------------------------
1851 // Field       : PIO_SM2_SHIFTCTRL_AUTOPUSH
1852 // Description : Push automatically when the input shift register is filled,
1853 //               i.e. on an IN instruction which causes the input shift counter
1854 //               to reach or exceed PUSH_THRESH.
1855 #define PIO_SM2_SHIFTCTRL_AUTOPUSH_RESET  _u(0x0)
1856 #define PIO_SM2_SHIFTCTRL_AUTOPUSH_BITS   _u(0x00010000)
1857 #define PIO_SM2_SHIFTCTRL_AUTOPUSH_MSB    _u(16)
1858 #define PIO_SM2_SHIFTCTRL_AUTOPUSH_LSB    _u(16)
1859 #define PIO_SM2_SHIFTCTRL_AUTOPUSH_ACCESS "RW"
1860 // -----------------------------------------------------------------------------
1861 // Field       : PIO_SM2_SHIFTCTRL_FJOIN_RX_PUT
1862 // Description : If 1, disable this state machine's RX FIFO, make its storage
1863 //               available for random write access by the state machine (using
1864 //               the `put` instruction) and, unless FJOIN_RX_GET is also set,
1865 //               random read access by the processor (through the RXFx_PUTGETy
1866 //               registers).
1867 //
1868 //               If FJOIN_RX_PUT and FJOIN_RX_GET are both set, then the RX
1869 //               FIFO's registers can be randomly read/written by the state
1870 //               machine, but are completely inaccessible to the processor.
1871 //
1872 //               Setting this bit will clear the FJOIN_TX and FJOIN_RX bits.
1873 #define PIO_SM2_SHIFTCTRL_FJOIN_RX_PUT_RESET  _u(0x0)
1874 #define PIO_SM2_SHIFTCTRL_FJOIN_RX_PUT_BITS   _u(0x00008000)
1875 #define PIO_SM2_SHIFTCTRL_FJOIN_RX_PUT_MSB    _u(15)
1876 #define PIO_SM2_SHIFTCTRL_FJOIN_RX_PUT_LSB    _u(15)
1877 #define PIO_SM2_SHIFTCTRL_FJOIN_RX_PUT_ACCESS "RW"
1878 // -----------------------------------------------------------------------------
1879 // Field       : PIO_SM2_SHIFTCTRL_FJOIN_RX_GET
1880 // Description : If 1, disable this state machine's RX FIFO, make its storage
1881 //               available for random read access by the state machine (using
1882 //               the `get` instruction) and, unless FJOIN_RX_PUT is also set,
1883 //               random write access by the processor (through the RXFx_PUTGETy
1884 //               registers).
1885 //
1886 //               If FJOIN_RX_PUT and FJOIN_RX_GET are both set, then the RX
1887 //               FIFO's registers can be randomly read/written by the state
1888 //               machine, but are completely inaccessible to the processor.
1889 //
1890 //               Setting this bit will clear the FJOIN_TX and FJOIN_RX bits.
1891 #define PIO_SM2_SHIFTCTRL_FJOIN_RX_GET_RESET  _u(0x0)
1892 #define PIO_SM2_SHIFTCTRL_FJOIN_RX_GET_BITS   _u(0x00004000)
1893 #define PIO_SM2_SHIFTCTRL_FJOIN_RX_GET_MSB    _u(14)
1894 #define PIO_SM2_SHIFTCTRL_FJOIN_RX_GET_LSB    _u(14)
1895 #define PIO_SM2_SHIFTCTRL_FJOIN_RX_GET_ACCESS "RW"
1896 // -----------------------------------------------------------------------------
1897 // Field       : PIO_SM2_SHIFTCTRL_IN_COUNT
1898 // Description : Set the number of pins which are not masked to 0 when read by
1899 //               an IN PINS, WAIT PIN or MOV x, PINS instruction.
1900 //
1901 //               For example, an IN_COUNT of 5 means that the 5 LSBs of the IN
1902 //               pin group are visible (bits 4:0), but the remaining 27 MSBs are
1903 //               masked to 0. A count of 32 is encoded with a field value of 0,
1904 //               so the default behaviour is to not perform any masking.
1905 //
1906 //               Note this masking is applied in addition to the masking usually
1907 //               performed by the IN instruction. This is mainly useful for the
1908 //               MOV x, PINS instruction, which otherwise has no way of masking
1909 //               pins.
1910 #define PIO_SM2_SHIFTCTRL_IN_COUNT_RESET  _u(0x00)
1911 #define PIO_SM2_SHIFTCTRL_IN_COUNT_BITS   _u(0x0000001f)
1912 #define PIO_SM2_SHIFTCTRL_IN_COUNT_MSB    _u(4)
1913 #define PIO_SM2_SHIFTCTRL_IN_COUNT_LSB    _u(0)
1914 #define PIO_SM2_SHIFTCTRL_IN_COUNT_ACCESS "RW"
1915 // =============================================================================
1916 // Register    : PIO_SM2_ADDR
1917 // Description : Current instruction address of state machine 2
1918 #define PIO_SM2_ADDR_OFFSET _u(0x00000104)
1919 #define PIO_SM2_ADDR_BITS   _u(0x0000001f)
1920 #define PIO_SM2_ADDR_RESET  _u(0x00000000)
1921 #define PIO_SM2_ADDR_MSB    _u(4)
1922 #define PIO_SM2_ADDR_LSB    _u(0)
1923 #define PIO_SM2_ADDR_ACCESS "RO"
1924 // =============================================================================
1925 // Register    : PIO_SM2_INSTR
1926 // Description : Read to see the instruction currently addressed by state
1927 //               machine 2's program counter
1928 //               Write to execute an instruction immediately (including jumps)
1929 //               and then resume execution.
1930 #define PIO_SM2_INSTR_OFFSET _u(0x00000108)
1931 #define PIO_SM2_INSTR_BITS   _u(0x0000ffff)
1932 #define PIO_SM2_INSTR_RESET  "-"
1933 #define PIO_SM2_INSTR_MSB    _u(15)
1934 #define PIO_SM2_INSTR_LSB    _u(0)
1935 #define PIO_SM2_INSTR_ACCESS "RW"
1936 // =============================================================================
1937 // Register    : PIO_SM2_PINCTRL
1938 // Description : State machine pin control
1939 #define PIO_SM2_PINCTRL_OFFSET _u(0x0000010c)
1940 #define PIO_SM2_PINCTRL_BITS   _u(0xffffffff)
1941 #define PIO_SM2_PINCTRL_RESET  _u(0x14000000)
1942 // -----------------------------------------------------------------------------
1943 // Field       : PIO_SM2_PINCTRL_SIDESET_COUNT
1944 // Description : The number of MSBs of the Delay/Side-set instruction field
1945 //               which are used for side-set. Inclusive of the enable bit, if
1946 //               present. Minimum of 0 (all delay bits, no side-set) and maximum
1947 //               of 5 (all side-set, no delay).
1948 #define PIO_SM2_PINCTRL_SIDESET_COUNT_RESET  _u(0x0)
1949 #define PIO_SM2_PINCTRL_SIDESET_COUNT_BITS   _u(0xe0000000)
1950 #define PIO_SM2_PINCTRL_SIDESET_COUNT_MSB    _u(31)
1951 #define PIO_SM2_PINCTRL_SIDESET_COUNT_LSB    _u(29)
1952 #define PIO_SM2_PINCTRL_SIDESET_COUNT_ACCESS "RW"
1953 // -----------------------------------------------------------------------------
1954 // Field       : PIO_SM2_PINCTRL_SET_COUNT
1955 // Description : The number of pins asserted by a SET. In the range 0 to 5
1956 //               inclusive.
1957 #define PIO_SM2_PINCTRL_SET_COUNT_RESET  _u(0x5)
1958 #define PIO_SM2_PINCTRL_SET_COUNT_BITS   _u(0x1c000000)
1959 #define PIO_SM2_PINCTRL_SET_COUNT_MSB    _u(28)
1960 #define PIO_SM2_PINCTRL_SET_COUNT_LSB    _u(26)
1961 #define PIO_SM2_PINCTRL_SET_COUNT_ACCESS "RW"
1962 // -----------------------------------------------------------------------------
1963 // Field       : PIO_SM2_PINCTRL_OUT_COUNT
1964 // Description : The number of pins asserted by an OUT PINS, OUT PINDIRS or MOV
1965 //               PINS instruction. In the range 0 to 32 inclusive.
1966 #define PIO_SM2_PINCTRL_OUT_COUNT_RESET  _u(0x00)
1967 #define PIO_SM2_PINCTRL_OUT_COUNT_BITS   _u(0x03f00000)
1968 #define PIO_SM2_PINCTRL_OUT_COUNT_MSB    _u(25)
1969 #define PIO_SM2_PINCTRL_OUT_COUNT_LSB    _u(20)
1970 #define PIO_SM2_PINCTRL_OUT_COUNT_ACCESS "RW"
1971 // -----------------------------------------------------------------------------
1972 // Field       : PIO_SM2_PINCTRL_IN_BASE
1973 // Description : The pin which is mapped to the least-significant bit of a state
1974 //               machine's IN data bus. Higher-numbered pins are mapped to
1975 //               consecutively more-significant data bits, with a modulo of 32
1976 //               applied to pin number.
1977 #define PIO_SM2_PINCTRL_IN_BASE_RESET  _u(0x00)
1978 #define PIO_SM2_PINCTRL_IN_BASE_BITS   _u(0x000f8000)
1979 #define PIO_SM2_PINCTRL_IN_BASE_MSB    _u(19)
1980 #define PIO_SM2_PINCTRL_IN_BASE_LSB    _u(15)
1981 #define PIO_SM2_PINCTRL_IN_BASE_ACCESS "RW"
1982 // -----------------------------------------------------------------------------
1983 // Field       : PIO_SM2_PINCTRL_SIDESET_BASE
1984 // Description : The lowest-numbered pin that will be affected by a side-set
1985 //               operation. The MSBs of an instruction's side-set/delay field
1986 //               (up to 5, determined by SIDESET_COUNT) are used for side-set
1987 //               data, with the remaining LSBs used for delay. The least-
1988 //               significant bit of the side-set portion is the bit written to
1989 //               this pin, with more-significant bits written to higher-numbered
1990 //               pins.
1991 #define PIO_SM2_PINCTRL_SIDESET_BASE_RESET  _u(0x00)
1992 #define PIO_SM2_PINCTRL_SIDESET_BASE_BITS   _u(0x00007c00)
1993 #define PIO_SM2_PINCTRL_SIDESET_BASE_MSB    _u(14)
1994 #define PIO_SM2_PINCTRL_SIDESET_BASE_LSB    _u(10)
1995 #define PIO_SM2_PINCTRL_SIDESET_BASE_ACCESS "RW"
1996 // -----------------------------------------------------------------------------
1997 // Field       : PIO_SM2_PINCTRL_SET_BASE
1998 // Description : The lowest-numbered pin that will be affected by a SET PINS or
1999 //               SET PINDIRS instruction. The data written to this pin is the
2000 //               least-significant bit of the SET data.
2001 #define PIO_SM2_PINCTRL_SET_BASE_RESET  _u(0x00)
2002 #define PIO_SM2_PINCTRL_SET_BASE_BITS   _u(0x000003e0)
2003 #define PIO_SM2_PINCTRL_SET_BASE_MSB    _u(9)
2004 #define PIO_SM2_PINCTRL_SET_BASE_LSB    _u(5)
2005 #define PIO_SM2_PINCTRL_SET_BASE_ACCESS "RW"
2006 // -----------------------------------------------------------------------------
2007 // Field       : PIO_SM2_PINCTRL_OUT_BASE
2008 // Description : The lowest-numbered pin that will be affected by an OUT PINS,
2009 //               OUT PINDIRS or MOV PINS instruction. The data written to this
2010 //               pin will always be the least-significant bit of the OUT or MOV
2011 //               data.
2012 #define PIO_SM2_PINCTRL_OUT_BASE_RESET  _u(0x00)
2013 #define PIO_SM2_PINCTRL_OUT_BASE_BITS   _u(0x0000001f)
2014 #define PIO_SM2_PINCTRL_OUT_BASE_MSB    _u(4)
2015 #define PIO_SM2_PINCTRL_OUT_BASE_LSB    _u(0)
2016 #define PIO_SM2_PINCTRL_OUT_BASE_ACCESS "RW"
2017 // =============================================================================
2018 // Register    : PIO_SM3_CLKDIV
2019 // Description : Clock divisor register for state machine 3
2020 //               Frequency = clock freq / (CLKDIV_INT + CLKDIV_FRAC / 256)
2021 #define PIO_SM3_CLKDIV_OFFSET _u(0x00000110)
2022 #define PIO_SM3_CLKDIV_BITS   _u(0xffffff00)
2023 #define PIO_SM3_CLKDIV_RESET  _u(0x00010000)
2024 // -----------------------------------------------------------------------------
2025 // Field       : PIO_SM3_CLKDIV_INT
2026 // Description : Effective frequency is sysclk/(int + frac/256).
2027 //               Value of 0 is interpreted as 65536. If INT is 0, FRAC must also
2028 //               be 0.
2029 #define PIO_SM3_CLKDIV_INT_RESET  _u(0x0001)
2030 #define PIO_SM3_CLKDIV_INT_BITS   _u(0xffff0000)
2031 #define PIO_SM3_CLKDIV_INT_MSB    _u(31)
2032 #define PIO_SM3_CLKDIV_INT_LSB    _u(16)
2033 #define PIO_SM3_CLKDIV_INT_ACCESS "RW"
2034 // -----------------------------------------------------------------------------
2035 // Field       : PIO_SM3_CLKDIV_FRAC
2036 // Description : Fractional part of clock divisor
2037 #define PIO_SM3_CLKDIV_FRAC_RESET  _u(0x00)
2038 #define PIO_SM3_CLKDIV_FRAC_BITS   _u(0x0000ff00)
2039 #define PIO_SM3_CLKDIV_FRAC_MSB    _u(15)
2040 #define PIO_SM3_CLKDIV_FRAC_LSB    _u(8)
2041 #define PIO_SM3_CLKDIV_FRAC_ACCESS "RW"
2042 // =============================================================================
2043 // Register    : PIO_SM3_EXECCTRL
2044 // Description : Execution/behavioural settings for state machine 3
2045 #define PIO_SM3_EXECCTRL_OFFSET _u(0x00000114)
2046 #define PIO_SM3_EXECCTRL_BITS   _u(0xffffffff)
2047 #define PIO_SM3_EXECCTRL_RESET  _u(0x0001f000)
2048 // -----------------------------------------------------------------------------
2049 // Field       : PIO_SM3_EXECCTRL_EXEC_STALLED
2050 // Description : If 1, an instruction written to SMx_INSTR is stalled, and
2051 //               latched by the state machine. Will clear to 0 once this
2052 //               instruction completes.
2053 #define PIO_SM3_EXECCTRL_EXEC_STALLED_RESET  _u(0x0)
2054 #define PIO_SM3_EXECCTRL_EXEC_STALLED_BITS   _u(0x80000000)
2055 #define PIO_SM3_EXECCTRL_EXEC_STALLED_MSB    _u(31)
2056 #define PIO_SM3_EXECCTRL_EXEC_STALLED_LSB    _u(31)
2057 #define PIO_SM3_EXECCTRL_EXEC_STALLED_ACCESS "RO"
2058 // -----------------------------------------------------------------------------
2059 // Field       : PIO_SM3_EXECCTRL_SIDE_EN
2060 // Description : If 1, the MSB of the Delay/Side-set instruction field is used
2061 //               as side-set enable, rather than a side-set data bit. This
2062 //               allows instructions to perform side-set optionally, rather than
2063 //               on every instruction, but the maximum possible side-set width
2064 //               is reduced from 5 to 4. Note that the value of
2065 //               PINCTRL_SIDESET_COUNT is inclusive of this enable bit.
2066 #define PIO_SM3_EXECCTRL_SIDE_EN_RESET  _u(0x0)
2067 #define PIO_SM3_EXECCTRL_SIDE_EN_BITS   _u(0x40000000)
2068 #define PIO_SM3_EXECCTRL_SIDE_EN_MSB    _u(30)
2069 #define PIO_SM3_EXECCTRL_SIDE_EN_LSB    _u(30)
2070 #define PIO_SM3_EXECCTRL_SIDE_EN_ACCESS "RW"
2071 // -----------------------------------------------------------------------------
2072 // Field       : PIO_SM3_EXECCTRL_SIDE_PINDIR
2073 // Description : If 1, side-set data is asserted to pin directions, instead of
2074 //               pin values
2075 #define PIO_SM3_EXECCTRL_SIDE_PINDIR_RESET  _u(0x0)
2076 #define PIO_SM3_EXECCTRL_SIDE_PINDIR_BITS   _u(0x20000000)
2077 #define PIO_SM3_EXECCTRL_SIDE_PINDIR_MSB    _u(29)
2078 #define PIO_SM3_EXECCTRL_SIDE_PINDIR_LSB    _u(29)
2079 #define PIO_SM3_EXECCTRL_SIDE_PINDIR_ACCESS "RW"
2080 // -----------------------------------------------------------------------------
2081 // Field       : PIO_SM3_EXECCTRL_JMP_PIN
2082 // Description : The GPIO number to use as condition for JMP PIN. Unaffected by
2083 //               input mapping.
2084 #define PIO_SM3_EXECCTRL_JMP_PIN_RESET  _u(0x00)
2085 #define PIO_SM3_EXECCTRL_JMP_PIN_BITS   _u(0x1f000000)
2086 #define PIO_SM3_EXECCTRL_JMP_PIN_MSB    _u(28)
2087 #define PIO_SM3_EXECCTRL_JMP_PIN_LSB    _u(24)
2088 #define PIO_SM3_EXECCTRL_JMP_PIN_ACCESS "RW"
2089 // -----------------------------------------------------------------------------
2090 // Field       : PIO_SM3_EXECCTRL_OUT_EN_SEL
2091 // Description : Which data bit to use for inline OUT enable
2092 #define PIO_SM3_EXECCTRL_OUT_EN_SEL_RESET  _u(0x00)
2093 #define PIO_SM3_EXECCTRL_OUT_EN_SEL_BITS   _u(0x00f80000)
2094 #define PIO_SM3_EXECCTRL_OUT_EN_SEL_MSB    _u(23)
2095 #define PIO_SM3_EXECCTRL_OUT_EN_SEL_LSB    _u(19)
2096 #define PIO_SM3_EXECCTRL_OUT_EN_SEL_ACCESS "RW"
2097 // -----------------------------------------------------------------------------
2098 // Field       : PIO_SM3_EXECCTRL_INLINE_OUT_EN
2099 // Description : If 1, use a bit of OUT data as an auxiliary write enable
2100 //               When used in conjunction with OUT_STICKY, writes with an enable
2101 //               of 0 will
2102 //               deassert the latest pin write. This can create useful
2103 //               masking/override behaviour
2104 //               due to the priority ordering of state machine pin writes (SM0 <
2105 //               SM1 < ...)
2106 #define PIO_SM3_EXECCTRL_INLINE_OUT_EN_RESET  _u(0x0)
2107 #define PIO_SM3_EXECCTRL_INLINE_OUT_EN_BITS   _u(0x00040000)
2108 #define PIO_SM3_EXECCTRL_INLINE_OUT_EN_MSB    _u(18)
2109 #define PIO_SM3_EXECCTRL_INLINE_OUT_EN_LSB    _u(18)
2110 #define PIO_SM3_EXECCTRL_INLINE_OUT_EN_ACCESS "RW"
2111 // -----------------------------------------------------------------------------
2112 // Field       : PIO_SM3_EXECCTRL_OUT_STICKY
2113 // Description : Continuously assert the most recent OUT/SET to the pins
2114 #define PIO_SM3_EXECCTRL_OUT_STICKY_RESET  _u(0x0)
2115 #define PIO_SM3_EXECCTRL_OUT_STICKY_BITS   _u(0x00020000)
2116 #define PIO_SM3_EXECCTRL_OUT_STICKY_MSB    _u(17)
2117 #define PIO_SM3_EXECCTRL_OUT_STICKY_LSB    _u(17)
2118 #define PIO_SM3_EXECCTRL_OUT_STICKY_ACCESS "RW"
2119 // -----------------------------------------------------------------------------
2120 // Field       : PIO_SM3_EXECCTRL_WRAP_TOP
2121 // Description : After reaching this address, execution is wrapped to
2122 //               wrap_bottom.
2123 //               If the instruction is a jump, and the jump condition is true,
2124 //               the jump takes priority.
2125 #define PIO_SM3_EXECCTRL_WRAP_TOP_RESET  _u(0x1f)
2126 #define PIO_SM3_EXECCTRL_WRAP_TOP_BITS   _u(0x0001f000)
2127 #define PIO_SM3_EXECCTRL_WRAP_TOP_MSB    _u(16)
2128 #define PIO_SM3_EXECCTRL_WRAP_TOP_LSB    _u(12)
2129 #define PIO_SM3_EXECCTRL_WRAP_TOP_ACCESS "RW"
2130 // -----------------------------------------------------------------------------
2131 // Field       : PIO_SM3_EXECCTRL_WRAP_BOTTOM
2132 // Description : After reaching wrap_top, execution is wrapped to this address.
2133 #define PIO_SM3_EXECCTRL_WRAP_BOTTOM_RESET  _u(0x00)
2134 #define PIO_SM3_EXECCTRL_WRAP_BOTTOM_BITS   _u(0x00000f80)
2135 #define PIO_SM3_EXECCTRL_WRAP_BOTTOM_MSB    _u(11)
2136 #define PIO_SM3_EXECCTRL_WRAP_BOTTOM_LSB    _u(7)
2137 #define PIO_SM3_EXECCTRL_WRAP_BOTTOM_ACCESS "RW"
2138 // -----------------------------------------------------------------------------
2139 // Field       : PIO_SM3_EXECCTRL_STATUS_SEL
2140 // Description : Comparison used for the MOV x, STATUS instruction.
2141 //               0x0 -> All-ones if TX FIFO level < N, otherwise all-zeroes
2142 //               0x1 -> All-ones if RX FIFO level < N, otherwise all-zeroes
2143 //               0x2 -> All-ones if the indexed IRQ flag is raised, otherwise all-zeroes
2144 #define PIO_SM3_EXECCTRL_STATUS_SEL_RESET  _u(0x0)
2145 #define PIO_SM3_EXECCTRL_STATUS_SEL_BITS   _u(0x00000060)
2146 #define PIO_SM3_EXECCTRL_STATUS_SEL_MSB    _u(6)
2147 #define PIO_SM3_EXECCTRL_STATUS_SEL_LSB    _u(5)
2148 #define PIO_SM3_EXECCTRL_STATUS_SEL_ACCESS "RW"
2149 #define PIO_SM3_EXECCTRL_STATUS_SEL_VALUE_TXLEVEL _u(0x0)
2150 #define PIO_SM3_EXECCTRL_STATUS_SEL_VALUE_RXLEVEL _u(0x1)
2151 #define PIO_SM3_EXECCTRL_STATUS_SEL_VALUE_IRQ _u(0x2)
2152 // -----------------------------------------------------------------------------
2153 // Field       : PIO_SM3_EXECCTRL_STATUS_N
2154 // Description : Comparison level or IRQ index for the MOV x, STATUS
2155 //               instruction.
2156 //
2157 //               If STATUS_SEL is TXLEVEL or RXLEVEL, then values of STATUS_N
2158 //               greater than the current FIFO depth are reserved, and have
2159 //               undefined behaviour.
2160 //               0x00 -> Index 0-7 of an IRQ flag in this PIO block
2161 //               0x08 -> Index 0-7 of an IRQ flag in the next lower-numbered PIO block
2162 //               0x10 -> Index 0-7 of an IRQ flag in the next higher-numbered PIO block
2163 #define PIO_SM3_EXECCTRL_STATUS_N_RESET  _u(0x00)
2164 #define PIO_SM3_EXECCTRL_STATUS_N_BITS   _u(0x0000001f)
2165 #define PIO_SM3_EXECCTRL_STATUS_N_MSB    _u(4)
2166 #define PIO_SM3_EXECCTRL_STATUS_N_LSB    _u(0)
2167 #define PIO_SM3_EXECCTRL_STATUS_N_ACCESS "RW"
2168 #define PIO_SM3_EXECCTRL_STATUS_N_VALUE_IRQ _u(0x00)
2169 #define PIO_SM3_EXECCTRL_STATUS_N_VALUE_IRQ_PREVPIO _u(0x08)
2170 #define PIO_SM3_EXECCTRL_STATUS_N_VALUE_IRQ_NEXTPIO _u(0x10)
2171 // =============================================================================
2172 // Register    : PIO_SM3_SHIFTCTRL
2173 // Description : Control behaviour of the input/output shift registers for state
2174 //               machine 3
2175 #define PIO_SM3_SHIFTCTRL_OFFSET _u(0x00000118)
2176 #define PIO_SM3_SHIFTCTRL_BITS   _u(0xffffc01f)
2177 #define PIO_SM3_SHIFTCTRL_RESET  _u(0x000c0000)
2178 // -----------------------------------------------------------------------------
2179 // Field       : PIO_SM3_SHIFTCTRL_FJOIN_RX
2180 // Description : When 1, RX FIFO steals the TX FIFO's storage, and becomes twice
2181 //               as deep.
2182 //               TX FIFO is disabled as a result (always reads as both full and
2183 //               empty).
2184 //               FIFOs are flushed when this bit is changed.
2185 #define PIO_SM3_SHIFTCTRL_FJOIN_RX_RESET  _u(0x0)
2186 #define PIO_SM3_SHIFTCTRL_FJOIN_RX_BITS   _u(0x80000000)
2187 #define PIO_SM3_SHIFTCTRL_FJOIN_RX_MSB    _u(31)
2188 #define PIO_SM3_SHIFTCTRL_FJOIN_RX_LSB    _u(31)
2189 #define PIO_SM3_SHIFTCTRL_FJOIN_RX_ACCESS "RW"
2190 // -----------------------------------------------------------------------------
2191 // Field       : PIO_SM3_SHIFTCTRL_FJOIN_TX
2192 // Description : When 1, TX FIFO steals the RX FIFO's storage, and becomes twice
2193 //               as deep.
2194 //               RX FIFO is disabled as a result (always reads as both full and
2195 //               empty).
2196 //               FIFOs are flushed when this bit is changed.
2197 #define PIO_SM3_SHIFTCTRL_FJOIN_TX_RESET  _u(0x0)
2198 #define PIO_SM3_SHIFTCTRL_FJOIN_TX_BITS   _u(0x40000000)
2199 #define PIO_SM3_SHIFTCTRL_FJOIN_TX_MSB    _u(30)
2200 #define PIO_SM3_SHIFTCTRL_FJOIN_TX_LSB    _u(30)
2201 #define PIO_SM3_SHIFTCTRL_FJOIN_TX_ACCESS "RW"
2202 // -----------------------------------------------------------------------------
2203 // Field       : PIO_SM3_SHIFTCTRL_PULL_THRESH
2204 // Description : Number of bits shifted out of OSR before autopull, or
2205 //               conditional pull (PULL IFEMPTY), will take place.
2206 //               Write 0 for value of 32.
2207 #define PIO_SM3_SHIFTCTRL_PULL_THRESH_RESET  _u(0x00)
2208 #define PIO_SM3_SHIFTCTRL_PULL_THRESH_BITS   _u(0x3e000000)
2209 #define PIO_SM3_SHIFTCTRL_PULL_THRESH_MSB    _u(29)
2210 #define PIO_SM3_SHIFTCTRL_PULL_THRESH_LSB    _u(25)
2211 #define PIO_SM3_SHIFTCTRL_PULL_THRESH_ACCESS "RW"
2212 // -----------------------------------------------------------------------------
2213 // Field       : PIO_SM3_SHIFTCTRL_PUSH_THRESH
2214 // Description : Number of bits shifted into ISR before autopush, or conditional
2215 //               push (PUSH IFFULL), will take place.
2216 //               Write 0 for value of 32.
2217 #define PIO_SM3_SHIFTCTRL_PUSH_THRESH_RESET  _u(0x00)
2218 #define PIO_SM3_SHIFTCTRL_PUSH_THRESH_BITS   _u(0x01f00000)
2219 #define PIO_SM3_SHIFTCTRL_PUSH_THRESH_MSB    _u(24)
2220 #define PIO_SM3_SHIFTCTRL_PUSH_THRESH_LSB    _u(20)
2221 #define PIO_SM3_SHIFTCTRL_PUSH_THRESH_ACCESS "RW"
2222 // -----------------------------------------------------------------------------
2223 // Field       : PIO_SM3_SHIFTCTRL_OUT_SHIFTDIR
2224 // Description : 1 = shift out of output shift register to right. 0 = to left.
2225 #define PIO_SM3_SHIFTCTRL_OUT_SHIFTDIR_RESET  _u(0x1)
2226 #define PIO_SM3_SHIFTCTRL_OUT_SHIFTDIR_BITS   _u(0x00080000)
2227 #define PIO_SM3_SHIFTCTRL_OUT_SHIFTDIR_MSB    _u(19)
2228 #define PIO_SM3_SHIFTCTRL_OUT_SHIFTDIR_LSB    _u(19)
2229 #define PIO_SM3_SHIFTCTRL_OUT_SHIFTDIR_ACCESS "RW"
2230 // -----------------------------------------------------------------------------
2231 // Field       : PIO_SM3_SHIFTCTRL_IN_SHIFTDIR
2232 // Description : 1 = shift input shift register to right (data enters from
2233 //               left). 0 = to left.
2234 #define PIO_SM3_SHIFTCTRL_IN_SHIFTDIR_RESET  _u(0x1)
2235 #define PIO_SM3_SHIFTCTRL_IN_SHIFTDIR_BITS   _u(0x00040000)
2236 #define PIO_SM3_SHIFTCTRL_IN_SHIFTDIR_MSB    _u(18)
2237 #define PIO_SM3_SHIFTCTRL_IN_SHIFTDIR_LSB    _u(18)
2238 #define PIO_SM3_SHIFTCTRL_IN_SHIFTDIR_ACCESS "RW"
2239 // -----------------------------------------------------------------------------
2240 // Field       : PIO_SM3_SHIFTCTRL_AUTOPULL
2241 // Description : Pull automatically when the output shift register is emptied,
2242 //               i.e. on or following an OUT instruction which causes the output
2243 //               shift counter to reach or exceed PULL_THRESH.
2244 #define PIO_SM3_SHIFTCTRL_AUTOPULL_RESET  _u(0x0)
2245 #define PIO_SM3_SHIFTCTRL_AUTOPULL_BITS   _u(0x00020000)
2246 #define PIO_SM3_SHIFTCTRL_AUTOPULL_MSB    _u(17)
2247 #define PIO_SM3_SHIFTCTRL_AUTOPULL_LSB    _u(17)
2248 #define PIO_SM3_SHIFTCTRL_AUTOPULL_ACCESS "RW"
2249 // -----------------------------------------------------------------------------
2250 // Field       : PIO_SM3_SHIFTCTRL_AUTOPUSH
2251 // Description : Push automatically when the input shift register is filled,
2252 //               i.e. on an IN instruction which causes the input shift counter
2253 //               to reach or exceed PUSH_THRESH.
2254 #define PIO_SM3_SHIFTCTRL_AUTOPUSH_RESET  _u(0x0)
2255 #define PIO_SM3_SHIFTCTRL_AUTOPUSH_BITS   _u(0x00010000)
2256 #define PIO_SM3_SHIFTCTRL_AUTOPUSH_MSB    _u(16)
2257 #define PIO_SM3_SHIFTCTRL_AUTOPUSH_LSB    _u(16)
2258 #define PIO_SM3_SHIFTCTRL_AUTOPUSH_ACCESS "RW"
2259 // -----------------------------------------------------------------------------
2260 // Field       : PIO_SM3_SHIFTCTRL_FJOIN_RX_PUT
2261 // Description : If 1, disable this state machine's RX FIFO, make its storage
2262 //               available for random write access by the state machine (using
2263 //               the `put` instruction) and, unless FJOIN_RX_GET is also set,
2264 //               random read access by the processor (through the RXFx_PUTGETy
2265 //               registers).
2266 //
2267 //               If FJOIN_RX_PUT and FJOIN_RX_GET are both set, then the RX
2268 //               FIFO's registers can be randomly read/written by the state
2269 //               machine, but are completely inaccessible to the processor.
2270 //
2271 //               Setting this bit will clear the FJOIN_TX and FJOIN_RX bits.
2272 #define PIO_SM3_SHIFTCTRL_FJOIN_RX_PUT_RESET  _u(0x0)
2273 #define PIO_SM3_SHIFTCTRL_FJOIN_RX_PUT_BITS   _u(0x00008000)
2274 #define PIO_SM3_SHIFTCTRL_FJOIN_RX_PUT_MSB    _u(15)
2275 #define PIO_SM3_SHIFTCTRL_FJOIN_RX_PUT_LSB    _u(15)
2276 #define PIO_SM3_SHIFTCTRL_FJOIN_RX_PUT_ACCESS "RW"
2277 // -----------------------------------------------------------------------------
2278 // Field       : PIO_SM3_SHIFTCTRL_FJOIN_RX_GET
2279 // Description : If 1, disable this state machine's RX FIFO, make its storage
2280 //               available for random read access by the state machine (using
2281 //               the `get` instruction) and, unless FJOIN_RX_PUT is also set,
2282 //               random write access by the processor (through the RXFx_PUTGETy
2283 //               registers).
2284 //
2285 //               If FJOIN_RX_PUT and FJOIN_RX_GET are both set, then the RX
2286 //               FIFO's registers can be randomly read/written by the state
2287 //               machine, but are completely inaccessible to the processor.
2288 //
2289 //               Setting this bit will clear the FJOIN_TX and FJOIN_RX bits.
2290 #define PIO_SM3_SHIFTCTRL_FJOIN_RX_GET_RESET  _u(0x0)
2291 #define PIO_SM3_SHIFTCTRL_FJOIN_RX_GET_BITS   _u(0x00004000)
2292 #define PIO_SM3_SHIFTCTRL_FJOIN_RX_GET_MSB    _u(14)
2293 #define PIO_SM3_SHIFTCTRL_FJOIN_RX_GET_LSB    _u(14)
2294 #define PIO_SM3_SHIFTCTRL_FJOIN_RX_GET_ACCESS "RW"
2295 // -----------------------------------------------------------------------------
2296 // Field       : PIO_SM3_SHIFTCTRL_IN_COUNT
2297 // Description : Set the number of pins which are not masked to 0 when read by
2298 //               an IN PINS, WAIT PIN or MOV x, PINS instruction.
2299 //
2300 //               For example, an IN_COUNT of 5 means that the 5 LSBs of the IN
2301 //               pin group are visible (bits 4:0), but the remaining 27 MSBs are
2302 //               masked to 0. A count of 32 is encoded with a field value of 0,
2303 //               so the default behaviour is to not perform any masking.
2304 //
2305 //               Note this masking is applied in addition to the masking usually
2306 //               performed by the IN instruction. This is mainly useful for the
2307 //               MOV x, PINS instruction, which otherwise has no way of masking
2308 //               pins.
2309 #define PIO_SM3_SHIFTCTRL_IN_COUNT_RESET  _u(0x00)
2310 #define PIO_SM3_SHIFTCTRL_IN_COUNT_BITS   _u(0x0000001f)
2311 #define PIO_SM3_SHIFTCTRL_IN_COUNT_MSB    _u(4)
2312 #define PIO_SM3_SHIFTCTRL_IN_COUNT_LSB    _u(0)
2313 #define PIO_SM3_SHIFTCTRL_IN_COUNT_ACCESS "RW"
2314 // =============================================================================
2315 // Register    : PIO_SM3_ADDR
2316 // Description : Current instruction address of state machine 3
2317 #define PIO_SM3_ADDR_OFFSET _u(0x0000011c)
2318 #define PIO_SM3_ADDR_BITS   _u(0x0000001f)
2319 #define PIO_SM3_ADDR_RESET  _u(0x00000000)
2320 #define PIO_SM3_ADDR_MSB    _u(4)
2321 #define PIO_SM3_ADDR_LSB    _u(0)
2322 #define PIO_SM3_ADDR_ACCESS "RO"
2323 // =============================================================================
2324 // Register    : PIO_SM3_INSTR
2325 // Description : Read to see the instruction currently addressed by state
2326 //               machine 3's program counter
2327 //               Write to execute an instruction immediately (including jumps)
2328 //               and then resume execution.
2329 #define PIO_SM3_INSTR_OFFSET _u(0x00000120)
2330 #define PIO_SM3_INSTR_BITS   _u(0x0000ffff)
2331 #define PIO_SM3_INSTR_RESET  "-"
2332 #define PIO_SM3_INSTR_MSB    _u(15)
2333 #define PIO_SM3_INSTR_LSB    _u(0)
2334 #define PIO_SM3_INSTR_ACCESS "RW"
2335 // =============================================================================
2336 // Register    : PIO_SM3_PINCTRL
2337 // Description : State machine pin control
2338 #define PIO_SM3_PINCTRL_OFFSET _u(0x00000124)
2339 #define PIO_SM3_PINCTRL_BITS   _u(0xffffffff)
2340 #define PIO_SM3_PINCTRL_RESET  _u(0x14000000)
2341 // -----------------------------------------------------------------------------
2342 // Field       : PIO_SM3_PINCTRL_SIDESET_COUNT
2343 // Description : The number of MSBs of the Delay/Side-set instruction field
2344 //               which are used for side-set. Inclusive of the enable bit, if
2345 //               present. Minimum of 0 (all delay bits, no side-set) and maximum
2346 //               of 5 (all side-set, no delay).
2347 #define PIO_SM3_PINCTRL_SIDESET_COUNT_RESET  _u(0x0)
2348 #define PIO_SM3_PINCTRL_SIDESET_COUNT_BITS   _u(0xe0000000)
2349 #define PIO_SM3_PINCTRL_SIDESET_COUNT_MSB    _u(31)
2350 #define PIO_SM3_PINCTRL_SIDESET_COUNT_LSB    _u(29)
2351 #define PIO_SM3_PINCTRL_SIDESET_COUNT_ACCESS "RW"
2352 // -----------------------------------------------------------------------------
2353 // Field       : PIO_SM3_PINCTRL_SET_COUNT
2354 // Description : The number of pins asserted by a SET. In the range 0 to 5
2355 //               inclusive.
2356 #define PIO_SM3_PINCTRL_SET_COUNT_RESET  _u(0x5)
2357 #define PIO_SM3_PINCTRL_SET_COUNT_BITS   _u(0x1c000000)
2358 #define PIO_SM3_PINCTRL_SET_COUNT_MSB    _u(28)
2359 #define PIO_SM3_PINCTRL_SET_COUNT_LSB    _u(26)
2360 #define PIO_SM3_PINCTRL_SET_COUNT_ACCESS "RW"
2361 // -----------------------------------------------------------------------------
2362 // Field       : PIO_SM3_PINCTRL_OUT_COUNT
2363 // Description : The number of pins asserted by an OUT PINS, OUT PINDIRS or MOV
2364 //               PINS instruction. In the range 0 to 32 inclusive.
2365 #define PIO_SM3_PINCTRL_OUT_COUNT_RESET  _u(0x00)
2366 #define PIO_SM3_PINCTRL_OUT_COUNT_BITS   _u(0x03f00000)
2367 #define PIO_SM3_PINCTRL_OUT_COUNT_MSB    _u(25)
2368 #define PIO_SM3_PINCTRL_OUT_COUNT_LSB    _u(20)
2369 #define PIO_SM3_PINCTRL_OUT_COUNT_ACCESS "RW"
2370 // -----------------------------------------------------------------------------
2371 // Field       : PIO_SM3_PINCTRL_IN_BASE
2372 // Description : The pin which is mapped to the least-significant bit of a state
2373 //               machine's IN data bus. Higher-numbered pins are mapped to
2374 //               consecutively more-significant data bits, with a modulo of 32
2375 //               applied to pin number.
2376 #define PIO_SM3_PINCTRL_IN_BASE_RESET  _u(0x00)
2377 #define PIO_SM3_PINCTRL_IN_BASE_BITS   _u(0x000f8000)
2378 #define PIO_SM3_PINCTRL_IN_BASE_MSB    _u(19)
2379 #define PIO_SM3_PINCTRL_IN_BASE_LSB    _u(15)
2380 #define PIO_SM3_PINCTRL_IN_BASE_ACCESS "RW"
2381 // -----------------------------------------------------------------------------
2382 // Field       : PIO_SM3_PINCTRL_SIDESET_BASE
2383 // Description : The lowest-numbered pin that will be affected by a side-set
2384 //               operation. The MSBs of an instruction's side-set/delay field
2385 //               (up to 5, determined by SIDESET_COUNT) are used for side-set
2386 //               data, with the remaining LSBs used for delay. The least-
2387 //               significant bit of the side-set portion is the bit written to
2388 //               this pin, with more-significant bits written to higher-numbered
2389 //               pins.
2390 #define PIO_SM3_PINCTRL_SIDESET_BASE_RESET  _u(0x00)
2391 #define PIO_SM3_PINCTRL_SIDESET_BASE_BITS   _u(0x00007c00)
2392 #define PIO_SM3_PINCTRL_SIDESET_BASE_MSB    _u(14)
2393 #define PIO_SM3_PINCTRL_SIDESET_BASE_LSB    _u(10)
2394 #define PIO_SM3_PINCTRL_SIDESET_BASE_ACCESS "RW"
2395 // -----------------------------------------------------------------------------
2396 // Field       : PIO_SM3_PINCTRL_SET_BASE
2397 // Description : The lowest-numbered pin that will be affected by a SET PINS or
2398 //               SET PINDIRS instruction. The data written to this pin is the
2399 //               least-significant bit of the SET data.
2400 #define PIO_SM3_PINCTRL_SET_BASE_RESET  _u(0x00)
2401 #define PIO_SM3_PINCTRL_SET_BASE_BITS   _u(0x000003e0)
2402 #define PIO_SM3_PINCTRL_SET_BASE_MSB    _u(9)
2403 #define PIO_SM3_PINCTRL_SET_BASE_LSB    _u(5)
2404 #define PIO_SM3_PINCTRL_SET_BASE_ACCESS "RW"
2405 // -----------------------------------------------------------------------------
2406 // Field       : PIO_SM3_PINCTRL_OUT_BASE
2407 // Description : The lowest-numbered pin that will be affected by an OUT PINS,
2408 //               OUT PINDIRS or MOV PINS instruction. The data written to this
2409 //               pin will always be the least-significant bit of the OUT or MOV
2410 //               data.
2411 #define PIO_SM3_PINCTRL_OUT_BASE_RESET  _u(0x00)
2412 #define PIO_SM3_PINCTRL_OUT_BASE_BITS   _u(0x0000001f)
2413 #define PIO_SM3_PINCTRL_OUT_BASE_MSB    _u(4)
2414 #define PIO_SM3_PINCTRL_OUT_BASE_LSB    _u(0)
2415 #define PIO_SM3_PINCTRL_OUT_BASE_ACCESS "RW"
2416 // =============================================================================
2417 // Register    : PIO_RXF0_PUTGET0
2418 // Description : Direct read/write access to entry 0 of SM0's RX FIFO, if
2419 //               SHIFTCTRL_FJOIN_RX_PUT xor SHIFTCTRL_FJOIN_RX_GET is set.
2420 #define PIO_RXF0_PUTGET0_OFFSET _u(0x00000128)
2421 #define PIO_RXF0_PUTGET0_BITS   _u(0xffffffff)
2422 #define PIO_RXF0_PUTGET0_RESET  _u(0x00000000)
2423 #define PIO_RXF0_PUTGET0_MSB    _u(31)
2424 #define PIO_RXF0_PUTGET0_LSB    _u(0)
2425 #define PIO_RXF0_PUTGET0_ACCESS "RW"
2426 // =============================================================================
2427 // Register    : PIO_RXF0_PUTGET1
2428 // Description : Direct read/write access to entry 1 of SM0's RX FIFO, if
2429 //               SHIFTCTRL_FJOIN_RX_PUT xor SHIFTCTRL_FJOIN_RX_GET is set.
2430 #define PIO_RXF0_PUTGET1_OFFSET _u(0x0000012c)
2431 #define PIO_RXF0_PUTGET1_BITS   _u(0xffffffff)
2432 #define PIO_RXF0_PUTGET1_RESET  _u(0x00000000)
2433 #define PIO_RXF0_PUTGET1_MSB    _u(31)
2434 #define PIO_RXF0_PUTGET1_LSB    _u(0)
2435 #define PIO_RXF0_PUTGET1_ACCESS "RW"
2436 // =============================================================================
2437 // Register    : PIO_RXF0_PUTGET2
2438 // Description : Direct read/write access to entry 2 of SM0's RX FIFO, if
2439 //               SHIFTCTRL_FJOIN_RX_PUT xor SHIFTCTRL_FJOIN_RX_GET is set.
2440 #define PIO_RXF0_PUTGET2_OFFSET _u(0x00000130)
2441 #define PIO_RXF0_PUTGET2_BITS   _u(0xffffffff)
2442 #define PIO_RXF0_PUTGET2_RESET  _u(0x00000000)
2443 #define PIO_RXF0_PUTGET2_MSB    _u(31)
2444 #define PIO_RXF0_PUTGET2_LSB    _u(0)
2445 #define PIO_RXF0_PUTGET2_ACCESS "RW"
2446 // =============================================================================
2447 // Register    : PIO_RXF0_PUTGET3
2448 // Description : Direct read/write access to entry 3 of SM0's RX FIFO, if
2449 //               SHIFTCTRL_FJOIN_RX_PUT xor SHIFTCTRL_FJOIN_RX_GET is set.
2450 #define PIO_RXF0_PUTGET3_OFFSET _u(0x00000134)
2451 #define PIO_RXF0_PUTGET3_BITS   _u(0xffffffff)
2452 #define PIO_RXF0_PUTGET3_RESET  _u(0x00000000)
2453 #define PIO_RXF0_PUTGET3_MSB    _u(31)
2454 #define PIO_RXF0_PUTGET3_LSB    _u(0)
2455 #define PIO_RXF0_PUTGET3_ACCESS "RW"
2456 // =============================================================================
2457 // Register    : PIO_RXF1_PUTGET0
2458 // Description : Direct read/write access to entry 0 of SM1's RX FIFO, if
2459 //               SHIFTCTRL_FJOIN_RX_PUT xor SHIFTCTRL_FJOIN_RX_GET is set.
2460 #define PIO_RXF1_PUTGET0_OFFSET _u(0x00000138)
2461 #define PIO_RXF1_PUTGET0_BITS   _u(0xffffffff)
2462 #define PIO_RXF1_PUTGET0_RESET  _u(0x00000000)
2463 #define PIO_RXF1_PUTGET0_MSB    _u(31)
2464 #define PIO_RXF1_PUTGET0_LSB    _u(0)
2465 #define PIO_RXF1_PUTGET0_ACCESS "RW"
2466 // =============================================================================
2467 // Register    : PIO_RXF1_PUTGET1
2468 // Description : Direct read/write access to entry 1 of SM1's RX FIFO, if
2469 //               SHIFTCTRL_FJOIN_RX_PUT xor SHIFTCTRL_FJOIN_RX_GET is set.
2470 #define PIO_RXF1_PUTGET1_OFFSET _u(0x0000013c)
2471 #define PIO_RXF1_PUTGET1_BITS   _u(0xffffffff)
2472 #define PIO_RXF1_PUTGET1_RESET  _u(0x00000000)
2473 #define PIO_RXF1_PUTGET1_MSB    _u(31)
2474 #define PIO_RXF1_PUTGET1_LSB    _u(0)
2475 #define PIO_RXF1_PUTGET1_ACCESS "RW"
2476 // =============================================================================
2477 // Register    : PIO_RXF1_PUTGET2
2478 // Description : Direct read/write access to entry 2 of SM1's RX FIFO, if
2479 //               SHIFTCTRL_FJOIN_RX_PUT xor SHIFTCTRL_FJOIN_RX_GET is set.
2480 #define PIO_RXF1_PUTGET2_OFFSET _u(0x00000140)
2481 #define PIO_RXF1_PUTGET2_BITS   _u(0xffffffff)
2482 #define PIO_RXF1_PUTGET2_RESET  _u(0x00000000)
2483 #define PIO_RXF1_PUTGET2_MSB    _u(31)
2484 #define PIO_RXF1_PUTGET2_LSB    _u(0)
2485 #define PIO_RXF1_PUTGET2_ACCESS "RW"
2486 // =============================================================================
2487 // Register    : PIO_RXF1_PUTGET3
2488 // Description : Direct read/write access to entry 3 of SM1's RX FIFO, if
2489 //               SHIFTCTRL_FJOIN_RX_PUT xor SHIFTCTRL_FJOIN_RX_GET is set.
2490 #define PIO_RXF1_PUTGET3_OFFSET _u(0x00000144)
2491 #define PIO_RXF1_PUTGET3_BITS   _u(0xffffffff)
2492 #define PIO_RXF1_PUTGET3_RESET  _u(0x00000000)
2493 #define PIO_RXF1_PUTGET3_MSB    _u(31)
2494 #define PIO_RXF1_PUTGET3_LSB    _u(0)
2495 #define PIO_RXF1_PUTGET3_ACCESS "RW"
2496 // =============================================================================
2497 // Register    : PIO_RXF2_PUTGET0
2498 // Description : Direct read/write access to entry 0 of SM2's RX FIFO, if
2499 //               SHIFTCTRL_FJOIN_RX_PUT xor SHIFTCTRL_FJOIN_RX_GET is set.
2500 #define PIO_RXF2_PUTGET0_OFFSET _u(0x00000148)
2501 #define PIO_RXF2_PUTGET0_BITS   _u(0xffffffff)
2502 #define PIO_RXF2_PUTGET0_RESET  _u(0x00000000)
2503 #define PIO_RXF2_PUTGET0_MSB    _u(31)
2504 #define PIO_RXF2_PUTGET0_LSB    _u(0)
2505 #define PIO_RXF2_PUTGET0_ACCESS "RW"
2506 // =============================================================================
2507 // Register    : PIO_RXF2_PUTGET1
2508 // Description : Direct read/write access to entry 1 of SM2's RX FIFO, if
2509 //               SHIFTCTRL_FJOIN_RX_PUT xor SHIFTCTRL_FJOIN_RX_GET is set.
2510 #define PIO_RXF2_PUTGET1_OFFSET _u(0x0000014c)
2511 #define PIO_RXF2_PUTGET1_BITS   _u(0xffffffff)
2512 #define PIO_RXF2_PUTGET1_RESET  _u(0x00000000)
2513 #define PIO_RXF2_PUTGET1_MSB    _u(31)
2514 #define PIO_RXF2_PUTGET1_LSB    _u(0)
2515 #define PIO_RXF2_PUTGET1_ACCESS "RW"
2516 // =============================================================================
2517 // Register    : PIO_RXF2_PUTGET2
2518 // Description : Direct read/write access to entry 2 of SM2's RX FIFO, if
2519 //               SHIFTCTRL_FJOIN_RX_PUT xor SHIFTCTRL_FJOIN_RX_GET is set.
2520 #define PIO_RXF2_PUTGET2_OFFSET _u(0x00000150)
2521 #define PIO_RXF2_PUTGET2_BITS   _u(0xffffffff)
2522 #define PIO_RXF2_PUTGET2_RESET  _u(0x00000000)
2523 #define PIO_RXF2_PUTGET2_MSB    _u(31)
2524 #define PIO_RXF2_PUTGET2_LSB    _u(0)
2525 #define PIO_RXF2_PUTGET2_ACCESS "RW"
2526 // =============================================================================
2527 // Register    : PIO_RXF2_PUTGET3
2528 // Description : Direct read/write access to entry 3 of SM2's RX FIFO, if
2529 //               SHIFTCTRL_FJOIN_RX_PUT xor SHIFTCTRL_FJOIN_RX_GET is set.
2530 #define PIO_RXF2_PUTGET3_OFFSET _u(0x00000154)
2531 #define PIO_RXF2_PUTGET3_BITS   _u(0xffffffff)
2532 #define PIO_RXF2_PUTGET3_RESET  _u(0x00000000)
2533 #define PIO_RXF2_PUTGET3_MSB    _u(31)
2534 #define PIO_RXF2_PUTGET3_LSB    _u(0)
2535 #define PIO_RXF2_PUTGET3_ACCESS "RW"
2536 // =============================================================================
2537 // Register    : PIO_RXF3_PUTGET0
2538 // Description : Direct read/write access to entry 0 of SM3's RX FIFO, if
2539 //               SHIFTCTRL_FJOIN_RX_PUT xor SHIFTCTRL_FJOIN_RX_GET is set.
2540 #define PIO_RXF3_PUTGET0_OFFSET _u(0x00000158)
2541 #define PIO_RXF3_PUTGET0_BITS   _u(0xffffffff)
2542 #define PIO_RXF3_PUTGET0_RESET  _u(0x00000000)
2543 #define PIO_RXF3_PUTGET0_MSB    _u(31)
2544 #define PIO_RXF3_PUTGET0_LSB    _u(0)
2545 #define PIO_RXF3_PUTGET0_ACCESS "RW"
2546 // =============================================================================
2547 // Register    : PIO_RXF3_PUTGET1
2548 // Description : Direct read/write access to entry 1 of SM3's RX FIFO, if
2549 //               SHIFTCTRL_FJOIN_RX_PUT xor SHIFTCTRL_FJOIN_RX_GET is set.
2550 #define PIO_RXF3_PUTGET1_OFFSET _u(0x0000015c)
2551 #define PIO_RXF3_PUTGET1_BITS   _u(0xffffffff)
2552 #define PIO_RXF3_PUTGET1_RESET  _u(0x00000000)
2553 #define PIO_RXF3_PUTGET1_MSB    _u(31)
2554 #define PIO_RXF3_PUTGET1_LSB    _u(0)
2555 #define PIO_RXF3_PUTGET1_ACCESS "RW"
2556 // =============================================================================
2557 // Register    : PIO_RXF3_PUTGET2
2558 // Description : Direct read/write access to entry 2 of SM3's RX FIFO, if
2559 //               SHIFTCTRL_FJOIN_RX_PUT xor SHIFTCTRL_FJOIN_RX_GET is set.
2560 #define PIO_RXF3_PUTGET2_OFFSET _u(0x00000160)
2561 #define PIO_RXF3_PUTGET2_BITS   _u(0xffffffff)
2562 #define PIO_RXF3_PUTGET2_RESET  _u(0x00000000)
2563 #define PIO_RXF3_PUTGET2_MSB    _u(31)
2564 #define PIO_RXF3_PUTGET2_LSB    _u(0)
2565 #define PIO_RXF3_PUTGET2_ACCESS "RW"
2566 // =============================================================================
2567 // Register    : PIO_RXF3_PUTGET3
2568 // Description : Direct read/write access to entry 3 of SM3's RX FIFO, if
2569 //               SHIFTCTRL_FJOIN_RX_PUT xor SHIFTCTRL_FJOIN_RX_GET is set.
2570 #define PIO_RXF3_PUTGET3_OFFSET _u(0x00000164)
2571 #define PIO_RXF3_PUTGET3_BITS   _u(0xffffffff)
2572 #define PIO_RXF3_PUTGET3_RESET  _u(0x00000000)
2573 #define PIO_RXF3_PUTGET3_MSB    _u(31)
2574 #define PIO_RXF3_PUTGET3_LSB    _u(0)
2575 #define PIO_RXF3_PUTGET3_ACCESS "RW"
2576 // =============================================================================
2577 // Register    : PIO_GPIOBASE
2578 // Description : Relocate GPIO 0 (from PIO's point of view) in the system GPIO
2579 //               numbering, to access more than 32 GPIOs from PIO.
2580 //
2581 //               Only the values 0 and 16 are supported (only bit 4 is
2582 //               writable).
2583 #define PIO_GPIOBASE_OFFSET _u(0x00000168)
2584 #define PIO_GPIOBASE_BITS   _u(0x00000010)
2585 #define PIO_GPIOBASE_RESET  _u(0x00000000)
2586 #define PIO_GPIOBASE_MSB    _u(4)
2587 #define PIO_GPIOBASE_LSB    _u(4)
2588 #define PIO_GPIOBASE_ACCESS "RW"
2589 // =============================================================================
2590 // Register    : PIO_INTR
2591 // Description : Raw Interrupts
2592 #define PIO_INTR_OFFSET _u(0x0000016c)
2593 #define PIO_INTR_BITS   _u(0x0000ffff)
2594 #define PIO_INTR_RESET  _u(0x00000000)
2595 // -----------------------------------------------------------------------------
2596 // Field       : PIO_INTR_SM7
2597 #define PIO_INTR_SM7_RESET  _u(0x0)
2598 #define PIO_INTR_SM7_BITS   _u(0x00008000)
2599 #define PIO_INTR_SM7_MSB    _u(15)
2600 #define PIO_INTR_SM7_LSB    _u(15)
2601 #define PIO_INTR_SM7_ACCESS "RO"
2602 // -----------------------------------------------------------------------------
2603 // Field       : PIO_INTR_SM6
2604 #define PIO_INTR_SM6_RESET  _u(0x0)
2605 #define PIO_INTR_SM6_BITS   _u(0x00004000)
2606 #define PIO_INTR_SM6_MSB    _u(14)
2607 #define PIO_INTR_SM6_LSB    _u(14)
2608 #define PIO_INTR_SM6_ACCESS "RO"
2609 // -----------------------------------------------------------------------------
2610 // Field       : PIO_INTR_SM5
2611 #define PIO_INTR_SM5_RESET  _u(0x0)
2612 #define PIO_INTR_SM5_BITS   _u(0x00002000)
2613 #define PIO_INTR_SM5_MSB    _u(13)
2614 #define PIO_INTR_SM5_LSB    _u(13)
2615 #define PIO_INTR_SM5_ACCESS "RO"
2616 // -----------------------------------------------------------------------------
2617 // Field       : PIO_INTR_SM4
2618 #define PIO_INTR_SM4_RESET  _u(0x0)
2619 #define PIO_INTR_SM4_BITS   _u(0x00001000)
2620 #define PIO_INTR_SM4_MSB    _u(12)
2621 #define PIO_INTR_SM4_LSB    _u(12)
2622 #define PIO_INTR_SM4_ACCESS "RO"
2623 // -----------------------------------------------------------------------------
2624 // Field       : PIO_INTR_SM3
2625 #define PIO_INTR_SM3_RESET  _u(0x0)
2626 #define PIO_INTR_SM3_BITS   _u(0x00000800)
2627 #define PIO_INTR_SM3_MSB    _u(11)
2628 #define PIO_INTR_SM3_LSB    _u(11)
2629 #define PIO_INTR_SM3_ACCESS "RO"
2630 // -----------------------------------------------------------------------------
2631 // Field       : PIO_INTR_SM2
2632 #define PIO_INTR_SM2_RESET  _u(0x0)
2633 #define PIO_INTR_SM2_BITS   _u(0x00000400)
2634 #define PIO_INTR_SM2_MSB    _u(10)
2635 #define PIO_INTR_SM2_LSB    _u(10)
2636 #define PIO_INTR_SM2_ACCESS "RO"
2637 // -----------------------------------------------------------------------------
2638 // Field       : PIO_INTR_SM1
2639 #define PIO_INTR_SM1_RESET  _u(0x0)
2640 #define PIO_INTR_SM1_BITS   _u(0x00000200)
2641 #define PIO_INTR_SM1_MSB    _u(9)
2642 #define PIO_INTR_SM1_LSB    _u(9)
2643 #define PIO_INTR_SM1_ACCESS "RO"
2644 // -----------------------------------------------------------------------------
2645 // Field       : PIO_INTR_SM0
2646 #define PIO_INTR_SM0_RESET  _u(0x0)
2647 #define PIO_INTR_SM0_BITS   _u(0x00000100)
2648 #define PIO_INTR_SM0_MSB    _u(8)
2649 #define PIO_INTR_SM0_LSB    _u(8)
2650 #define PIO_INTR_SM0_ACCESS "RO"
2651 // -----------------------------------------------------------------------------
2652 // Field       : PIO_INTR_SM3_TXNFULL
2653 #define PIO_INTR_SM3_TXNFULL_RESET  _u(0x0)
2654 #define PIO_INTR_SM3_TXNFULL_BITS   _u(0x00000080)
2655 #define PIO_INTR_SM3_TXNFULL_MSB    _u(7)
2656 #define PIO_INTR_SM3_TXNFULL_LSB    _u(7)
2657 #define PIO_INTR_SM3_TXNFULL_ACCESS "RO"
2658 // -----------------------------------------------------------------------------
2659 // Field       : PIO_INTR_SM2_TXNFULL
2660 #define PIO_INTR_SM2_TXNFULL_RESET  _u(0x0)
2661 #define PIO_INTR_SM2_TXNFULL_BITS   _u(0x00000040)
2662 #define PIO_INTR_SM2_TXNFULL_MSB    _u(6)
2663 #define PIO_INTR_SM2_TXNFULL_LSB    _u(6)
2664 #define PIO_INTR_SM2_TXNFULL_ACCESS "RO"
2665 // -----------------------------------------------------------------------------
2666 // Field       : PIO_INTR_SM1_TXNFULL
2667 #define PIO_INTR_SM1_TXNFULL_RESET  _u(0x0)
2668 #define PIO_INTR_SM1_TXNFULL_BITS   _u(0x00000020)
2669 #define PIO_INTR_SM1_TXNFULL_MSB    _u(5)
2670 #define PIO_INTR_SM1_TXNFULL_LSB    _u(5)
2671 #define PIO_INTR_SM1_TXNFULL_ACCESS "RO"
2672 // -----------------------------------------------------------------------------
2673 // Field       : PIO_INTR_SM0_TXNFULL
2674 #define PIO_INTR_SM0_TXNFULL_RESET  _u(0x0)
2675 #define PIO_INTR_SM0_TXNFULL_BITS   _u(0x00000010)
2676 #define PIO_INTR_SM0_TXNFULL_MSB    _u(4)
2677 #define PIO_INTR_SM0_TXNFULL_LSB    _u(4)
2678 #define PIO_INTR_SM0_TXNFULL_ACCESS "RO"
2679 // -----------------------------------------------------------------------------
2680 // Field       : PIO_INTR_SM3_RXNEMPTY
2681 #define PIO_INTR_SM3_RXNEMPTY_RESET  _u(0x0)
2682 #define PIO_INTR_SM3_RXNEMPTY_BITS   _u(0x00000008)
2683 #define PIO_INTR_SM3_RXNEMPTY_MSB    _u(3)
2684 #define PIO_INTR_SM3_RXNEMPTY_LSB    _u(3)
2685 #define PIO_INTR_SM3_RXNEMPTY_ACCESS "RO"
2686 // -----------------------------------------------------------------------------
2687 // Field       : PIO_INTR_SM2_RXNEMPTY
2688 #define PIO_INTR_SM2_RXNEMPTY_RESET  _u(0x0)
2689 #define PIO_INTR_SM2_RXNEMPTY_BITS   _u(0x00000004)
2690 #define PIO_INTR_SM2_RXNEMPTY_MSB    _u(2)
2691 #define PIO_INTR_SM2_RXNEMPTY_LSB    _u(2)
2692 #define PIO_INTR_SM2_RXNEMPTY_ACCESS "RO"
2693 // -----------------------------------------------------------------------------
2694 // Field       : PIO_INTR_SM1_RXNEMPTY
2695 #define PIO_INTR_SM1_RXNEMPTY_RESET  _u(0x0)
2696 #define PIO_INTR_SM1_RXNEMPTY_BITS   _u(0x00000002)
2697 #define PIO_INTR_SM1_RXNEMPTY_MSB    _u(1)
2698 #define PIO_INTR_SM1_RXNEMPTY_LSB    _u(1)
2699 #define PIO_INTR_SM1_RXNEMPTY_ACCESS "RO"
2700 // -----------------------------------------------------------------------------
2701 // Field       : PIO_INTR_SM0_RXNEMPTY
2702 #define PIO_INTR_SM0_RXNEMPTY_RESET  _u(0x0)
2703 #define PIO_INTR_SM0_RXNEMPTY_BITS   _u(0x00000001)
2704 #define PIO_INTR_SM0_RXNEMPTY_MSB    _u(0)
2705 #define PIO_INTR_SM0_RXNEMPTY_LSB    _u(0)
2706 #define PIO_INTR_SM0_RXNEMPTY_ACCESS "RO"
2707 // =============================================================================
2708 // Register    : PIO_IRQ0_INTE
2709 // Description : Interrupt Enable for irq0
2710 #define PIO_IRQ0_INTE_OFFSET _u(0x00000170)
2711 #define PIO_IRQ0_INTE_BITS   _u(0x0000ffff)
2712 #define PIO_IRQ0_INTE_RESET  _u(0x00000000)
2713 // -----------------------------------------------------------------------------
2714 // Field       : PIO_IRQ0_INTE_SM7
2715 #define PIO_IRQ0_INTE_SM7_RESET  _u(0x0)
2716 #define PIO_IRQ0_INTE_SM7_BITS   _u(0x00008000)
2717 #define PIO_IRQ0_INTE_SM7_MSB    _u(15)
2718 #define PIO_IRQ0_INTE_SM7_LSB    _u(15)
2719 #define PIO_IRQ0_INTE_SM7_ACCESS "RW"
2720 // -----------------------------------------------------------------------------
2721 // Field       : PIO_IRQ0_INTE_SM6
2722 #define PIO_IRQ0_INTE_SM6_RESET  _u(0x0)
2723 #define PIO_IRQ0_INTE_SM6_BITS   _u(0x00004000)
2724 #define PIO_IRQ0_INTE_SM6_MSB    _u(14)
2725 #define PIO_IRQ0_INTE_SM6_LSB    _u(14)
2726 #define PIO_IRQ0_INTE_SM6_ACCESS "RW"
2727 // -----------------------------------------------------------------------------
2728 // Field       : PIO_IRQ0_INTE_SM5
2729 #define PIO_IRQ0_INTE_SM5_RESET  _u(0x0)
2730 #define PIO_IRQ0_INTE_SM5_BITS   _u(0x00002000)
2731 #define PIO_IRQ0_INTE_SM5_MSB    _u(13)
2732 #define PIO_IRQ0_INTE_SM5_LSB    _u(13)
2733 #define PIO_IRQ0_INTE_SM5_ACCESS "RW"
2734 // -----------------------------------------------------------------------------
2735 // Field       : PIO_IRQ0_INTE_SM4
2736 #define PIO_IRQ0_INTE_SM4_RESET  _u(0x0)
2737 #define PIO_IRQ0_INTE_SM4_BITS   _u(0x00001000)
2738 #define PIO_IRQ0_INTE_SM4_MSB    _u(12)
2739 #define PIO_IRQ0_INTE_SM4_LSB    _u(12)
2740 #define PIO_IRQ0_INTE_SM4_ACCESS "RW"
2741 // -----------------------------------------------------------------------------
2742 // Field       : PIO_IRQ0_INTE_SM3
2743 #define PIO_IRQ0_INTE_SM3_RESET  _u(0x0)
2744 #define PIO_IRQ0_INTE_SM3_BITS   _u(0x00000800)
2745 #define PIO_IRQ0_INTE_SM3_MSB    _u(11)
2746 #define PIO_IRQ0_INTE_SM3_LSB    _u(11)
2747 #define PIO_IRQ0_INTE_SM3_ACCESS "RW"
2748 // -----------------------------------------------------------------------------
2749 // Field       : PIO_IRQ0_INTE_SM2
2750 #define PIO_IRQ0_INTE_SM2_RESET  _u(0x0)
2751 #define PIO_IRQ0_INTE_SM2_BITS   _u(0x00000400)
2752 #define PIO_IRQ0_INTE_SM2_MSB    _u(10)
2753 #define PIO_IRQ0_INTE_SM2_LSB    _u(10)
2754 #define PIO_IRQ0_INTE_SM2_ACCESS "RW"
2755 // -----------------------------------------------------------------------------
2756 // Field       : PIO_IRQ0_INTE_SM1
2757 #define PIO_IRQ0_INTE_SM1_RESET  _u(0x0)
2758 #define PIO_IRQ0_INTE_SM1_BITS   _u(0x00000200)
2759 #define PIO_IRQ0_INTE_SM1_MSB    _u(9)
2760 #define PIO_IRQ0_INTE_SM1_LSB    _u(9)
2761 #define PIO_IRQ0_INTE_SM1_ACCESS "RW"
2762 // -----------------------------------------------------------------------------
2763 // Field       : PIO_IRQ0_INTE_SM0
2764 #define PIO_IRQ0_INTE_SM0_RESET  _u(0x0)
2765 #define PIO_IRQ0_INTE_SM0_BITS   _u(0x00000100)
2766 #define PIO_IRQ0_INTE_SM0_MSB    _u(8)
2767 #define PIO_IRQ0_INTE_SM0_LSB    _u(8)
2768 #define PIO_IRQ0_INTE_SM0_ACCESS "RW"
2769 // -----------------------------------------------------------------------------
2770 // Field       : PIO_IRQ0_INTE_SM3_TXNFULL
2771 #define PIO_IRQ0_INTE_SM3_TXNFULL_RESET  _u(0x0)
2772 #define PIO_IRQ0_INTE_SM3_TXNFULL_BITS   _u(0x00000080)
2773 #define PIO_IRQ0_INTE_SM3_TXNFULL_MSB    _u(7)
2774 #define PIO_IRQ0_INTE_SM3_TXNFULL_LSB    _u(7)
2775 #define PIO_IRQ0_INTE_SM3_TXNFULL_ACCESS "RW"
2776 // -----------------------------------------------------------------------------
2777 // Field       : PIO_IRQ0_INTE_SM2_TXNFULL
2778 #define PIO_IRQ0_INTE_SM2_TXNFULL_RESET  _u(0x0)
2779 #define PIO_IRQ0_INTE_SM2_TXNFULL_BITS   _u(0x00000040)
2780 #define PIO_IRQ0_INTE_SM2_TXNFULL_MSB    _u(6)
2781 #define PIO_IRQ0_INTE_SM2_TXNFULL_LSB    _u(6)
2782 #define PIO_IRQ0_INTE_SM2_TXNFULL_ACCESS "RW"
2783 // -----------------------------------------------------------------------------
2784 // Field       : PIO_IRQ0_INTE_SM1_TXNFULL
2785 #define PIO_IRQ0_INTE_SM1_TXNFULL_RESET  _u(0x0)
2786 #define PIO_IRQ0_INTE_SM1_TXNFULL_BITS   _u(0x00000020)
2787 #define PIO_IRQ0_INTE_SM1_TXNFULL_MSB    _u(5)
2788 #define PIO_IRQ0_INTE_SM1_TXNFULL_LSB    _u(5)
2789 #define PIO_IRQ0_INTE_SM1_TXNFULL_ACCESS "RW"
2790 // -----------------------------------------------------------------------------
2791 // Field       : PIO_IRQ0_INTE_SM0_TXNFULL
2792 #define PIO_IRQ0_INTE_SM0_TXNFULL_RESET  _u(0x0)
2793 #define PIO_IRQ0_INTE_SM0_TXNFULL_BITS   _u(0x00000010)
2794 #define PIO_IRQ0_INTE_SM0_TXNFULL_MSB    _u(4)
2795 #define PIO_IRQ0_INTE_SM0_TXNFULL_LSB    _u(4)
2796 #define PIO_IRQ0_INTE_SM0_TXNFULL_ACCESS "RW"
2797 // -----------------------------------------------------------------------------
2798 // Field       : PIO_IRQ0_INTE_SM3_RXNEMPTY
2799 #define PIO_IRQ0_INTE_SM3_RXNEMPTY_RESET  _u(0x0)
2800 #define PIO_IRQ0_INTE_SM3_RXNEMPTY_BITS   _u(0x00000008)
2801 #define PIO_IRQ0_INTE_SM3_RXNEMPTY_MSB    _u(3)
2802 #define PIO_IRQ0_INTE_SM3_RXNEMPTY_LSB    _u(3)
2803 #define PIO_IRQ0_INTE_SM3_RXNEMPTY_ACCESS "RW"
2804 // -----------------------------------------------------------------------------
2805 // Field       : PIO_IRQ0_INTE_SM2_RXNEMPTY
2806 #define PIO_IRQ0_INTE_SM2_RXNEMPTY_RESET  _u(0x0)
2807 #define PIO_IRQ0_INTE_SM2_RXNEMPTY_BITS   _u(0x00000004)
2808 #define PIO_IRQ0_INTE_SM2_RXNEMPTY_MSB    _u(2)
2809 #define PIO_IRQ0_INTE_SM2_RXNEMPTY_LSB    _u(2)
2810 #define PIO_IRQ0_INTE_SM2_RXNEMPTY_ACCESS "RW"
2811 // -----------------------------------------------------------------------------
2812 // Field       : PIO_IRQ0_INTE_SM1_RXNEMPTY
2813 #define PIO_IRQ0_INTE_SM1_RXNEMPTY_RESET  _u(0x0)
2814 #define PIO_IRQ0_INTE_SM1_RXNEMPTY_BITS   _u(0x00000002)
2815 #define PIO_IRQ0_INTE_SM1_RXNEMPTY_MSB    _u(1)
2816 #define PIO_IRQ0_INTE_SM1_RXNEMPTY_LSB    _u(1)
2817 #define PIO_IRQ0_INTE_SM1_RXNEMPTY_ACCESS "RW"
2818 // -----------------------------------------------------------------------------
2819 // Field       : PIO_IRQ0_INTE_SM0_RXNEMPTY
2820 #define PIO_IRQ0_INTE_SM0_RXNEMPTY_RESET  _u(0x0)
2821 #define PIO_IRQ0_INTE_SM0_RXNEMPTY_BITS   _u(0x00000001)
2822 #define PIO_IRQ0_INTE_SM0_RXNEMPTY_MSB    _u(0)
2823 #define PIO_IRQ0_INTE_SM0_RXNEMPTY_LSB    _u(0)
2824 #define PIO_IRQ0_INTE_SM0_RXNEMPTY_ACCESS "RW"
2825 // =============================================================================
2826 // Register    : PIO_IRQ0_INTF
2827 // Description : Interrupt Force for irq0
2828 #define PIO_IRQ0_INTF_OFFSET _u(0x00000174)
2829 #define PIO_IRQ0_INTF_BITS   _u(0x0000ffff)
2830 #define PIO_IRQ0_INTF_RESET  _u(0x00000000)
2831 // -----------------------------------------------------------------------------
2832 // Field       : PIO_IRQ0_INTF_SM7
2833 #define PIO_IRQ0_INTF_SM7_RESET  _u(0x0)
2834 #define PIO_IRQ0_INTF_SM7_BITS   _u(0x00008000)
2835 #define PIO_IRQ0_INTF_SM7_MSB    _u(15)
2836 #define PIO_IRQ0_INTF_SM7_LSB    _u(15)
2837 #define PIO_IRQ0_INTF_SM7_ACCESS "RW"
2838 // -----------------------------------------------------------------------------
2839 // Field       : PIO_IRQ0_INTF_SM6
2840 #define PIO_IRQ0_INTF_SM6_RESET  _u(0x0)
2841 #define PIO_IRQ0_INTF_SM6_BITS   _u(0x00004000)
2842 #define PIO_IRQ0_INTF_SM6_MSB    _u(14)
2843 #define PIO_IRQ0_INTF_SM6_LSB    _u(14)
2844 #define PIO_IRQ0_INTF_SM6_ACCESS "RW"
2845 // -----------------------------------------------------------------------------
2846 // Field       : PIO_IRQ0_INTF_SM5
2847 #define PIO_IRQ0_INTF_SM5_RESET  _u(0x0)
2848 #define PIO_IRQ0_INTF_SM5_BITS   _u(0x00002000)
2849 #define PIO_IRQ0_INTF_SM5_MSB    _u(13)
2850 #define PIO_IRQ0_INTF_SM5_LSB    _u(13)
2851 #define PIO_IRQ0_INTF_SM5_ACCESS "RW"
2852 // -----------------------------------------------------------------------------
2853 // Field       : PIO_IRQ0_INTF_SM4
2854 #define PIO_IRQ0_INTF_SM4_RESET  _u(0x0)
2855 #define PIO_IRQ0_INTF_SM4_BITS   _u(0x00001000)
2856 #define PIO_IRQ0_INTF_SM4_MSB    _u(12)
2857 #define PIO_IRQ0_INTF_SM4_LSB    _u(12)
2858 #define PIO_IRQ0_INTF_SM4_ACCESS "RW"
2859 // -----------------------------------------------------------------------------
2860 // Field       : PIO_IRQ0_INTF_SM3
2861 #define PIO_IRQ0_INTF_SM3_RESET  _u(0x0)
2862 #define PIO_IRQ0_INTF_SM3_BITS   _u(0x00000800)
2863 #define PIO_IRQ0_INTF_SM3_MSB    _u(11)
2864 #define PIO_IRQ0_INTF_SM3_LSB    _u(11)
2865 #define PIO_IRQ0_INTF_SM3_ACCESS "RW"
2866 // -----------------------------------------------------------------------------
2867 // Field       : PIO_IRQ0_INTF_SM2
2868 #define PIO_IRQ0_INTF_SM2_RESET  _u(0x0)
2869 #define PIO_IRQ0_INTF_SM2_BITS   _u(0x00000400)
2870 #define PIO_IRQ0_INTF_SM2_MSB    _u(10)
2871 #define PIO_IRQ0_INTF_SM2_LSB    _u(10)
2872 #define PIO_IRQ0_INTF_SM2_ACCESS "RW"
2873 // -----------------------------------------------------------------------------
2874 // Field       : PIO_IRQ0_INTF_SM1
2875 #define PIO_IRQ0_INTF_SM1_RESET  _u(0x0)
2876 #define PIO_IRQ0_INTF_SM1_BITS   _u(0x00000200)
2877 #define PIO_IRQ0_INTF_SM1_MSB    _u(9)
2878 #define PIO_IRQ0_INTF_SM1_LSB    _u(9)
2879 #define PIO_IRQ0_INTF_SM1_ACCESS "RW"
2880 // -----------------------------------------------------------------------------
2881 // Field       : PIO_IRQ0_INTF_SM0
2882 #define PIO_IRQ0_INTF_SM0_RESET  _u(0x0)
2883 #define PIO_IRQ0_INTF_SM0_BITS   _u(0x00000100)
2884 #define PIO_IRQ0_INTF_SM0_MSB    _u(8)
2885 #define PIO_IRQ0_INTF_SM0_LSB    _u(8)
2886 #define PIO_IRQ0_INTF_SM0_ACCESS "RW"
2887 // -----------------------------------------------------------------------------
2888 // Field       : PIO_IRQ0_INTF_SM3_TXNFULL
2889 #define PIO_IRQ0_INTF_SM3_TXNFULL_RESET  _u(0x0)
2890 #define PIO_IRQ0_INTF_SM3_TXNFULL_BITS   _u(0x00000080)
2891 #define PIO_IRQ0_INTF_SM3_TXNFULL_MSB    _u(7)
2892 #define PIO_IRQ0_INTF_SM3_TXNFULL_LSB    _u(7)
2893 #define PIO_IRQ0_INTF_SM3_TXNFULL_ACCESS "RW"
2894 // -----------------------------------------------------------------------------
2895 // Field       : PIO_IRQ0_INTF_SM2_TXNFULL
2896 #define PIO_IRQ0_INTF_SM2_TXNFULL_RESET  _u(0x0)
2897 #define PIO_IRQ0_INTF_SM2_TXNFULL_BITS   _u(0x00000040)
2898 #define PIO_IRQ0_INTF_SM2_TXNFULL_MSB    _u(6)
2899 #define PIO_IRQ0_INTF_SM2_TXNFULL_LSB    _u(6)
2900 #define PIO_IRQ0_INTF_SM2_TXNFULL_ACCESS "RW"
2901 // -----------------------------------------------------------------------------
2902 // Field       : PIO_IRQ0_INTF_SM1_TXNFULL
2903 #define PIO_IRQ0_INTF_SM1_TXNFULL_RESET  _u(0x0)
2904 #define PIO_IRQ0_INTF_SM1_TXNFULL_BITS   _u(0x00000020)
2905 #define PIO_IRQ0_INTF_SM1_TXNFULL_MSB    _u(5)
2906 #define PIO_IRQ0_INTF_SM1_TXNFULL_LSB    _u(5)
2907 #define PIO_IRQ0_INTF_SM1_TXNFULL_ACCESS "RW"
2908 // -----------------------------------------------------------------------------
2909 // Field       : PIO_IRQ0_INTF_SM0_TXNFULL
2910 #define PIO_IRQ0_INTF_SM0_TXNFULL_RESET  _u(0x0)
2911 #define PIO_IRQ0_INTF_SM0_TXNFULL_BITS   _u(0x00000010)
2912 #define PIO_IRQ0_INTF_SM0_TXNFULL_MSB    _u(4)
2913 #define PIO_IRQ0_INTF_SM0_TXNFULL_LSB    _u(4)
2914 #define PIO_IRQ0_INTF_SM0_TXNFULL_ACCESS "RW"
2915 // -----------------------------------------------------------------------------
2916 // Field       : PIO_IRQ0_INTF_SM3_RXNEMPTY
2917 #define PIO_IRQ0_INTF_SM3_RXNEMPTY_RESET  _u(0x0)
2918 #define PIO_IRQ0_INTF_SM3_RXNEMPTY_BITS   _u(0x00000008)
2919 #define PIO_IRQ0_INTF_SM3_RXNEMPTY_MSB    _u(3)
2920 #define PIO_IRQ0_INTF_SM3_RXNEMPTY_LSB    _u(3)
2921 #define PIO_IRQ0_INTF_SM3_RXNEMPTY_ACCESS "RW"
2922 // -----------------------------------------------------------------------------
2923 // Field       : PIO_IRQ0_INTF_SM2_RXNEMPTY
2924 #define PIO_IRQ0_INTF_SM2_RXNEMPTY_RESET  _u(0x0)
2925 #define PIO_IRQ0_INTF_SM2_RXNEMPTY_BITS   _u(0x00000004)
2926 #define PIO_IRQ0_INTF_SM2_RXNEMPTY_MSB    _u(2)
2927 #define PIO_IRQ0_INTF_SM2_RXNEMPTY_LSB    _u(2)
2928 #define PIO_IRQ0_INTF_SM2_RXNEMPTY_ACCESS "RW"
2929 // -----------------------------------------------------------------------------
2930 // Field       : PIO_IRQ0_INTF_SM1_RXNEMPTY
2931 #define PIO_IRQ0_INTF_SM1_RXNEMPTY_RESET  _u(0x0)
2932 #define PIO_IRQ0_INTF_SM1_RXNEMPTY_BITS   _u(0x00000002)
2933 #define PIO_IRQ0_INTF_SM1_RXNEMPTY_MSB    _u(1)
2934 #define PIO_IRQ0_INTF_SM1_RXNEMPTY_LSB    _u(1)
2935 #define PIO_IRQ0_INTF_SM1_RXNEMPTY_ACCESS "RW"
2936 // -----------------------------------------------------------------------------
2937 // Field       : PIO_IRQ0_INTF_SM0_RXNEMPTY
2938 #define PIO_IRQ0_INTF_SM0_RXNEMPTY_RESET  _u(0x0)
2939 #define PIO_IRQ0_INTF_SM0_RXNEMPTY_BITS   _u(0x00000001)
2940 #define PIO_IRQ0_INTF_SM0_RXNEMPTY_MSB    _u(0)
2941 #define PIO_IRQ0_INTF_SM0_RXNEMPTY_LSB    _u(0)
2942 #define PIO_IRQ0_INTF_SM0_RXNEMPTY_ACCESS "RW"
2943 // =============================================================================
2944 // Register    : PIO_IRQ0_INTS
2945 // Description : Interrupt status after masking & forcing for irq0
2946 #define PIO_IRQ0_INTS_OFFSET _u(0x00000178)
2947 #define PIO_IRQ0_INTS_BITS   _u(0x0000ffff)
2948 #define PIO_IRQ0_INTS_RESET  _u(0x00000000)
2949 // -----------------------------------------------------------------------------
2950 // Field       : PIO_IRQ0_INTS_SM7
2951 #define PIO_IRQ0_INTS_SM7_RESET  _u(0x0)
2952 #define PIO_IRQ0_INTS_SM7_BITS   _u(0x00008000)
2953 #define PIO_IRQ0_INTS_SM7_MSB    _u(15)
2954 #define PIO_IRQ0_INTS_SM7_LSB    _u(15)
2955 #define PIO_IRQ0_INTS_SM7_ACCESS "RO"
2956 // -----------------------------------------------------------------------------
2957 // Field       : PIO_IRQ0_INTS_SM6
2958 #define PIO_IRQ0_INTS_SM6_RESET  _u(0x0)
2959 #define PIO_IRQ0_INTS_SM6_BITS   _u(0x00004000)
2960 #define PIO_IRQ0_INTS_SM6_MSB    _u(14)
2961 #define PIO_IRQ0_INTS_SM6_LSB    _u(14)
2962 #define PIO_IRQ0_INTS_SM6_ACCESS "RO"
2963 // -----------------------------------------------------------------------------
2964 // Field       : PIO_IRQ0_INTS_SM5
2965 #define PIO_IRQ0_INTS_SM5_RESET  _u(0x0)
2966 #define PIO_IRQ0_INTS_SM5_BITS   _u(0x00002000)
2967 #define PIO_IRQ0_INTS_SM5_MSB    _u(13)
2968 #define PIO_IRQ0_INTS_SM5_LSB    _u(13)
2969 #define PIO_IRQ0_INTS_SM5_ACCESS "RO"
2970 // -----------------------------------------------------------------------------
2971 // Field       : PIO_IRQ0_INTS_SM4
2972 #define PIO_IRQ0_INTS_SM4_RESET  _u(0x0)
2973 #define PIO_IRQ0_INTS_SM4_BITS   _u(0x00001000)
2974 #define PIO_IRQ0_INTS_SM4_MSB    _u(12)
2975 #define PIO_IRQ0_INTS_SM4_LSB    _u(12)
2976 #define PIO_IRQ0_INTS_SM4_ACCESS "RO"
2977 // -----------------------------------------------------------------------------
2978 // Field       : PIO_IRQ0_INTS_SM3
2979 #define PIO_IRQ0_INTS_SM3_RESET  _u(0x0)
2980 #define PIO_IRQ0_INTS_SM3_BITS   _u(0x00000800)
2981 #define PIO_IRQ0_INTS_SM3_MSB    _u(11)
2982 #define PIO_IRQ0_INTS_SM3_LSB    _u(11)
2983 #define PIO_IRQ0_INTS_SM3_ACCESS "RO"
2984 // -----------------------------------------------------------------------------
2985 // Field       : PIO_IRQ0_INTS_SM2
2986 #define PIO_IRQ0_INTS_SM2_RESET  _u(0x0)
2987 #define PIO_IRQ0_INTS_SM2_BITS   _u(0x00000400)
2988 #define PIO_IRQ0_INTS_SM2_MSB    _u(10)
2989 #define PIO_IRQ0_INTS_SM2_LSB    _u(10)
2990 #define PIO_IRQ0_INTS_SM2_ACCESS "RO"
2991 // -----------------------------------------------------------------------------
2992 // Field       : PIO_IRQ0_INTS_SM1
2993 #define PIO_IRQ0_INTS_SM1_RESET  _u(0x0)
2994 #define PIO_IRQ0_INTS_SM1_BITS   _u(0x00000200)
2995 #define PIO_IRQ0_INTS_SM1_MSB    _u(9)
2996 #define PIO_IRQ0_INTS_SM1_LSB    _u(9)
2997 #define PIO_IRQ0_INTS_SM1_ACCESS "RO"
2998 // -----------------------------------------------------------------------------
2999 // Field       : PIO_IRQ0_INTS_SM0
3000 #define PIO_IRQ0_INTS_SM0_RESET  _u(0x0)
3001 #define PIO_IRQ0_INTS_SM0_BITS   _u(0x00000100)
3002 #define PIO_IRQ0_INTS_SM0_MSB    _u(8)
3003 #define PIO_IRQ0_INTS_SM0_LSB    _u(8)
3004 #define PIO_IRQ0_INTS_SM0_ACCESS "RO"
3005 // -----------------------------------------------------------------------------
3006 // Field       : PIO_IRQ0_INTS_SM3_TXNFULL
3007 #define PIO_IRQ0_INTS_SM3_TXNFULL_RESET  _u(0x0)
3008 #define PIO_IRQ0_INTS_SM3_TXNFULL_BITS   _u(0x00000080)
3009 #define PIO_IRQ0_INTS_SM3_TXNFULL_MSB    _u(7)
3010 #define PIO_IRQ0_INTS_SM3_TXNFULL_LSB    _u(7)
3011 #define PIO_IRQ0_INTS_SM3_TXNFULL_ACCESS "RO"
3012 // -----------------------------------------------------------------------------
3013 // Field       : PIO_IRQ0_INTS_SM2_TXNFULL
3014 #define PIO_IRQ0_INTS_SM2_TXNFULL_RESET  _u(0x0)
3015 #define PIO_IRQ0_INTS_SM2_TXNFULL_BITS   _u(0x00000040)
3016 #define PIO_IRQ0_INTS_SM2_TXNFULL_MSB    _u(6)
3017 #define PIO_IRQ0_INTS_SM2_TXNFULL_LSB    _u(6)
3018 #define PIO_IRQ0_INTS_SM2_TXNFULL_ACCESS "RO"
3019 // -----------------------------------------------------------------------------
3020 // Field       : PIO_IRQ0_INTS_SM1_TXNFULL
3021 #define PIO_IRQ0_INTS_SM1_TXNFULL_RESET  _u(0x0)
3022 #define PIO_IRQ0_INTS_SM1_TXNFULL_BITS   _u(0x00000020)
3023 #define PIO_IRQ0_INTS_SM1_TXNFULL_MSB    _u(5)
3024 #define PIO_IRQ0_INTS_SM1_TXNFULL_LSB    _u(5)
3025 #define PIO_IRQ0_INTS_SM1_TXNFULL_ACCESS "RO"
3026 // -----------------------------------------------------------------------------
3027 // Field       : PIO_IRQ0_INTS_SM0_TXNFULL
3028 #define PIO_IRQ0_INTS_SM0_TXNFULL_RESET  _u(0x0)
3029 #define PIO_IRQ0_INTS_SM0_TXNFULL_BITS   _u(0x00000010)
3030 #define PIO_IRQ0_INTS_SM0_TXNFULL_MSB    _u(4)
3031 #define PIO_IRQ0_INTS_SM0_TXNFULL_LSB    _u(4)
3032 #define PIO_IRQ0_INTS_SM0_TXNFULL_ACCESS "RO"
3033 // -----------------------------------------------------------------------------
3034 // Field       : PIO_IRQ0_INTS_SM3_RXNEMPTY
3035 #define PIO_IRQ0_INTS_SM3_RXNEMPTY_RESET  _u(0x0)
3036 #define PIO_IRQ0_INTS_SM3_RXNEMPTY_BITS   _u(0x00000008)
3037 #define PIO_IRQ0_INTS_SM3_RXNEMPTY_MSB    _u(3)
3038 #define PIO_IRQ0_INTS_SM3_RXNEMPTY_LSB    _u(3)
3039 #define PIO_IRQ0_INTS_SM3_RXNEMPTY_ACCESS "RO"
3040 // -----------------------------------------------------------------------------
3041 // Field       : PIO_IRQ0_INTS_SM2_RXNEMPTY
3042 #define PIO_IRQ0_INTS_SM2_RXNEMPTY_RESET  _u(0x0)
3043 #define PIO_IRQ0_INTS_SM2_RXNEMPTY_BITS   _u(0x00000004)
3044 #define PIO_IRQ0_INTS_SM2_RXNEMPTY_MSB    _u(2)
3045 #define PIO_IRQ0_INTS_SM2_RXNEMPTY_LSB    _u(2)
3046 #define PIO_IRQ0_INTS_SM2_RXNEMPTY_ACCESS "RO"
3047 // -----------------------------------------------------------------------------
3048 // Field       : PIO_IRQ0_INTS_SM1_RXNEMPTY
3049 #define PIO_IRQ0_INTS_SM1_RXNEMPTY_RESET  _u(0x0)
3050 #define PIO_IRQ0_INTS_SM1_RXNEMPTY_BITS   _u(0x00000002)
3051 #define PIO_IRQ0_INTS_SM1_RXNEMPTY_MSB    _u(1)
3052 #define PIO_IRQ0_INTS_SM1_RXNEMPTY_LSB    _u(1)
3053 #define PIO_IRQ0_INTS_SM1_RXNEMPTY_ACCESS "RO"
3054 // -----------------------------------------------------------------------------
3055 // Field       : PIO_IRQ0_INTS_SM0_RXNEMPTY
3056 #define PIO_IRQ0_INTS_SM0_RXNEMPTY_RESET  _u(0x0)
3057 #define PIO_IRQ0_INTS_SM0_RXNEMPTY_BITS   _u(0x00000001)
3058 #define PIO_IRQ0_INTS_SM0_RXNEMPTY_MSB    _u(0)
3059 #define PIO_IRQ0_INTS_SM0_RXNEMPTY_LSB    _u(0)
3060 #define PIO_IRQ0_INTS_SM0_RXNEMPTY_ACCESS "RO"
3061 // =============================================================================
3062 // Register    : PIO_IRQ1_INTE
3063 // Description : Interrupt Enable for irq1
3064 #define PIO_IRQ1_INTE_OFFSET _u(0x0000017c)
3065 #define PIO_IRQ1_INTE_BITS   _u(0x0000ffff)
3066 #define PIO_IRQ1_INTE_RESET  _u(0x00000000)
3067 // -----------------------------------------------------------------------------
3068 // Field       : PIO_IRQ1_INTE_SM7
3069 #define PIO_IRQ1_INTE_SM7_RESET  _u(0x0)
3070 #define PIO_IRQ1_INTE_SM7_BITS   _u(0x00008000)
3071 #define PIO_IRQ1_INTE_SM7_MSB    _u(15)
3072 #define PIO_IRQ1_INTE_SM7_LSB    _u(15)
3073 #define PIO_IRQ1_INTE_SM7_ACCESS "RW"
3074 // -----------------------------------------------------------------------------
3075 // Field       : PIO_IRQ1_INTE_SM6
3076 #define PIO_IRQ1_INTE_SM6_RESET  _u(0x0)
3077 #define PIO_IRQ1_INTE_SM6_BITS   _u(0x00004000)
3078 #define PIO_IRQ1_INTE_SM6_MSB    _u(14)
3079 #define PIO_IRQ1_INTE_SM6_LSB    _u(14)
3080 #define PIO_IRQ1_INTE_SM6_ACCESS "RW"
3081 // -----------------------------------------------------------------------------
3082 // Field       : PIO_IRQ1_INTE_SM5
3083 #define PIO_IRQ1_INTE_SM5_RESET  _u(0x0)
3084 #define PIO_IRQ1_INTE_SM5_BITS   _u(0x00002000)
3085 #define PIO_IRQ1_INTE_SM5_MSB    _u(13)
3086 #define PIO_IRQ1_INTE_SM5_LSB    _u(13)
3087 #define PIO_IRQ1_INTE_SM5_ACCESS "RW"
3088 // -----------------------------------------------------------------------------
3089 // Field       : PIO_IRQ1_INTE_SM4
3090 #define PIO_IRQ1_INTE_SM4_RESET  _u(0x0)
3091 #define PIO_IRQ1_INTE_SM4_BITS   _u(0x00001000)
3092 #define PIO_IRQ1_INTE_SM4_MSB    _u(12)
3093 #define PIO_IRQ1_INTE_SM4_LSB    _u(12)
3094 #define PIO_IRQ1_INTE_SM4_ACCESS "RW"
3095 // -----------------------------------------------------------------------------
3096 // Field       : PIO_IRQ1_INTE_SM3
3097 #define PIO_IRQ1_INTE_SM3_RESET  _u(0x0)
3098 #define PIO_IRQ1_INTE_SM3_BITS   _u(0x00000800)
3099 #define PIO_IRQ1_INTE_SM3_MSB    _u(11)
3100 #define PIO_IRQ1_INTE_SM3_LSB    _u(11)
3101 #define PIO_IRQ1_INTE_SM3_ACCESS "RW"
3102 // -----------------------------------------------------------------------------
3103 // Field       : PIO_IRQ1_INTE_SM2
3104 #define PIO_IRQ1_INTE_SM2_RESET  _u(0x0)
3105 #define PIO_IRQ1_INTE_SM2_BITS   _u(0x00000400)
3106 #define PIO_IRQ1_INTE_SM2_MSB    _u(10)
3107 #define PIO_IRQ1_INTE_SM2_LSB    _u(10)
3108 #define PIO_IRQ1_INTE_SM2_ACCESS "RW"
3109 // -----------------------------------------------------------------------------
3110 // Field       : PIO_IRQ1_INTE_SM1
3111 #define PIO_IRQ1_INTE_SM1_RESET  _u(0x0)
3112 #define PIO_IRQ1_INTE_SM1_BITS   _u(0x00000200)
3113 #define PIO_IRQ1_INTE_SM1_MSB    _u(9)
3114 #define PIO_IRQ1_INTE_SM1_LSB    _u(9)
3115 #define PIO_IRQ1_INTE_SM1_ACCESS "RW"
3116 // -----------------------------------------------------------------------------
3117 // Field       : PIO_IRQ1_INTE_SM0
3118 #define PIO_IRQ1_INTE_SM0_RESET  _u(0x0)
3119 #define PIO_IRQ1_INTE_SM0_BITS   _u(0x00000100)
3120 #define PIO_IRQ1_INTE_SM0_MSB    _u(8)
3121 #define PIO_IRQ1_INTE_SM0_LSB    _u(8)
3122 #define PIO_IRQ1_INTE_SM0_ACCESS "RW"
3123 // -----------------------------------------------------------------------------
3124 // Field       : PIO_IRQ1_INTE_SM3_TXNFULL
3125 #define PIO_IRQ1_INTE_SM3_TXNFULL_RESET  _u(0x0)
3126 #define PIO_IRQ1_INTE_SM3_TXNFULL_BITS   _u(0x00000080)
3127 #define PIO_IRQ1_INTE_SM3_TXNFULL_MSB    _u(7)
3128 #define PIO_IRQ1_INTE_SM3_TXNFULL_LSB    _u(7)
3129 #define PIO_IRQ1_INTE_SM3_TXNFULL_ACCESS "RW"
3130 // -----------------------------------------------------------------------------
3131 // Field       : PIO_IRQ1_INTE_SM2_TXNFULL
3132 #define PIO_IRQ1_INTE_SM2_TXNFULL_RESET  _u(0x0)
3133 #define PIO_IRQ1_INTE_SM2_TXNFULL_BITS   _u(0x00000040)
3134 #define PIO_IRQ1_INTE_SM2_TXNFULL_MSB    _u(6)
3135 #define PIO_IRQ1_INTE_SM2_TXNFULL_LSB    _u(6)
3136 #define PIO_IRQ1_INTE_SM2_TXNFULL_ACCESS "RW"
3137 // -----------------------------------------------------------------------------
3138 // Field       : PIO_IRQ1_INTE_SM1_TXNFULL
3139 #define PIO_IRQ1_INTE_SM1_TXNFULL_RESET  _u(0x0)
3140 #define PIO_IRQ1_INTE_SM1_TXNFULL_BITS   _u(0x00000020)
3141 #define PIO_IRQ1_INTE_SM1_TXNFULL_MSB    _u(5)
3142 #define PIO_IRQ1_INTE_SM1_TXNFULL_LSB    _u(5)
3143 #define PIO_IRQ1_INTE_SM1_TXNFULL_ACCESS "RW"
3144 // -----------------------------------------------------------------------------
3145 // Field       : PIO_IRQ1_INTE_SM0_TXNFULL
3146 #define PIO_IRQ1_INTE_SM0_TXNFULL_RESET  _u(0x0)
3147 #define PIO_IRQ1_INTE_SM0_TXNFULL_BITS   _u(0x00000010)
3148 #define PIO_IRQ1_INTE_SM0_TXNFULL_MSB    _u(4)
3149 #define PIO_IRQ1_INTE_SM0_TXNFULL_LSB    _u(4)
3150 #define PIO_IRQ1_INTE_SM0_TXNFULL_ACCESS "RW"
3151 // -----------------------------------------------------------------------------
3152 // Field       : PIO_IRQ1_INTE_SM3_RXNEMPTY
3153 #define PIO_IRQ1_INTE_SM3_RXNEMPTY_RESET  _u(0x0)
3154 #define PIO_IRQ1_INTE_SM3_RXNEMPTY_BITS   _u(0x00000008)
3155 #define PIO_IRQ1_INTE_SM3_RXNEMPTY_MSB    _u(3)
3156 #define PIO_IRQ1_INTE_SM3_RXNEMPTY_LSB    _u(3)
3157 #define PIO_IRQ1_INTE_SM3_RXNEMPTY_ACCESS "RW"
3158 // -----------------------------------------------------------------------------
3159 // Field       : PIO_IRQ1_INTE_SM2_RXNEMPTY
3160 #define PIO_IRQ1_INTE_SM2_RXNEMPTY_RESET  _u(0x0)
3161 #define PIO_IRQ1_INTE_SM2_RXNEMPTY_BITS   _u(0x00000004)
3162 #define PIO_IRQ1_INTE_SM2_RXNEMPTY_MSB    _u(2)
3163 #define PIO_IRQ1_INTE_SM2_RXNEMPTY_LSB    _u(2)
3164 #define PIO_IRQ1_INTE_SM2_RXNEMPTY_ACCESS "RW"
3165 // -----------------------------------------------------------------------------
3166 // Field       : PIO_IRQ1_INTE_SM1_RXNEMPTY
3167 #define PIO_IRQ1_INTE_SM1_RXNEMPTY_RESET  _u(0x0)
3168 #define PIO_IRQ1_INTE_SM1_RXNEMPTY_BITS   _u(0x00000002)
3169 #define PIO_IRQ1_INTE_SM1_RXNEMPTY_MSB    _u(1)
3170 #define PIO_IRQ1_INTE_SM1_RXNEMPTY_LSB    _u(1)
3171 #define PIO_IRQ1_INTE_SM1_RXNEMPTY_ACCESS "RW"
3172 // -----------------------------------------------------------------------------
3173 // Field       : PIO_IRQ1_INTE_SM0_RXNEMPTY
3174 #define PIO_IRQ1_INTE_SM0_RXNEMPTY_RESET  _u(0x0)
3175 #define PIO_IRQ1_INTE_SM0_RXNEMPTY_BITS   _u(0x00000001)
3176 #define PIO_IRQ1_INTE_SM0_RXNEMPTY_MSB    _u(0)
3177 #define PIO_IRQ1_INTE_SM0_RXNEMPTY_LSB    _u(0)
3178 #define PIO_IRQ1_INTE_SM0_RXNEMPTY_ACCESS "RW"
3179 // =============================================================================
3180 // Register    : PIO_IRQ1_INTF
3181 // Description : Interrupt Force for irq1
3182 #define PIO_IRQ1_INTF_OFFSET _u(0x00000180)
3183 #define PIO_IRQ1_INTF_BITS   _u(0x0000ffff)
3184 #define PIO_IRQ1_INTF_RESET  _u(0x00000000)
3185 // -----------------------------------------------------------------------------
3186 // Field       : PIO_IRQ1_INTF_SM7
3187 #define PIO_IRQ1_INTF_SM7_RESET  _u(0x0)
3188 #define PIO_IRQ1_INTF_SM7_BITS   _u(0x00008000)
3189 #define PIO_IRQ1_INTF_SM7_MSB    _u(15)
3190 #define PIO_IRQ1_INTF_SM7_LSB    _u(15)
3191 #define PIO_IRQ1_INTF_SM7_ACCESS "RW"
3192 // -----------------------------------------------------------------------------
3193 // Field       : PIO_IRQ1_INTF_SM6
3194 #define PIO_IRQ1_INTF_SM6_RESET  _u(0x0)
3195 #define PIO_IRQ1_INTF_SM6_BITS   _u(0x00004000)
3196 #define PIO_IRQ1_INTF_SM6_MSB    _u(14)
3197 #define PIO_IRQ1_INTF_SM6_LSB    _u(14)
3198 #define PIO_IRQ1_INTF_SM6_ACCESS "RW"
3199 // -----------------------------------------------------------------------------
3200 // Field       : PIO_IRQ1_INTF_SM5
3201 #define PIO_IRQ1_INTF_SM5_RESET  _u(0x0)
3202 #define PIO_IRQ1_INTF_SM5_BITS   _u(0x00002000)
3203 #define PIO_IRQ1_INTF_SM5_MSB    _u(13)
3204 #define PIO_IRQ1_INTF_SM5_LSB    _u(13)
3205 #define PIO_IRQ1_INTF_SM5_ACCESS "RW"
3206 // -----------------------------------------------------------------------------
3207 // Field       : PIO_IRQ1_INTF_SM4
3208 #define PIO_IRQ1_INTF_SM4_RESET  _u(0x0)
3209 #define PIO_IRQ1_INTF_SM4_BITS   _u(0x00001000)
3210 #define PIO_IRQ1_INTF_SM4_MSB    _u(12)
3211 #define PIO_IRQ1_INTF_SM4_LSB    _u(12)
3212 #define PIO_IRQ1_INTF_SM4_ACCESS "RW"
3213 // -----------------------------------------------------------------------------
3214 // Field       : PIO_IRQ1_INTF_SM3
3215 #define PIO_IRQ1_INTF_SM3_RESET  _u(0x0)
3216 #define PIO_IRQ1_INTF_SM3_BITS   _u(0x00000800)
3217 #define PIO_IRQ1_INTF_SM3_MSB    _u(11)
3218 #define PIO_IRQ1_INTF_SM3_LSB    _u(11)
3219 #define PIO_IRQ1_INTF_SM3_ACCESS "RW"
3220 // -----------------------------------------------------------------------------
3221 // Field       : PIO_IRQ1_INTF_SM2
3222 #define PIO_IRQ1_INTF_SM2_RESET  _u(0x0)
3223 #define PIO_IRQ1_INTF_SM2_BITS   _u(0x00000400)
3224 #define PIO_IRQ1_INTF_SM2_MSB    _u(10)
3225 #define PIO_IRQ1_INTF_SM2_LSB    _u(10)
3226 #define PIO_IRQ1_INTF_SM2_ACCESS "RW"
3227 // -----------------------------------------------------------------------------
3228 // Field       : PIO_IRQ1_INTF_SM1
3229 #define PIO_IRQ1_INTF_SM1_RESET  _u(0x0)
3230 #define PIO_IRQ1_INTF_SM1_BITS   _u(0x00000200)
3231 #define PIO_IRQ1_INTF_SM1_MSB    _u(9)
3232 #define PIO_IRQ1_INTF_SM1_LSB    _u(9)
3233 #define PIO_IRQ1_INTF_SM1_ACCESS "RW"
3234 // -----------------------------------------------------------------------------
3235 // Field       : PIO_IRQ1_INTF_SM0
3236 #define PIO_IRQ1_INTF_SM0_RESET  _u(0x0)
3237 #define PIO_IRQ1_INTF_SM0_BITS   _u(0x00000100)
3238 #define PIO_IRQ1_INTF_SM0_MSB    _u(8)
3239 #define PIO_IRQ1_INTF_SM0_LSB    _u(8)
3240 #define PIO_IRQ1_INTF_SM0_ACCESS "RW"
3241 // -----------------------------------------------------------------------------
3242 // Field       : PIO_IRQ1_INTF_SM3_TXNFULL
3243 #define PIO_IRQ1_INTF_SM3_TXNFULL_RESET  _u(0x0)
3244 #define PIO_IRQ1_INTF_SM3_TXNFULL_BITS   _u(0x00000080)
3245 #define PIO_IRQ1_INTF_SM3_TXNFULL_MSB    _u(7)
3246 #define PIO_IRQ1_INTF_SM3_TXNFULL_LSB    _u(7)
3247 #define PIO_IRQ1_INTF_SM3_TXNFULL_ACCESS "RW"
3248 // -----------------------------------------------------------------------------
3249 // Field       : PIO_IRQ1_INTF_SM2_TXNFULL
3250 #define PIO_IRQ1_INTF_SM2_TXNFULL_RESET  _u(0x0)
3251 #define PIO_IRQ1_INTF_SM2_TXNFULL_BITS   _u(0x00000040)
3252 #define PIO_IRQ1_INTF_SM2_TXNFULL_MSB    _u(6)
3253 #define PIO_IRQ1_INTF_SM2_TXNFULL_LSB    _u(6)
3254 #define PIO_IRQ1_INTF_SM2_TXNFULL_ACCESS "RW"
3255 // -----------------------------------------------------------------------------
3256 // Field       : PIO_IRQ1_INTF_SM1_TXNFULL
3257 #define PIO_IRQ1_INTF_SM1_TXNFULL_RESET  _u(0x0)
3258 #define PIO_IRQ1_INTF_SM1_TXNFULL_BITS   _u(0x00000020)
3259 #define PIO_IRQ1_INTF_SM1_TXNFULL_MSB    _u(5)
3260 #define PIO_IRQ1_INTF_SM1_TXNFULL_LSB    _u(5)
3261 #define PIO_IRQ1_INTF_SM1_TXNFULL_ACCESS "RW"
3262 // -----------------------------------------------------------------------------
3263 // Field       : PIO_IRQ1_INTF_SM0_TXNFULL
3264 #define PIO_IRQ1_INTF_SM0_TXNFULL_RESET  _u(0x0)
3265 #define PIO_IRQ1_INTF_SM0_TXNFULL_BITS   _u(0x00000010)
3266 #define PIO_IRQ1_INTF_SM0_TXNFULL_MSB    _u(4)
3267 #define PIO_IRQ1_INTF_SM0_TXNFULL_LSB    _u(4)
3268 #define PIO_IRQ1_INTF_SM0_TXNFULL_ACCESS "RW"
3269 // -----------------------------------------------------------------------------
3270 // Field       : PIO_IRQ1_INTF_SM3_RXNEMPTY
3271 #define PIO_IRQ1_INTF_SM3_RXNEMPTY_RESET  _u(0x0)
3272 #define PIO_IRQ1_INTF_SM3_RXNEMPTY_BITS   _u(0x00000008)
3273 #define PIO_IRQ1_INTF_SM3_RXNEMPTY_MSB    _u(3)
3274 #define PIO_IRQ1_INTF_SM3_RXNEMPTY_LSB    _u(3)
3275 #define PIO_IRQ1_INTF_SM3_RXNEMPTY_ACCESS "RW"
3276 // -----------------------------------------------------------------------------
3277 // Field       : PIO_IRQ1_INTF_SM2_RXNEMPTY
3278 #define PIO_IRQ1_INTF_SM2_RXNEMPTY_RESET  _u(0x0)
3279 #define PIO_IRQ1_INTF_SM2_RXNEMPTY_BITS   _u(0x00000004)
3280 #define PIO_IRQ1_INTF_SM2_RXNEMPTY_MSB    _u(2)
3281 #define PIO_IRQ1_INTF_SM2_RXNEMPTY_LSB    _u(2)
3282 #define PIO_IRQ1_INTF_SM2_RXNEMPTY_ACCESS "RW"
3283 // -----------------------------------------------------------------------------
3284 // Field       : PIO_IRQ1_INTF_SM1_RXNEMPTY
3285 #define PIO_IRQ1_INTF_SM1_RXNEMPTY_RESET  _u(0x0)
3286 #define PIO_IRQ1_INTF_SM1_RXNEMPTY_BITS   _u(0x00000002)
3287 #define PIO_IRQ1_INTF_SM1_RXNEMPTY_MSB    _u(1)
3288 #define PIO_IRQ1_INTF_SM1_RXNEMPTY_LSB    _u(1)
3289 #define PIO_IRQ1_INTF_SM1_RXNEMPTY_ACCESS "RW"
3290 // -----------------------------------------------------------------------------
3291 // Field       : PIO_IRQ1_INTF_SM0_RXNEMPTY
3292 #define PIO_IRQ1_INTF_SM0_RXNEMPTY_RESET  _u(0x0)
3293 #define PIO_IRQ1_INTF_SM0_RXNEMPTY_BITS   _u(0x00000001)
3294 #define PIO_IRQ1_INTF_SM0_RXNEMPTY_MSB    _u(0)
3295 #define PIO_IRQ1_INTF_SM0_RXNEMPTY_LSB    _u(0)
3296 #define PIO_IRQ1_INTF_SM0_RXNEMPTY_ACCESS "RW"
3297 // =============================================================================
3298 // Register    : PIO_IRQ1_INTS
3299 // Description : Interrupt status after masking & forcing for irq1
3300 #define PIO_IRQ1_INTS_OFFSET _u(0x00000184)
3301 #define PIO_IRQ1_INTS_BITS   _u(0x0000ffff)
3302 #define PIO_IRQ1_INTS_RESET  _u(0x00000000)
3303 // -----------------------------------------------------------------------------
3304 // Field       : PIO_IRQ1_INTS_SM7
3305 #define PIO_IRQ1_INTS_SM7_RESET  _u(0x0)
3306 #define PIO_IRQ1_INTS_SM7_BITS   _u(0x00008000)
3307 #define PIO_IRQ1_INTS_SM7_MSB    _u(15)
3308 #define PIO_IRQ1_INTS_SM7_LSB    _u(15)
3309 #define PIO_IRQ1_INTS_SM7_ACCESS "RO"
3310 // -----------------------------------------------------------------------------
3311 // Field       : PIO_IRQ1_INTS_SM6
3312 #define PIO_IRQ1_INTS_SM6_RESET  _u(0x0)
3313 #define PIO_IRQ1_INTS_SM6_BITS   _u(0x00004000)
3314 #define PIO_IRQ1_INTS_SM6_MSB    _u(14)
3315 #define PIO_IRQ1_INTS_SM6_LSB    _u(14)
3316 #define PIO_IRQ1_INTS_SM6_ACCESS "RO"
3317 // -----------------------------------------------------------------------------
3318 // Field       : PIO_IRQ1_INTS_SM5
3319 #define PIO_IRQ1_INTS_SM5_RESET  _u(0x0)
3320 #define PIO_IRQ1_INTS_SM5_BITS   _u(0x00002000)
3321 #define PIO_IRQ1_INTS_SM5_MSB    _u(13)
3322 #define PIO_IRQ1_INTS_SM5_LSB    _u(13)
3323 #define PIO_IRQ1_INTS_SM5_ACCESS "RO"
3324 // -----------------------------------------------------------------------------
3325 // Field       : PIO_IRQ1_INTS_SM4
3326 #define PIO_IRQ1_INTS_SM4_RESET  _u(0x0)
3327 #define PIO_IRQ1_INTS_SM4_BITS   _u(0x00001000)
3328 #define PIO_IRQ1_INTS_SM4_MSB    _u(12)
3329 #define PIO_IRQ1_INTS_SM4_LSB    _u(12)
3330 #define PIO_IRQ1_INTS_SM4_ACCESS "RO"
3331 // -----------------------------------------------------------------------------
3332 // Field       : PIO_IRQ1_INTS_SM3
3333 #define PIO_IRQ1_INTS_SM3_RESET  _u(0x0)
3334 #define PIO_IRQ1_INTS_SM3_BITS   _u(0x00000800)
3335 #define PIO_IRQ1_INTS_SM3_MSB    _u(11)
3336 #define PIO_IRQ1_INTS_SM3_LSB    _u(11)
3337 #define PIO_IRQ1_INTS_SM3_ACCESS "RO"
3338 // -----------------------------------------------------------------------------
3339 // Field       : PIO_IRQ1_INTS_SM2
3340 #define PIO_IRQ1_INTS_SM2_RESET  _u(0x0)
3341 #define PIO_IRQ1_INTS_SM2_BITS   _u(0x00000400)
3342 #define PIO_IRQ1_INTS_SM2_MSB    _u(10)
3343 #define PIO_IRQ1_INTS_SM2_LSB    _u(10)
3344 #define PIO_IRQ1_INTS_SM2_ACCESS "RO"
3345 // -----------------------------------------------------------------------------
3346 // Field       : PIO_IRQ1_INTS_SM1
3347 #define PIO_IRQ1_INTS_SM1_RESET  _u(0x0)
3348 #define PIO_IRQ1_INTS_SM1_BITS   _u(0x00000200)
3349 #define PIO_IRQ1_INTS_SM1_MSB    _u(9)
3350 #define PIO_IRQ1_INTS_SM1_LSB    _u(9)
3351 #define PIO_IRQ1_INTS_SM1_ACCESS "RO"
3352 // -----------------------------------------------------------------------------
3353 // Field       : PIO_IRQ1_INTS_SM0
3354 #define PIO_IRQ1_INTS_SM0_RESET  _u(0x0)
3355 #define PIO_IRQ1_INTS_SM0_BITS   _u(0x00000100)
3356 #define PIO_IRQ1_INTS_SM0_MSB    _u(8)
3357 #define PIO_IRQ1_INTS_SM0_LSB    _u(8)
3358 #define PIO_IRQ1_INTS_SM0_ACCESS "RO"
3359 // -----------------------------------------------------------------------------
3360 // Field       : PIO_IRQ1_INTS_SM3_TXNFULL
3361 #define PIO_IRQ1_INTS_SM3_TXNFULL_RESET  _u(0x0)
3362 #define PIO_IRQ1_INTS_SM3_TXNFULL_BITS   _u(0x00000080)
3363 #define PIO_IRQ1_INTS_SM3_TXNFULL_MSB    _u(7)
3364 #define PIO_IRQ1_INTS_SM3_TXNFULL_LSB    _u(7)
3365 #define PIO_IRQ1_INTS_SM3_TXNFULL_ACCESS "RO"
3366 // -----------------------------------------------------------------------------
3367 // Field       : PIO_IRQ1_INTS_SM2_TXNFULL
3368 #define PIO_IRQ1_INTS_SM2_TXNFULL_RESET  _u(0x0)
3369 #define PIO_IRQ1_INTS_SM2_TXNFULL_BITS   _u(0x00000040)
3370 #define PIO_IRQ1_INTS_SM2_TXNFULL_MSB    _u(6)
3371 #define PIO_IRQ1_INTS_SM2_TXNFULL_LSB    _u(6)
3372 #define PIO_IRQ1_INTS_SM2_TXNFULL_ACCESS "RO"
3373 // -----------------------------------------------------------------------------
3374 // Field       : PIO_IRQ1_INTS_SM1_TXNFULL
3375 #define PIO_IRQ1_INTS_SM1_TXNFULL_RESET  _u(0x0)
3376 #define PIO_IRQ1_INTS_SM1_TXNFULL_BITS   _u(0x00000020)
3377 #define PIO_IRQ1_INTS_SM1_TXNFULL_MSB    _u(5)
3378 #define PIO_IRQ1_INTS_SM1_TXNFULL_LSB    _u(5)
3379 #define PIO_IRQ1_INTS_SM1_TXNFULL_ACCESS "RO"
3380 // -----------------------------------------------------------------------------
3381 // Field       : PIO_IRQ1_INTS_SM0_TXNFULL
3382 #define PIO_IRQ1_INTS_SM0_TXNFULL_RESET  _u(0x0)
3383 #define PIO_IRQ1_INTS_SM0_TXNFULL_BITS   _u(0x00000010)
3384 #define PIO_IRQ1_INTS_SM0_TXNFULL_MSB    _u(4)
3385 #define PIO_IRQ1_INTS_SM0_TXNFULL_LSB    _u(4)
3386 #define PIO_IRQ1_INTS_SM0_TXNFULL_ACCESS "RO"
3387 // -----------------------------------------------------------------------------
3388 // Field       : PIO_IRQ1_INTS_SM3_RXNEMPTY
3389 #define PIO_IRQ1_INTS_SM3_RXNEMPTY_RESET  _u(0x0)
3390 #define PIO_IRQ1_INTS_SM3_RXNEMPTY_BITS   _u(0x00000008)
3391 #define PIO_IRQ1_INTS_SM3_RXNEMPTY_MSB    _u(3)
3392 #define PIO_IRQ1_INTS_SM3_RXNEMPTY_LSB    _u(3)
3393 #define PIO_IRQ1_INTS_SM3_RXNEMPTY_ACCESS "RO"
3394 // -----------------------------------------------------------------------------
3395 // Field       : PIO_IRQ1_INTS_SM2_RXNEMPTY
3396 #define PIO_IRQ1_INTS_SM2_RXNEMPTY_RESET  _u(0x0)
3397 #define PIO_IRQ1_INTS_SM2_RXNEMPTY_BITS   _u(0x00000004)
3398 #define PIO_IRQ1_INTS_SM2_RXNEMPTY_MSB    _u(2)
3399 #define PIO_IRQ1_INTS_SM2_RXNEMPTY_LSB    _u(2)
3400 #define PIO_IRQ1_INTS_SM2_RXNEMPTY_ACCESS "RO"
3401 // -----------------------------------------------------------------------------
3402 // Field       : PIO_IRQ1_INTS_SM1_RXNEMPTY
3403 #define PIO_IRQ1_INTS_SM1_RXNEMPTY_RESET  _u(0x0)
3404 #define PIO_IRQ1_INTS_SM1_RXNEMPTY_BITS   _u(0x00000002)
3405 #define PIO_IRQ1_INTS_SM1_RXNEMPTY_MSB    _u(1)
3406 #define PIO_IRQ1_INTS_SM1_RXNEMPTY_LSB    _u(1)
3407 #define PIO_IRQ1_INTS_SM1_RXNEMPTY_ACCESS "RO"
3408 // -----------------------------------------------------------------------------
3409 // Field       : PIO_IRQ1_INTS_SM0_RXNEMPTY
3410 #define PIO_IRQ1_INTS_SM0_RXNEMPTY_RESET  _u(0x0)
3411 #define PIO_IRQ1_INTS_SM0_RXNEMPTY_BITS   _u(0x00000001)
3412 #define PIO_IRQ1_INTS_SM0_RXNEMPTY_MSB    _u(0)
3413 #define PIO_IRQ1_INTS_SM0_RXNEMPTY_LSB    _u(0)
3414 #define PIO_IRQ1_INTS_SM0_RXNEMPTY_ACCESS "RO"
3415 // =============================================================================
3416 #endif // _HARDWARE_REGS_PIO_H
3417 
3418