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(0x00000fff) 21 #define PIO_CTRL_RESET _u(0x00000000) 22 // ----------------------------------------------------------------------------- 23 // Field : PIO_CTRL_CLKDIV_RESTART 24 // Description : Restart a state machine's clock divider from an initial phase 25 // of 0. Clock dividers are free-running, so once started, their 26 // output (including fractional jitter) is completely determined 27 // by the integer/fractional divisor configured in SMx_CLKDIV. 28 // This means that, if multiple clock dividers with the same 29 // divisor are restarted simultaneously, by writing multiple 1 30 // bits to this field, the execution clocks of those state 31 // machines will run in precise lockstep. 32 // 33 // Note that setting/clearing SM_ENABLE does not stop the clock 34 // divider from running, so once multiple state machines' clocks 35 // are synchronised, it is safe to disable/reenable a state 36 // machine, whilst keeping the clock dividers in sync. 37 // 38 // Note also that CLKDIV_RESTART can be written to whilst the 39 // state machine is running, and this is useful to resynchronise 40 // clock dividers after the divisors (SMx_CLKDIV) have been 41 // changed on-the-fly. 42 #define PIO_CTRL_CLKDIV_RESTART_RESET _u(0x0) 43 #define PIO_CTRL_CLKDIV_RESTART_BITS _u(0x00000f00) 44 #define PIO_CTRL_CLKDIV_RESTART_MSB _u(11) 45 #define PIO_CTRL_CLKDIV_RESTART_LSB _u(8) 46 #define PIO_CTRL_CLKDIV_RESTART_ACCESS "SC" 47 // ----------------------------------------------------------------------------- 48 // Field : PIO_CTRL_SM_RESTART 49 // Description : Write 1 to instantly clear internal SM state which may be 50 // otherwise difficult to access and will affect future execution. 51 // 52 // Specifically, the following are cleared: input and output shift 53 // counters; the contents of the input shift register; the delay 54 // counter; the waiting-on-IRQ state; any stalled instruction 55 // written to SMx_INSTR or run by OUT/MOV EXEC; any pin write left 56 // asserted due to OUT_STICKY. 57 // 58 // The program counter, the contents of the output shift register 59 // and the X/Y scratch registers are not affected. 60 #define PIO_CTRL_SM_RESTART_RESET _u(0x0) 61 #define PIO_CTRL_SM_RESTART_BITS _u(0x000000f0) 62 #define PIO_CTRL_SM_RESTART_MSB _u(7) 63 #define PIO_CTRL_SM_RESTART_LSB _u(4) 64 #define PIO_CTRL_SM_RESTART_ACCESS "SC" 65 // ----------------------------------------------------------------------------- 66 // Field : PIO_CTRL_SM_ENABLE 67 // Description : Enable/disable each of the four state machines by writing 1/0 68 // to each of these four bits. When disabled, a state machine will 69 // cease executing instructions, except those written directly to 70 // SMx_INSTR by the system. Multiple bits can be set/cleared at 71 // once to run/halt multiple state machines simultaneously. 72 #define PIO_CTRL_SM_ENABLE_RESET _u(0x0) 73 #define PIO_CTRL_SM_ENABLE_BITS _u(0x0000000f) 74 #define PIO_CTRL_SM_ENABLE_MSB _u(3) 75 #define PIO_CTRL_SM_ENABLE_LSB _u(0) 76 #define PIO_CTRL_SM_ENABLE_ACCESS "RW" 77 // ============================================================================= 78 // Register : PIO_FSTAT 79 // Description : FIFO status register 80 #define PIO_FSTAT_OFFSET _u(0x00000004) 81 #define PIO_FSTAT_BITS _u(0x0f0f0f0f) 82 #define PIO_FSTAT_RESET _u(0x0f000f00) 83 // ----------------------------------------------------------------------------- 84 // Field : PIO_FSTAT_TXEMPTY 85 // Description : State machine TX FIFO is empty 86 #define PIO_FSTAT_TXEMPTY_RESET _u(0xf) 87 #define PIO_FSTAT_TXEMPTY_BITS _u(0x0f000000) 88 #define PIO_FSTAT_TXEMPTY_MSB _u(27) 89 #define PIO_FSTAT_TXEMPTY_LSB _u(24) 90 #define PIO_FSTAT_TXEMPTY_ACCESS "RO" 91 // ----------------------------------------------------------------------------- 92 // Field : PIO_FSTAT_TXFULL 93 // Description : State machine TX FIFO is full 94 #define PIO_FSTAT_TXFULL_RESET _u(0x0) 95 #define PIO_FSTAT_TXFULL_BITS _u(0x000f0000) 96 #define PIO_FSTAT_TXFULL_MSB _u(19) 97 #define PIO_FSTAT_TXFULL_LSB _u(16) 98 #define PIO_FSTAT_TXFULL_ACCESS "RO" 99 // ----------------------------------------------------------------------------- 100 // Field : PIO_FSTAT_RXEMPTY 101 // Description : State machine RX FIFO is empty 102 #define PIO_FSTAT_RXEMPTY_RESET _u(0xf) 103 #define PIO_FSTAT_RXEMPTY_BITS _u(0x00000f00) 104 #define PIO_FSTAT_RXEMPTY_MSB _u(11) 105 #define PIO_FSTAT_RXEMPTY_LSB _u(8) 106 #define PIO_FSTAT_RXEMPTY_ACCESS "RO" 107 // ----------------------------------------------------------------------------- 108 // Field : PIO_FSTAT_RXFULL 109 // Description : State machine RX FIFO is full 110 #define PIO_FSTAT_RXFULL_RESET _u(0x0) 111 #define PIO_FSTAT_RXFULL_BITS _u(0x0000000f) 112 #define PIO_FSTAT_RXFULL_MSB _u(3) 113 #define PIO_FSTAT_RXFULL_LSB _u(0) 114 #define PIO_FSTAT_RXFULL_ACCESS "RO" 115 // ============================================================================= 116 // Register : PIO_FDEBUG 117 // Description : FIFO debug register 118 #define PIO_FDEBUG_OFFSET _u(0x00000008) 119 #define PIO_FDEBUG_BITS _u(0x0f0f0f0f) 120 #define PIO_FDEBUG_RESET _u(0x00000000) 121 // ----------------------------------------------------------------------------- 122 // Field : PIO_FDEBUG_TXSTALL 123 // Description : State machine has stalled on empty TX FIFO during a blocking 124 // PULL, or an OUT with autopull enabled. Write 1 to clear. 125 #define PIO_FDEBUG_TXSTALL_RESET _u(0x0) 126 #define PIO_FDEBUG_TXSTALL_BITS _u(0x0f000000) 127 #define PIO_FDEBUG_TXSTALL_MSB _u(27) 128 #define PIO_FDEBUG_TXSTALL_LSB _u(24) 129 #define PIO_FDEBUG_TXSTALL_ACCESS "WC" 130 // ----------------------------------------------------------------------------- 131 // Field : PIO_FDEBUG_TXOVER 132 // Description : TX FIFO overflow (i.e. write-on-full by the system) has 133 // occurred. Write 1 to clear. Note that write-on-full does not 134 // alter the state or contents of the FIFO in any way, but the 135 // data that the system attempted to write is dropped, so if this 136 // flag is set, your software has quite likely dropped some data 137 // on the floor. 138 #define PIO_FDEBUG_TXOVER_RESET _u(0x0) 139 #define PIO_FDEBUG_TXOVER_BITS _u(0x000f0000) 140 #define PIO_FDEBUG_TXOVER_MSB _u(19) 141 #define PIO_FDEBUG_TXOVER_LSB _u(16) 142 #define PIO_FDEBUG_TXOVER_ACCESS "WC" 143 // ----------------------------------------------------------------------------- 144 // Field : PIO_FDEBUG_RXUNDER 145 // Description : RX FIFO underflow (i.e. read-on-empty by the system) has 146 // occurred. Write 1 to clear. Note that read-on-empty does not 147 // perturb the state of the FIFO in any way, but the data returned 148 // by reading from an empty FIFO is undefined, so this flag 149 // generally only becomes set due to some kind of software error. 150 #define PIO_FDEBUG_RXUNDER_RESET _u(0x0) 151 #define PIO_FDEBUG_RXUNDER_BITS _u(0x00000f00) 152 #define PIO_FDEBUG_RXUNDER_MSB _u(11) 153 #define PIO_FDEBUG_RXUNDER_LSB _u(8) 154 #define PIO_FDEBUG_RXUNDER_ACCESS "WC" 155 // ----------------------------------------------------------------------------- 156 // Field : PIO_FDEBUG_RXSTALL 157 // Description : State machine has stalled on full RX FIFO during a blocking 158 // PUSH, or an IN with autopush enabled. This flag is also set 159 // when a nonblocking PUSH to a full FIFO took place, in which 160 // case the state machine has dropped data. Write 1 to clear. 161 #define PIO_FDEBUG_RXSTALL_RESET _u(0x0) 162 #define PIO_FDEBUG_RXSTALL_BITS _u(0x0000000f) 163 #define PIO_FDEBUG_RXSTALL_MSB _u(3) 164 #define PIO_FDEBUG_RXSTALL_LSB _u(0) 165 #define PIO_FDEBUG_RXSTALL_ACCESS "WC" 166 // ============================================================================= 167 // Register : PIO_FLEVEL 168 // Description : FIFO levels 169 #define PIO_FLEVEL_OFFSET _u(0x0000000c) 170 #define PIO_FLEVEL_BITS _u(0xffffffff) 171 #define PIO_FLEVEL_RESET _u(0x00000000) 172 // ----------------------------------------------------------------------------- 173 // Field : PIO_FLEVEL_RX3 174 #define PIO_FLEVEL_RX3_RESET _u(0x0) 175 #define PIO_FLEVEL_RX3_BITS _u(0xf0000000) 176 #define PIO_FLEVEL_RX3_MSB _u(31) 177 #define PIO_FLEVEL_RX3_LSB _u(28) 178 #define PIO_FLEVEL_RX3_ACCESS "RO" 179 // ----------------------------------------------------------------------------- 180 // Field : PIO_FLEVEL_TX3 181 #define PIO_FLEVEL_TX3_RESET _u(0x0) 182 #define PIO_FLEVEL_TX3_BITS _u(0x0f000000) 183 #define PIO_FLEVEL_TX3_MSB _u(27) 184 #define PIO_FLEVEL_TX3_LSB _u(24) 185 #define PIO_FLEVEL_TX3_ACCESS "RO" 186 // ----------------------------------------------------------------------------- 187 // Field : PIO_FLEVEL_RX2 188 #define PIO_FLEVEL_RX2_RESET _u(0x0) 189 #define PIO_FLEVEL_RX2_BITS _u(0x00f00000) 190 #define PIO_FLEVEL_RX2_MSB _u(23) 191 #define PIO_FLEVEL_RX2_LSB _u(20) 192 #define PIO_FLEVEL_RX2_ACCESS "RO" 193 // ----------------------------------------------------------------------------- 194 // Field : PIO_FLEVEL_TX2 195 #define PIO_FLEVEL_TX2_RESET _u(0x0) 196 #define PIO_FLEVEL_TX2_BITS _u(0x000f0000) 197 #define PIO_FLEVEL_TX2_MSB _u(19) 198 #define PIO_FLEVEL_TX2_LSB _u(16) 199 #define PIO_FLEVEL_TX2_ACCESS "RO" 200 // ----------------------------------------------------------------------------- 201 // Field : PIO_FLEVEL_RX1 202 #define PIO_FLEVEL_RX1_RESET _u(0x0) 203 #define PIO_FLEVEL_RX1_BITS _u(0x0000f000) 204 #define PIO_FLEVEL_RX1_MSB _u(15) 205 #define PIO_FLEVEL_RX1_LSB _u(12) 206 #define PIO_FLEVEL_RX1_ACCESS "RO" 207 // ----------------------------------------------------------------------------- 208 // Field : PIO_FLEVEL_TX1 209 #define PIO_FLEVEL_TX1_RESET _u(0x0) 210 #define PIO_FLEVEL_TX1_BITS _u(0x00000f00) 211 #define PIO_FLEVEL_TX1_MSB _u(11) 212 #define PIO_FLEVEL_TX1_LSB _u(8) 213 #define PIO_FLEVEL_TX1_ACCESS "RO" 214 // ----------------------------------------------------------------------------- 215 // Field : PIO_FLEVEL_RX0 216 #define PIO_FLEVEL_RX0_RESET _u(0x0) 217 #define PIO_FLEVEL_RX0_BITS _u(0x000000f0) 218 #define PIO_FLEVEL_RX0_MSB _u(7) 219 #define PIO_FLEVEL_RX0_LSB _u(4) 220 #define PIO_FLEVEL_RX0_ACCESS "RO" 221 // ----------------------------------------------------------------------------- 222 // Field : PIO_FLEVEL_TX0 223 #define PIO_FLEVEL_TX0_RESET _u(0x0) 224 #define PIO_FLEVEL_TX0_BITS _u(0x0000000f) 225 #define PIO_FLEVEL_TX0_MSB _u(3) 226 #define PIO_FLEVEL_TX0_LSB _u(0) 227 #define PIO_FLEVEL_TX0_ACCESS "RO" 228 // ============================================================================= 229 // Register : PIO_TXF0 230 // Description : Direct write access to the TX FIFO for this state machine. Each 231 // write pushes one word to the FIFO. Attempting to write to a 232 // full FIFO has no effect on the FIFO state or contents, and sets 233 // the sticky FDEBUG_TXOVER error flag for this FIFO. 234 #define PIO_TXF0_OFFSET _u(0x00000010) 235 #define PIO_TXF0_BITS _u(0xffffffff) 236 #define PIO_TXF0_RESET _u(0x00000000) 237 #define PIO_TXF0_MSB _u(31) 238 #define PIO_TXF0_LSB _u(0) 239 #define PIO_TXF0_ACCESS "WF" 240 // ============================================================================= 241 // Register : PIO_TXF1 242 // Description : Direct write access to the TX FIFO for this state machine. Each 243 // write pushes one word to the FIFO. Attempting to write to a 244 // full FIFO has no effect on the FIFO state or contents, and sets 245 // the sticky FDEBUG_TXOVER error flag for this FIFO. 246 #define PIO_TXF1_OFFSET _u(0x00000014) 247 #define PIO_TXF1_BITS _u(0xffffffff) 248 #define PIO_TXF1_RESET _u(0x00000000) 249 #define PIO_TXF1_MSB _u(31) 250 #define PIO_TXF1_LSB _u(0) 251 #define PIO_TXF1_ACCESS "WF" 252 // ============================================================================= 253 // Register : PIO_TXF2 254 // Description : Direct write access to the TX FIFO for this state machine. Each 255 // write pushes one word to the FIFO. Attempting to write to a 256 // full FIFO has no effect on the FIFO state or contents, and sets 257 // the sticky FDEBUG_TXOVER error flag for this FIFO. 258 #define PIO_TXF2_OFFSET _u(0x00000018) 259 #define PIO_TXF2_BITS _u(0xffffffff) 260 #define PIO_TXF2_RESET _u(0x00000000) 261 #define PIO_TXF2_MSB _u(31) 262 #define PIO_TXF2_LSB _u(0) 263 #define PIO_TXF2_ACCESS "WF" 264 // ============================================================================= 265 // Register : PIO_TXF3 266 // Description : Direct write access to the TX FIFO for this state machine. Each 267 // write pushes one word to the FIFO. Attempting to write to a 268 // full FIFO has no effect on the FIFO state or contents, and sets 269 // the sticky FDEBUG_TXOVER error flag for this FIFO. 270 #define PIO_TXF3_OFFSET _u(0x0000001c) 271 #define PIO_TXF3_BITS _u(0xffffffff) 272 #define PIO_TXF3_RESET _u(0x00000000) 273 #define PIO_TXF3_MSB _u(31) 274 #define PIO_TXF3_LSB _u(0) 275 #define PIO_TXF3_ACCESS "WF" 276 // ============================================================================= 277 // Register : PIO_RXF0 278 // Description : Direct read access to the RX FIFO for this state machine. Each 279 // read pops one word from the FIFO. Attempting to read from an 280 // empty FIFO has no effect on the FIFO state, and sets the sticky 281 // FDEBUG_RXUNDER error flag for this FIFO. The data returned to 282 // the system on a read from an empty FIFO is undefined. 283 #define PIO_RXF0_OFFSET _u(0x00000020) 284 #define PIO_RXF0_BITS _u(0xffffffff) 285 #define PIO_RXF0_RESET "-" 286 #define PIO_RXF0_MSB _u(31) 287 #define PIO_RXF0_LSB _u(0) 288 #define PIO_RXF0_ACCESS "RF" 289 // ============================================================================= 290 // Register : PIO_RXF1 291 // Description : Direct read access to the RX FIFO for this state machine. Each 292 // read pops one word from the FIFO. Attempting to read from an 293 // empty FIFO has no effect on the FIFO state, and sets the sticky 294 // FDEBUG_RXUNDER error flag for this FIFO. The data returned to 295 // the system on a read from an empty FIFO is undefined. 296 #define PIO_RXF1_OFFSET _u(0x00000024) 297 #define PIO_RXF1_BITS _u(0xffffffff) 298 #define PIO_RXF1_RESET "-" 299 #define PIO_RXF1_MSB _u(31) 300 #define PIO_RXF1_LSB _u(0) 301 #define PIO_RXF1_ACCESS "RF" 302 // ============================================================================= 303 // Register : PIO_RXF2 304 // Description : Direct read access to the RX FIFO for this state machine. Each 305 // read pops one word from the FIFO. Attempting to read from an 306 // empty FIFO has no effect on the FIFO state, and sets the sticky 307 // FDEBUG_RXUNDER error flag for this FIFO. The data returned to 308 // the system on a read from an empty FIFO is undefined. 309 #define PIO_RXF2_OFFSET _u(0x00000028) 310 #define PIO_RXF2_BITS _u(0xffffffff) 311 #define PIO_RXF2_RESET "-" 312 #define PIO_RXF2_MSB _u(31) 313 #define PIO_RXF2_LSB _u(0) 314 #define PIO_RXF2_ACCESS "RF" 315 // ============================================================================= 316 // Register : PIO_RXF3 317 // Description : Direct read access to the RX FIFO for this state machine. Each 318 // read pops one word from the FIFO. Attempting to read from an 319 // empty FIFO has no effect on the FIFO state, and sets the sticky 320 // FDEBUG_RXUNDER error flag for this FIFO. The data returned to 321 // the system on a read from an empty FIFO is undefined. 322 #define PIO_RXF3_OFFSET _u(0x0000002c) 323 #define PIO_RXF3_BITS _u(0xffffffff) 324 #define PIO_RXF3_RESET "-" 325 #define PIO_RXF3_MSB _u(31) 326 #define PIO_RXF3_LSB _u(0) 327 #define PIO_RXF3_ACCESS "RF" 328 // ============================================================================= 329 // Register : PIO_IRQ 330 // Description : State machine IRQ flags register. Write 1 to clear. There are 8 331 // state machine IRQ flags, which can be set, cleared, and waited 332 // on by the state machines. There's no fixed association between 333 // flags and state machines -- any state machine can use any flag. 334 // 335 // Any of the 8 flags can be used for timing synchronisation 336 // between state machines, using IRQ and WAIT instructions. The 337 // lower four of these flags are also routed out to system-level 338 // interrupt requests, alongside FIFO status interrupts -- see 339 // e.g. IRQ0_INTE. 340 #define PIO_IRQ_OFFSET _u(0x00000030) 341 #define PIO_IRQ_BITS _u(0x000000ff) 342 #define PIO_IRQ_RESET _u(0x00000000) 343 #define PIO_IRQ_MSB _u(7) 344 #define PIO_IRQ_LSB _u(0) 345 #define PIO_IRQ_ACCESS "WC" 346 // ============================================================================= 347 // Register : PIO_IRQ_FORCE 348 // Description : Writing a 1 to each of these bits will forcibly assert the 349 // corresponding IRQ. Note this is different to the INTF register: 350 // writing here affects PIO internal state. INTF just asserts the 351 // processor-facing IRQ signal for testing ISRs, and is not 352 // visible to the state machines. 353 #define PIO_IRQ_FORCE_OFFSET _u(0x00000034) 354 #define PIO_IRQ_FORCE_BITS _u(0x000000ff) 355 #define PIO_IRQ_FORCE_RESET _u(0x00000000) 356 #define PIO_IRQ_FORCE_MSB _u(7) 357 #define PIO_IRQ_FORCE_LSB _u(0) 358 #define PIO_IRQ_FORCE_ACCESS "WF" 359 // ============================================================================= 360 // Register : PIO_INPUT_SYNC_BYPASS 361 // Description : There is a 2-flipflop synchronizer on each GPIO input, which 362 // protects PIO logic from metastabilities. This increases input 363 // delay, and for fast synchronous IO (e.g. SPI) these 364 // synchronizers may need to be bypassed. Each bit in this 365 // register corresponds to one GPIO. 366 // 0 -> input is synchronized (default) 367 // 1 -> synchronizer is bypassed 368 // If in doubt, leave this register as all zeroes. 369 #define PIO_INPUT_SYNC_BYPASS_OFFSET _u(0x00000038) 370 #define PIO_INPUT_SYNC_BYPASS_BITS _u(0xffffffff) 371 #define PIO_INPUT_SYNC_BYPASS_RESET _u(0x00000000) 372 #define PIO_INPUT_SYNC_BYPASS_MSB _u(31) 373 #define PIO_INPUT_SYNC_BYPASS_LSB _u(0) 374 #define PIO_INPUT_SYNC_BYPASS_ACCESS "RW" 375 // ============================================================================= 376 // Register : PIO_DBG_PADOUT 377 // Description : Read to sample the pad output values PIO is currently driving 378 // to the GPIOs. On RP2040 there are 30 GPIOs, so the two most 379 // significant bits are hardwired to 0. 380 #define PIO_DBG_PADOUT_OFFSET _u(0x0000003c) 381 #define PIO_DBG_PADOUT_BITS _u(0xffffffff) 382 #define PIO_DBG_PADOUT_RESET _u(0x00000000) 383 #define PIO_DBG_PADOUT_MSB _u(31) 384 #define PIO_DBG_PADOUT_LSB _u(0) 385 #define PIO_DBG_PADOUT_ACCESS "RO" 386 // ============================================================================= 387 // Register : PIO_DBG_PADOE 388 // Description : Read to sample the pad output enables (direction) PIO is 389 // currently driving to the GPIOs. On RP2040 there are 30 GPIOs, 390 // so the two most significant bits are hardwired to 0. 391 #define PIO_DBG_PADOE_OFFSET _u(0x00000040) 392 #define PIO_DBG_PADOE_BITS _u(0xffffffff) 393 #define PIO_DBG_PADOE_RESET _u(0x00000000) 394 #define PIO_DBG_PADOE_MSB _u(31) 395 #define PIO_DBG_PADOE_LSB _u(0) 396 #define PIO_DBG_PADOE_ACCESS "RO" 397 // ============================================================================= 398 // Register : PIO_DBG_CFGINFO 399 // Description : The PIO hardware has some free parameters that may vary between 400 // chip products. 401 // These should be provided in the chip datasheet, but are also 402 // exposed here. 403 #define PIO_DBG_CFGINFO_OFFSET _u(0x00000044) 404 #define PIO_DBG_CFGINFO_BITS _u(0x003f0f3f) 405 #define PIO_DBG_CFGINFO_RESET _u(0x00000000) 406 // ----------------------------------------------------------------------------- 407 // Field : PIO_DBG_CFGINFO_IMEM_SIZE 408 // Description : The size of the instruction memory, measured in units of one 409 // instruction 410 #define PIO_DBG_CFGINFO_IMEM_SIZE_RESET "-" 411 #define PIO_DBG_CFGINFO_IMEM_SIZE_BITS _u(0x003f0000) 412 #define PIO_DBG_CFGINFO_IMEM_SIZE_MSB _u(21) 413 #define PIO_DBG_CFGINFO_IMEM_SIZE_LSB _u(16) 414 #define PIO_DBG_CFGINFO_IMEM_SIZE_ACCESS "RO" 415 // ----------------------------------------------------------------------------- 416 // Field : PIO_DBG_CFGINFO_SM_COUNT 417 // Description : The number of state machines this PIO instance is equipped 418 // with. 419 #define PIO_DBG_CFGINFO_SM_COUNT_RESET "-" 420 #define PIO_DBG_CFGINFO_SM_COUNT_BITS _u(0x00000f00) 421 #define PIO_DBG_CFGINFO_SM_COUNT_MSB _u(11) 422 #define PIO_DBG_CFGINFO_SM_COUNT_LSB _u(8) 423 #define PIO_DBG_CFGINFO_SM_COUNT_ACCESS "RO" 424 // ----------------------------------------------------------------------------- 425 // Field : PIO_DBG_CFGINFO_FIFO_DEPTH 426 // Description : The depth of the state machine TX/RX FIFOs, measured in words. 427 // Joining fifos via SHIFTCTRL_FJOIN gives one FIFO with double 428 // this depth. 429 #define PIO_DBG_CFGINFO_FIFO_DEPTH_RESET "-" 430 #define PIO_DBG_CFGINFO_FIFO_DEPTH_BITS _u(0x0000003f) 431 #define PIO_DBG_CFGINFO_FIFO_DEPTH_MSB _u(5) 432 #define PIO_DBG_CFGINFO_FIFO_DEPTH_LSB _u(0) 433 #define PIO_DBG_CFGINFO_FIFO_DEPTH_ACCESS "RO" 434 // ============================================================================= 435 // Register : PIO_INSTR_MEM0 436 // Description : Write-only access to instruction memory location 0 437 #define PIO_INSTR_MEM0_OFFSET _u(0x00000048) 438 #define PIO_INSTR_MEM0_BITS _u(0x0000ffff) 439 #define PIO_INSTR_MEM0_RESET _u(0x00000000) 440 #define PIO_INSTR_MEM0_MSB _u(15) 441 #define PIO_INSTR_MEM0_LSB _u(0) 442 #define PIO_INSTR_MEM0_ACCESS "WO" 443 // ============================================================================= 444 // Register : PIO_INSTR_MEM1 445 // Description : Write-only access to instruction memory location 1 446 #define PIO_INSTR_MEM1_OFFSET _u(0x0000004c) 447 #define PIO_INSTR_MEM1_BITS _u(0x0000ffff) 448 #define PIO_INSTR_MEM1_RESET _u(0x00000000) 449 #define PIO_INSTR_MEM1_MSB _u(15) 450 #define PIO_INSTR_MEM1_LSB _u(0) 451 #define PIO_INSTR_MEM1_ACCESS "WO" 452 // ============================================================================= 453 // Register : PIO_INSTR_MEM2 454 // Description : Write-only access to instruction memory location 2 455 #define PIO_INSTR_MEM2_OFFSET _u(0x00000050) 456 #define PIO_INSTR_MEM2_BITS _u(0x0000ffff) 457 #define PIO_INSTR_MEM2_RESET _u(0x00000000) 458 #define PIO_INSTR_MEM2_MSB _u(15) 459 #define PIO_INSTR_MEM2_LSB _u(0) 460 #define PIO_INSTR_MEM2_ACCESS "WO" 461 // ============================================================================= 462 // Register : PIO_INSTR_MEM3 463 // Description : Write-only access to instruction memory location 3 464 #define PIO_INSTR_MEM3_OFFSET _u(0x00000054) 465 #define PIO_INSTR_MEM3_BITS _u(0x0000ffff) 466 #define PIO_INSTR_MEM3_RESET _u(0x00000000) 467 #define PIO_INSTR_MEM3_MSB _u(15) 468 #define PIO_INSTR_MEM3_LSB _u(0) 469 #define PIO_INSTR_MEM3_ACCESS "WO" 470 // ============================================================================= 471 // Register : PIO_INSTR_MEM4 472 // Description : Write-only access to instruction memory location 4 473 #define PIO_INSTR_MEM4_OFFSET _u(0x00000058) 474 #define PIO_INSTR_MEM4_BITS _u(0x0000ffff) 475 #define PIO_INSTR_MEM4_RESET _u(0x00000000) 476 #define PIO_INSTR_MEM4_MSB _u(15) 477 #define PIO_INSTR_MEM4_LSB _u(0) 478 #define PIO_INSTR_MEM4_ACCESS "WO" 479 // ============================================================================= 480 // Register : PIO_INSTR_MEM5 481 // Description : Write-only access to instruction memory location 5 482 #define PIO_INSTR_MEM5_OFFSET _u(0x0000005c) 483 #define PIO_INSTR_MEM5_BITS _u(0x0000ffff) 484 #define PIO_INSTR_MEM5_RESET _u(0x00000000) 485 #define PIO_INSTR_MEM5_MSB _u(15) 486 #define PIO_INSTR_MEM5_LSB _u(0) 487 #define PIO_INSTR_MEM5_ACCESS "WO" 488 // ============================================================================= 489 // Register : PIO_INSTR_MEM6 490 // Description : Write-only access to instruction memory location 6 491 #define PIO_INSTR_MEM6_OFFSET _u(0x00000060) 492 #define PIO_INSTR_MEM6_BITS _u(0x0000ffff) 493 #define PIO_INSTR_MEM6_RESET _u(0x00000000) 494 #define PIO_INSTR_MEM6_MSB _u(15) 495 #define PIO_INSTR_MEM6_LSB _u(0) 496 #define PIO_INSTR_MEM6_ACCESS "WO" 497 // ============================================================================= 498 // Register : PIO_INSTR_MEM7 499 // Description : Write-only access to instruction memory location 7 500 #define PIO_INSTR_MEM7_OFFSET _u(0x00000064) 501 #define PIO_INSTR_MEM7_BITS _u(0x0000ffff) 502 #define PIO_INSTR_MEM7_RESET _u(0x00000000) 503 #define PIO_INSTR_MEM7_MSB _u(15) 504 #define PIO_INSTR_MEM7_LSB _u(0) 505 #define PIO_INSTR_MEM7_ACCESS "WO" 506 // ============================================================================= 507 // Register : PIO_INSTR_MEM8 508 // Description : Write-only access to instruction memory location 8 509 #define PIO_INSTR_MEM8_OFFSET _u(0x00000068) 510 #define PIO_INSTR_MEM8_BITS _u(0x0000ffff) 511 #define PIO_INSTR_MEM8_RESET _u(0x00000000) 512 #define PIO_INSTR_MEM8_MSB _u(15) 513 #define PIO_INSTR_MEM8_LSB _u(0) 514 #define PIO_INSTR_MEM8_ACCESS "WO" 515 // ============================================================================= 516 // Register : PIO_INSTR_MEM9 517 // Description : Write-only access to instruction memory location 9 518 #define PIO_INSTR_MEM9_OFFSET _u(0x0000006c) 519 #define PIO_INSTR_MEM9_BITS _u(0x0000ffff) 520 #define PIO_INSTR_MEM9_RESET _u(0x00000000) 521 #define PIO_INSTR_MEM9_MSB _u(15) 522 #define PIO_INSTR_MEM9_LSB _u(0) 523 #define PIO_INSTR_MEM9_ACCESS "WO" 524 // ============================================================================= 525 // Register : PIO_INSTR_MEM10 526 // Description : Write-only access to instruction memory location 10 527 #define PIO_INSTR_MEM10_OFFSET _u(0x00000070) 528 #define PIO_INSTR_MEM10_BITS _u(0x0000ffff) 529 #define PIO_INSTR_MEM10_RESET _u(0x00000000) 530 #define PIO_INSTR_MEM10_MSB _u(15) 531 #define PIO_INSTR_MEM10_LSB _u(0) 532 #define PIO_INSTR_MEM10_ACCESS "WO" 533 // ============================================================================= 534 // Register : PIO_INSTR_MEM11 535 // Description : Write-only access to instruction memory location 11 536 #define PIO_INSTR_MEM11_OFFSET _u(0x00000074) 537 #define PIO_INSTR_MEM11_BITS _u(0x0000ffff) 538 #define PIO_INSTR_MEM11_RESET _u(0x00000000) 539 #define PIO_INSTR_MEM11_MSB _u(15) 540 #define PIO_INSTR_MEM11_LSB _u(0) 541 #define PIO_INSTR_MEM11_ACCESS "WO" 542 // ============================================================================= 543 // Register : PIO_INSTR_MEM12 544 // Description : Write-only access to instruction memory location 12 545 #define PIO_INSTR_MEM12_OFFSET _u(0x00000078) 546 #define PIO_INSTR_MEM12_BITS _u(0x0000ffff) 547 #define PIO_INSTR_MEM12_RESET _u(0x00000000) 548 #define PIO_INSTR_MEM12_MSB _u(15) 549 #define PIO_INSTR_MEM12_LSB _u(0) 550 #define PIO_INSTR_MEM12_ACCESS "WO" 551 // ============================================================================= 552 // Register : PIO_INSTR_MEM13 553 // Description : Write-only access to instruction memory location 13 554 #define PIO_INSTR_MEM13_OFFSET _u(0x0000007c) 555 #define PIO_INSTR_MEM13_BITS _u(0x0000ffff) 556 #define PIO_INSTR_MEM13_RESET _u(0x00000000) 557 #define PIO_INSTR_MEM13_MSB _u(15) 558 #define PIO_INSTR_MEM13_LSB _u(0) 559 #define PIO_INSTR_MEM13_ACCESS "WO" 560 // ============================================================================= 561 // Register : PIO_INSTR_MEM14 562 // Description : Write-only access to instruction memory location 14 563 #define PIO_INSTR_MEM14_OFFSET _u(0x00000080) 564 #define PIO_INSTR_MEM14_BITS _u(0x0000ffff) 565 #define PIO_INSTR_MEM14_RESET _u(0x00000000) 566 #define PIO_INSTR_MEM14_MSB _u(15) 567 #define PIO_INSTR_MEM14_LSB _u(0) 568 #define PIO_INSTR_MEM14_ACCESS "WO" 569 // ============================================================================= 570 // Register : PIO_INSTR_MEM15 571 // Description : Write-only access to instruction memory location 15 572 #define PIO_INSTR_MEM15_OFFSET _u(0x00000084) 573 #define PIO_INSTR_MEM15_BITS _u(0x0000ffff) 574 #define PIO_INSTR_MEM15_RESET _u(0x00000000) 575 #define PIO_INSTR_MEM15_MSB _u(15) 576 #define PIO_INSTR_MEM15_LSB _u(0) 577 #define PIO_INSTR_MEM15_ACCESS "WO" 578 // ============================================================================= 579 // Register : PIO_INSTR_MEM16 580 // Description : Write-only access to instruction memory location 16 581 #define PIO_INSTR_MEM16_OFFSET _u(0x00000088) 582 #define PIO_INSTR_MEM16_BITS _u(0x0000ffff) 583 #define PIO_INSTR_MEM16_RESET _u(0x00000000) 584 #define PIO_INSTR_MEM16_MSB _u(15) 585 #define PIO_INSTR_MEM16_LSB _u(0) 586 #define PIO_INSTR_MEM16_ACCESS "WO" 587 // ============================================================================= 588 // Register : PIO_INSTR_MEM17 589 // Description : Write-only access to instruction memory location 17 590 #define PIO_INSTR_MEM17_OFFSET _u(0x0000008c) 591 #define PIO_INSTR_MEM17_BITS _u(0x0000ffff) 592 #define PIO_INSTR_MEM17_RESET _u(0x00000000) 593 #define PIO_INSTR_MEM17_MSB _u(15) 594 #define PIO_INSTR_MEM17_LSB _u(0) 595 #define PIO_INSTR_MEM17_ACCESS "WO" 596 // ============================================================================= 597 // Register : PIO_INSTR_MEM18 598 // Description : Write-only access to instruction memory location 18 599 #define PIO_INSTR_MEM18_OFFSET _u(0x00000090) 600 #define PIO_INSTR_MEM18_BITS _u(0x0000ffff) 601 #define PIO_INSTR_MEM18_RESET _u(0x00000000) 602 #define PIO_INSTR_MEM18_MSB _u(15) 603 #define PIO_INSTR_MEM18_LSB _u(0) 604 #define PIO_INSTR_MEM18_ACCESS "WO" 605 // ============================================================================= 606 // Register : PIO_INSTR_MEM19 607 // Description : Write-only access to instruction memory location 19 608 #define PIO_INSTR_MEM19_OFFSET _u(0x00000094) 609 #define PIO_INSTR_MEM19_BITS _u(0x0000ffff) 610 #define PIO_INSTR_MEM19_RESET _u(0x00000000) 611 #define PIO_INSTR_MEM19_MSB _u(15) 612 #define PIO_INSTR_MEM19_LSB _u(0) 613 #define PIO_INSTR_MEM19_ACCESS "WO" 614 // ============================================================================= 615 // Register : PIO_INSTR_MEM20 616 // Description : Write-only access to instruction memory location 20 617 #define PIO_INSTR_MEM20_OFFSET _u(0x00000098) 618 #define PIO_INSTR_MEM20_BITS _u(0x0000ffff) 619 #define PIO_INSTR_MEM20_RESET _u(0x00000000) 620 #define PIO_INSTR_MEM20_MSB _u(15) 621 #define PIO_INSTR_MEM20_LSB _u(0) 622 #define PIO_INSTR_MEM20_ACCESS "WO" 623 // ============================================================================= 624 // Register : PIO_INSTR_MEM21 625 // Description : Write-only access to instruction memory location 21 626 #define PIO_INSTR_MEM21_OFFSET _u(0x0000009c) 627 #define PIO_INSTR_MEM21_BITS _u(0x0000ffff) 628 #define PIO_INSTR_MEM21_RESET _u(0x00000000) 629 #define PIO_INSTR_MEM21_MSB _u(15) 630 #define PIO_INSTR_MEM21_LSB _u(0) 631 #define PIO_INSTR_MEM21_ACCESS "WO" 632 // ============================================================================= 633 // Register : PIO_INSTR_MEM22 634 // Description : Write-only access to instruction memory location 22 635 #define PIO_INSTR_MEM22_OFFSET _u(0x000000a0) 636 #define PIO_INSTR_MEM22_BITS _u(0x0000ffff) 637 #define PIO_INSTR_MEM22_RESET _u(0x00000000) 638 #define PIO_INSTR_MEM22_MSB _u(15) 639 #define PIO_INSTR_MEM22_LSB _u(0) 640 #define PIO_INSTR_MEM22_ACCESS "WO" 641 // ============================================================================= 642 // Register : PIO_INSTR_MEM23 643 // Description : Write-only access to instruction memory location 23 644 #define PIO_INSTR_MEM23_OFFSET _u(0x000000a4) 645 #define PIO_INSTR_MEM23_BITS _u(0x0000ffff) 646 #define PIO_INSTR_MEM23_RESET _u(0x00000000) 647 #define PIO_INSTR_MEM23_MSB _u(15) 648 #define PIO_INSTR_MEM23_LSB _u(0) 649 #define PIO_INSTR_MEM23_ACCESS "WO" 650 // ============================================================================= 651 // Register : PIO_INSTR_MEM24 652 // Description : Write-only access to instruction memory location 24 653 #define PIO_INSTR_MEM24_OFFSET _u(0x000000a8) 654 #define PIO_INSTR_MEM24_BITS _u(0x0000ffff) 655 #define PIO_INSTR_MEM24_RESET _u(0x00000000) 656 #define PIO_INSTR_MEM24_MSB _u(15) 657 #define PIO_INSTR_MEM24_LSB _u(0) 658 #define PIO_INSTR_MEM24_ACCESS "WO" 659 // ============================================================================= 660 // Register : PIO_INSTR_MEM25 661 // Description : Write-only access to instruction memory location 25 662 #define PIO_INSTR_MEM25_OFFSET _u(0x000000ac) 663 #define PIO_INSTR_MEM25_BITS _u(0x0000ffff) 664 #define PIO_INSTR_MEM25_RESET _u(0x00000000) 665 #define PIO_INSTR_MEM25_MSB _u(15) 666 #define PIO_INSTR_MEM25_LSB _u(0) 667 #define PIO_INSTR_MEM25_ACCESS "WO" 668 // ============================================================================= 669 // Register : PIO_INSTR_MEM26 670 // Description : Write-only access to instruction memory location 26 671 #define PIO_INSTR_MEM26_OFFSET _u(0x000000b0) 672 #define PIO_INSTR_MEM26_BITS _u(0x0000ffff) 673 #define PIO_INSTR_MEM26_RESET _u(0x00000000) 674 #define PIO_INSTR_MEM26_MSB _u(15) 675 #define PIO_INSTR_MEM26_LSB _u(0) 676 #define PIO_INSTR_MEM26_ACCESS "WO" 677 // ============================================================================= 678 // Register : PIO_INSTR_MEM27 679 // Description : Write-only access to instruction memory location 27 680 #define PIO_INSTR_MEM27_OFFSET _u(0x000000b4) 681 #define PIO_INSTR_MEM27_BITS _u(0x0000ffff) 682 #define PIO_INSTR_MEM27_RESET _u(0x00000000) 683 #define PIO_INSTR_MEM27_MSB _u(15) 684 #define PIO_INSTR_MEM27_LSB _u(0) 685 #define PIO_INSTR_MEM27_ACCESS "WO" 686 // ============================================================================= 687 // Register : PIO_INSTR_MEM28 688 // Description : Write-only access to instruction memory location 28 689 #define PIO_INSTR_MEM28_OFFSET _u(0x000000b8) 690 #define PIO_INSTR_MEM28_BITS _u(0x0000ffff) 691 #define PIO_INSTR_MEM28_RESET _u(0x00000000) 692 #define PIO_INSTR_MEM28_MSB _u(15) 693 #define PIO_INSTR_MEM28_LSB _u(0) 694 #define PIO_INSTR_MEM28_ACCESS "WO" 695 // ============================================================================= 696 // Register : PIO_INSTR_MEM29 697 // Description : Write-only access to instruction memory location 29 698 #define PIO_INSTR_MEM29_OFFSET _u(0x000000bc) 699 #define PIO_INSTR_MEM29_BITS _u(0x0000ffff) 700 #define PIO_INSTR_MEM29_RESET _u(0x00000000) 701 #define PIO_INSTR_MEM29_MSB _u(15) 702 #define PIO_INSTR_MEM29_LSB _u(0) 703 #define PIO_INSTR_MEM29_ACCESS "WO" 704 // ============================================================================= 705 // Register : PIO_INSTR_MEM30 706 // Description : Write-only access to instruction memory location 30 707 #define PIO_INSTR_MEM30_OFFSET _u(0x000000c0) 708 #define PIO_INSTR_MEM30_BITS _u(0x0000ffff) 709 #define PIO_INSTR_MEM30_RESET _u(0x00000000) 710 #define PIO_INSTR_MEM30_MSB _u(15) 711 #define PIO_INSTR_MEM30_LSB _u(0) 712 #define PIO_INSTR_MEM30_ACCESS "WO" 713 // ============================================================================= 714 // Register : PIO_INSTR_MEM31 715 // Description : Write-only access to instruction memory location 31 716 #define PIO_INSTR_MEM31_OFFSET _u(0x000000c4) 717 #define PIO_INSTR_MEM31_BITS _u(0x0000ffff) 718 #define PIO_INSTR_MEM31_RESET _u(0x00000000) 719 #define PIO_INSTR_MEM31_MSB _u(15) 720 #define PIO_INSTR_MEM31_LSB _u(0) 721 #define PIO_INSTR_MEM31_ACCESS "WO" 722 // ============================================================================= 723 // Register : PIO_SM0_CLKDIV 724 // Description : Clock divisor register for state machine 0 725 // Frequency = clock freq / (CLKDIV_INT + CLKDIV_FRAC / 256) 726 #define PIO_SM0_CLKDIV_OFFSET _u(0x000000c8) 727 #define PIO_SM0_CLKDIV_BITS _u(0xffffff00) 728 #define PIO_SM0_CLKDIV_RESET _u(0x00010000) 729 // ----------------------------------------------------------------------------- 730 // Field : PIO_SM0_CLKDIV_INT 731 // Description : Effective frequency is sysclk/(int + frac/256). 732 // Value of 0 is interpreted as 65536. If INT is 0, FRAC must also 733 // be 0. 734 #define PIO_SM0_CLKDIV_INT_RESET _u(0x0001) 735 #define PIO_SM0_CLKDIV_INT_BITS _u(0xffff0000) 736 #define PIO_SM0_CLKDIV_INT_MSB _u(31) 737 #define PIO_SM0_CLKDIV_INT_LSB _u(16) 738 #define PIO_SM0_CLKDIV_INT_ACCESS "RW" 739 // ----------------------------------------------------------------------------- 740 // Field : PIO_SM0_CLKDIV_FRAC 741 // Description : Fractional part of clock divisor 742 #define PIO_SM0_CLKDIV_FRAC_RESET _u(0x00) 743 #define PIO_SM0_CLKDIV_FRAC_BITS _u(0x0000ff00) 744 #define PIO_SM0_CLKDIV_FRAC_MSB _u(15) 745 #define PIO_SM0_CLKDIV_FRAC_LSB _u(8) 746 #define PIO_SM0_CLKDIV_FRAC_ACCESS "RW" 747 // ============================================================================= 748 // Register : PIO_SM0_EXECCTRL 749 // Description : Execution/behavioural settings for state machine 0 750 #define PIO_SM0_EXECCTRL_OFFSET _u(0x000000cc) 751 #define PIO_SM0_EXECCTRL_BITS _u(0xffffff9f) 752 #define PIO_SM0_EXECCTRL_RESET _u(0x0001f000) 753 // ----------------------------------------------------------------------------- 754 // Field : PIO_SM0_EXECCTRL_EXEC_STALLED 755 // Description : If 1, an instruction written to SMx_INSTR is stalled, and 756 // latched by the state machine. Will clear to 0 once this 757 // instruction completes. 758 #define PIO_SM0_EXECCTRL_EXEC_STALLED_RESET _u(0x0) 759 #define PIO_SM0_EXECCTRL_EXEC_STALLED_BITS _u(0x80000000) 760 #define PIO_SM0_EXECCTRL_EXEC_STALLED_MSB _u(31) 761 #define PIO_SM0_EXECCTRL_EXEC_STALLED_LSB _u(31) 762 #define PIO_SM0_EXECCTRL_EXEC_STALLED_ACCESS "RO" 763 // ----------------------------------------------------------------------------- 764 // Field : PIO_SM0_EXECCTRL_SIDE_EN 765 // Description : If 1, the MSB of the Delay/Side-set instruction field is used 766 // as side-set enable, rather than a side-set data bit. This 767 // allows instructions to perform side-set optionally, rather than 768 // on every instruction, but the maximum possible side-set width 769 // is reduced from 5 to 4. Note that the value of 770 // PINCTRL_SIDESET_COUNT is inclusive of this enable bit. 771 #define PIO_SM0_EXECCTRL_SIDE_EN_RESET _u(0x0) 772 #define PIO_SM0_EXECCTRL_SIDE_EN_BITS _u(0x40000000) 773 #define PIO_SM0_EXECCTRL_SIDE_EN_MSB _u(30) 774 #define PIO_SM0_EXECCTRL_SIDE_EN_LSB _u(30) 775 #define PIO_SM0_EXECCTRL_SIDE_EN_ACCESS "RW" 776 // ----------------------------------------------------------------------------- 777 // Field : PIO_SM0_EXECCTRL_SIDE_PINDIR 778 // Description : If 1, side-set data is asserted to pin directions, instead of 779 // pin values 780 #define PIO_SM0_EXECCTRL_SIDE_PINDIR_RESET _u(0x0) 781 #define PIO_SM0_EXECCTRL_SIDE_PINDIR_BITS _u(0x20000000) 782 #define PIO_SM0_EXECCTRL_SIDE_PINDIR_MSB _u(29) 783 #define PIO_SM0_EXECCTRL_SIDE_PINDIR_LSB _u(29) 784 #define PIO_SM0_EXECCTRL_SIDE_PINDIR_ACCESS "RW" 785 // ----------------------------------------------------------------------------- 786 // Field : PIO_SM0_EXECCTRL_JMP_PIN 787 // Description : The GPIO number to use as condition for JMP PIN. Unaffected by 788 // input mapping. 789 #define PIO_SM0_EXECCTRL_JMP_PIN_RESET _u(0x00) 790 #define PIO_SM0_EXECCTRL_JMP_PIN_BITS _u(0x1f000000) 791 #define PIO_SM0_EXECCTRL_JMP_PIN_MSB _u(28) 792 #define PIO_SM0_EXECCTRL_JMP_PIN_LSB _u(24) 793 #define PIO_SM0_EXECCTRL_JMP_PIN_ACCESS "RW" 794 // ----------------------------------------------------------------------------- 795 // Field : PIO_SM0_EXECCTRL_OUT_EN_SEL 796 // Description : Which data bit to use for inline OUT enable 797 #define PIO_SM0_EXECCTRL_OUT_EN_SEL_RESET _u(0x00) 798 #define PIO_SM0_EXECCTRL_OUT_EN_SEL_BITS _u(0x00f80000) 799 #define PIO_SM0_EXECCTRL_OUT_EN_SEL_MSB _u(23) 800 #define PIO_SM0_EXECCTRL_OUT_EN_SEL_LSB _u(19) 801 #define PIO_SM0_EXECCTRL_OUT_EN_SEL_ACCESS "RW" 802 // ----------------------------------------------------------------------------- 803 // Field : PIO_SM0_EXECCTRL_INLINE_OUT_EN 804 // Description : If 1, use a bit of OUT data as an auxiliary write enable 805 // When used in conjunction with OUT_STICKY, writes with an enable 806 // of 0 will 807 // deassert the latest pin write. This can create useful 808 // masking/override behaviour 809 // due to the priority ordering of state machine pin writes (SM0 < 810 // SM1 < ...) 811 #define PIO_SM0_EXECCTRL_INLINE_OUT_EN_RESET _u(0x0) 812 #define PIO_SM0_EXECCTRL_INLINE_OUT_EN_BITS _u(0x00040000) 813 #define PIO_SM0_EXECCTRL_INLINE_OUT_EN_MSB _u(18) 814 #define PIO_SM0_EXECCTRL_INLINE_OUT_EN_LSB _u(18) 815 #define PIO_SM0_EXECCTRL_INLINE_OUT_EN_ACCESS "RW" 816 // ----------------------------------------------------------------------------- 817 // Field : PIO_SM0_EXECCTRL_OUT_STICKY 818 // Description : Continuously assert the most recent OUT/SET to the pins 819 #define PIO_SM0_EXECCTRL_OUT_STICKY_RESET _u(0x0) 820 #define PIO_SM0_EXECCTRL_OUT_STICKY_BITS _u(0x00020000) 821 #define PIO_SM0_EXECCTRL_OUT_STICKY_MSB _u(17) 822 #define PIO_SM0_EXECCTRL_OUT_STICKY_LSB _u(17) 823 #define PIO_SM0_EXECCTRL_OUT_STICKY_ACCESS "RW" 824 // ----------------------------------------------------------------------------- 825 // Field : PIO_SM0_EXECCTRL_WRAP_TOP 826 // Description : After reaching this address, execution is wrapped to 827 // wrap_bottom. 828 // If the instruction is a jump, and the jump condition is true, 829 // the jump takes priority. 830 #define PIO_SM0_EXECCTRL_WRAP_TOP_RESET _u(0x1f) 831 #define PIO_SM0_EXECCTRL_WRAP_TOP_BITS _u(0x0001f000) 832 #define PIO_SM0_EXECCTRL_WRAP_TOP_MSB _u(16) 833 #define PIO_SM0_EXECCTRL_WRAP_TOP_LSB _u(12) 834 #define PIO_SM0_EXECCTRL_WRAP_TOP_ACCESS "RW" 835 // ----------------------------------------------------------------------------- 836 // Field : PIO_SM0_EXECCTRL_WRAP_BOTTOM 837 // Description : After reaching wrap_top, execution is wrapped to this address. 838 #define PIO_SM0_EXECCTRL_WRAP_BOTTOM_RESET _u(0x00) 839 #define PIO_SM0_EXECCTRL_WRAP_BOTTOM_BITS _u(0x00000f80) 840 #define PIO_SM0_EXECCTRL_WRAP_BOTTOM_MSB _u(11) 841 #define PIO_SM0_EXECCTRL_WRAP_BOTTOM_LSB _u(7) 842 #define PIO_SM0_EXECCTRL_WRAP_BOTTOM_ACCESS "RW" 843 // ----------------------------------------------------------------------------- 844 // Field : PIO_SM0_EXECCTRL_STATUS_SEL 845 // Description : Comparison used for the MOV x, STATUS instruction. 846 // 0x0 -> All-ones if TX FIFO level < N, otherwise all-zeroes 847 // 0x1 -> All-ones if RX FIFO level < N, otherwise all-zeroes 848 #define PIO_SM0_EXECCTRL_STATUS_SEL_RESET _u(0x0) 849 #define PIO_SM0_EXECCTRL_STATUS_SEL_BITS _u(0x00000010) 850 #define PIO_SM0_EXECCTRL_STATUS_SEL_MSB _u(4) 851 #define PIO_SM0_EXECCTRL_STATUS_SEL_LSB _u(4) 852 #define PIO_SM0_EXECCTRL_STATUS_SEL_ACCESS "RW" 853 #define PIO_SM0_EXECCTRL_STATUS_SEL_VALUE_TXLEVEL _u(0x0) 854 #define PIO_SM0_EXECCTRL_STATUS_SEL_VALUE_RXLEVEL _u(0x1) 855 // ----------------------------------------------------------------------------- 856 // Field : PIO_SM0_EXECCTRL_STATUS_N 857 // Description : Comparison level for the MOV x, STATUS instruction 858 #define PIO_SM0_EXECCTRL_STATUS_N_RESET _u(0x0) 859 #define PIO_SM0_EXECCTRL_STATUS_N_BITS _u(0x0000000f) 860 #define PIO_SM0_EXECCTRL_STATUS_N_MSB _u(3) 861 #define PIO_SM0_EXECCTRL_STATUS_N_LSB _u(0) 862 #define PIO_SM0_EXECCTRL_STATUS_N_ACCESS "RW" 863 // ============================================================================= 864 // Register : PIO_SM0_SHIFTCTRL 865 // Description : Control behaviour of the input/output shift registers for state 866 // machine 0 867 #define PIO_SM0_SHIFTCTRL_OFFSET _u(0x000000d0) 868 #define PIO_SM0_SHIFTCTRL_BITS _u(0xffff0000) 869 #define PIO_SM0_SHIFTCTRL_RESET _u(0x000c0000) 870 // ----------------------------------------------------------------------------- 871 // Field : PIO_SM0_SHIFTCTRL_FJOIN_RX 872 // Description : When 1, RX FIFO steals the TX FIFO's storage, and becomes twice 873 // as deep. 874 // TX FIFO is disabled as a result (always reads as both full and 875 // empty). 876 // FIFOs are flushed when this bit is changed. 877 #define PIO_SM0_SHIFTCTRL_FJOIN_RX_RESET _u(0x0) 878 #define PIO_SM0_SHIFTCTRL_FJOIN_RX_BITS _u(0x80000000) 879 #define PIO_SM0_SHIFTCTRL_FJOIN_RX_MSB _u(31) 880 #define PIO_SM0_SHIFTCTRL_FJOIN_RX_LSB _u(31) 881 #define PIO_SM0_SHIFTCTRL_FJOIN_RX_ACCESS "RW" 882 // ----------------------------------------------------------------------------- 883 // Field : PIO_SM0_SHIFTCTRL_FJOIN_TX 884 // Description : When 1, TX FIFO steals the RX FIFO's storage, and becomes twice 885 // as deep. 886 // RX FIFO is disabled as a result (always reads as both full and 887 // empty). 888 // FIFOs are flushed when this bit is changed. 889 #define PIO_SM0_SHIFTCTRL_FJOIN_TX_RESET _u(0x0) 890 #define PIO_SM0_SHIFTCTRL_FJOIN_TX_BITS _u(0x40000000) 891 #define PIO_SM0_SHIFTCTRL_FJOIN_TX_MSB _u(30) 892 #define PIO_SM0_SHIFTCTRL_FJOIN_TX_LSB _u(30) 893 #define PIO_SM0_SHIFTCTRL_FJOIN_TX_ACCESS "RW" 894 // ----------------------------------------------------------------------------- 895 // Field : PIO_SM0_SHIFTCTRL_PULL_THRESH 896 // Description : Number of bits shifted out of OSR before autopull, or 897 // conditional pull (PULL IFEMPTY), will take place. 898 // Write 0 for value of 32. 899 #define PIO_SM0_SHIFTCTRL_PULL_THRESH_RESET _u(0x00) 900 #define PIO_SM0_SHIFTCTRL_PULL_THRESH_BITS _u(0x3e000000) 901 #define PIO_SM0_SHIFTCTRL_PULL_THRESH_MSB _u(29) 902 #define PIO_SM0_SHIFTCTRL_PULL_THRESH_LSB _u(25) 903 #define PIO_SM0_SHIFTCTRL_PULL_THRESH_ACCESS "RW" 904 // ----------------------------------------------------------------------------- 905 // Field : PIO_SM0_SHIFTCTRL_PUSH_THRESH 906 // Description : Number of bits shifted into ISR before autopush, or conditional 907 // push (PUSH IFFULL), will take place. 908 // Write 0 for value of 32. 909 #define PIO_SM0_SHIFTCTRL_PUSH_THRESH_RESET _u(0x00) 910 #define PIO_SM0_SHIFTCTRL_PUSH_THRESH_BITS _u(0x01f00000) 911 #define PIO_SM0_SHIFTCTRL_PUSH_THRESH_MSB _u(24) 912 #define PIO_SM0_SHIFTCTRL_PUSH_THRESH_LSB _u(20) 913 #define PIO_SM0_SHIFTCTRL_PUSH_THRESH_ACCESS "RW" 914 // ----------------------------------------------------------------------------- 915 // Field : PIO_SM0_SHIFTCTRL_OUT_SHIFTDIR 916 // Description : 1 = shift out of output shift register to right. 0 = to left. 917 #define PIO_SM0_SHIFTCTRL_OUT_SHIFTDIR_RESET _u(0x1) 918 #define PIO_SM0_SHIFTCTRL_OUT_SHIFTDIR_BITS _u(0x00080000) 919 #define PIO_SM0_SHIFTCTRL_OUT_SHIFTDIR_MSB _u(19) 920 #define PIO_SM0_SHIFTCTRL_OUT_SHIFTDIR_LSB _u(19) 921 #define PIO_SM0_SHIFTCTRL_OUT_SHIFTDIR_ACCESS "RW" 922 // ----------------------------------------------------------------------------- 923 // Field : PIO_SM0_SHIFTCTRL_IN_SHIFTDIR 924 // Description : 1 = shift input shift register to right (data enters from 925 // left). 0 = to left. 926 #define PIO_SM0_SHIFTCTRL_IN_SHIFTDIR_RESET _u(0x1) 927 #define PIO_SM0_SHIFTCTRL_IN_SHIFTDIR_BITS _u(0x00040000) 928 #define PIO_SM0_SHIFTCTRL_IN_SHIFTDIR_MSB _u(18) 929 #define PIO_SM0_SHIFTCTRL_IN_SHIFTDIR_LSB _u(18) 930 #define PIO_SM0_SHIFTCTRL_IN_SHIFTDIR_ACCESS "RW" 931 // ----------------------------------------------------------------------------- 932 // Field : PIO_SM0_SHIFTCTRL_AUTOPULL 933 // Description : Pull automatically when the output shift register is emptied, 934 // i.e. on or following an OUT instruction which causes the output 935 // shift counter to reach or exceed PULL_THRESH. 936 #define PIO_SM0_SHIFTCTRL_AUTOPULL_RESET _u(0x0) 937 #define PIO_SM0_SHIFTCTRL_AUTOPULL_BITS _u(0x00020000) 938 #define PIO_SM0_SHIFTCTRL_AUTOPULL_MSB _u(17) 939 #define PIO_SM0_SHIFTCTRL_AUTOPULL_LSB _u(17) 940 #define PIO_SM0_SHIFTCTRL_AUTOPULL_ACCESS "RW" 941 // ----------------------------------------------------------------------------- 942 // Field : PIO_SM0_SHIFTCTRL_AUTOPUSH 943 // Description : Push automatically when the input shift register is filled, 944 // i.e. on an IN instruction which causes the input shift counter 945 // to reach or exceed PUSH_THRESH. 946 #define PIO_SM0_SHIFTCTRL_AUTOPUSH_RESET _u(0x0) 947 #define PIO_SM0_SHIFTCTRL_AUTOPUSH_BITS _u(0x00010000) 948 #define PIO_SM0_SHIFTCTRL_AUTOPUSH_MSB _u(16) 949 #define PIO_SM0_SHIFTCTRL_AUTOPUSH_LSB _u(16) 950 #define PIO_SM0_SHIFTCTRL_AUTOPUSH_ACCESS "RW" 951 // ============================================================================= 952 // Register : PIO_SM0_ADDR 953 // Description : Current instruction address of state machine 0 954 #define PIO_SM0_ADDR_OFFSET _u(0x000000d4) 955 #define PIO_SM0_ADDR_BITS _u(0x0000001f) 956 #define PIO_SM0_ADDR_RESET _u(0x00000000) 957 #define PIO_SM0_ADDR_MSB _u(4) 958 #define PIO_SM0_ADDR_LSB _u(0) 959 #define PIO_SM0_ADDR_ACCESS "RO" 960 // ============================================================================= 961 // Register : PIO_SM0_INSTR 962 // Description : Read to see the instruction currently addressed by state 963 // machine 0's program counter 964 // Write to execute an instruction immediately (including jumps) 965 // and then resume execution. 966 #define PIO_SM0_INSTR_OFFSET _u(0x000000d8) 967 #define PIO_SM0_INSTR_BITS _u(0x0000ffff) 968 #define PIO_SM0_INSTR_RESET "-" 969 #define PIO_SM0_INSTR_MSB _u(15) 970 #define PIO_SM0_INSTR_LSB _u(0) 971 #define PIO_SM0_INSTR_ACCESS "RW" 972 // ============================================================================= 973 // Register : PIO_SM0_PINCTRL 974 // Description : State machine pin control 975 #define PIO_SM0_PINCTRL_OFFSET _u(0x000000dc) 976 #define PIO_SM0_PINCTRL_BITS _u(0xffffffff) 977 #define PIO_SM0_PINCTRL_RESET _u(0x14000000) 978 // ----------------------------------------------------------------------------- 979 // Field : PIO_SM0_PINCTRL_SIDESET_COUNT 980 // Description : The number of MSBs of the Delay/Side-set instruction field 981 // which are used for side-set. Inclusive of the enable bit, if 982 // present. Minimum of 0 (all delay bits, no side-set) and maximum 983 // of 5 (all side-set, no delay). 984 #define PIO_SM0_PINCTRL_SIDESET_COUNT_RESET _u(0x0) 985 #define PIO_SM0_PINCTRL_SIDESET_COUNT_BITS _u(0xe0000000) 986 #define PIO_SM0_PINCTRL_SIDESET_COUNT_MSB _u(31) 987 #define PIO_SM0_PINCTRL_SIDESET_COUNT_LSB _u(29) 988 #define PIO_SM0_PINCTRL_SIDESET_COUNT_ACCESS "RW" 989 // ----------------------------------------------------------------------------- 990 // Field : PIO_SM0_PINCTRL_SET_COUNT 991 // Description : The number of pins asserted by a SET. In the range 0 to 5 992 // inclusive. 993 #define PIO_SM0_PINCTRL_SET_COUNT_RESET _u(0x5) 994 #define PIO_SM0_PINCTRL_SET_COUNT_BITS _u(0x1c000000) 995 #define PIO_SM0_PINCTRL_SET_COUNT_MSB _u(28) 996 #define PIO_SM0_PINCTRL_SET_COUNT_LSB _u(26) 997 #define PIO_SM0_PINCTRL_SET_COUNT_ACCESS "RW" 998 // ----------------------------------------------------------------------------- 999 // Field : PIO_SM0_PINCTRL_OUT_COUNT 1000 // Description : The number of pins asserted by an OUT PINS, OUT PINDIRS or MOV 1001 // PINS instruction. In the range 0 to 32 inclusive. 1002 #define PIO_SM0_PINCTRL_OUT_COUNT_RESET _u(0x00) 1003 #define PIO_SM0_PINCTRL_OUT_COUNT_BITS _u(0x03f00000) 1004 #define PIO_SM0_PINCTRL_OUT_COUNT_MSB _u(25) 1005 #define PIO_SM0_PINCTRL_OUT_COUNT_LSB _u(20) 1006 #define PIO_SM0_PINCTRL_OUT_COUNT_ACCESS "RW" 1007 // ----------------------------------------------------------------------------- 1008 // Field : PIO_SM0_PINCTRL_IN_BASE 1009 // Description : The pin which is mapped to the least-significant bit of a state 1010 // machine's IN data bus. Higher-numbered pins are mapped to 1011 // consecutively more-significant data bits, with a modulo of 32 1012 // applied to pin number. 1013 #define PIO_SM0_PINCTRL_IN_BASE_RESET _u(0x00) 1014 #define PIO_SM0_PINCTRL_IN_BASE_BITS _u(0x000f8000) 1015 #define PIO_SM0_PINCTRL_IN_BASE_MSB _u(19) 1016 #define PIO_SM0_PINCTRL_IN_BASE_LSB _u(15) 1017 #define PIO_SM0_PINCTRL_IN_BASE_ACCESS "RW" 1018 // ----------------------------------------------------------------------------- 1019 // Field : PIO_SM0_PINCTRL_SIDESET_BASE 1020 // Description : The lowest-numbered pin that will be affected by a side-set 1021 // operation. The MSBs of an instruction's side-set/delay field 1022 // (up to 5, determined by SIDESET_COUNT) are used for side-set 1023 // data, with the remaining LSBs used for delay. The least- 1024 // significant bit of the side-set portion is the bit written to 1025 // this pin, with more-significant bits written to higher-numbered 1026 // pins. 1027 #define PIO_SM0_PINCTRL_SIDESET_BASE_RESET _u(0x00) 1028 #define PIO_SM0_PINCTRL_SIDESET_BASE_BITS _u(0x00007c00) 1029 #define PIO_SM0_PINCTRL_SIDESET_BASE_MSB _u(14) 1030 #define PIO_SM0_PINCTRL_SIDESET_BASE_LSB _u(10) 1031 #define PIO_SM0_PINCTRL_SIDESET_BASE_ACCESS "RW" 1032 // ----------------------------------------------------------------------------- 1033 // Field : PIO_SM0_PINCTRL_SET_BASE 1034 // Description : The lowest-numbered pin that will be affected by a SET PINS or 1035 // SET PINDIRS instruction. The data written to this pin is the 1036 // least-significant bit of the SET data. 1037 #define PIO_SM0_PINCTRL_SET_BASE_RESET _u(0x00) 1038 #define PIO_SM0_PINCTRL_SET_BASE_BITS _u(0x000003e0) 1039 #define PIO_SM0_PINCTRL_SET_BASE_MSB _u(9) 1040 #define PIO_SM0_PINCTRL_SET_BASE_LSB _u(5) 1041 #define PIO_SM0_PINCTRL_SET_BASE_ACCESS "RW" 1042 // ----------------------------------------------------------------------------- 1043 // Field : PIO_SM0_PINCTRL_OUT_BASE 1044 // Description : The lowest-numbered pin that will be affected by an OUT PINS, 1045 // OUT PINDIRS or MOV PINS instruction. The data written to this 1046 // pin will always be the least-significant bit of the OUT or MOV 1047 // data. 1048 #define PIO_SM0_PINCTRL_OUT_BASE_RESET _u(0x00) 1049 #define PIO_SM0_PINCTRL_OUT_BASE_BITS _u(0x0000001f) 1050 #define PIO_SM0_PINCTRL_OUT_BASE_MSB _u(4) 1051 #define PIO_SM0_PINCTRL_OUT_BASE_LSB _u(0) 1052 #define PIO_SM0_PINCTRL_OUT_BASE_ACCESS "RW" 1053 // ============================================================================= 1054 // Register : PIO_SM1_CLKDIV 1055 // Description : Clock divisor register for state machine 1 1056 // Frequency = clock freq / (CLKDIV_INT + CLKDIV_FRAC / 256) 1057 #define PIO_SM1_CLKDIV_OFFSET _u(0x000000e0) 1058 #define PIO_SM1_CLKDIV_BITS _u(0xffffff00) 1059 #define PIO_SM1_CLKDIV_RESET _u(0x00010000) 1060 // ----------------------------------------------------------------------------- 1061 // Field : PIO_SM1_CLKDIV_INT 1062 // Description : Effective frequency is sysclk/(int + frac/256). 1063 // Value of 0 is interpreted as 65536. If INT is 0, FRAC must also 1064 // be 0. 1065 #define PIO_SM1_CLKDIV_INT_RESET _u(0x0001) 1066 #define PIO_SM1_CLKDIV_INT_BITS _u(0xffff0000) 1067 #define PIO_SM1_CLKDIV_INT_MSB _u(31) 1068 #define PIO_SM1_CLKDIV_INT_LSB _u(16) 1069 #define PIO_SM1_CLKDIV_INT_ACCESS "RW" 1070 // ----------------------------------------------------------------------------- 1071 // Field : PIO_SM1_CLKDIV_FRAC 1072 // Description : Fractional part of clock divisor 1073 #define PIO_SM1_CLKDIV_FRAC_RESET _u(0x00) 1074 #define PIO_SM1_CLKDIV_FRAC_BITS _u(0x0000ff00) 1075 #define PIO_SM1_CLKDIV_FRAC_MSB _u(15) 1076 #define PIO_SM1_CLKDIV_FRAC_LSB _u(8) 1077 #define PIO_SM1_CLKDIV_FRAC_ACCESS "RW" 1078 // ============================================================================= 1079 // Register : PIO_SM1_EXECCTRL 1080 // Description : Execution/behavioural settings for state machine 1 1081 #define PIO_SM1_EXECCTRL_OFFSET _u(0x000000e4) 1082 #define PIO_SM1_EXECCTRL_BITS _u(0xffffff9f) 1083 #define PIO_SM1_EXECCTRL_RESET _u(0x0001f000) 1084 // ----------------------------------------------------------------------------- 1085 // Field : PIO_SM1_EXECCTRL_EXEC_STALLED 1086 // Description : If 1, an instruction written to SMx_INSTR is stalled, and 1087 // latched by the state machine. Will clear to 0 once this 1088 // instruction completes. 1089 #define PIO_SM1_EXECCTRL_EXEC_STALLED_RESET _u(0x0) 1090 #define PIO_SM1_EXECCTRL_EXEC_STALLED_BITS _u(0x80000000) 1091 #define PIO_SM1_EXECCTRL_EXEC_STALLED_MSB _u(31) 1092 #define PIO_SM1_EXECCTRL_EXEC_STALLED_LSB _u(31) 1093 #define PIO_SM1_EXECCTRL_EXEC_STALLED_ACCESS "RO" 1094 // ----------------------------------------------------------------------------- 1095 // Field : PIO_SM1_EXECCTRL_SIDE_EN 1096 // Description : If 1, the MSB of the Delay/Side-set instruction field is used 1097 // as side-set enable, rather than a side-set data bit. This 1098 // allows instructions to perform side-set optionally, rather than 1099 // on every instruction, but the maximum possible side-set width 1100 // is reduced from 5 to 4. Note that the value of 1101 // PINCTRL_SIDESET_COUNT is inclusive of this enable bit. 1102 #define PIO_SM1_EXECCTRL_SIDE_EN_RESET _u(0x0) 1103 #define PIO_SM1_EXECCTRL_SIDE_EN_BITS _u(0x40000000) 1104 #define PIO_SM1_EXECCTRL_SIDE_EN_MSB _u(30) 1105 #define PIO_SM1_EXECCTRL_SIDE_EN_LSB _u(30) 1106 #define PIO_SM1_EXECCTRL_SIDE_EN_ACCESS "RW" 1107 // ----------------------------------------------------------------------------- 1108 // Field : PIO_SM1_EXECCTRL_SIDE_PINDIR 1109 // Description : If 1, side-set data is asserted to pin directions, instead of 1110 // pin values 1111 #define PIO_SM1_EXECCTRL_SIDE_PINDIR_RESET _u(0x0) 1112 #define PIO_SM1_EXECCTRL_SIDE_PINDIR_BITS _u(0x20000000) 1113 #define PIO_SM1_EXECCTRL_SIDE_PINDIR_MSB _u(29) 1114 #define PIO_SM1_EXECCTRL_SIDE_PINDIR_LSB _u(29) 1115 #define PIO_SM1_EXECCTRL_SIDE_PINDIR_ACCESS "RW" 1116 // ----------------------------------------------------------------------------- 1117 // Field : PIO_SM1_EXECCTRL_JMP_PIN 1118 // Description : The GPIO number to use as condition for JMP PIN. Unaffected by 1119 // input mapping. 1120 #define PIO_SM1_EXECCTRL_JMP_PIN_RESET _u(0x00) 1121 #define PIO_SM1_EXECCTRL_JMP_PIN_BITS _u(0x1f000000) 1122 #define PIO_SM1_EXECCTRL_JMP_PIN_MSB _u(28) 1123 #define PIO_SM1_EXECCTRL_JMP_PIN_LSB _u(24) 1124 #define PIO_SM1_EXECCTRL_JMP_PIN_ACCESS "RW" 1125 // ----------------------------------------------------------------------------- 1126 // Field : PIO_SM1_EXECCTRL_OUT_EN_SEL 1127 // Description : Which data bit to use for inline OUT enable 1128 #define PIO_SM1_EXECCTRL_OUT_EN_SEL_RESET _u(0x00) 1129 #define PIO_SM1_EXECCTRL_OUT_EN_SEL_BITS _u(0x00f80000) 1130 #define PIO_SM1_EXECCTRL_OUT_EN_SEL_MSB _u(23) 1131 #define PIO_SM1_EXECCTRL_OUT_EN_SEL_LSB _u(19) 1132 #define PIO_SM1_EXECCTRL_OUT_EN_SEL_ACCESS "RW" 1133 // ----------------------------------------------------------------------------- 1134 // Field : PIO_SM1_EXECCTRL_INLINE_OUT_EN 1135 // Description : If 1, use a bit of OUT data as an auxiliary write enable 1136 // When used in conjunction with OUT_STICKY, writes with an enable 1137 // of 0 will 1138 // deassert the latest pin write. This can create useful 1139 // masking/override behaviour 1140 // due to the priority ordering of state machine pin writes (SM0 < 1141 // SM1 < ...) 1142 #define PIO_SM1_EXECCTRL_INLINE_OUT_EN_RESET _u(0x0) 1143 #define PIO_SM1_EXECCTRL_INLINE_OUT_EN_BITS _u(0x00040000) 1144 #define PIO_SM1_EXECCTRL_INLINE_OUT_EN_MSB _u(18) 1145 #define PIO_SM1_EXECCTRL_INLINE_OUT_EN_LSB _u(18) 1146 #define PIO_SM1_EXECCTRL_INLINE_OUT_EN_ACCESS "RW" 1147 // ----------------------------------------------------------------------------- 1148 // Field : PIO_SM1_EXECCTRL_OUT_STICKY 1149 // Description : Continuously assert the most recent OUT/SET to the pins 1150 #define PIO_SM1_EXECCTRL_OUT_STICKY_RESET _u(0x0) 1151 #define PIO_SM1_EXECCTRL_OUT_STICKY_BITS _u(0x00020000) 1152 #define PIO_SM1_EXECCTRL_OUT_STICKY_MSB _u(17) 1153 #define PIO_SM1_EXECCTRL_OUT_STICKY_LSB _u(17) 1154 #define PIO_SM1_EXECCTRL_OUT_STICKY_ACCESS "RW" 1155 // ----------------------------------------------------------------------------- 1156 // Field : PIO_SM1_EXECCTRL_WRAP_TOP 1157 // Description : After reaching this address, execution is wrapped to 1158 // wrap_bottom. 1159 // If the instruction is a jump, and the jump condition is true, 1160 // the jump takes priority. 1161 #define PIO_SM1_EXECCTRL_WRAP_TOP_RESET _u(0x1f) 1162 #define PIO_SM1_EXECCTRL_WRAP_TOP_BITS _u(0x0001f000) 1163 #define PIO_SM1_EXECCTRL_WRAP_TOP_MSB _u(16) 1164 #define PIO_SM1_EXECCTRL_WRAP_TOP_LSB _u(12) 1165 #define PIO_SM1_EXECCTRL_WRAP_TOP_ACCESS "RW" 1166 // ----------------------------------------------------------------------------- 1167 // Field : PIO_SM1_EXECCTRL_WRAP_BOTTOM 1168 // Description : After reaching wrap_top, execution is wrapped to this address. 1169 #define PIO_SM1_EXECCTRL_WRAP_BOTTOM_RESET _u(0x00) 1170 #define PIO_SM1_EXECCTRL_WRAP_BOTTOM_BITS _u(0x00000f80) 1171 #define PIO_SM1_EXECCTRL_WRAP_BOTTOM_MSB _u(11) 1172 #define PIO_SM1_EXECCTRL_WRAP_BOTTOM_LSB _u(7) 1173 #define PIO_SM1_EXECCTRL_WRAP_BOTTOM_ACCESS "RW" 1174 // ----------------------------------------------------------------------------- 1175 // Field : PIO_SM1_EXECCTRL_STATUS_SEL 1176 // Description : Comparison used for the MOV x, STATUS instruction. 1177 // 0x0 -> All-ones if TX FIFO level < N, otherwise all-zeroes 1178 // 0x1 -> All-ones if RX FIFO level < N, otherwise all-zeroes 1179 #define PIO_SM1_EXECCTRL_STATUS_SEL_RESET _u(0x0) 1180 #define PIO_SM1_EXECCTRL_STATUS_SEL_BITS _u(0x00000010) 1181 #define PIO_SM1_EXECCTRL_STATUS_SEL_MSB _u(4) 1182 #define PIO_SM1_EXECCTRL_STATUS_SEL_LSB _u(4) 1183 #define PIO_SM1_EXECCTRL_STATUS_SEL_ACCESS "RW" 1184 #define PIO_SM1_EXECCTRL_STATUS_SEL_VALUE_TXLEVEL _u(0x0) 1185 #define PIO_SM1_EXECCTRL_STATUS_SEL_VALUE_RXLEVEL _u(0x1) 1186 // ----------------------------------------------------------------------------- 1187 // Field : PIO_SM1_EXECCTRL_STATUS_N 1188 // Description : Comparison level for the MOV x, STATUS instruction 1189 #define PIO_SM1_EXECCTRL_STATUS_N_RESET _u(0x0) 1190 #define PIO_SM1_EXECCTRL_STATUS_N_BITS _u(0x0000000f) 1191 #define PIO_SM1_EXECCTRL_STATUS_N_MSB _u(3) 1192 #define PIO_SM1_EXECCTRL_STATUS_N_LSB _u(0) 1193 #define PIO_SM1_EXECCTRL_STATUS_N_ACCESS "RW" 1194 // ============================================================================= 1195 // Register : PIO_SM1_SHIFTCTRL 1196 // Description : Control behaviour of the input/output shift registers for state 1197 // machine 1 1198 #define PIO_SM1_SHIFTCTRL_OFFSET _u(0x000000e8) 1199 #define PIO_SM1_SHIFTCTRL_BITS _u(0xffff0000) 1200 #define PIO_SM1_SHIFTCTRL_RESET _u(0x000c0000) 1201 // ----------------------------------------------------------------------------- 1202 // Field : PIO_SM1_SHIFTCTRL_FJOIN_RX 1203 // Description : When 1, RX FIFO steals the TX FIFO's storage, and becomes twice 1204 // as deep. 1205 // TX FIFO is disabled as a result (always reads as both full and 1206 // empty). 1207 // FIFOs are flushed when this bit is changed. 1208 #define PIO_SM1_SHIFTCTRL_FJOIN_RX_RESET _u(0x0) 1209 #define PIO_SM1_SHIFTCTRL_FJOIN_RX_BITS _u(0x80000000) 1210 #define PIO_SM1_SHIFTCTRL_FJOIN_RX_MSB _u(31) 1211 #define PIO_SM1_SHIFTCTRL_FJOIN_RX_LSB _u(31) 1212 #define PIO_SM1_SHIFTCTRL_FJOIN_RX_ACCESS "RW" 1213 // ----------------------------------------------------------------------------- 1214 // Field : PIO_SM1_SHIFTCTRL_FJOIN_TX 1215 // Description : When 1, TX FIFO steals the RX FIFO's storage, and becomes twice 1216 // as deep. 1217 // RX FIFO is disabled as a result (always reads as both full and 1218 // empty). 1219 // FIFOs are flushed when this bit is changed. 1220 #define PIO_SM1_SHIFTCTRL_FJOIN_TX_RESET _u(0x0) 1221 #define PIO_SM1_SHIFTCTRL_FJOIN_TX_BITS _u(0x40000000) 1222 #define PIO_SM1_SHIFTCTRL_FJOIN_TX_MSB _u(30) 1223 #define PIO_SM1_SHIFTCTRL_FJOIN_TX_LSB _u(30) 1224 #define PIO_SM1_SHIFTCTRL_FJOIN_TX_ACCESS "RW" 1225 // ----------------------------------------------------------------------------- 1226 // Field : PIO_SM1_SHIFTCTRL_PULL_THRESH 1227 // Description : Number of bits shifted out of OSR before autopull, or 1228 // conditional pull (PULL IFEMPTY), will take place. 1229 // Write 0 for value of 32. 1230 #define PIO_SM1_SHIFTCTRL_PULL_THRESH_RESET _u(0x00) 1231 #define PIO_SM1_SHIFTCTRL_PULL_THRESH_BITS _u(0x3e000000) 1232 #define PIO_SM1_SHIFTCTRL_PULL_THRESH_MSB _u(29) 1233 #define PIO_SM1_SHIFTCTRL_PULL_THRESH_LSB _u(25) 1234 #define PIO_SM1_SHIFTCTRL_PULL_THRESH_ACCESS "RW" 1235 // ----------------------------------------------------------------------------- 1236 // Field : PIO_SM1_SHIFTCTRL_PUSH_THRESH 1237 // Description : Number of bits shifted into ISR before autopush, or conditional 1238 // push (PUSH IFFULL), will take place. 1239 // Write 0 for value of 32. 1240 #define PIO_SM1_SHIFTCTRL_PUSH_THRESH_RESET _u(0x00) 1241 #define PIO_SM1_SHIFTCTRL_PUSH_THRESH_BITS _u(0x01f00000) 1242 #define PIO_SM1_SHIFTCTRL_PUSH_THRESH_MSB _u(24) 1243 #define PIO_SM1_SHIFTCTRL_PUSH_THRESH_LSB _u(20) 1244 #define PIO_SM1_SHIFTCTRL_PUSH_THRESH_ACCESS "RW" 1245 // ----------------------------------------------------------------------------- 1246 // Field : PIO_SM1_SHIFTCTRL_OUT_SHIFTDIR 1247 // Description : 1 = shift out of output shift register to right. 0 = to left. 1248 #define PIO_SM1_SHIFTCTRL_OUT_SHIFTDIR_RESET _u(0x1) 1249 #define PIO_SM1_SHIFTCTRL_OUT_SHIFTDIR_BITS _u(0x00080000) 1250 #define PIO_SM1_SHIFTCTRL_OUT_SHIFTDIR_MSB _u(19) 1251 #define PIO_SM1_SHIFTCTRL_OUT_SHIFTDIR_LSB _u(19) 1252 #define PIO_SM1_SHIFTCTRL_OUT_SHIFTDIR_ACCESS "RW" 1253 // ----------------------------------------------------------------------------- 1254 // Field : PIO_SM1_SHIFTCTRL_IN_SHIFTDIR 1255 // Description : 1 = shift input shift register to right (data enters from 1256 // left). 0 = to left. 1257 #define PIO_SM1_SHIFTCTRL_IN_SHIFTDIR_RESET _u(0x1) 1258 #define PIO_SM1_SHIFTCTRL_IN_SHIFTDIR_BITS _u(0x00040000) 1259 #define PIO_SM1_SHIFTCTRL_IN_SHIFTDIR_MSB _u(18) 1260 #define PIO_SM1_SHIFTCTRL_IN_SHIFTDIR_LSB _u(18) 1261 #define PIO_SM1_SHIFTCTRL_IN_SHIFTDIR_ACCESS "RW" 1262 // ----------------------------------------------------------------------------- 1263 // Field : PIO_SM1_SHIFTCTRL_AUTOPULL 1264 // Description : Pull automatically when the output shift register is emptied, 1265 // i.e. on or following an OUT instruction which causes the output 1266 // shift counter to reach or exceed PULL_THRESH. 1267 #define PIO_SM1_SHIFTCTRL_AUTOPULL_RESET _u(0x0) 1268 #define PIO_SM1_SHIFTCTRL_AUTOPULL_BITS _u(0x00020000) 1269 #define PIO_SM1_SHIFTCTRL_AUTOPULL_MSB _u(17) 1270 #define PIO_SM1_SHIFTCTRL_AUTOPULL_LSB _u(17) 1271 #define PIO_SM1_SHIFTCTRL_AUTOPULL_ACCESS "RW" 1272 // ----------------------------------------------------------------------------- 1273 // Field : PIO_SM1_SHIFTCTRL_AUTOPUSH 1274 // Description : Push automatically when the input shift register is filled, 1275 // i.e. on an IN instruction which causes the input shift counter 1276 // to reach or exceed PUSH_THRESH. 1277 #define PIO_SM1_SHIFTCTRL_AUTOPUSH_RESET _u(0x0) 1278 #define PIO_SM1_SHIFTCTRL_AUTOPUSH_BITS _u(0x00010000) 1279 #define PIO_SM1_SHIFTCTRL_AUTOPUSH_MSB _u(16) 1280 #define PIO_SM1_SHIFTCTRL_AUTOPUSH_LSB _u(16) 1281 #define PIO_SM1_SHIFTCTRL_AUTOPUSH_ACCESS "RW" 1282 // ============================================================================= 1283 // Register : PIO_SM1_ADDR 1284 // Description : Current instruction address of state machine 1 1285 #define PIO_SM1_ADDR_OFFSET _u(0x000000ec) 1286 #define PIO_SM1_ADDR_BITS _u(0x0000001f) 1287 #define PIO_SM1_ADDR_RESET _u(0x00000000) 1288 #define PIO_SM1_ADDR_MSB _u(4) 1289 #define PIO_SM1_ADDR_LSB _u(0) 1290 #define PIO_SM1_ADDR_ACCESS "RO" 1291 // ============================================================================= 1292 // Register : PIO_SM1_INSTR 1293 // Description : Read to see the instruction currently addressed by state 1294 // machine 1's program counter 1295 // Write to execute an instruction immediately (including jumps) 1296 // and then resume execution. 1297 #define PIO_SM1_INSTR_OFFSET _u(0x000000f0) 1298 #define PIO_SM1_INSTR_BITS _u(0x0000ffff) 1299 #define PIO_SM1_INSTR_RESET "-" 1300 #define PIO_SM1_INSTR_MSB _u(15) 1301 #define PIO_SM1_INSTR_LSB _u(0) 1302 #define PIO_SM1_INSTR_ACCESS "RW" 1303 // ============================================================================= 1304 // Register : PIO_SM1_PINCTRL 1305 // Description : State machine pin control 1306 #define PIO_SM1_PINCTRL_OFFSET _u(0x000000f4) 1307 #define PIO_SM1_PINCTRL_BITS _u(0xffffffff) 1308 #define PIO_SM1_PINCTRL_RESET _u(0x14000000) 1309 // ----------------------------------------------------------------------------- 1310 // Field : PIO_SM1_PINCTRL_SIDESET_COUNT 1311 // Description : The number of MSBs of the Delay/Side-set instruction field 1312 // which are used for side-set. Inclusive of the enable bit, if 1313 // present. Minimum of 0 (all delay bits, no side-set) and maximum 1314 // of 5 (all side-set, no delay). 1315 #define PIO_SM1_PINCTRL_SIDESET_COUNT_RESET _u(0x0) 1316 #define PIO_SM1_PINCTRL_SIDESET_COUNT_BITS _u(0xe0000000) 1317 #define PIO_SM1_PINCTRL_SIDESET_COUNT_MSB _u(31) 1318 #define PIO_SM1_PINCTRL_SIDESET_COUNT_LSB _u(29) 1319 #define PIO_SM1_PINCTRL_SIDESET_COUNT_ACCESS "RW" 1320 // ----------------------------------------------------------------------------- 1321 // Field : PIO_SM1_PINCTRL_SET_COUNT 1322 // Description : The number of pins asserted by a SET. In the range 0 to 5 1323 // inclusive. 1324 #define PIO_SM1_PINCTRL_SET_COUNT_RESET _u(0x5) 1325 #define PIO_SM1_PINCTRL_SET_COUNT_BITS _u(0x1c000000) 1326 #define PIO_SM1_PINCTRL_SET_COUNT_MSB _u(28) 1327 #define PIO_SM1_PINCTRL_SET_COUNT_LSB _u(26) 1328 #define PIO_SM1_PINCTRL_SET_COUNT_ACCESS "RW" 1329 // ----------------------------------------------------------------------------- 1330 // Field : PIO_SM1_PINCTRL_OUT_COUNT 1331 // Description : The number of pins asserted by an OUT PINS, OUT PINDIRS or MOV 1332 // PINS instruction. In the range 0 to 32 inclusive. 1333 #define PIO_SM1_PINCTRL_OUT_COUNT_RESET _u(0x00) 1334 #define PIO_SM1_PINCTRL_OUT_COUNT_BITS _u(0x03f00000) 1335 #define PIO_SM1_PINCTRL_OUT_COUNT_MSB _u(25) 1336 #define PIO_SM1_PINCTRL_OUT_COUNT_LSB _u(20) 1337 #define PIO_SM1_PINCTRL_OUT_COUNT_ACCESS "RW" 1338 // ----------------------------------------------------------------------------- 1339 // Field : PIO_SM1_PINCTRL_IN_BASE 1340 // Description : The pin which is mapped to the least-significant bit of a state 1341 // machine's IN data bus. Higher-numbered pins are mapped to 1342 // consecutively more-significant data bits, with a modulo of 32 1343 // applied to pin number. 1344 #define PIO_SM1_PINCTRL_IN_BASE_RESET _u(0x00) 1345 #define PIO_SM1_PINCTRL_IN_BASE_BITS _u(0x000f8000) 1346 #define PIO_SM1_PINCTRL_IN_BASE_MSB _u(19) 1347 #define PIO_SM1_PINCTRL_IN_BASE_LSB _u(15) 1348 #define PIO_SM1_PINCTRL_IN_BASE_ACCESS "RW" 1349 // ----------------------------------------------------------------------------- 1350 // Field : PIO_SM1_PINCTRL_SIDESET_BASE 1351 // Description : The lowest-numbered pin that will be affected by a side-set 1352 // operation. The MSBs of an instruction's side-set/delay field 1353 // (up to 5, determined by SIDESET_COUNT) are used for side-set 1354 // data, with the remaining LSBs used for delay. The least- 1355 // significant bit of the side-set portion is the bit written to 1356 // this pin, with more-significant bits written to higher-numbered 1357 // pins. 1358 #define PIO_SM1_PINCTRL_SIDESET_BASE_RESET _u(0x00) 1359 #define PIO_SM1_PINCTRL_SIDESET_BASE_BITS _u(0x00007c00) 1360 #define PIO_SM1_PINCTRL_SIDESET_BASE_MSB _u(14) 1361 #define PIO_SM1_PINCTRL_SIDESET_BASE_LSB _u(10) 1362 #define PIO_SM1_PINCTRL_SIDESET_BASE_ACCESS "RW" 1363 // ----------------------------------------------------------------------------- 1364 // Field : PIO_SM1_PINCTRL_SET_BASE 1365 // Description : The lowest-numbered pin that will be affected by a SET PINS or 1366 // SET PINDIRS instruction. The data written to this pin is the 1367 // least-significant bit of the SET data. 1368 #define PIO_SM1_PINCTRL_SET_BASE_RESET _u(0x00) 1369 #define PIO_SM1_PINCTRL_SET_BASE_BITS _u(0x000003e0) 1370 #define PIO_SM1_PINCTRL_SET_BASE_MSB _u(9) 1371 #define PIO_SM1_PINCTRL_SET_BASE_LSB _u(5) 1372 #define PIO_SM1_PINCTRL_SET_BASE_ACCESS "RW" 1373 // ----------------------------------------------------------------------------- 1374 // Field : PIO_SM1_PINCTRL_OUT_BASE 1375 // Description : The lowest-numbered pin that will be affected by an OUT PINS, 1376 // OUT PINDIRS or MOV PINS instruction. The data written to this 1377 // pin will always be the least-significant bit of the OUT or MOV 1378 // data. 1379 #define PIO_SM1_PINCTRL_OUT_BASE_RESET _u(0x00) 1380 #define PIO_SM1_PINCTRL_OUT_BASE_BITS _u(0x0000001f) 1381 #define PIO_SM1_PINCTRL_OUT_BASE_MSB _u(4) 1382 #define PIO_SM1_PINCTRL_OUT_BASE_LSB _u(0) 1383 #define PIO_SM1_PINCTRL_OUT_BASE_ACCESS "RW" 1384 // ============================================================================= 1385 // Register : PIO_SM2_CLKDIV 1386 // Description : Clock divisor register for state machine 2 1387 // Frequency = clock freq / (CLKDIV_INT + CLKDIV_FRAC / 256) 1388 #define PIO_SM2_CLKDIV_OFFSET _u(0x000000f8) 1389 #define PIO_SM2_CLKDIV_BITS _u(0xffffff00) 1390 #define PIO_SM2_CLKDIV_RESET _u(0x00010000) 1391 // ----------------------------------------------------------------------------- 1392 // Field : PIO_SM2_CLKDIV_INT 1393 // Description : Effective frequency is sysclk/(int + frac/256). 1394 // Value of 0 is interpreted as 65536. If INT is 0, FRAC must also 1395 // be 0. 1396 #define PIO_SM2_CLKDIV_INT_RESET _u(0x0001) 1397 #define PIO_SM2_CLKDIV_INT_BITS _u(0xffff0000) 1398 #define PIO_SM2_CLKDIV_INT_MSB _u(31) 1399 #define PIO_SM2_CLKDIV_INT_LSB _u(16) 1400 #define PIO_SM2_CLKDIV_INT_ACCESS "RW" 1401 // ----------------------------------------------------------------------------- 1402 // Field : PIO_SM2_CLKDIV_FRAC 1403 // Description : Fractional part of clock divisor 1404 #define PIO_SM2_CLKDIV_FRAC_RESET _u(0x00) 1405 #define PIO_SM2_CLKDIV_FRAC_BITS _u(0x0000ff00) 1406 #define PIO_SM2_CLKDIV_FRAC_MSB _u(15) 1407 #define PIO_SM2_CLKDIV_FRAC_LSB _u(8) 1408 #define PIO_SM2_CLKDIV_FRAC_ACCESS "RW" 1409 // ============================================================================= 1410 // Register : PIO_SM2_EXECCTRL 1411 // Description : Execution/behavioural settings for state machine 2 1412 #define PIO_SM2_EXECCTRL_OFFSET _u(0x000000fc) 1413 #define PIO_SM2_EXECCTRL_BITS _u(0xffffff9f) 1414 #define PIO_SM2_EXECCTRL_RESET _u(0x0001f000) 1415 // ----------------------------------------------------------------------------- 1416 // Field : PIO_SM2_EXECCTRL_EXEC_STALLED 1417 // Description : If 1, an instruction written to SMx_INSTR is stalled, and 1418 // latched by the state machine. Will clear to 0 once this 1419 // instruction completes. 1420 #define PIO_SM2_EXECCTRL_EXEC_STALLED_RESET _u(0x0) 1421 #define PIO_SM2_EXECCTRL_EXEC_STALLED_BITS _u(0x80000000) 1422 #define PIO_SM2_EXECCTRL_EXEC_STALLED_MSB _u(31) 1423 #define PIO_SM2_EXECCTRL_EXEC_STALLED_LSB _u(31) 1424 #define PIO_SM2_EXECCTRL_EXEC_STALLED_ACCESS "RO" 1425 // ----------------------------------------------------------------------------- 1426 // Field : PIO_SM2_EXECCTRL_SIDE_EN 1427 // Description : If 1, the MSB of the Delay/Side-set instruction field is used 1428 // as side-set enable, rather than a side-set data bit. This 1429 // allows instructions to perform side-set optionally, rather than 1430 // on every instruction, but the maximum possible side-set width 1431 // is reduced from 5 to 4. Note that the value of 1432 // PINCTRL_SIDESET_COUNT is inclusive of this enable bit. 1433 #define PIO_SM2_EXECCTRL_SIDE_EN_RESET _u(0x0) 1434 #define PIO_SM2_EXECCTRL_SIDE_EN_BITS _u(0x40000000) 1435 #define PIO_SM2_EXECCTRL_SIDE_EN_MSB _u(30) 1436 #define PIO_SM2_EXECCTRL_SIDE_EN_LSB _u(30) 1437 #define PIO_SM2_EXECCTRL_SIDE_EN_ACCESS "RW" 1438 // ----------------------------------------------------------------------------- 1439 // Field : PIO_SM2_EXECCTRL_SIDE_PINDIR 1440 // Description : If 1, side-set data is asserted to pin directions, instead of 1441 // pin values 1442 #define PIO_SM2_EXECCTRL_SIDE_PINDIR_RESET _u(0x0) 1443 #define PIO_SM2_EXECCTRL_SIDE_PINDIR_BITS _u(0x20000000) 1444 #define PIO_SM2_EXECCTRL_SIDE_PINDIR_MSB _u(29) 1445 #define PIO_SM2_EXECCTRL_SIDE_PINDIR_LSB _u(29) 1446 #define PIO_SM2_EXECCTRL_SIDE_PINDIR_ACCESS "RW" 1447 // ----------------------------------------------------------------------------- 1448 // Field : PIO_SM2_EXECCTRL_JMP_PIN 1449 // Description : The GPIO number to use as condition for JMP PIN. Unaffected by 1450 // input mapping. 1451 #define PIO_SM2_EXECCTRL_JMP_PIN_RESET _u(0x00) 1452 #define PIO_SM2_EXECCTRL_JMP_PIN_BITS _u(0x1f000000) 1453 #define PIO_SM2_EXECCTRL_JMP_PIN_MSB _u(28) 1454 #define PIO_SM2_EXECCTRL_JMP_PIN_LSB _u(24) 1455 #define PIO_SM2_EXECCTRL_JMP_PIN_ACCESS "RW" 1456 // ----------------------------------------------------------------------------- 1457 // Field : PIO_SM2_EXECCTRL_OUT_EN_SEL 1458 // Description : Which data bit to use for inline OUT enable 1459 #define PIO_SM2_EXECCTRL_OUT_EN_SEL_RESET _u(0x00) 1460 #define PIO_SM2_EXECCTRL_OUT_EN_SEL_BITS _u(0x00f80000) 1461 #define PIO_SM2_EXECCTRL_OUT_EN_SEL_MSB _u(23) 1462 #define PIO_SM2_EXECCTRL_OUT_EN_SEL_LSB _u(19) 1463 #define PIO_SM2_EXECCTRL_OUT_EN_SEL_ACCESS "RW" 1464 // ----------------------------------------------------------------------------- 1465 // Field : PIO_SM2_EXECCTRL_INLINE_OUT_EN 1466 // Description : If 1, use a bit of OUT data as an auxiliary write enable 1467 // When used in conjunction with OUT_STICKY, writes with an enable 1468 // of 0 will 1469 // deassert the latest pin write. This can create useful 1470 // masking/override behaviour 1471 // due to the priority ordering of state machine pin writes (SM0 < 1472 // SM1 < ...) 1473 #define PIO_SM2_EXECCTRL_INLINE_OUT_EN_RESET _u(0x0) 1474 #define PIO_SM2_EXECCTRL_INLINE_OUT_EN_BITS _u(0x00040000) 1475 #define PIO_SM2_EXECCTRL_INLINE_OUT_EN_MSB _u(18) 1476 #define PIO_SM2_EXECCTRL_INLINE_OUT_EN_LSB _u(18) 1477 #define PIO_SM2_EXECCTRL_INLINE_OUT_EN_ACCESS "RW" 1478 // ----------------------------------------------------------------------------- 1479 // Field : PIO_SM2_EXECCTRL_OUT_STICKY 1480 // Description : Continuously assert the most recent OUT/SET to the pins 1481 #define PIO_SM2_EXECCTRL_OUT_STICKY_RESET _u(0x0) 1482 #define PIO_SM2_EXECCTRL_OUT_STICKY_BITS _u(0x00020000) 1483 #define PIO_SM2_EXECCTRL_OUT_STICKY_MSB _u(17) 1484 #define PIO_SM2_EXECCTRL_OUT_STICKY_LSB _u(17) 1485 #define PIO_SM2_EXECCTRL_OUT_STICKY_ACCESS "RW" 1486 // ----------------------------------------------------------------------------- 1487 // Field : PIO_SM2_EXECCTRL_WRAP_TOP 1488 // Description : After reaching this address, execution is wrapped to 1489 // wrap_bottom. 1490 // If the instruction is a jump, and the jump condition is true, 1491 // the jump takes priority. 1492 #define PIO_SM2_EXECCTRL_WRAP_TOP_RESET _u(0x1f) 1493 #define PIO_SM2_EXECCTRL_WRAP_TOP_BITS _u(0x0001f000) 1494 #define PIO_SM2_EXECCTRL_WRAP_TOP_MSB _u(16) 1495 #define PIO_SM2_EXECCTRL_WRAP_TOP_LSB _u(12) 1496 #define PIO_SM2_EXECCTRL_WRAP_TOP_ACCESS "RW" 1497 // ----------------------------------------------------------------------------- 1498 // Field : PIO_SM2_EXECCTRL_WRAP_BOTTOM 1499 // Description : After reaching wrap_top, execution is wrapped to this address. 1500 #define PIO_SM2_EXECCTRL_WRAP_BOTTOM_RESET _u(0x00) 1501 #define PIO_SM2_EXECCTRL_WRAP_BOTTOM_BITS _u(0x00000f80) 1502 #define PIO_SM2_EXECCTRL_WRAP_BOTTOM_MSB _u(11) 1503 #define PIO_SM2_EXECCTRL_WRAP_BOTTOM_LSB _u(7) 1504 #define PIO_SM2_EXECCTRL_WRAP_BOTTOM_ACCESS "RW" 1505 // ----------------------------------------------------------------------------- 1506 // Field : PIO_SM2_EXECCTRL_STATUS_SEL 1507 // Description : Comparison used for the MOV x, STATUS instruction. 1508 // 0x0 -> All-ones if TX FIFO level < N, otherwise all-zeroes 1509 // 0x1 -> All-ones if RX FIFO level < N, otherwise all-zeroes 1510 #define PIO_SM2_EXECCTRL_STATUS_SEL_RESET _u(0x0) 1511 #define PIO_SM2_EXECCTRL_STATUS_SEL_BITS _u(0x00000010) 1512 #define PIO_SM2_EXECCTRL_STATUS_SEL_MSB _u(4) 1513 #define PIO_SM2_EXECCTRL_STATUS_SEL_LSB _u(4) 1514 #define PIO_SM2_EXECCTRL_STATUS_SEL_ACCESS "RW" 1515 #define PIO_SM2_EXECCTRL_STATUS_SEL_VALUE_TXLEVEL _u(0x0) 1516 #define PIO_SM2_EXECCTRL_STATUS_SEL_VALUE_RXLEVEL _u(0x1) 1517 // ----------------------------------------------------------------------------- 1518 // Field : PIO_SM2_EXECCTRL_STATUS_N 1519 // Description : Comparison level for the MOV x, STATUS instruction 1520 #define PIO_SM2_EXECCTRL_STATUS_N_RESET _u(0x0) 1521 #define PIO_SM2_EXECCTRL_STATUS_N_BITS _u(0x0000000f) 1522 #define PIO_SM2_EXECCTRL_STATUS_N_MSB _u(3) 1523 #define PIO_SM2_EXECCTRL_STATUS_N_LSB _u(0) 1524 #define PIO_SM2_EXECCTRL_STATUS_N_ACCESS "RW" 1525 // ============================================================================= 1526 // Register : PIO_SM2_SHIFTCTRL 1527 // Description : Control behaviour of the input/output shift registers for state 1528 // machine 2 1529 #define PIO_SM2_SHIFTCTRL_OFFSET _u(0x00000100) 1530 #define PIO_SM2_SHIFTCTRL_BITS _u(0xffff0000) 1531 #define PIO_SM2_SHIFTCTRL_RESET _u(0x000c0000) 1532 // ----------------------------------------------------------------------------- 1533 // Field : PIO_SM2_SHIFTCTRL_FJOIN_RX 1534 // Description : When 1, RX FIFO steals the TX FIFO's storage, and becomes twice 1535 // as deep. 1536 // TX FIFO is disabled as a result (always reads as both full and 1537 // empty). 1538 // FIFOs are flushed when this bit is changed. 1539 #define PIO_SM2_SHIFTCTRL_FJOIN_RX_RESET _u(0x0) 1540 #define PIO_SM2_SHIFTCTRL_FJOIN_RX_BITS _u(0x80000000) 1541 #define PIO_SM2_SHIFTCTRL_FJOIN_RX_MSB _u(31) 1542 #define PIO_SM2_SHIFTCTRL_FJOIN_RX_LSB _u(31) 1543 #define PIO_SM2_SHIFTCTRL_FJOIN_RX_ACCESS "RW" 1544 // ----------------------------------------------------------------------------- 1545 // Field : PIO_SM2_SHIFTCTRL_FJOIN_TX 1546 // Description : When 1, TX FIFO steals the RX FIFO's storage, and becomes twice 1547 // as deep. 1548 // RX FIFO is disabled as a result (always reads as both full and 1549 // empty). 1550 // FIFOs are flushed when this bit is changed. 1551 #define PIO_SM2_SHIFTCTRL_FJOIN_TX_RESET _u(0x0) 1552 #define PIO_SM2_SHIFTCTRL_FJOIN_TX_BITS _u(0x40000000) 1553 #define PIO_SM2_SHIFTCTRL_FJOIN_TX_MSB _u(30) 1554 #define PIO_SM2_SHIFTCTRL_FJOIN_TX_LSB _u(30) 1555 #define PIO_SM2_SHIFTCTRL_FJOIN_TX_ACCESS "RW" 1556 // ----------------------------------------------------------------------------- 1557 // Field : PIO_SM2_SHIFTCTRL_PULL_THRESH 1558 // Description : Number of bits shifted out of OSR before autopull, or 1559 // conditional pull (PULL IFEMPTY), will take place. 1560 // Write 0 for value of 32. 1561 #define PIO_SM2_SHIFTCTRL_PULL_THRESH_RESET _u(0x00) 1562 #define PIO_SM2_SHIFTCTRL_PULL_THRESH_BITS _u(0x3e000000) 1563 #define PIO_SM2_SHIFTCTRL_PULL_THRESH_MSB _u(29) 1564 #define PIO_SM2_SHIFTCTRL_PULL_THRESH_LSB _u(25) 1565 #define PIO_SM2_SHIFTCTRL_PULL_THRESH_ACCESS "RW" 1566 // ----------------------------------------------------------------------------- 1567 // Field : PIO_SM2_SHIFTCTRL_PUSH_THRESH 1568 // Description : Number of bits shifted into ISR before autopush, or conditional 1569 // push (PUSH IFFULL), will take place. 1570 // Write 0 for value of 32. 1571 #define PIO_SM2_SHIFTCTRL_PUSH_THRESH_RESET _u(0x00) 1572 #define PIO_SM2_SHIFTCTRL_PUSH_THRESH_BITS _u(0x01f00000) 1573 #define PIO_SM2_SHIFTCTRL_PUSH_THRESH_MSB _u(24) 1574 #define PIO_SM2_SHIFTCTRL_PUSH_THRESH_LSB _u(20) 1575 #define PIO_SM2_SHIFTCTRL_PUSH_THRESH_ACCESS "RW" 1576 // ----------------------------------------------------------------------------- 1577 // Field : PIO_SM2_SHIFTCTRL_OUT_SHIFTDIR 1578 // Description : 1 = shift out of output shift register to right. 0 = to left. 1579 #define PIO_SM2_SHIFTCTRL_OUT_SHIFTDIR_RESET _u(0x1) 1580 #define PIO_SM2_SHIFTCTRL_OUT_SHIFTDIR_BITS _u(0x00080000) 1581 #define PIO_SM2_SHIFTCTRL_OUT_SHIFTDIR_MSB _u(19) 1582 #define PIO_SM2_SHIFTCTRL_OUT_SHIFTDIR_LSB _u(19) 1583 #define PIO_SM2_SHIFTCTRL_OUT_SHIFTDIR_ACCESS "RW" 1584 // ----------------------------------------------------------------------------- 1585 // Field : PIO_SM2_SHIFTCTRL_IN_SHIFTDIR 1586 // Description : 1 = shift input shift register to right (data enters from 1587 // left). 0 = to left. 1588 #define PIO_SM2_SHIFTCTRL_IN_SHIFTDIR_RESET _u(0x1) 1589 #define PIO_SM2_SHIFTCTRL_IN_SHIFTDIR_BITS _u(0x00040000) 1590 #define PIO_SM2_SHIFTCTRL_IN_SHIFTDIR_MSB _u(18) 1591 #define PIO_SM2_SHIFTCTRL_IN_SHIFTDIR_LSB _u(18) 1592 #define PIO_SM2_SHIFTCTRL_IN_SHIFTDIR_ACCESS "RW" 1593 // ----------------------------------------------------------------------------- 1594 // Field : PIO_SM2_SHIFTCTRL_AUTOPULL 1595 // Description : Pull automatically when the output shift register is emptied, 1596 // i.e. on or following an OUT instruction which causes the output 1597 // shift counter to reach or exceed PULL_THRESH. 1598 #define PIO_SM2_SHIFTCTRL_AUTOPULL_RESET _u(0x0) 1599 #define PIO_SM2_SHIFTCTRL_AUTOPULL_BITS _u(0x00020000) 1600 #define PIO_SM2_SHIFTCTRL_AUTOPULL_MSB _u(17) 1601 #define PIO_SM2_SHIFTCTRL_AUTOPULL_LSB _u(17) 1602 #define PIO_SM2_SHIFTCTRL_AUTOPULL_ACCESS "RW" 1603 // ----------------------------------------------------------------------------- 1604 // Field : PIO_SM2_SHIFTCTRL_AUTOPUSH 1605 // Description : Push automatically when the input shift register is filled, 1606 // i.e. on an IN instruction which causes the input shift counter 1607 // to reach or exceed PUSH_THRESH. 1608 #define PIO_SM2_SHIFTCTRL_AUTOPUSH_RESET _u(0x0) 1609 #define PIO_SM2_SHIFTCTRL_AUTOPUSH_BITS _u(0x00010000) 1610 #define PIO_SM2_SHIFTCTRL_AUTOPUSH_MSB _u(16) 1611 #define PIO_SM2_SHIFTCTRL_AUTOPUSH_LSB _u(16) 1612 #define PIO_SM2_SHIFTCTRL_AUTOPUSH_ACCESS "RW" 1613 // ============================================================================= 1614 // Register : PIO_SM2_ADDR 1615 // Description : Current instruction address of state machine 2 1616 #define PIO_SM2_ADDR_OFFSET _u(0x00000104) 1617 #define PIO_SM2_ADDR_BITS _u(0x0000001f) 1618 #define PIO_SM2_ADDR_RESET _u(0x00000000) 1619 #define PIO_SM2_ADDR_MSB _u(4) 1620 #define PIO_SM2_ADDR_LSB _u(0) 1621 #define PIO_SM2_ADDR_ACCESS "RO" 1622 // ============================================================================= 1623 // Register : PIO_SM2_INSTR 1624 // Description : Read to see the instruction currently addressed by state 1625 // machine 2's program counter 1626 // Write to execute an instruction immediately (including jumps) 1627 // and then resume execution. 1628 #define PIO_SM2_INSTR_OFFSET _u(0x00000108) 1629 #define PIO_SM2_INSTR_BITS _u(0x0000ffff) 1630 #define PIO_SM2_INSTR_RESET "-" 1631 #define PIO_SM2_INSTR_MSB _u(15) 1632 #define PIO_SM2_INSTR_LSB _u(0) 1633 #define PIO_SM2_INSTR_ACCESS "RW" 1634 // ============================================================================= 1635 // Register : PIO_SM2_PINCTRL 1636 // Description : State machine pin control 1637 #define PIO_SM2_PINCTRL_OFFSET _u(0x0000010c) 1638 #define PIO_SM2_PINCTRL_BITS _u(0xffffffff) 1639 #define PIO_SM2_PINCTRL_RESET _u(0x14000000) 1640 // ----------------------------------------------------------------------------- 1641 // Field : PIO_SM2_PINCTRL_SIDESET_COUNT 1642 // Description : The number of MSBs of the Delay/Side-set instruction field 1643 // which are used for side-set. Inclusive of the enable bit, if 1644 // present. Minimum of 0 (all delay bits, no side-set) and maximum 1645 // of 5 (all side-set, no delay). 1646 #define PIO_SM2_PINCTRL_SIDESET_COUNT_RESET _u(0x0) 1647 #define PIO_SM2_PINCTRL_SIDESET_COUNT_BITS _u(0xe0000000) 1648 #define PIO_SM2_PINCTRL_SIDESET_COUNT_MSB _u(31) 1649 #define PIO_SM2_PINCTRL_SIDESET_COUNT_LSB _u(29) 1650 #define PIO_SM2_PINCTRL_SIDESET_COUNT_ACCESS "RW" 1651 // ----------------------------------------------------------------------------- 1652 // Field : PIO_SM2_PINCTRL_SET_COUNT 1653 // Description : The number of pins asserted by a SET. In the range 0 to 5 1654 // inclusive. 1655 #define PIO_SM2_PINCTRL_SET_COUNT_RESET _u(0x5) 1656 #define PIO_SM2_PINCTRL_SET_COUNT_BITS _u(0x1c000000) 1657 #define PIO_SM2_PINCTRL_SET_COUNT_MSB _u(28) 1658 #define PIO_SM2_PINCTRL_SET_COUNT_LSB _u(26) 1659 #define PIO_SM2_PINCTRL_SET_COUNT_ACCESS "RW" 1660 // ----------------------------------------------------------------------------- 1661 // Field : PIO_SM2_PINCTRL_OUT_COUNT 1662 // Description : The number of pins asserted by an OUT PINS, OUT PINDIRS or MOV 1663 // PINS instruction. In the range 0 to 32 inclusive. 1664 #define PIO_SM2_PINCTRL_OUT_COUNT_RESET _u(0x00) 1665 #define PIO_SM2_PINCTRL_OUT_COUNT_BITS _u(0x03f00000) 1666 #define PIO_SM2_PINCTRL_OUT_COUNT_MSB _u(25) 1667 #define PIO_SM2_PINCTRL_OUT_COUNT_LSB _u(20) 1668 #define PIO_SM2_PINCTRL_OUT_COUNT_ACCESS "RW" 1669 // ----------------------------------------------------------------------------- 1670 // Field : PIO_SM2_PINCTRL_IN_BASE 1671 // Description : The pin which is mapped to the least-significant bit of a state 1672 // machine's IN data bus. Higher-numbered pins are mapped to 1673 // consecutively more-significant data bits, with a modulo of 32 1674 // applied to pin number. 1675 #define PIO_SM2_PINCTRL_IN_BASE_RESET _u(0x00) 1676 #define PIO_SM2_PINCTRL_IN_BASE_BITS _u(0x000f8000) 1677 #define PIO_SM2_PINCTRL_IN_BASE_MSB _u(19) 1678 #define PIO_SM2_PINCTRL_IN_BASE_LSB _u(15) 1679 #define PIO_SM2_PINCTRL_IN_BASE_ACCESS "RW" 1680 // ----------------------------------------------------------------------------- 1681 // Field : PIO_SM2_PINCTRL_SIDESET_BASE 1682 // Description : The lowest-numbered pin that will be affected by a side-set 1683 // operation. The MSBs of an instruction's side-set/delay field 1684 // (up to 5, determined by SIDESET_COUNT) are used for side-set 1685 // data, with the remaining LSBs used for delay. The least- 1686 // significant bit of the side-set portion is the bit written to 1687 // this pin, with more-significant bits written to higher-numbered 1688 // pins. 1689 #define PIO_SM2_PINCTRL_SIDESET_BASE_RESET _u(0x00) 1690 #define PIO_SM2_PINCTRL_SIDESET_BASE_BITS _u(0x00007c00) 1691 #define PIO_SM2_PINCTRL_SIDESET_BASE_MSB _u(14) 1692 #define PIO_SM2_PINCTRL_SIDESET_BASE_LSB _u(10) 1693 #define PIO_SM2_PINCTRL_SIDESET_BASE_ACCESS "RW" 1694 // ----------------------------------------------------------------------------- 1695 // Field : PIO_SM2_PINCTRL_SET_BASE 1696 // Description : The lowest-numbered pin that will be affected by a SET PINS or 1697 // SET PINDIRS instruction. The data written to this pin is the 1698 // least-significant bit of the SET data. 1699 #define PIO_SM2_PINCTRL_SET_BASE_RESET _u(0x00) 1700 #define PIO_SM2_PINCTRL_SET_BASE_BITS _u(0x000003e0) 1701 #define PIO_SM2_PINCTRL_SET_BASE_MSB _u(9) 1702 #define PIO_SM2_PINCTRL_SET_BASE_LSB _u(5) 1703 #define PIO_SM2_PINCTRL_SET_BASE_ACCESS "RW" 1704 // ----------------------------------------------------------------------------- 1705 // Field : PIO_SM2_PINCTRL_OUT_BASE 1706 // Description : The lowest-numbered pin that will be affected by an OUT PINS, 1707 // OUT PINDIRS or MOV PINS instruction. The data written to this 1708 // pin will always be the least-significant bit of the OUT or MOV 1709 // data. 1710 #define PIO_SM2_PINCTRL_OUT_BASE_RESET _u(0x00) 1711 #define PIO_SM2_PINCTRL_OUT_BASE_BITS _u(0x0000001f) 1712 #define PIO_SM2_PINCTRL_OUT_BASE_MSB _u(4) 1713 #define PIO_SM2_PINCTRL_OUT_BASE_LSB _u(0) 1714 #define PIO_SM2_PINCTRL_OUT_BASE_ACCESS "RW" 1715 // ============================================================================= 1716 // Register : PIO_SM3_CLKDIV 1717 // Description : Clock divisor register for state machine 3 1718 // Frequency = clock freq / (CLKDIV_INT + CLKDIV_FRAC / 256) 1719 #define PIO_SM3_CLKDIV_OFFSET _u(0x00000110) 1720 #define PIO_SM3_CLKDIV_BITS _u(0xffffff00) 1721 #define PIO_SM3_CLKDIV_RESET _u(0x00010000) 1722 // ----------------------------------------------------------------------------- 1723 // Field : PIO_SM3_CLKDIV_INT 1724 // Description : Effective frequency is sysclk/(int + frac/256). 1725 // Value of 0 is interpreted as 65536. If INT is 0, FRAC must also 1726 // be 0. 1727 #define PIO_SM3_CLKDIV_INT_RESET _u(0x0001) 1728 #define PIO_SM3_CLKDIV_INT_BITS _u(0xffff0000) 1729 #define PIO_SM3_CLKDIV_INT_MSB _u(31) 1730 #define PIO_SM3_CLKDIV_INT_LSB _u(16) 1731 #define PIO_SM3_CLKDIV_INT_ACCESS "RW" 1732 // ----------------------------------------------------------------------------- 1733 // Field : PIO_SM3_CLKDIV_FRAC 1734 // Description : Fractional part of clock divisor 1735 #define PIO_SM3_CLKDIV_FRAC_RESET _u(0x00) 1736 #define PIO_SM3_CLKDIV_FRAC_BITS _u(0x0000ff00) 1737 #define PIO_SM3_CLKDIV_FRAC_MSB _u(15) 1738 #define PIO_SM3_CLKDIV_FRAC_LSB _u(8) 1739 #define PIO_SM3_CLKDIV_FRAC_ACCESS "RW" 1740 // ============================================================================= 1741 // Register : PIO_SM3_EXECCTRL 1742 // Description : Execution/behavioural settings for state machine 3 1743 #define PIO_SM3_EXECCTRL_OFFSET _u(0x00000114) 1744 #define PIO_SM3_EXECCTRL_BITS _u(0xffffff9f) 1745 #define PIO_SM3_EXECCTRL_RESET _u(0x0001f000) 1746 // ----------------------------------------------------------------------------- 1747 // Field : PIO_SM3_EXECCTRL_EXEC_STALLED 1748 // Description : If 1, an instruction written to SMx_INSTR is stalled, and 1749 // latched by the state machine. Will clear to 0 once this 1750 // instruction completes. 1751 #define PIO_SM3_EXECCTRL_EXEC_STALLED_RESET _u(0x0) 1752 #define PIO_SM3_EXECCTRL_EXEC_STALLED_BITS _u(0x80000000) 1753 #define PIO_SM3_EXECCTRL_EXEC_STALLED_MSB _u(31) 1754 #define PIO_SM3_EXECCTRL_EXEC_STALLED_LSB _u(31) 1755 #define PIO_SM3_EXECCTRL_EXEC_STALLED_ACCESS "RO" 1756 // ----------------------------------------------------------------------------- 1757 // Field : PIO_SM3_EXECCTRL_SIDE_EN 1758 // Description : If 1, the MSB of the Delay/Side-set instruction field is used 1759 // as side-set enable, rather than a side-set data bit. This 1760 // allows instructions to perform side-set optionally, rather than 1761 // on every instruction, but the maximum possible side-set width 1762 // is reduced from 5 to 4. Note that the value of 1763 // PINCTRL_SIDESET_COUNT is inclusive of this enable bit. 1764 #define PIO_SM3_EXECCTRL_SIDE_EN_RESET _u(0x0) 1765 #define PIO_SM3_EXECCTRL_SIDE_EN_BITS _u(0x40000000) 1766 #define PIO_SM3_EXECCTRL_SIDE_EN_MSB _u(30) 1767 #define PIO_SM3_EXECCTRL_SIDE_EN_LSB _u(30) 1768 #define PIO_SM3_EXECCTRL_SIDE_EN_ACCESS "RW" 1769 // ----------------------------------------------------------------------------- 1770 // Field : PIO_SM3_EXECCTRL_SIDE_PINDIR 1771 // Description : If 1, side-set data is asserted to pin directions, instead of 1772 // pin values 1773 #define PIO_SM3_EXECCTRL_SIDE_PINDIR_RESET _u(0x0) 1774 #define PIO_SM3_EXECCTRL_SIDE_PINDIR_BITS _u(0x20000000) 1775 #define PIO_SM3_EXECCTRL_SIDE_PINDIR_MSB _u(29) 1776 #define PIO_SM3_EXECCTRL_SIDE_PINDIR_LSB _u(29) 1777 #define PIO_SM3_EXECCTRL_SIDE_PINDIR_ACCESS "RW" 1778 // ----------------------------------------------------------------------------- 1779 // Field : PIO_SM3_EXECCTRL_JMP_PIN 1780 // Description : The GPIO number to use as condition for JMP PIN. Unaffected by 1781 // input mapping. 1782 #define PIO_SM3_EXECCTRL_JMP_PIN_RESET _u(0x00) 1783 #define PIO_SM3_EXECCTRL_JMP_PIN_BITS _u(0x1f000000) 1784 #define PIO_SM3_EXECCTRL_JMP_PIN_MSB _u(28) 1785 #define PIO_SM3_EXECCTRL_JMP_PIN_LSB _u(24) 1786 #define PIO_SM3_EXECCTRL_JMP_PIN_ACCESS "RW" 1787 // ----------------------------------------------------------------------------- 1788 // Field : PIO_SM3_EXECCTRL_OUT_EN_SEL 1789 // Description : Which data bit to use for inline OUT enable 1790 #define PIO_SM3_EXECCTRL_OUT_EN_SEL_RESET _u(0x00) 1791 #define PIO_SM3_EXECCTRL_OUT_EN_SEL_BITS _u(0x00f80000) 1792 #define PIO_SM3_EXECCTRL_OUT_EN_SEL_MSB _u(23) 1793 #define PIO_SM3_EXECCTRL_OUT_EN_SEL_LSB _u(19) 1794 #define PIO_SM3_EXECCTRL_OUT_EN_SEL_ACCESS "RW" 1795 // ----------------------------------------------------------------------------- 1796 // Field : PIO_SM3_EXECCTRL_INLINE_OUT_EN 1797 // Description : If 1, use a bit of OUT data as an auxiliary write enable 1798 // When used in conjunction with OUT_STICKY, writes with an enable 1799 // of 0 will 1800 // deassert the latest pin write. This can create useful 1801 // masking/override behaviour 1802 // due to the priority ordering of state machine pin writes (SM0 < 1803 // SM1 < ...) 1804 #define PIO_SM3_EXECCTRL_INLINE_OUT_EN_RESET _u(0x0) 1805 #define PIO_SM3_EXECCTRL_INLINE_OUT_EN_BITS _u(0x00040000) 1806 #define PIO_SM3_EXECCTRL_INLINE_OUT_EN_MSB _u(18) 1807 #define PIO_SM3_EXECCTRL_INLINE_OUT_EN_LSB _u(18) 1808 #define PIO_SM3_EXECCTRL_INLINE_OUT_EN_ACCESS "RW" 1809 // ----------------------------------------------------------------------------- 1810 // Field : PIO_SM3_EXECCTRL_OUT_STICKY 1811 // Description : Continuously assert the most recent OUT/SET to the pins 1812 #define PIO_SM3_EXECCTRL_OUT_STICKY_RESET _u(0x0) 1813 #define PIO_SM3_EXECCTRL_OUT_STICKY_BITS _u(0x00020000) 1814 #define PIO_SM3_EXECCTRL_OUT_STICKY_MSB _u(17) 1815 #define PIO_SM3_EXECCTRL_OUT_STICKY_LSB _u(17) 1816 #define PIO_SM3_EXECCTRL_OUT_STICKY_ACCESS "RW" 1817 // ----------------------------------------------------------------------------- 1818 // Field : PIO_SM3_EXECCTRL_WRAP_TOP 1819 // Description : After reaching this address, execution is wrapped to 1820 // wrap_bottom. 1821 // If the instruction is a jump, and the jump condition is true, 1822 // the jump takes priority. 1823 #define PIO_SM3_EXECCTRL_WRAP_TOP_RESET _u(0x1f) 1824 #define PIO_SM3_EXECCTRL_WRAP_TOP_BITS _u(0x0001f000) 1825 #define PIO_SM3_EXECCTRL_WRAP_TOP_MSB _u(16) 1826 #define PIO_SM3_EXECCTRL_WRAP_TOP_LSB _u(12) 1827 #define PIO_SM3_EXECCTRL_WRAP_TOP_ACCESS "RW" 1828 // ----------------------------------------------------------------------------- 1829 // Field : PIO_SM3_EXECCTRL_WRAP_BOTTOM 1830 // Description : After reaching wrap_top, execution is wrapped to this address. 1831 #define PIO_SM3_EXECCTRL_WRAP_BOTTOM_RESET _u(0x00) 1832 #define PIO_SM3_EXECCTRL_WRAP_BOTTOM_BITS _u(0x00000f80) 1833 #define PIO_SM3_EXECCTRL_WRAP_BOTTOM_MSB _u(11) 1834 #define PIO_SM3_EXECCTRL_WRAP_BOTTOM_LSB _u(7) 1835 #define PIO_SM3_EXECCTRL_WRAP_BOTTOM_ACCESS "RW" 1836 // ----------------------------------------------------------------------------- 1837 // Field : PIO_SM3_EXECCTRL_STATUS_SEL 1838 // Description : Comparison used for the MOV x, STATUS instruction. 1839 // 0x0 -> All-ones if TX FIFO level < N, otherwise all-zeroes 1840 // 0x1 -> All-ones if RX FIFO level < N, otherwise all-zeroes 1841 #define PIO_SM3_EXECCTRL_STATUS_SEL_RESET _u(0x0) 1842 #define PIO_SM3_EXECCTRL_STATUS_SEL_BITS _u(0x00000010) 1843 #define PIO_SM3_EXECCTRL_STATUS_SEL_MSB _u(4) 1844 #define PIO_SM3_EXECCTRL_STATUS_SEL_LSB _u(4) 1845 #define PIO_SM3_EXECCTRL_STATUS_SEL_ACCESS "RW" 1846 #define PIO_SM3_EXECCTRL_STATUS_SEL_VALUE_TXLEVEL _u(0x0) 1847 #define PIO_SM3_EXECCTRL_STATUS_SEL_VALUE_RXLEVEL _u(0x1) 1848 // ----------------------------------------------------------------------------- 1849 // Field : PIO_SM3_EXECCTRL_STATUS_N 1850 // Description : Comparison level for the MOV x, STATUS instruction 1851 #define PIO_SM3_EXECCTRL_STATUS_N_RESET _u(0x0) 1852 #define PIO_SM3_EXECCTRL_STATUS_N_BITS _u(0x0000000f) 1853 #define PIO_SM3_EXECCTRL_STATUS_N_MSB _u(3) 1854 #define PIO_SM3_EXECCTRL_STATUS_N_LSB _u(0) 1855 #define PIO_SM3_EXECCTRL_STATUS_N_ACCESS "RW" 1856 // ============================================================================= 1857 // Register : PIO_SM3_SHIFTCTRL 1858 // Description : Control behaviour of the input/output shift registers for state 1859 // machine 3 1860 #define PIO_SM3_SHIFTCTRL_OFFSET _u(0x00000118) 1861 #define PIO_SM3_SHIFTCTRL_BITS _u(0xffff0000) 1862 #define PIO_SM3_SHIFTCTRL_RESET _u(0x000c0000) 1863 // ----------------------------------------------------------------------------- 1864 // Field : PIO_SM3_SHIFTCTRL_FJOIN_RX 1865 // Description : When 1, RX FIFO steals the TX FIFO's storage, and becomes twice 1866 // as deep. 1867 // TX FIFO is disabled as a result (always reads as both full and 1868 // empty). 1869 // FIFOs are flushed when this bit is changed. 1870 #define PIO_SM3_SHIFTCTRL_FJOIN_RX_RESET _u(0x0) 1871 #define PIO_SM3_SHIFTCTRL_FJOIN_RX_BITS _u(0x80000000) 1872 #define PIO_SM3_SHIFTCTRL_FJOIN_RX_MSB _u(31) 1873 #define PIO_SM3_SHIFTCTRL_FJOIN_RX_LSB _u(31) 1874 #define PIO_SM3_SHIFTCTRL_FJOIN_RX_ACCESS "RW" 1875 // ----------------------------------------------------------------------------- 1876 // Field : PIO_SM3_SHIFTCTRL_FJOIN_TX 1877 // Description : When 1, TX FIFO steals the RX FIFO's storage, and becomes twice 1878 // as deep. 1879 // RX FIFO is disabled as a result (always reads as both full and 1880 // empty). 1881 // FIFOs are flushed when this bit is changed. 1882 #define PIO_SM3_SHIFTCTRL_FJOIN_TX_RESET _u(0x0) 1883 #define PIO_SM3_SHIFTCTRL_FJOIN_TX_BITS _u(0x40000000) 1884 #define PIO_SM3_SHIFTCTRL_FJOIN_TX_MSB _u(30) 1885 #define PIO_SM3_SHIFTCTRL_FJOIN_TX_LSB _u(30) 1886 #define PIO_SM3_SHIFTCTRL_FJOIN_TX_ACCESS "RW" 1887 // ----------------------------------------------------------------------------- 1888 // Field : PIO_SM3_SHIFTCTRL_PULL_THRESH 1889 // Description : Number of bits shifted out of OSR before autopull, or 1890 // conditional pull (PULL IFEMPTY), will take place. 1891 // Write 0 for value of 32. 1892 #define PIO_SM3_SHIFTCTRL_PULL_THRESH_RESET _u(0x00) 1893 #define PIO_SM3_SHIFTCTRL_PULL_THRESH_BITS _u(0x3e000000) 1894 #define PIO_SM3_SHIFTCTRL_PULL_THRESH_MSB _u(29) 1895 #define PIO_SM3_SHIFTCTRL_PULL_THRESH_LSB _u(25) 1896 #define PIO_SM3_SHIFTCTRL_PULL_THRESH_ACCESS "RW" 1897 // ----------------------------------------------------------------------------- 1898 // Field : PIO_SM3_SHIFTCTRL_PUSH_THRESH 1899 // Description : Number of bits shifted into ISR before autopush, or conditional 1900 // push (PUSH IFFULL), will take place. 1901 // Write 0 for value of 32. 1902 #define PIO_SM3_SHIFTCTRL_PUSH_THRESH_RESET _u(0x00) 1903 #define PIO_SM3_SHIFTCTRL_PUSH_THRESH_BITS _u(0x01f00000) 1904 #define PIO_SM3_SHIFTCTRL_PUSH_THRESH_MSB _u(24) 1905 #define PIO_SM3_SHIFTCTRL_PUSH_THRESH_LSB _u(20) 1906 #define PIO_SM3_SHIFTCTRL_PUSH_THRESH_ACCESS "RW" 1907 // ----------------------------------------------------------------------------- 1908 // Field : PIO_SM3_SHIFTCTRL_OUT_SHIFTDIR 1909 // Description : 1 = shift out of output shift register to right. 0 = to left. 1910 #define PIO_SM3_SHIFTCTRL_OUT_SHIFTDIR_RESET _u(0x1) 1911 #define PIO_SM3_SHIFTCTRL_OUT_SHIFTDIR_BITS _u(0x00080000) 1912 #define PIO_SM3_SHIFTCTRL_OUT_SHIFTDIR_MSB _u(19) 1913 #define PIO_SM3_SHIFTCTRL_OUT_SHIFTDIR_LSB _u(19) 1914 #define PIO_SM3_SHIFTCTRL_OUT_SHIFTDIR_ACCESS "RW" 1915 // ----------------------------------------------------------------------------- 1916 // Field : PIO_SM3_SHIFTCTRL_IN_SHIFTDIR 1917 // Description : 1 = shift input shift register to right (data enters from 1918 // left). 0 = to left. 1919 #define PIO_SM3_SHIFTCTRL_IN_SHIFTDIR_RESET _u(0x1) 1920 #define PIO_SM3_SHIFTCTRL_IN_SHIFTDIR_BITS _u(0x00040000) 1921 #define PIO_SM3_SHIFTCTRL_IN_SHIFTDIR_MSB _u(18) 1922 #define PIO_SM3_SHIFTCTRL_IN_SHIFTDIR_LSB _u(18) 1923 #define PIO_SM3_SHIFTCTRL_IN_SHIFTDIR_ACCESS "RW" 1924 // ----------------------------------------------------------------------------- 1925 // Field : PIO_SM3_SHIFTCTRL_AUTOPULL 1926 // Description : Pull automatically when the output shift register is emptied, 1927 // i.e. on or following an OUT instruction which causes the output 1928 // shift counter to reach or exceed PULL_THRESH. 1929 #define PIO_SM3_SHIFTCTRL_AUTOPULL_RESET _u(0x0) 1930 #define PIO_SM3_SHIFTCTRL_AUTOPULL_BITS _u(0x00020000) 1931 #define PIO_SM3_SHIFTCTRL_AUTOPULL_MSB _u(17) 1932 #define PIO_SM3_SHIFTCTRL_AUTOPULL_LSB _u(17) 1933 #define PIO_SM3_SHIFTCTRL_AUTOPULL_ACCESS "RW" 1934 // ----------------------------------------------------------------------------- 1935 // Field : PIO_SM3_SHIFTCTRL_AUTOPUSH 1936 // Description : Push automatically when the input shift register is filled, 1937 // i.e. on an IN instruction which causes the input shift counter 1938 // to reach or exceed PUSH_THRESH. 1939 #define PIO_SM3_SHIFTCTRL_AUTOPUSH_RESET _u(0x0) 1940 #define PIO_SM3_SHIFTCTRL_AUTOPUSH_BITS _u(0x00010000) 1941 #define PIO_SM3_SHIFTCTRL_AUTOPUSH_MSB _u(16) 1942 #define PIO_SM3_SHIFTCTRL_AUTOPUSH_LSB _u(16) 1943 #define PIO_SM3_SHIFTCTRL_AUTOPUSH_ACCESS "RW" 1944 // ============================================================================= 1945 // Register : PIO_SM3_ADDR 1946 // Description : Current instruction address of state machine 3 1947 #define PIO_SM3_ADDR_OFFSET _u(0x0000011c) 1948 #define PIO_SM3_ADDR_BITS _u(0x0000001f) 1949 #define PIO_SM3_ADDR_RESET _u(0x00000000) 1950 #define PIO_SM3_ADDR_MSB _u(4) 1951 #define PIO_SM3_ADDR_LSB _u(0) 1952 #define PIO_SM3_ADDR_ACCESS "RO" 1953 // ============================================================================= 1954 // Register : PIO_SM3_INSTR 1955 // Description : Read to see the instruction currently addressed by state 1956 // machine 3's program counter 1957 // Write to execute an instruction immediately (including jumps) 1958 // and then resume execution. 1959 #define PIO_SM3_INSTR_OFFSET _u(0x00000120) 1960 #define PIO_SM3_INSTR_BITS _u(0x0000ffff) 1961 #define PIO_SM3_INSTR_RESET "-" 1962 #define PIO_SM3_INSTR_MSB _u(15) 1963 #define PIO_SM3_INSTR_LSB _u(0) 1964 #define PIO_SM3_INSTR_ACCESS "RW" 1965 // ============================================================================= 1966 // Register : PIO_SM3_PINCTRL 1967 // Description : State machine pin control 1968 #define PIO_SM3_PINCTRL_OFFSET _u(0x00000124) 1969 #define PIO_SM3_PINCTRL_BITS _u(0xffffffff) 1970 #define PIO_SM3_PINCTRL_RESET _u(0x14000000) 1971 // ----------------------------------------------------------------------------- 1972 // Field : PIO_SM3_PINCTRL_SIDESET_COUNT 1973 // Description : The number of MSBs of the Delay/Side-set instruction field 1974 // which are used for side-set. Inclusive of the enable bit, if 1975 // present. Minimum of 0 (all delay bits, no side-set) and maximum 1976 // of 5 (all side-set, no delay). 1977 #define PIO_SM3_PINCTRL_SIDESET_COUNT_RESET _u(0x0) 1978 #define PIO_SM3_PINCTRL_SIDESET_COUNT_BITS _u(0xe0000000) 1979 #define PIO_SM3_PINCTRL_SIDESET_COUNT_MSB _u(31) 1980 #define PIO_SM3_PINCTRL_SIDESET_COUNT_LSB _u(29) 1981 #define PIO_SM3_PINCTRL_SIDESET_COUNT_ACCESS "RW" 1982 // ----------------------------------------------------------------------------- 1983 // Field : PIO_SM3_PINCTRL_SET_COUNT 1984 // Description : The number of pins asserted by a SET. In the range 0 to 5 1985 // inclusive. 1986 #define PIO_SM3_PINCTRL_SET_COUNT_RESET _u(0x5) 1987 #define PIO_SM3_PINCTRL_SET_COUNT_BITS _u(0x1c000000) 1988 #define PIO_SM3_PINCTRL_SET_COUNT_MSB _u(28) 1989 #define PIO_SM3_PINCTRL_SET_COUNT_LSB _u(26) 1990 #define PIO_SM3_PINCTRL_SET_COUNT_ACCESS "RW" 1991 // ----------------------------------------------------------------------------- 1992 // Field : PIO_SM3_PINCTRL_OUT_COUNT 1993 // Description : The number of pins asserted by an OUT PINS, OUT PINDIRS or MOV 1994 // PINS instruction. In the range 0 to 32 inclusive. 1995 #define PIO_SM3_PINCTRL_OUT_COUNT_RESET _u(0x00) 1996 #define PIO_SM3_PINCTRL_OUT_COUNT_BITS _u(0x03f00000) 1997 #define PIO_SM3_PINCTRL_OUT_COUNT_MSB _u(25) 1998 #define PIO_SM3_PINCTRL_OUT_COUNT_LSB _u(20) 1999 #define PIO_SM3_PINCTRL_OUT_COUNT_ACCESS "RW" 2000 // ----------------------------------------------------------------------------- 2001 // Field : PIO_SM3_PINCTRL_IN_BASE 2002 // Description : The pin which is mapped to the least-significant bit of a state 2003 // machine's IN data bus. Higher-numbered pins are mapped to 2004 // consecutively more-significant data bits, with a modulo of 32 2005 // applied to pin number. 2006 #define PIO_SM3_PINCTRL_IN_BASE_RESET _u(0x00) 2007 #define PIO_SM3_PINCTRL_IN_BASE_BITS _u(0x000f8000) 2008 #define PIO_SM3_PINCTRL_IN_BASE_MSB _u(19) 2009 #define PIO_SM3_PINCTRL_IN_BASE_LSB _u(15) 2010 #define PIO_SM3_PINCTRL_IN_BASE_ACCESS "RW" 2011 // ----------------------------------------------------------------------------- 2012 // Field : PIO_SM3_PINCTRL_SIDESET_BASE 2013 // Description : The lowest-numbered pin that will be affected by a side-set 2014 // operation. The MSBs of an instruction's side-set/delay field 2015 // (up to 5, determined by SIDESET_COUNT) are used for side-set 2016 // data, with the remaining LSBs used for delay. The least- 2017 // significant bit of the side-set portion is the bit written to 2018 // this pin, with more-significant bits written to higher-numbered 2019 // pins. 2020 #define PIO_SM3_PINCTRL_SIDESET_BASE_RESET _u(0x00) 2021 #define PIO_SM3_PINCTRL_SIDESET_BASE_BITS _u(0x00007c00) 2022 #define PIO_SM3_PINCTRL_SIDESET_BASE_MSB _u(14) 2023 #define PIO_SM3_PINCTRL_SIDESET_BASE_LSB _u(10) 2024 #define PIO_SM3_PINCTRL_SIDESET_BASE_ACCESS "RW" 2025 // ----------------------------------------------------------------------------- 2026 // Field : PIO_SM3_PINCTRL_SET_BASE 2027 // Description : The lowest-numbered pin that will be affected by a SET PINS or 2028 // SET PINDIRS instruction. The data written to this pin is the 2029 // least-significant bit of the SET data. 2030 #define PIO_SM3_PINCTRL_SET_BASE_RESET _u(0x00) 2031 #define PIO_SM3_PINCTRL_SET_BASE_BITS _u(0x000003e0) 2032 #define PIO_SM3_PINCTRL_SET_BASE_MSB _u(9) 2033 #define PIO_SM3_PINCTRL_SET_BASE_LSB _u(5) 2034 #define PIO_SM3_PINCTRL_SET_BASE_ACCESS "RW" 2035 // ----------------------------------------------------------------------------- 2036 // Field : PIO_SM3_PINCTRL_OUT_BASE 2037 // Description : The lowest-numbered pin that will be affected by an OUT PINS, 2038 // OUT PINDIRS or MOV PINS instruction. The data written to this 2039 // pin will always be the least-significant bit of the OUT or MOV 2040 // data. 2041 #define PIO_SM3_PINCTRL_OUT_BASE_RESET _u(0x00) 2042 #define PIO_SM3_PINCTRL_OUT_BASE_BITS _u(0x0000001f) 2043 #define PIO_SM3_PINCTRL_OUT_BASE_MSB _u(4) 2044 #define PIO_SM3_PINCTRL_OUT_BASE_LSB _u(0) 2045 #define PIO_SM3_PINCTRL_OUT_BASE_ACCESS "RW" 2046 // ============================================================================= 2047 // Register : PIO_INTR 2048 // Description : Raw Interrupts 2049 #define PIO_INTR_OFFSET _u(0x00000128) 2050 #define PIO_INTR_BITS _u(0x00000fff) 2051 #define PIO_INTR_RESET _u(0x00000000) 2052 // ----------------------------------------------------------------------------- 2053 // Field : PIO_INTR_SM3 2054 #define PIO_INTR_SM3_RESET _u(0x0) 2055 #define PIO_INTR_SM3_BITS _u(0x00000800) 2056 #define PIO_INTR_SM3_MSB _u(11) 2057 #define PIO_INTR_SM3_LSB _u(11) 2058 #define PIO_INTR_SM3_ACCESS "RO" 2059 // ----------------------------------------------------------------------------- 2060 // Field : PIO_INTR_SM2 2061 #define PIO_INTR_SM2_RESET _u(0x0) 2062 #define PIO_INTR_SM2_BITS _u(0x00000400) 2063 #define PIO_INTR_SM2_MSB _u(10) 2064 #define PIO_INTR_SM2_LSB _u(10) 2065 #define PIO_INTR_SM2_ACCESS "RO" 2066 // ----------------------------------------------------------------------------- 2067 // Field : PIO_INTR_SM1 2068 #define PIO_INTR_SM1_RESET _u(0x0) 2069 #define PIO_INTR_SM1_BITS _u(0x00000200) 2070 #define PIO_INTR_SM1_MSB _u(9) 2071 #define PIO_INTR_SM1_LSB _u(9) 2072 #define PIO_INTR_SM1_ACCESS "RO" 2073 // ----------------------------------------------------------------------------- 2074 // Field : PIO_INTR_SM0 2075 #define PIO_INTR_SM0_RESET _u(0x0) 2076 #define PIO_INTR_SM0_BITS _u(0x00000100) 2077 #define PIO_INTR_SM0_MSB _u(8) 2078 #define PIO_INTR_SM0_LSB _u(8) 2079 #define PIO_INTR_SM0_ACCESS "RO" 2080 // ----------------------------------------------------------------------------- 2081 // Field : PIO_INTR_SM3_TXNFULL 2082 #define PIO_INTR_SM3_TXNFULL_RESET _u(0x0) 2083 #define PIO_INTR_SM3_TXNFULL_BITS _u(0x00000080) 2084 #define PIO_INTR_SM3_TXNFULL_MSB _u(7) 2085 #define PIO_INTR_SM3_TXNFULL_LSB _u(7) 2086 #define PIO_INTR_SM3_TXNFULL_ACCESS "RO" 2087 // ----------------------------------------------------------------------------- 2088 // Field : PIO_INTR_SM2_TXNFULL 2089 #define PIO_INTR_SM2_TXNFULL_RESET _u(0x0) 2090 #define PIO_INTR_SM2_TXNFULL_BITS _u(0x00000040) 2091 #define PIO_INTR_SM2_TXNFULL_MSB _u(6) 2092 #define PIO_INTR_SM2_TXNFULL_LSB _u(6) 2093 #define PIO_INTR_SM2_TXNFULL_ACCESS "RO" 2094 // ----------------------------------------------------------------------------- 2095 // Field : PIO_INTR_SM1_TXNFULL 2096 #define PIO_INTR_SM1_TXNFULL_RESET _u(0x0) 2097 #define PIO_INTR_SM1_TXNFULL_BITS _u(0x00000020) 2098 #define PIO_INTR_SM1_TXNFULL_MSB _u(5) 2099 #define PIO_INTR_SM1_TXNFULL_LSB _u(5) 2100 #define PIO_INTR_SM1_TXNFULL_ACCESS "RO" 2101 // ----------------------------------------------------------------------------- 2102 // Field : PIO_INTR_SM0_TXNFULL 2103 #define PIO_INTR_SM0_TXNFULL_RESET _u(0x0) 2104 #define PIO_INTR_SM0_TXNFULL_BITS _u(0x00000010) 2105 #define PIO_INTR_SM0_TXNFULL_MSB _u(4) 2106 #define PIO_INTR_SM0_TXNFULL_LSB _u(4) 2107 #define PIO_INTR_SM0_TXNFULL_ACCESS "RO" 2108 // ----------------------------------------------------------------------------- 2109 // Field : PIO_INTR_SM3_RXNEMPTY 2110 #define PIO_INTR_SM3_RXNEMPTY_RESET _u(0x0) 2111 #define PIO_INTR_SM3_RXNEMPTY_BITS _u(0x00000008) 2112 #define PIO_INTR_SM3_RXNEMPTY_MSB _u(3) 2113 #define PIO_INTR_SM3_RXNEMPTY_LSB _u(3) 2114 #define PIO_INTR_SM3_RXNEMPTY_ACCESS "RO" 2115 // ----------------------------------------------------------------------------- 2116 // Field : PIO_INTR_SM2_RXNEMPTY 2117 #define PIO_INTR_SM2_RXNEMPTY_RESET _u(0x0) 2118 #define PIO_INTR_SM2_RXNEMPTY_BITS _u(0x00000004) 2119 #define PIO_INTR_SM2_RXNEMPTY_MSB _u(2) 2120 #define PIO_INTR_SM2_RXNEMPTY_LSB _u(2) 2121 #define PIO_INTR_SM2_RXNEMPTY_ACCESS "RO" 2122 // ----------------------------------------------------------------------------- 2123 // Field : PIO_INTR_SM1_RXNEMPTY 2124 #define PIO_INTR_SM1_RXNEMPTY_RESET _u(0x0) 2125 #define PIO_INTR_SM1_RXNEMPTY_BITS _u(0x00000002) 2126 #define PIO_INTR_SM1_RXNEMPTY_MSB _u(1) 2127 #define PIO_INTR_SM1_RXNEMPTY_LSB _u(1) 2128 #define PIO_INTR_SM1_RXNEMPTY_ACCESS "RO" 2129 // ----------------------------------------------------------------------------- 2130 // Field : PIO_INTR_SM0_RXNEMPTY 2131 #define PIO_INTR_SM0_RXNEMPTY_RESET _u(0x0) 2132 #define PIO_INTR_SM0_RXNEMPTY_BITS _u(0x00000001) 2133 #define PIO_INTR_SM0_RXNEMPTY_MSB _u(0) 2134 #define PIO_INTR_SM0_RXNEMPTY_LSB _u(0) 2135 #define PIO_INTR_SM0_RXNEMPTY_ACCESS "RO" 2136 // ============================================================================= 2137 // Register : PIO_IRQ0_INTE 2138 // Description : Interrupt Enable for irq0 2139 #define PIO_IRQ0_INTE_OFFSET _u(0x0000012c) 2140 #define PIO_IRQ0_INTE_BITS _u(0x00000fff) 2141 #define PIO_IRQ0_INTE_RESET _u(0x00000000) 2142 // ----------------------------------------------------------------------------- 2143 // Field : PIO_IRQ0_INTE_SM3 2144 #define PIO_IRQ0_INTE_SM3_RESET _u(0x0) 2145 #define PIO_IRQ0_INTE_SM3_BITS _u(0x00000800) 2146 #define PIO_IRQ0_INTE_SM3_MSB _u(11) 2147 #define PIO_IRQ0_INTE_SM3_LSB _u(11) 2148 #define PIO_IRQ0_INTE_SM3_ACCESS "RW" 2149 // ----------------------------------------------------------------------------- 2150 // Field : PIO_IRQ0_INTE_SM2 2151 #define PIO_IRQ0_INTE_SM2_RESET _u(0x0) 2152 #define PIO_IRQ0_INTE_SM2_BITS _u(0x00000400) 2153 #define PIO_IRQ0_INTE_SM2_MSB _u(10) 2154 #define PIO_IRQ0_INTE_SM2_LSB _u(10) 2155 #define PIO_IRQ0_INTE_SM2_ACCESS "RW" 2156 // ----------------------------------------------------------------------------- 2157 // Field : PIO_IRQ0_INTE_SM1 2158 #define PIO_IRQ0_INTE_SM1_RESET _u(0x0) 2159 #define PIO_IRQ0_INTE_SM1_BITS _u(0x00000200) 2160 #define PIO_IRQ0_INTE_SM1_MSB _u(9) 2161 #define PIO_IRQ0_INTE_SM1_LSB _u(9) 2162 #define PIO_IRQ0_INTE_SM1_ACCESS "RW" 2163 // ----------------------------------------------------------------------------- 2164 // Field : PIO_IRQ0_INTE_SM0 2165 #define PIO_IRQ0_INTE_SM0_RESET _u(0x0) 2166 #define PIO_IRQ0_INTE_SM0_BITS _u(0x00000100) 2167 #define PIO_IRQ0_INTE_SM0_MSB _u(8) 2168 #define PIO_IRQ0_INTE_SM0_LSB _u(8) 2169 #define PIO_IRQ0_INTE_SM0_ACCESS "RW" 2170 // ----------------------------------------------------------------------------- 2171 // Field : PIO_IRQ0_INTE_SM3_TXNFULL 2172 #define PIO_IRQ0_INTE_SM3_TXNFULL_RESET _u(0x0) 2173 #define PIO_IRQ0_INTE_SM3_TXNFULL_BITS _u(0x00000080) 2174 #define PIO_IRQ0_INTE_SM3_TXNFULL_MSB _u(7) 2175 #define PIO_IRQ0_INTE_SM3_TXNFULL_LSB _u(7) 2176 #define PIO_IRQ0_INTE_SM3_TXNFULL_ACCESS "RW" 2177 // ----------------------------------------------------------------------------- 2178 // Field : PIO_IRQ0_INTE_SM2_TXNFULL 2179 #define PIO_IRQ0_INTE_SM2_TXNFULL_RESET _u(0x0) 2180 #define PIO_IRQ0_INTE_SM2_TXNFULL_BITS _u(0x00000040) 2181 #define PIO_IRQ0_INTE_SM2_TXNFULL_MSB _u(6) 2182 #define PIO_IRQ0_INTE_SM2_TXNFULL_LSB _u(6) 2183 #define PIO_IRQ0_INTE_SM2_TXNFULL_ACCESS "RW" 2184 // ----------------------------------------------------------------------------- 2185 // Field : PIO_IRQ0_INTE_SM1_TXNFULL 2186 #define PIO_IRQ0_INTE_SM1_TXNFULL_RESET _u(0x0) 2187 #define PIO_IRQ0_INTE_SM1_TXNFULL_BITS _u(0x00000020) 2188 #define PIO_IRQ0_INTE_SM1_TXNFULL_MSB _u(5) 2189 #define PIO_IRQ0_INTE_SM1_TXNFULL_LSB _u(5) 2190 #define PIO_IRQ0_INTE_SM1_TXNFULL_ACCESS "RW" 2191 // ----------------------------------------------------------------------------- 2192 // Field : PIO_IRQ0_INTE_SM0_TXNFULL 2193 #define PIO_IRQ0_INTE_SM0_TXNFULL_RESET _u(0x0) 2194 #define PIO_IRQ0_INTE_SM0_TXNFULL_BITS _u(0x00000010) 2195 #define PIO_IRQ0_INTE_SM0_TXNFULL_MSB _u(4) 2196 #define PIO_IRQ0_INTE_SM0_TXNFULL_LSB _u(4) 2197 #define PIO_IRQ0_INTE_SM0_TXNFULL_ACCESS "RW" 2198 // ----------------------------------------------------------------------------- 2199 // Field : PIO_IRQ0_INTE_SM3_RXNEMPTY 2200 #define PIO_IRQ0_INTE_SM3_RXNEMPTY_RESET _u(0x0) 2201 #define PIO_IRQ0_INTE_SM3_RXNEMPTY_BITS _u(0x00000008) 2202 #define PIO_IRQ0_INTE_SM3_RXNEMPTY_MSB _u(3) 2203 #define PIO_IRQ0_INTE_SM3_RXNEMPTY_LSB _u(3) 2204 #define PIO_IRQ0_INTE_SM3_RXNEMPTY_ACCESS "RW" 2205 // ----------------------------------------------------------------------------- 2206 // Field : PIO_IRQ0_INTE_SM2_RXNEMPTY 2207 #define PIO_IRQ0_INTE_SM2_RXNEMPTY_RESET _u(0x0) 2208 #define PIO_IRQ0_INTE_SM2_RXNEMPTY_BITS _u(0x00000004) 2209 #define PIO_IRQ0_INTE_SM2_RXNEMPTY_MSB _u(2) 2210 #define PIO_IRQ0_INTE_SM2_RXNEMPTY_LSB _u(2) 2211 #define PIO_IRQ0_INTE_SM2_RXNEMPTY_ACCESS "RW" 2212 // ----------------------------------------------------------------------------- 2213 // Field : PIO_IRQ0_INTE_SM1_RXNEMPTY 2214 #define PIO_IRQ0_INTE_SM1_RXNEMPTY_RESET _u(0x0) 2215 #define PIO_IRQ0_INTE_SM1_RXNEMPTY_BITS _u(0x00000002) 2216 #define PIO_IRQ0_INTE_SM1_RXNEMPTY_MSB _u(1) 2217 #define PIO_IRQ0_INTE_SM1_RXNEMPTY_LSB _u(1) 2218 #define PIO_IRQ0_INTE_SM1_RXNEMPTY_ACCESS "RW" 2219 // ----------------------------------------------------------------------------- 2220 // Field : PIO_IRQ0_INTE_SM0_RXNEMPTY 2221 #define PIO_IRQ0_INTE_SM0_RXNEMPTY_RESET _u(0x0) 2222 #define PIO_IRQ0_INTE_SM0_RXNEMPTY_BITS _u(0x00000001) 2223 #define PIO_IRQ0_INTE_SM0_RXNEMPTY_MSB _u(0) 2224 #define PIO_IRQ0_INTE_SM0_RXNEMPTY_LSB _u(0) 2225 #define PIO_IRQ0_INTE_SM0_RXNEMPTY_ACCESS "RW" 2226 // ============================================================================= 2227 // Register : PIO_IRQ0_INTF 2228 // Description : Interrupt Force for irq0 2229 #define PIO_IRQ0_INTF_OFFSET _u(0x00000130) 2230 #define PIO_IRQ0_INTF_BITS _u(0x00000fff) 2231 #define PIO_IRQ0_INTF_RESET _u(0x00000000) 2232 // ----------------------------------------------------------------------------- 2233 // Field : PIO_IRQ0_INTF_SM3 2234 #define PIO_IRQ0_INTF_SM3_RESET _u(0x0) 2235 #define PIO_IRQ0_INTF_SM3_BITS _u(0x00000800) 2236 #define PIO_IRQ0_INTF_SM3_MSB _u(11) 2237 #define PIO_IRQ0_INTF_SM3_LSB _u(11) 2238 #define PIO_IRQ0_INTF_SM3_ACCESS "RW" 2239 // ----------------------------------------------------------------------------- 2240 // Field : PIO_IRQ0_INTF_SM2 2241 #define PIO_IRQ0_INTF_SM2_RESET _u(0x0) 2242 #define PIO_IRQ0_INTF_SM2_BITS _u(0x00000400) 2243 #define PIO_IRQ0_INTF_SM2_MSB _u(10) 2244 #define PIO_IRQ0_INTF_SM2_LSB _u(10) 2245 #define PIO_IRQ0_INTF_SM2_ACCESS "RW" 2246 // ----------------------------------------------------------------------------- 2247 // Field : PIO_IRQ0_INTF_SM1 2248 #define PIO_IRQ0_INTF_SM1_RESET _u(0x0) 2249 #define PIO_IRQ0_INTF_SM1_BITS _u(0x00000200) 2250 #define PIO_IRQ0_INTF_SM1_MSB _u(9) 2251 #define PIO_IRQ0_INTF_SM1_LSB _u(9) 2252 #define PIO_IRQ0_INTF_SM1_ACCESS "RW" 2253 // ----------------------------------------------------------------------------- 2254 // Field : PIO_IRQ0_INTF_SM0 2255 #define PIO_IRQ0_INTF_SM0_RESET _u(0x0) 2256 #define PIO_IRQ0_INTF_SM0_BITS _u(0x00000100) 2257 #define PIO_IRQ0_INTF_SM0_MSB _u(8) 2258 #define PIO_IRQ0_INTF_SM0_LSB _u(8) 2259 #define PIO_IRQ0_INTF_SM0_ACCESS "RW" 2260 // ----------------------------------------------------------------------------- 2261 // Field : PIO_IRQ0_INTF_SM3_TXNFULL 2262 #define PIO_IRQ0_INTF_SM3_TXNFULL_RESET _u(0x0) 2263 #define PIO_IRQ0_INTF_SM3_TXNFULL_BITS _u(0x00000080) 2264 #define PIO_IRQ0_INTF_SM3_TXNFULL_MSB _u(7) 2265 #define PIO_IRQ0_INTF_SM3_TXNFULL_LSB _u(7) 2266 #define PIO_IRQ0_INTF_SM3_TXNFULL_ACCESS "RW" 2267 // ----------------------------------------------------------------------------- 2268 // Field : PIO_IRQ0_INTF_SM2_TXNFULL 2269 #define PIO_IRQ0_INTF_SM2_TXNFULL_RESET _u(0x0) 2270 #define PIO_IRQ0_INTF_SM2_TXNFULL_BITS _u(0x00000040) 2271 #define PIO_IRQ0_INTF_SM2_TXNFULL_MSB _u(6) 2272 #define PIO_IRQ0_INTF_SM2_TXNFULL_LSB _u(6) 2273 #define PIO_IRQ0_INTF_SM2_TXNFULL_ACCESS "RW" 2274 // ----------------------------------------------------------------------------- 2275 // Field : PIO_IRQ0_INTF_SM1_TXNFULL 2276 #define PIO_IRQ0_INTF_SM1_TXNFULL_RESET _u(0x0) 2277 #define PIO_IRQ0_INTF_SM1_TXNFULL_BITS _u(0x00000020) 2278 #define PIO_IRQ0_INTF_SM1_TXNFULL_MSB _u(5) 2279 #define PIO_IRQ0_INTF_SM1_TXNFULL_LSB _u(5) 2280 #define PIO_IRQ0_INTF_SM1_TXNFULL_ACCESS "RW" 2281 // ----------------------------------------------------------------------------- 2282 // Field : PIO_IRQ0_INTF_SM0_TXNFULL 2283 #define PIO_IRQ0_INTF_SM0_TXNFULL_RESET _u(0x0) 2284 #define PIO_IRQ0_INTF_SM0_TXNFULL_BITS _u(0x00000010) 2285 #define PIO_IRQ0_INTF_SM0_TXNFULL_MSB _u(4) 2286 #define PIO_IRQ0_INTF_SM0_TXNFULL_LSB _u(4) 2287 #define PIO_IRQ0_INTF_SM0_TXNFULL_ACCESS "RW" 2288 // ----------------------------------------------------------------------------- 2289 // Field : PIO_IRQ0_INTF_SM3_RXNEMPTY 2290 #define PIO_IRQ0_INTF_SM3_RXNEMPTY_RESET _u(0x0) 2291 #define PIO_IRQ0_INTF_SM3_RXNEMPTY_BITS _u(0x00000008) 2292 #define PIO_IRQ0_INTF_SM3_RXNEMPTY_MSB _u(3) 2293 #define PIO_IRQ0_INTF_SM3_RXNEMPTY_LSB _u(3) 2294 #define PIO_IRQ0_INTF_SM3_RXNEMPTY_ACCESS "RW" 2295 // ----------------------------------------------------------------------------- 2296 // Field : PIO_IRQ0_INTF_SM2_RXNEMPTY 2297 #define PIO_IRQ0_INTF_SM2_RXNEMPTY_RESET _u(0x0) 2298 #define PIO_IRQ0_INTF_SM2_RXNEMPTY_BITS _u(0x00000004) 2299 #define PIO_IRQ0_INTF_SM2_RXNEMPTY_MSB _u(2) 2300 #define PIO_IRQ0_INTF_SM2_RXNEMPTY_LSB _u(2) 2301 #define PIO_IRQ0_INTF_SM2_RXNEMPTY_ACCESS "RW" 2302 // ----------------------------------------------------------------------------- 2303 // Field : PIO_IRQ0_INTF_SM1_RXNEMPTY 2304 #define PIO_IRQ0_INTF_SM1_RXNEMPTY_RESET _u(0x0) 2305 #define PIO_IRQ0_INTF_SM1_RXNEMPTY_BITS _u(0x00000002) 2306 #define PIO_IRQ0_INTF_SM1_RXNEMPTY_MSB _u(1) 2307 #define PIO_IRQ0_INTF_SM1_RXNEMPTY_LSB _u(1) 2308 #define PIO_IRQ0_INTF_SM1_RXNEMPTY_ACCESS "RW" 2309 // ----------------------------------------------------------------------------- 2310 // Field : PIO_IRQ0_INTF_SM0_RXNEMPTY 2311 #define PIO_IRQ0_INTF_SM0_RXNEMPTY_RESET _u(0x0) 2312 #define PIO_IRQ0_INTF_SM0_RXNEMPTY_BITS _u(0x00000001) 2313 #define PIO_IRQ0_INTF_SM0_RXNEMPTY_MSB _u(0) 2314 #define PIO_IRQ0_INTF_SM0_RXNEMPTY_LSB _u(0) 2315 #define PIO_IRQ0_INTF_SM0_RXNEMPTY_ACCESS "RW" 2316 // ============================================================================= 2317 // Register : PIO_IRQ0_INTS 2318 // Description : Interrupt status after masking & forcing for irq0 2319 #define PIO_IRQ0_INTS_OFFSET _u(0x00000134) 2320 #define PIO_IRQ0_INTS_BITS _u(0x00000fff) 2321 #define PIO_IRQ0_INTS_RESET _u(0x00000000) 2322 // ----------------------------------------------------------------------------- 2323 // Field : PIO_IRQ0_INTS_SM3 2324 #define PIO_IRQ0_INTS_SM3_RESET _u(0x0) 2325 #define PIO_IRQ0_INTS_SM3_BITS _u(0x00000800) 2326 #define PIO_IRQ0_INTS_SM3_MSB _u(11) 2327 #define PIO_IRQ0_INTS_SM3_LSB _u(11) 2328 #define PIO_IRQ0_INTS_SM3_ACCESS "RO" 2329 // ----------------------------------------------------------------------------- 2330 // Field : PIO_IRQ0_INTS_SM2 2331 #define PIO_IRQ0_INTS_SM2_RESET _u(0x0) 2332 #define PIO_IRQ0_INTS_SM2_BITS _u(0x00000400) 2333 #define PIO_IRQ0_INTS_SM2_MSB _u(10) 2334 #define PIO_IRQ0_INTS_SM2_LSB _u(10) 2335 #define PIO_IRQ0_INTS_SM2_ACCESS "RO" 2336 // ----------------------------------------------------------------------------- 2337 // Field : PIO_IRQ0_INTS_SM1 2338 #define PIO_IRQ0_INTS_SM1_RESET _u(0x0) 2339 #define PIO_IRQ0_INTS_SM1_BITS _u(0x00000200) 2340 #define PIO_IRQ0_INTS_SM1_MSB _u(9) 2341 #define PIO_IRQ0_INTS_SM1_LSB _u(9) 2342 #define PIO_IRQ0_INTS_SM1_ACCESS "RO" 2343 // ----------------------------------------------------------------------------- 2344 // Field : PIO_IRQ0_INTS_SM0 2345 #define PIO_IRQ0_INTS_SM0_RESET _u(0x0) 2346 #define PIO_IRQ0_INTS_SM0_BITS _u(0x00000100) 2347 #define PIO_IRQ0_INTS_SM0_MSB _u(8) 2348 #define PIO_IRQ0_INTS_SM0_LSB _u(8) 2349 #define PIO_IRQ0_INTS_SM0_ACCESS "RO" 2350 // ----------------------------------------------------------------------------- 2351 // Field : PIO_IRQ0_INTS_SM3_TXNFULL 2352 #define PIO_IRQ0_INTS_SM3_TXNFULL_RESET _u(0x0) 2353 #define PIO_IRQ0_INTS_SM3_TXNFULL_BITS _u(0x00000080) 2354 #define PIO_IRQ0_INTS_SM3_TXNFULL_MSB _u(7) 2355 #define PIO_IRQ0_INTS_SM3_TXNFULL_LSB _u(7) 2356 #define PIO_IRQ0_INTS_SM3_TXNFULL_ACCESS "RO" 2357 // ----------------------------------------------------------------------------- 2358 // Field : PIO_IRQ0_INTS_SM2_TXNFULL 2359 #define PIO_IRQ0_INTS_SM2_TXNFULL_RESET _u(0x0) 2360 #define PIO_IRQ0_INTS_SM2_TXNFULL_BITS _u(0x00000040) 2361 #define PIO_IRQ0_INTS_SM2_TXNFULL_MSB _u(6) 2362 #define PIO_IRQ0_INTS_SM2_TXNFULL_LSB _u(6) 2363 #define PIO_IRQ0_INTS_SM2_TXNFULL_ACCESS "RO" 2364 // ----------------------------------------------------------------------------- 2365 // Field : PIO_IRQ0_INTS_SM1_TXNFULL 2366 #define PIO_IRQ0_INTS_SM1_TXNFULL_RESET _u(0x0) 2367 #define PIO_IRQ0_INTS_SM1_TXNFULL_BITS _u(0x00000020) 2368 #define PIO_IRQ0_INTS_SM1_TXNFULL_MSB _u(5) 2369 #define PIO_IRQ0_INTS_SM1_TXNFULL_LSB _u(5) 2370 #define PIO_IRQ0_INTS_SM1_TXNFULL_ACCESS "RO" 2371 // ----------------------------------------------------------------------------- 2372 // Field : PIO_IRQ0_INTS_SM0_TXNFULL 2373 #define PIO_IRQ0_INTS_SM0_TXNFULL_RESET _u(0x0) 2374 #define PIO_IRQ0_INTS_SM0_TXNFULL_BITS _u(0x00000010) 2375 #define PIO_IRQ0_INTS_SM0_TXNFULL_MSB _u(4) 2376 #define PIO_IRQ0_INTS_SM0_TXNFULL_LSB _u(4) 2377 #define PIO_IRQ0_INTS_SM0_TXNFULL_ACCESS "RO" 2378 // ----------------------------------------------------------------------------- 2379 // Field : PIO_IRQ0_INTS_SM3_RXNEMPTY 2380 #define PIO_IRQ0_INTS_SM3_RXNEMPTY_RESET _u(0x0) 2381 #define PIO_IRQ0_INTS_SM3_RXNEMPTY_BITS _u(0x00000008) 2382 #define PIO_IRQ0_INTS_SM3_RXNEMPTY_MSB _u(3) 2383 #define PIO_IRQ0_INTS_SM3_RXNEMPTY_LSB _u(3) 2384 #define PIO_IRQ0_INTS_SM3_RXNEMPTY_ACCESS "RO" 2385 // ----------------------------------------------------------------------------- 2386 // Field : PIO_IRQ0_INTS_SM2_RXNEMPTY 2387 #define PIO_IRQ0_INTS_SM2_RXNEMPTY_RESET _u(0x0) 2388 #define PIO_IRQ0_INTS_SM2_RXNEMPTY_BITS _u(0x00000004) 2389 #define PIO_IRQ0_INTS_SM2_RXNEMPTY_MSB _u(2) 2390 #define PIO_IRQ0_INTS_SM2_RXNEMPTY_LSB _u(2) 2391 #define PIO_IRQ0_INTS_SM2_RXNEMPTY_ACCESS "RO" 2392 // ----------------------------------------------------------------------------- 2393 // Field : PIO_IRQ0_INTS_SM1_RXNEMPTY 2394 #define PIO_IRQ0_INTS_SM1_RXNEMPTY_RESET _u(0x0) 2395 #define PIO_IRQ0_INTS_SM1_RXNEMPTY_BITS _u(0x00000002) 2396 #define PIO_IRQ0_INTS_SM1_RXNEMPTY_MSB _u(1) 2397 #define PIO_IRQ0_INTS_SM1_RXNEMPTY_LSB _u(1) 2398 #define PIO_IRQ0_INTS_SM1_RXNEMPTY_ACCESS "RO" 2399 // ----------------------------------------------------------------------------- 2400 // Field : PIO_IRQ0_INTS_SM0_RXNEMPTY 2401 #define PIO_IRQ0_INTS_SM0_RXNEMPTY_RESET _u(0x0) 2402 #define PIO_IRQ0_INTS_SM0_RXNEMPTY_BITS _u(0x00000001) 2403 #define PIO_IRQ0_INTS_SM0_RXNEMPTY_MSB _u(0) 2404 #define PIO_IRQ0_INTS_SM0_RXNEMPTY_LSB _u(0) 2405 #define PIO_IRQ0_INTS_SM0_RXNEMPTY_ACCESS "RO" 2406 // ============================================================================= 2407 // Register : PIO_IRQ1_INTE 2408 // Description : Interrupt Enable for irq1 2409 #define PIO_IRQ1_INTE_OFFSET _u(0x00000138) 2410 #define PIO_IRQ1_INTE_BITS _u(0x00000fff) 2411 #define PIO_IRQ1_INTE_RESET _u(0x00000000) 2412 // ----------------------------------------------------------------------------- 2413 // Field : PIO_IRQ1_INTE_SM3 2414 #define PIO_IRQ1_INTE_SM3_RESET _u(0x0) 2415 #define PIO_IRQ1_INTE_SM3_BITS _u(0x00000800) 2416 #define PIO_IRQ1_INTE_SM3_MSB _u(11) 2417 #define PIO_IRQ1_INTE_SM3_LSB _u(11) 2418 #define PIO_IRQ1_INTE_SM3_ACCESS "RW" 2419 // ----------------------------------------------------------------------------- 2420 // Field : PIO_IRQ1_INTE_SM2 2421 #define PIO_IRQ1_INTE_SM2_RESET _u(0x0) 2422 #define PIO_IRQ1_INTE_SM2_BITS _u(0x00000400) 2423 #define PIO_IRQ1_INTE_SM2_MSB _u(10) 2424 #define PIO_IRQ1_INTE_SM2_LSB _u(10) 2425 #define PIO_IRQ1_INTE_SM2_ACCESS "RW" 2426 // ----------------------------------------------------------------------------- 2427 // Field : PIO_IRQ1_INTE_SM1 2428 #define PIO_IRQ1_INTE_SM1_RESET _u(0x0) 2429 #define PIO_IRQ1_INTE_SM1_BITS _u(0x00000200) 2430 #define PIO_IRQ1_INTE_SM1_MSB _u(9) 2431 #define PIO_IRQ1_INTE_SM1_LSB _u(9) 2432 #define PIO_IRQ1_INTE_SM1_ACCESS "RW" 2433 // ----------------------------------------------------------------------------- 2434 // Field : PIO_IRQ1_INTE_SM0 2435 #define PIO_IRQ1_INTE_SM0_RESET _u(0x0) 2436 #define PIO_IRQ1_INTE_SM0_BITS _u(0x00000100) 2437 #define PIO_IRQ1_INTE_SM0_MSB _u(8) 2438 #define PIO_IRQ1_INTE_SM0_LSB _u(8) 2439 #define PIO_IRQ1_INTE_SM0_ACCESS "RW" 2440 // ----------------------------------------------------------------------------- 2441 // Field : PIO_IRQ1_INTE_SM3_TXNFULL 2442 #define PIO_IRQ1_INTE_SM3_TXNFULL_RESET _u(0x0) 2443 #define PIO_IRQ1_INTE_SM3_TXNFULL_BITS _u(0x00000080) 2444 #define PIO_IRQ1_INTE_SM3_TXNFULL_MSB _u(7) 2445 #define PIO_IRQ1_INTE_SM3_TXNFULL_LSB _u(7) 2446 #define PIO_IRQ1_INTE_SM3_TXNFULL_ACCESS "RW" 2447 // ----------------------------------------------------------------------------- 2448 // Field : PIO_IRQ1_INTE_SM2_TXNFULL 2449 #define PIO_IRQ1_INTE_SM2_TXNFULL_RESET _u(0x0) 2450 #define PIO_IRQ1_INTE_SM2_TXNFULL_BITS _u(0x00000040) 2451 #define PIO_IRQ1_INTE_SM2_TXNFULL_MSB _u(6) 2452 #define PIO_IRQ1_INTE_SM2_TXNFULL_LSB _u(6) 2453 #define PIO_IRQ1_INTE_SM2_TXNFULL_ACCESS "RW" 2454 // ----------------------------------------------------------------------------- 2455 // Field : PIO_IRQ1_INTE_SM1_TXNFULL 2456 #define PIO_IRQ1_INTE_SM1_TXNFULL_RESET _u(0x0) 2457 #define PIO_IRQ1_INTE_SM1_TXNFULL_BITS _u(0x00000020) 2458 #define PIO_IRQ1_INTE_SM1_TXNFULL_MSB _u(5) 2459 #define PIO_IRQ1_INTE_SM1_TXNFULL_LSB _u(5) 2460 #define PIO_IRQ1_INTE_SM1_TXNFULL_ACCESS "RW" 2461 // ----------------------------------------------------------------------------- 2462 // Field : PIO_IRQ1_INTE_SM0_TXNFULL 2463 #define PIO_IRQ1_INTE_SM0_TXNFULL_RESET _u(0x0) 2464 #define PIO_IRQ1_INTE_SM0_TXNFULL_BITS _u(0x00000010) 2465 #define PIO_IRQ1_INTE_SM0_TXNFULL_MSB _u(4) 2466 #define PIO_IRQ1_INTE_SM0_TXNFULL_LSB _u(4) 2467 #define PIO_IRQ1_INTE_SM0_TXNFULL_ACCESS "RW" 2468 // ----------------------------------------------------------------------------- 2469 // Field : PIO_IRQ1_INTE_SM3_RXNEMPTY 2470 #define PIO_IRQ1_INTE_SM3_RXNEMPTY_RESET _u(0x0) 2471 #define PIO_IRQ1_INTE_SM3_RXNEMPTY_BITS _u(0x00000008) 2472 #define PIO_IRQ1_INTE_SM3_RXNEMPTY_MSB _u(3) 2473 #define PIO_IRQ1_INTE_SM3_RXNEMPTY_LSB _u(3) 2474 #define PIO_IRQ1_INTE_SM3_RXNEMPTY_ACCESS "RW" 2475 // ----------------------------------------------------------------------------- 2476 // Field : PIO_IRQ1_INTE_SM2_RXNEMPTY 2477 #define PIO_IRQ1_INTE_SM2_RXNEMPTY_RESET _u(0x0) 2478 #define PIO_IRQ1_INTE_SM2_RXNEMPTY_BITS _u(0x00000004) 2479 #define PIO_IRQ1_INTE_SM2_RXNEMPTY_MSB _u(2) 2480 #define PIO_IRQ1_INTE_SM2_RXNEMPTY_LSB _u(2) 2481 #define PIO_IRQ1_INTE_SM2_RXNEMPTY_ACCESS "RW" 2482 // ----------------------------------------------------------------------------- 2483 // Field : PIO_IRQ1_INTE_SM1_RXNEMPTY 2484 #define PIO_IRQ1_INTE_SM1_RXNEMPTY_RESET _u(0x0) 2485 #define PIO_IRQ1_INTE_SM1_RXNEMPTY_BITS _u(0x00000002) 2486 #define PIO_IRQ1_INTE_SM1_RXNEMPTY_MSB _u(1) 2487 #define PIO_IRQ1_INTE_SM1_RXNEMPTY_LSB _u(1) 2488 #define PIO_IRQ1_INTE_SM1_RXNEMPTY_ACCESS "RW" 2489 // ----------------------------------------------------------------------------- 2490 // Field : PIO_IRQ1_INTE_SM0_RXNEMPTY 2491 #define PIO_IRQ1_INTE_SM0_RXNEMPTY_RESET _u(0x0) 2492 #define PIO_IRQ1_INTE_SM0_RXNEMPTY_BITS _u(0x00000001) 2493 #define PIO_IRQ1_INTE_SM0_RXNEMPTY_MSB _u(0) 2494 #define PIO_IRQ1_INTE_SM0_RXNEMPTY_LSB _u(0) 2495 #define PIO_IRQ1_INTE_SM0_RXNEMPTY_ACCESS "RW" 2496 // ============================================================================= 2497 // Register : PIO_IRQ1_INTF 2498 // Description : Interrupt Force for irq1 2499 #define PIO_IRQ1_INTF_OFFSET _u(0x0000013c) 2500 #define PIO_IRQ1_INTF_BITS _u(0x00000fff) 2501 #define PIO_IRQ1_INTF_RESET _u(0x00000000) 2502 // ----------------------------------------------------------------------------- 2503 // Field : PIO_IRQ1_INTF_SM3 2504 #define PIO_IRQ1_INTF_SM3_RESET _u(0x0) 2505 #define PIO_IRQ1_INTF_SM3_BITS _u(0x00000800) 2506 #define PIO_IRQ1_INTF_SM3_MSB _u(11) 2507 #define PIO_IRQ1_INTF_SM3_LSB _u(11) 2508 #define PIO_IRQ1_INTF_SM3_ACCESS "RW" 2509 // ----------------------------------------------------------------------------- 2510 // Field : PIO_IRQ1_INTF_SM2 2511 #define PIO_IRQ1_INTF_SM2_RESET _u(0x0) 2512 #define PIO_IRQ1_INTF_SM2_BITS _u(0x00000400) 2513 #define PIO_IRQ1_INTF_SM2_MSB _u(10) 2514 #define PIO_IRQ1_INTF_SM2_LSB _u(10) 2515 #define PIO_IRQ1_INTF_SM2_ACCESS "RW" 2516 // ----------------------------------------------------------------------------- 2517 // Field : PIO_IRQ1_INTF_SM1 2518 #define PIO_IRQ1_INTF_SM1_RESET _u(0x0) 2519 #define PIO_IRQ1_INTF_SM1_BITS _u(0x00000200) 2520 #define PIO_IRQ1_INTF_SM1_MSB _u(9) 2521 #define PIO_IRQ1_INTF_SM1_LSB _u(9) 2522 #define PIO_IRQ1_INTF_SM1_ACCESS "RW" 2523 // ----------------------------------------------------------------------------- 2524 // Field : PIO_IRQ1_INTF_SM0 2525 #define PIO_IRQ1_INTF_SM0_RESET _u(0x0) 2526 #define PIO_IRQ1_INTF_SM0_BITS _u(0x00000100) 2527 #define PIO_IRQ1_INTF_SM0_MSB _u(8) 2528 #define PIO_IRQ1_INTF_SM0_LSB _u(8) 2529 #define PIO_IRQ1_INTF_SM0_ACCESS "RW" 2530 // ----------------------------------------------------------------------------- 2531 // Field : PIO_IRQ1_INTF_SM3_TXNFULL 2532 #define PIO_IRQ1_INTF_SM3_TXNFULL_RESET _u(0x0) 2533 #define PIO_IRQ1_INTF_SM3_TXNFULL_BITS _u(0x00000080) 2534 #define PIO_IRQ1_INTF_SM3_TXNFULL_MSB _u(7) 2535 #define PIO_IRQ1_INTF_SM3_TXNFULL_LSB _u(7) 2536 #define PIO_IRQ1_INTF_SM3_TXNFULL_ACCESS "RW" 2537 // ----------------------------------------------------------------------------- 2538 // Field : PIO_IRQ1_INTF_SM2_TXNFULL 2539 #define PIO_IRQ1_INTF_SM2_TXNFULL_RESET _u(0x0) 2540 #define PIO_IRQ1_INTF_SM2_TXNFULL_BITS _u(0x00000040) 2541 #define PIO_IRQ1_INTF_SM2_TXNFULL_MSB _u(6) 2542 #define PIO_IRQ1_INTF_SM2_TXNFULL_LSB _u(6) 2543 #define PIO_IRQ1_INTF_SM2_TXNFULL_ACCESS "RW" 2544 // ----------------------------------------------------------------------------- 2545 // Field : PIO_IRQ1_INTF_SM1_TXNFULL 2546 #define PIO_IRQ1_INTF_SM1_TXNFULL_RESET _u(0x0) 2547 #define PIO_IRQ1_INTF_SM1_TXNFULL_BITS _u(0x00000020) 2548 #define PIO_IRQ1_INTF_SM1_TXNFULL_MSB _u(5) 2549 #define PIO_IRQ1_INTF_SM1_TXNFULL_LSB _u(5) 2550 #define PIO_IRQ1_INTF_SM1_TXNFULL_ACCESS "RW" 2551 // ----------------------------------------------------------------------------- 2552 // Field : PIO_IRQ1_INTF_SM0_TXNFULL 2553 #define PIO_IRQ1_INTF_SM0_TXNFULL_RESET _u(0x0) 2554 #define PIO_IRQ1_INTF_SM0_TXNFULL_BITS _u(0x00000010) 2555 #define PIO_IRQ1_INTF_SM0_TXNFULL_MSB _u(4) 2556 #define PIO_IRQ1_INTF_SM0_TXNFULL_LSB _u(4) 2557 #define PIO_IRQ1_INTF_SM0_TXNFULL_ACCESS "RW" 2558 // ----------------------------------------------------------------------------- 2559 // Field : PIO_IRQ1_INTF_SM3_RXNEMPTY 2560 #define PIO_IRQ1_INTF_SM3_RXNEMPTY_RESET _u(0x0) 2561 #define PIO_IRQ1_INTF_SM3_RXNEMPTY_BITS _u(0x00000008) 2562 #define PIO_IRQ1_INTF_SM3_RXNEMPTY_MSB _u(3) 2563 #define PIO_IRQ1_INTF_SM3_RXNEMPTY_LSB _u(3) 2564 #define PIO_IRQ1_INTF_SM3_RXNEMPTY_ACCESS "RW" 2565 // ----------------------------------------------------------------------------- 2566 // Field : PIO_IRQ1_INTF_SM2_RXNEMPTY 2567 #define PIO_IRQ1_INTF_SM2_RXNEMPTY_RESET _u(0x0) 2568 #define PIO_IRQ1_INTF_SM2_RXNEMPTY_BITS _u(0x00000004) 2569 #define PIO_IRQ1_INTF_SM2_RXNEMPTY_MSB _u(2) 2570 #define PIO_IRQ1_INTF_SM2_RXNEMPTY_LSB _u(2) 2571 #define PIO_IRQ1_INTF_SM2_RXNEMPTY_ACCESS "RW" 2572 // ----------------------------------------------------------------------------- 2573 // Field : PIO_IRQ1_INTF_SM1_RXNEMPTY 2574 #define PIO_IRQ1_INTF_SM1_RXNEMPTY_RESET _u(0x0) 2575 #define PIO_IRQ1_INTF_SM1_RXNEMPTY_BITS _u(0x00000002) 2576 #define PIO_IRQ1_INTF_SM1_RXNEMPTY_MSB _u(1) 2577 #define PIO_IRQ1_INTF_SM1_RXNEMPTY_LSB _u(1) 2578 #define PIO_IRQ1_INTF_SM1_RXNEMPTY_ACCESS "RW" 2579 // ----------------------------------------------------------------------------- 2580 // Field : PIO_IRQ1_INTF_SM0_RXNEMPTY 2581 #define PIO_IRQ1_INTF_SM0_RXNEMPTY_RESET _u(0x0) 2582 #define PIO_IRQ1_INTF_SM0_RXNEMPTY_BITS _u(0x00000001) 2583 #define PIO_IRQ1_INTF_SM0_RXNEMPTY_MSB _u(0) 2584 #define PIO_IRQ1_INTF_SM0_RXNEMPTY_LSB _u(0) 2585 #define PIO_IRQ1_INTF_SM0_RXNEMPTY_ACCESS "RW" 2586 // ============================================================================= 2587 // Register : PIO_IRQ1_INTS 2588 // Description : Interrupt status after masking & forcing for irq1 2589 #define PIO_IRQ1_INTS_OFFSET _u(0x00000140) 2590 #define PIO_IRQ1_INTS_BITS _u(0x00000fff) 2591 #define PIO_IRQ1_INTS_RESET _u(0x00000000) 2592 // ----------------------------------------------------------------------------- 2593 // Field : PIO_IRQ1_INTS_SM3 2594 #define PIO_IRQ1_INTS_SM3_RESET _u(0x0) 2595 #define PIO_IRQ1_INTS_SM3_BITS _u(0x00000800) 2596 #define PIO_IRQ1_INTS_SM3_MSB _u(11) 2597 #define PIO_IRQ1_INTS_SM3_LSB _u(11) 2598 #define PIO_IRQ1_INTS_SM3_ACCESS "RO" 2599 // ----------------------------------------------------------------------------- 2600 // Field : PIO_IRQ1_INTS_SM2 2601 #define PIO_IRQ1_INTS_SM2_RESET _u(0x0) 2602 #define PIO_IRQ1_INTS_SM2_BITS _u(0x00000400) 2603 #define PIO_IRQ1_INTS_SM2_MSB _u(10) 2604 #define PIO_IRQ1_INTS_SM2_LSB _u(10) 2605 #define PIO_IRQ1_INTS_SM2_ACCESS "RO" 2606 // ----------------------------------------------------------------------------- 2607 // Field : PIO_IRQ1_INTS_SM1 2608 #define PIO_IRQ1_INTS_SM1_RESET _u(0x0) 2609 #define PIO_IRQ1_INTS_SM1_BITS _u(0x00000200) 2610 #define PIO_IRQ1_INTS_SM1_MSB _u(9) 2611 #define PIO_IRQ1_INTS_SM1_LSB _u(9) 2612 #define PIO_IRQ1_INTS_SM1_ACCESS "RO" 2613 // ----------------------------------------------------------------------------- 2614 // Field : PIO_IRQ1_INTS_SM0 2615 #define PIO_IRQ1_INTS_SM0_RESET _u(0x0) 2616 #define PIO_IRQ1_INTS_SM0_BITS _u(0x00000100) 2617 #define PIO_IRQ1_INTS_SM0_MSB _u(8) 2618 #define PIO_IRQ1_INTS_SM0_LSB _u(8) 2619 #define PIO_IRQ1_INTS_SM0_ACCESS "RO" 2620 // ----------------------------------------------------------------------------- 2621 // Field : PIO_IRQ1_INTS_SM3_TXNFULL 2622 #define PIO_IRQ1_INTS_SM3_TXNFULL_RESET _u(0x0) 2623 #define PIO_IRQ1_INTS_SM3_TXNFULL_BITS _u(0x00000080) 2624 #define PIO_IRQ1_INTS_SM3_TXNFULL_MSB _u(7) 2625 #define PIO_IRQ1_INTS_SM3_TXNFULL_LSB _u(7) 2626 #define PIO_IRQ1_INTS_SM3_TXNFULL_ACCESS "RO" 2627 // ----------------------------------------------------------------------------- 2628 // Field : PIO_IRQ1_INTS_SM2_TXNFULL 2629 #define PIO_IRQ1_INTS_SM2_TXNFULL_RESET _u(0x0) 2630 #define PIO_IRQ1_INTS_SM2_TXNFULL_BITS _u(0x00000040) 2631 #define PIO_IRQ1_INTS_SM2_TXNFULL_MSB _u(6) 2632 #define PIO_IRQ1_INTS_SM2_TXNFULL_LSB _u(6) 2633 #define PIO_IRQ1_INTS_SM2_TXNFULL_ACCESS "RO" 2634 // ----------------------------------------------------------------------------- 2635 // Field : PIO_IRQ1_INTS_SM1_TXNFULL 2636 #define PIO_IRQ1_INTS_SM1_TXNFULL_RESET _u(0x0) 2637 #define PIO_IRQ1_INTS_SM1_TXNFULL_BITS _u(0x00000020) 2638 #define PIO_IRQ1_INTS_SM1_TXNFULL_MSB _u(5) 2639 #define PIO_IRQ1_INTS_SM1_TXNFULL_LSB _u(5) 2640 #define PIO_IRQ1_INTS_SM1_TXNFULL_ACCESS "RO" 2641 // ----------------------------------------------------------------------------- 2642 // Field : PIO_IRQ1_INTS_SM0_TXNFULL 2643 #define PIO_IRQ1_INTS_SM0_TXNFULL_RESET _u(0x0) 2644 #define PIO_IRQ1_INTS_SM0_TXNFULL_BITS _u(0x00000010) 2645 #define PIO_IRQ1_INTS_SM0_TXNFULL_MSB _u(4) 2646 #define PIO_IRQ1_INTS_SM0_TXNFULL_LSB _u(4) 2647 #define PIO_IRQ1_INTS_SM0_TXNFULL_ACCESS "RO" 2648 // ----------------------------------------------------------------------------- 2649 // Field : PIO_IRQ1_INTS_SM3_RXNEMPTY 2650 #define PIO_IRQ1_INTS_SM3_RXNEMPTY_RESET _u(0x0) 2651 #define PIO_IRQ1_INTS_SM3_RXNEMPTY_BITS _u(0x00000008) 2652 #define PIO_IRQ1_INTS_SM3_RXNEMPTY_MSB _u(3) 2653 #define PIO_IRQ1_INTS_SM3_RXNEMPTY_LSB _u(3) 2654 #define PIO_IRQ1_INTS_SM3_RXNEMPTY_ACCESS "RO" 2655 // ----------------------------------------------------------------------------- 2656 // Field : PIO_IRQ1_INTS_SM2_RXNEMPTY 2657 #define PIO_IRQ1_INTS_SM2_RXNEMPTY_RESET _u(0x0) 2658 #define PIO_IRQ1_INTS_SM2_RXNEMPTY_BITS _u(0x00000004) 2659 #define PIO_IRQ1_INTS_SM2_RXNEMPTY_MSB _u(2) 2660 #define PIO_IRQ1_INTS_SM2_RXNEMPTY_LSB _u(2) 2661 #define PIO_IRQ1_INTS_SM2_RXNEMPTY_ACCESS "RO" 2662 // ----------------------------------------------------------------------------- 2663 // Field : PIO_IRQ1_INTS_SM1_RXNEMPTY 2664 #define PIO_IRQ1_INTS_SM1_RXNEMPTY_RESET _u(0x0) 2665 #define PIO_IRQ1_INTS_SM1_RXNEMPTY_BITS _u(0x00000002) 2666 #define PIO_IRQ1_INTS_SM1_RXNEMPTY_MSB _u(1) 2667 #define PIO_IRQ1_INTS_SM1_RXNEMPTY_LSB _u(1) 2668 #define PIO_IRQ1_INTS_SM1_RXNEMPTY_ACCESS "RO" 2669 // ----------------------------------------------------------------------------- 2670 // Field : PIO_IRQ1_INTS_SM0_RXNEMPTY 2671 #define PIO_IRQ1_INTS_SM0_RXNEMPTY_RESET _u(0x0) 2672 #define PIO_IRQ1_INTS_SM0_RXNEMPTY_BITS _u(0x00000001) 2673 #define PIO_IRQ1_INTS_SM0_RXNEMPTY_MSB _u(0) 2674 #define PIO_IRQ1_INTS_SM0_RXNEMPTY_LSB _u(0) 2675 #define PIO_IRQ1_INTS_SM0_RXNEMPTY_ACCESS "RO" 2676 // ============================================================================= 2677 #endif // _HARDWARE_REGS_PIO_H 2678 2679