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 : HSTX_CTRL 10 // Version : 0 11 // Bus type : apb 12 // Description : Control interface to HSTX. For FIFO write access and status, 13 // see the HSTX_FIFO register block. 14 // ============================================================================= 15 #ifndef _HARDWARE_REGS_HSTX_CTRL_H 16 #define _HARDWARE_REGS_HSTX_CTRL_H 17 // ============================================================================= 18 // Register : HSTX_CTRL_CSR 19 #define HSTX_CTRL_CSR_OFFSET _u(0x00000000) 20 #define HSTX_CTRL_CSR_BITS _u(0xff1f1f73) 21 #define HSTX_CTRL_CSR_RESET _u(0x10050600) 22 // ----------------------------------------------------------------------------- 23 // Field : HSTX_CTRL_CSR_CLKDIV 24 // Description : Clock period of the generated clock, measured in HSTX clock 25 // cycles. Can be odd or even. The generated clock advances only 26 // on cycles where the shift register shifts. 27 // 28 // For example, a clkdiv of 5 would generate a complete output 29 // clock period for every 5 HSTX clocks (or every 10 half-clocks). 30 // 31 // A CLKDIV value of 0 is mapped to a period of 16 HSTX clock 32 // cycles. 33 #define HSTX_CTRL_CSR_CLKDIV_RESET _u(0x1) 34 #define HSTX_CTRL_CSR_CLKDIV_BITS _u(0xf0000000) 35 #define HSTX_CTRL_CSR_CLKDIV_MSB _u(31) 36 #define HSTX_CTRL_CSR_CLKDIV_LSB _u(28) 37 #define HSTX_CTRL_CSR_CLKDIV_ACCESS "RW" 38 // ----------------------------------------------------------------------------- 39 // Field : HSTX_CTRL_CSR_CLKPHASE 40 // Description : Set the initial phase of the generated clock. 41 // 42 // A CLKPHASE of 0 means the clock is initially low, and the first 43 // rising edge occurs after one half period of the generated clock 44 // (i.e. CLKDIV/2 cycles of clk_hstx). Incrementing CLKPHASE by 1 45 // will advance the initial clock phase by one half clk_hstx 46 // period. For example, if CLKDIV=2 and CLKPHASE=1: 47 // 48 // * The clock will be initially low 49 // 50 // * The first rising edge will be 0.5 clk_hstx cycles after 51 // asserting first data 52 // 53 // * The first falling edge will be 1.5 clk_hstx cycles after 54 // asserting first data 55 // 56 // This configuration would be suitable for serialising at a bit 57 // rate of clk_hstx with a centre-aligned DDR clock. 58 // 59 // When the HSTX is halted by clearing CSR_EN, the clock generator 60 // will return to its initial phase as configured by the CLKPHASE 61 // field. 62 // 63 // Note CLKPHASE must be strictly less than double the value of 64 // CLKDIV (one full period), else its operation is undefined. 65 #define HSTX_CTRL_CSR_CLKPHASE_RESET _u(0x0) 66 #define HSTX_CTRL_CSR_CLKPHASE_BITS _u(0x0f000000) 67 #define HSTX_CTRL_CSR_CLKPHASE_MSB _u(27) 68 #define HSTX_CTRL_CSR_CLKPHASE_LSB _u(24) 69 #define HSTX_CTRL_CSR_CLKPHASE_ACCESS "RW" 70 // ----------------------------------------------------------------------------- 71 // Field : HSTX_CTRL_CSR_N_SHIFTS 72 // Description : Number of times to shift the shift register before refilling it 73 // from the FIFO. (A count of how many times it has been shifted, 74 // *not* the total shift distance.) 75 // 76 // A register value of 0 means shift 32 times. 77 #define HSTX_CTRL_CSR_N_SHIFTS_RESET _u(0x05) 78 #define HSTX_CTRL_CSR_N_SHIFTS_BITS _u(0x001f0000) 79 #define HSTX_CTRL_CSR_N_SHIFTS_MSB _u(20) 80 #define HSTX_CTRL_CSR_N_SHIFTS_LSB _u(16) 81 #define HSTX_CTRL_CSR_N_SHIFTS_ACCESS "RW" 82 // ----------------------------------------------------------------------------- 83 // Field : HSTX_CTRL_CSR_SHIFT 84 // Description : How many bits to right-rotate the shift register by each cycle. 85 // 86 // The use of a rotate rather than a shift allows left shifts to 87 // be emulated, by subtracting the left-shift amount from 32. It 88 // also allows data to be repeated, when the product of SHIFT and 89 // N_SHIFTS is greater than 32. 90 #define HSTX_CTRL_CSR_SHIFT_RESET _u(0x06) 91 #define HSTX_CTRL_CSR_SHIFT_BITS _u(0x00001f00) 92 #define HSTX_CTRL_CSR_SHIFT_MSB _u(12) 93 #define HSTX_CTRL_CSR_SHIFT_LSB _u(8) 94 #define HSTX_CTRL_CSR_SHIFT_ACCESS "RW" 95 // ----------------------------------------------------------------------------- 96 // Field : HSTX_CTRL_CSR_COUPLED_SEL 97 // Description : Select which PIO to use for coupled mode operation. 98 #define HSTX_CTRL_CSR_COUPLED_SEL_RESET _u(0x0) 99 #define HSTX_CTRL_CSR_COUPLED_SEL_BITS _u(0x00000060) 100 #define HSTX_CTRL_CSR_COUPLED_SEL_MSB _u(6) 101 #define HSTX_CTRL_CSR_COUPLED_SEL_LSB _u(5) 102 #define HSTX_CTRL_CSR_COUPLED_SEL_ACCESS "RW" 103 // ----------------------------------------------------------------------------- 104 // Field : HSTX_CTRL_CSR_COUPLED_MODE 105 // Description : Enable the PIO-to-HSTX 1:1 connection. The HSTX must be clocked 106 // *directly* from the system clock (not just from some other 107 // clock source of the same frequency) for this synchronous 108 // interface to function correctly. 109 // 110 // When COUPLED_MODE is set, BITx_SEL_P and SEL_N indices 24 111 // through 31 will select bits from the 8-bit PIO-to-HSTX path, 112 // rather than shifter bits. Indices of 0 through 23 will still 113 // index the shift register as normal. 114 // 115 // The PIO outputs connected to the PIO-to-HSTX bus are those same 116 // outputs that would appear on the HSTX-capable pins if those 117 // pins' FUNCSELs were set to PIO instead of HSTX. 118 // 119 // For example, if HSTX is on GPIOs 12 through 19, then PIO 120 // outputs 12 through 19 are connected to the HSTX when coupled 121 // mode is engaged. 122 #define HSTX_CTRL_CSR_COUPLED_MODE_RESET _u(0x0) 123 #define HSTX_CTRL_CSR_COUPLED_MODE_BITS _u(0x00000010) 124 #define HSTX_CTRL_CSR_COUPLED_MODE_MSB _u(4) 125 #define HSTX_CTRL_CSR_COUPLED_MODE_LSB _u(4) 126 #define HSTX_CTRL_CSR_COUPLED_MODE_ACCESS "RW" 127 // ----------------------------------------------------------------------------- 128 // Field : HSTX_CTRL_CSR_EXPAND_EN 129 // Description : Enable the command expander. When 0, raw FIFO data is passed 130 // directly to the output shift register. When 1, the command 131 // expander can perform simple operations such as run length 132 // decoding on data between the FIFO and the shift register. 133 // 134 // Do not change CXPD_EN whilst EN is set. It's safe to set 135 // CXPD_EN simultaneously with setting EN. 136 #define HSTX_CTRL_CSR_EXPAND_EN_RESET _u(0x0) 137 #define HSTX_CTRL_CSR_EXPAND_EN_BITS _u(0x00000002) 138 #define HSTX_CTRL_CSR_EXPAND_EN_MSB _u(1) 139 #define HSTX_CTRL_CSR_EXPAND_EN_LSB _u(1) 140 #define HSTX_CTRL_CSR_EXPAND_EN_ACCESS "RW" 141 // ----------------------------------------------------------------------------- 142 // Field : HSTX_CTRL_CSR_EN 143 // Description : When EN is 1, the HSTX will shift out data as it appears in the 144 // FIFO. As long as there is data, the HSTX shift register will 145 // shift once per clock cycle, and the frequency of popping from 146 // the FIFO is determined by the ratio of SHIFT and SHIFT_THRESH. 147 // 148 // When EN is 0, the FIFO is not popped. The shift counter and 149 // clock generator are also reset to their initial state for as 150 // long as EN is low. Note the initial phase of the clock 151 // generator can be configured by the CLKPHASE field. 152 // 153 // Once the HSTX is enabled again, and data is pushed to the FIFO, 154 // the generated clock's first rising edge will be one half-period 155 // after the first data is launched. 156 #define HSTX_CTRL_CSR_EN_RESET _u(0x0) 157 #define HSTX_CTRL_CSR_EN_BITS _u(0x00000001) 158 #define HSTX_CTRL_CSR_EN_MSB _u(0) 159 #define HSTX_CTRL_CSR_EN_LSB _u(0) 160 #define HSTX_CTRL_CSR_EN_ACCESS "RW" 161 // ============================================================================= 162 // Register : HSTX_CTRL_BIT0 163 // Description : Data control register for output bit 0 164 #define HSTX_CTRL_BIT0_OFFSET _u(0x00000004) 165 #define HSTX_CTRL_BIT0_BITS _u(0x00031f1f) 166 #define HSTX_CTRL_BIT0_RESET _u(0x00000000) 167 // ----------------------------------------------------------------------------- 168 // Field : HSTX_CTRL_BIT0_CLK 169 // Description : Connect this output to the generated clock, rather than the 170 // data shift register. SEL_P and SEL_N are ignored if this bit is 171 // set, but INV can still be set to generate an antiphase clock. 172 #define HSTX_CTRL_BIT0_CLK_RESET _u(0x0) 173 #define HSTX_CTRL_BIT0_CLK_BITS _u(0x00020000) 174 #define HSTX_CTRL_BIT0_CLK_MSB _u(17) 175 #define HSTX_CTRL_BIT0_CLK_LSB _u(17) 176 #define HSTX_CTRL_BIT0_CLK_ACCESS "RW" 177 // ----------------------------------------------------------------------------- 178 // Field : HSTX_CTRL_BIT0_INV 179 // Description : Invert this data output (logical NOT) 180 #define HSTX_CTRL_BIT0_INV_RESET _u(0x0) 181 #define HSTX_CTRL_BIT0_INV_BITS _u(0x00010000) 182 #define HSTX_CTRL_BIT0_INV_MSB _u(16) 183 #define HSTX_CTRL_BIT0_INV_LSB _u(16) 184 #define HSTX_CTRL_BIT0_INV_ACCESS "RW" 185 // ----------------------------------------------------------------------------- 186 // Field : HSTX_CTRL_BIT0_SEL_N 187 // Description : Shift register data bit select for the second half of the HSTX 188 // clock cycle 189 #define HSTX_CTRL_BIT0_SEL_N_RESET _u(0x00) 190 #define HSTX_CTRL_BIT0_SEL_N_BITS _u(0x00001f00) 191 #define HSTX_CTRL_BIT0_SEL_N_MSB _u(12) 192 #define HSTX_CTRL_BIT0_SEL_N_LSB _u(8) 193 #define HSTX_CTRL_BIT0_SEL_N_ACCESS "RW" 194 // ----------------------------------------------------------------------------- 195 // Field : HSTX_CTRL_BIT0_SEL_P 196 // Description : Shift register data bit select for the first half of the HSTX 197 // clock cycle 198 #define HSTX_CTRL_BIT0_SEL_P_RESET _u(0x00) 199 #define HSTX_CTRL_BIT0_SEL_P_BITS _u(0x0000001f) 200 #define HSTX_CTRL_BIT0_SEL_P_MSB _u(4) 201 #define HSTX_CTRL_BIT0_SEL_P_LSB _u(0) 202 #define HSTX_CTRL_BIT0_SEL_P_ACCESS "RW" 203 // ============================================================================= 204 // Register : HSTX_CTRL_BIT1 205 // Description : Data control register for output bit 1 206 #define HSTX_CTRL_BIT1_OFFSET _u(0x00000008) 207 #define HSTX_CTRL_BIT1_BITS _u(0x00031f1f) 208 #define HSTX_CTRL_BIT1_RESET _u(0x00000000) 209 // ----------------------------------------------------------------------------- 210 // Field : HSTX_CTRL_BIT1_CLK 211 // Description : Connect this output to the generated clock, rather than the 212 // data shift register. SEL_P and SEL_N are ignored if this bit is 213 // set, but INV can still be set to generate an antiphase clock. 214 #define HSTX_CTRL_BIT1_CLK_RESET _u(0x0) 215 #define HSTX_CTRL_BIT1_CLK_BITS _u(0x00020000) 216 #define HSTX_CTRL_BIT1_CLK_MSB _u(17) 217 #define HSTX_CTRL_BIT1_CLK_LSB _u(17) 218 #define HSTX_CTRL_BIT1_CLK_ACCESS "RW" 219 // ----------------------------------------------------------------------------- 220 // Field : HSTX_CTRL_BIT1_INV 221 // Description : Invert this data output (logical NOT) 222 #define HSTX_CTRL_BIT1_INV_RESET _u(0x0) 223 #define HSTX_CTRL_BIT1_INV_BITS _u(0x00010000) 224 #define HSTX_CTRL_BIT1_INV_MSB _u(16) 225 #define HSTX_CTRL_BIT1_INV_LSB _u(16) 226 #define HSTX_CTRL_BIT1_INV_ACCESS "RW" 227 // ----------------------------------------------------------------------------- 228 // Field : HSTX_CTRL_BIT1_SEL_N 229 // Description : Shift register data bit select for the second half of the HSTX 230 // clock cycle 231 #define HSTX_CTRL_BIT1_SEL_N_RESET _u(0x00) 232 #define HSTX_CTRL_BIT1_SEL_N_BITS _u(0x00001f00) 233 #define HSTX_CTRL_BIT1_SEL_N_MSB _u(12) 234 #define HSTX_CTRL_BIT1_SEL_N_LSB _u(8) 235 #define HSTX_CTRL_BIT1_SEL_N_ACCESS "RW" 236 // ----------------------------------------------------------------------------- 237 // Field : HSTX_CTRL_BIT1_SEL_P 238 // Description : Shift register data bit select for the first half of the HSTX 239 // clock cycle 240 #define HSTX_CTRL_BIT1_SEL_P_RESET _u(0x00) 241 #define HSTX_CTRL_BIT1_SEL_P_BITS _u(0x0000001f) 242 #define HSTX_CTRL_BIT1_SEL_P_MSB _u(4) 243 #define HSTX_CTRL_BIT1_SEL_P_LSB _u(0) 244 #define HSTX_CTRL_BIT1_SEL_P_ACCESS "RW" 245 // ============================================================================= 246 // Register : HSTX_CTRL_BIT2 247 // Description : Data control register for output bit 2 248 #define HSTX_CTRL_BIT2_OFFSET _u(0x0000000c) 249 #define HSTX_CTRL_BIT2_BITS _u(0x00031f1f) 250 #define HSTX_CTRL_BIT2_RESET _u(0x00000000) 251 // ----------------------------------------------------------------------------- 252 // Field : HSTX_CTRL_BIT2_CLK 253 // Description : Connect this output to the generated clock, rather than the 254 // data shift register. SEL_P and SEL_N are ignored if this bit is 255 // set, but INV can still be set to generate an antiphase clock. 256 #define HSTX_CTRL_BIT2_CLK_RESET _u(0x0) 257 #define HSTX_CTRL_BIT2_CLK_BITS _u(0x00020000) 258 #define HSTX_CTRL_BIT2_CLK_MSB _u(17) 259 #define HSTX_CTRL_BIT2_CLK_LSB _u(17) 260 #define HSTX_CTRL_BIT2_CLK_ACCESS "RW" 261 // ----------------------------------------------------------------------------- 262 // Field : HSTX_CTRL_BIT2_INV 263 // Description : Invert this data output (logical NOT) 264 #define HSTX_CTRL_BIT2_INV_RESET _u(0x0) 265 #define HSTX_CTRL_BIT2_INV_BITS _u(0x00010000) 266 #define HSTX_CTRL_BIT2_INV_MSB _u(16) 267 #define HSTX_CTRL_BIT2_INV_LSB _u(16) 268 #define HSTX_CTRL_BIT2_INV_ACCESS "RW" 269 // ----------------------------------------------------------------------------- 270 // Field : HSTX_CTRL_BIT2_SEL_N 271 // Description : Shift register data bit select for the second half of the HSTX 272 // clock cycle 273 #define HSTX_CTRL_BIT2_SEL_N_RESET _u(0x00) 274 #define HSTX_CTRL_BIT2_SEL_N_BITS _u(0x00001f00) 275 #define HSTX_CTRL_BIT2_SEL_N_MSB _u(12) 276 #define HSTX_CTRL_BIT2_SEL_N_LSB _u(8) 277 #define HSTX_CTRL_BIT2_SEL_N_ACCESS "RW" 278 // ----------------------------------------------------------------------------- 279 // Field : HSTX_CTRL_BIT2_SEL_P 280 // Description : Shift register data bit select for the first half of the HSTX 281 // clock cycle 282 #define HSTX_CTRL_BIT2_SEL_P_RESET _u(0x00) 283 #define HSTX_CTRL_BIT2_SEL_P_BITS _u(0x0000001f) 284 #define HSTX_CTRL_BIT2_SEL_P_MSB _u(4) 285 #define HSTX_CTRL_BIT2_SEL_P_LSB _u(0) 286 #define HSTX_CTRL_BIT2_SEL_P_ACCESS "RW" 287 // ============================================================================= 288 // Register : HSTX_CTRL_BIT3 289 // Description : Data control register for output bit 3 290 #define HSTX_CTRL_BIT3_OFFSET _u(0x00000010) 291 #define HSTX_CTRL_BIT3_BITS _u(0x00031f1f) 292 #define HSTX_CTRL_BIT3_RESET _u(0x00000000) 293 // ----------------------------------------------------------------------------- 294 // Field : HSTX_CTRL_BIT3_CLK 295 // Description : Connect this output to the generated clock, rather than the 296 // data shift register. SEL_P and SEL_N are ignored if this bit is 297 // set, but INV can still be set to generate an antiphase clock. 298 #define HSTX_CTRL_BIT3_CLK_RESET _u(0x0) 299 #define HSTX_CTRL_BIT3_CLK_BITS _u(0x00020000) 300 #define HSTX_CTRL_BIT3_CLK_MSB _u(17) 301 #define HSTX_CTRL_BIT3_CLK_LSB _u(17) 302 #define HSTX_CTRL_BIT3_CLK_ACCESS "RW" 303 // ----------------------------------------------------------------------------- 304 // Field : HSTX_CTRL_BIT3_INV 305 // Description : Invert this data output (logical NOT) 306 #define HSTX_CTRL_BIT3_INV_RESET _u(0x0) 307 #define HSTX_CTRL_BIT3_INV_BITS _u(0x00010000) 308 #define HSTX_CTRL_BIT3_INV_MSB _u(16) 309 #define HSTX_CTRL_BIT3_INV_LSB _u(16) 310 #define HSTX_CTRL_BIT3_INV_ACCESS "RW" 311 // ----------------------------------------------------------------------------- 312 // Field : HSTX_CTRL_BIT3_SEL_N 313 // Description : Shift register data bit select for the second half of the HSTX 314 // clock cycle 315 #define HSTX_CTRL_BIT3_SEL_N_RESET _u(0x00) 316 #define HSTX_CTRL_BIT3_SEL_N_BITS _u(0x00001f00) 317 #define HSTX_CTRL_BIT3_SEL_N_MSB _u(12) 318 #define HSTX_CTRL_BIT3_SEL_N_LSB _u(8) 319 #define HSTX_CTRL_BIT3_SEL_N_ACCESS "RW" 320 // ----------------------------------------------------------------------------- 321 // Field : HSTX_CTRL_BIT3_SEL_P 322 // Description : Shift register data bit select for the first half of the HSTX 323 // clock cycle 324 #define HSTX_CTRL_BIT3_SEL_P_RESET _u(0x00) 325 #define HSTX_CTRL_BIT3_SEL_P_BITS _u(0x0000001f) 326 #define HSTX_CTRL_BIT3_SEL_P_MSB _u(4) 327 #define HSTX_CTRL_BIT3_SEL_P_LSB _u(0) 328 #define HSTX_CTRL_BIT3_SEL_P_ACCESS "RW" 329 // ============================================================================= 330 // Register : HSTX_CTRL_BIT4 331 // Description : Data control register for output bit 4 332 #define HSTX_CTRL_BIT4_OFFSET _u(0x00000014) 333 #define HSTX_CTRL_BIT4_BITS _u(0x00031f1f) 334 #define HSTX_CTRL_BIT4_RESET _u(0x00000000) 335 // ----------------------------------------------------------------------------- 336 // Field : HSTX_CTRL_BIT4_CLK 337 // Description : Connect this output to the generated clock, rather than the 338 // data shift register. SEL_P and SEL_N are ignored if this bit is 339 // set, but INV can still be set to generate an antiphase clock. 340 #define HSTX_CTRL_BIT4_CLK_RESET _u(0x0) 341 #define HSTX_CTRL_BIT4_CLK_BITS _u(0x00020000) 342 #define HSTX_CTRL_BIT4_CLK_MSB _u(17) 343 #define HSTX_CTRL_BIT4_CLK_LSB _u(17) 344 #define HSTX_CTRL_BIT4_CLK_ACCESS "RW" 345 // ----------------------------------------------------------------------------- 346 // Field : HSTX_CTRL_BIT4_INV 347 // Description : Invert this data output (logical NOT) 348 #define HSTX_CTRL_BIT4_INV_RESET _u(0x0) 349 #define HSTX_CTRL_BIT4_INV_BITS _u(0x00010000) 350 #define HSTX_CTRL_BIT4_INV_MSB _u(16) 351 #define HSTX_CTRL_BIT4_INV_LSB _u(16) 352 #define HSTX_CTRL_BIT4_INV_ACCESS "RW" 353 // ----------------------------------------------------------------------------- 354 // Field : HSTX_CTRL_BIT4_SEL_N 355 // Description : Shift register data bit select for the second half of the HSTX 356 // clock cycle 357 #define HSTX_CTRL_BIT4_SEL_N_RESET _u(0x00) 358 #define HSTX_CTRL_BIT4_SEL_N_BITS _u(0x00001f00) 359 #define HSTX_CTRL_BIT4_SEL_N_MSB _u(12) 360 #define HSTX_CTRL_BIT4_SEL_N_LSB _u(8) 361 #define HSTX_CTRL_BIT4_SEL_N_ACCESS "RW" 362 // ----------------------------------------------------------------------------- 363 // Field : HSTX_CTRL_BIT4_SEL_P 364 // Description : Shift register data bit select for the first half of the HSTX 365 // clock cycle 366 #define HSTX_CTRL_BIT4_SEL_P_RESET _u(0x00) 367 #define HSTX_CTRL_BIT4_SEL_P_BITS _u(0x0000001f) 368 #define HSTX_CTRL_BIT4_SEL_P_MSB _u(4) 369 #define HSTX_CTRL_BIT4_SEL_P_LSB _u(0) 370 #define HSTX_CTRL_BIT4_SEL_P_ACCESS "RW" 371 // ============================================================================= 372 // Register : HSTX_CTRL_BIT5 373 // Description : Data control register for output bit 5 374 #define HSTX_CTRL_BIT5_OFFSET _u(0x00000018) 375 #define HSTX_CTRL_BIT5_BITS _u(0x00031f1f) 376 #define HSTX_CTRL_BIT5_RESET _u(0x00000000) 377 // ----------------------------------------------------------------------------- 378 // Field : HSTX_CTRL_BIT5_CLK 379 // Description : Connect this output to the generated clock, rather than the 380 // data shift register. SEL_P and SEL_N are ignored if this bit is 381 // set, but INV can still be set to generate an antiphase clock. 382 #define HSTX_CTRL_BIT5_CLK_RESET _u(0x0) 383 #define HSTX_CTRL_BIT5_CLK_BITS _u(0x00020000) 384 #define HSTX_CTRL_BIT5_CLK_MSB _u(17) 385 #define HSTX_CTRL_BIT5_CLK_LSB _u(17) 386 #define HSTX_CTRL_BIT5_CLK_ACCESS "RW" 387 // ----------------------------------------------------------------------------- 388 // Field : HSTX_CTRL_BIT5_INV 389 // Description : Invert this data output (logical NOT) 390 #define HSTX_CTRL_BIT5_INV_RESET _u(0x0) 391 #define HSTX_CTRL_BIT5_INV_BITS _u(0x00010000) 392 #define HSTX_CTRL_BIT5_INV_MSB _u(16) 393 #define HSTX_CTRL_BIT5_INV_LSB _u(16) 394 #define HSTX_CTRL_BIT5_INV_ACCESS "RW" 395 // ----------------------------------------------------------------------------- 396 // Field : HSTX_CTRL_BIT5_SEL_N 397 // Description : Shift register data bit select for the second half of the HSTX 398 // clock cycle 399 #define HSTX_CTRL_BIT5_SEL_N_RESET _u(0x00) 400 #define HSTX_CTRL_BIT5_SEL_N_BITS _u(0x00001f00) 401 #define HSTX_CTRL_BIT5_SEL_N_MSB _u(12) 402 #define HSTX_CTRL_BIT5_SEL_N_LSB _u(8) 403 #define HSTX_CTRL_BIT5_SEL_N_ACCESS "RW" 404 // ----------------------------------------------------------------------------- 405 // Field : HSTX_CTRL_BIT5_SEL_P 406 // Description : Shift register data bit select for the first half of the HSTX 407 // clock cycle 408 #define HSTX_CTRL_BIT5_SEL_P_RESET _u(0x00) 409 #define HSTX_CTRL_BIT5_SEL_P_BITS _u(0x0000001f) 410 #define HSTX_CTRL_BIT5_SEL_P_MSB _u(4) 411 #define HSTX_CTRL_BIT5_SEL_P_LSB _u(0) 412 #define HSTX_CTRL_BIT5_SEL_P_ACCESS "RW" 413 // ============================================================================= 414 // Register : HSTX_CTRL_BIT6 415 // Description : Data control register for output bit 6 416 #define HSTX_CTRL_BIT6_OFFSET _u(0x0000001c) 417 #define HSTX_CTRL_BIT6_BITS _u(0x00031f1f) 418 #define HSTX_CTRL_BIT6_RESET _u(0x00000000) 419 // ----------------------------------------------------------------------------- 420 // Field : HSTX_CTRL_BIT6_CLK 421 // Description : Connect this output to the generated clock, rather than the 422 // data shift register. SEL_P and SEL_N are ignored if this bit is 423 // set, but INV can still be set to generate an antiphase clock. 424 #define HSTX_CTRL_BIT6_CLK_RESET _u(0x0) 425 #define HSTX_CTRL_BIT6_CLK_BITS _u(0x00020000) 426 #define HSTX_CTRL_BIT6_CLK_MSB _u(17) 427 #define HSTX_CTRL_BIT6_CLK_LSB _u(17) 428 #define HSTX_CTRL_BIT6_CLK_ACCESS "RW" 429 // ----------------------------------------------------------------------------- 430 // Field : HSTX_CTRL_BIT6_INV 431 // Description : Invert this data output (logical NOT) 432 #define HSTX_CTRL_BIT6_INV_RESET _u(0x0) 433 #define HSTX_CTRL_BIT6_INV_BITS _u(0x00010000) 434 #define HSTX_CTRL_BIT6_INV_MSB _u(16) 435 #define HSTX_CTRL_BIT6_INV_LSB _u(16) 436 #define HSTX_CTRL_BIT6_INV_ACCESS "RW" 437 // ----------------------------------------------------------------------------- 438 // Field : HSTX_CTRL_BIT6_SEL_N 439 // Description : Shift register data bit select for the second half of the HSTX 440 // clock cycle 441 #define HSTX_CTRL_BIT6_SEL_N_RESET _u(0x00) 442 #define HSTX_CTRL_BIT6_SEL_N_BITS _u(0x00001f00) 443 #define HSTX_CTRL_BIT6_SEL_N_MSB _u(12) 444 #define HSTX_CTRL_BIT6_SEL_N_LSB _u(8) 445 #define HSTX_CTRL_BIT6_SEL_N_ACCESS "RW" 446 // ----------------------------------------------------------------------------- 447 // Field : HSTX_CTRL_BIT6_SEL_P 448 // Description : Shift register data bit select for the first half of the HSTX 449 // clock cycle 450 #define HSTX_CTRL_BIT6_SEL_P_RESET _u(0x00) 451 #define HSTX_CTRL_BIT6_SEL_P_BITS _u(0x0000001f) 452 #define HSTX_CTRL_BIT6_SEL_P_MSB _u(4) 453 #define HSTX_CTRL_BIT6_SEL_P_LSB _u(0) 454 #define HSTX_CTRL_BIT6_SEL_P_ACCESS "RW" 455 // ============================================================================= 456 // Register : HSTX_CTRL_BIT7 457 // Description : Data control register for output bit 7 458 #define HSTX_CTRL_BIT7_OFFSET _u(0x00000020) 459 #define HSTX_CTRL_BIT7_BITS _u(0x00031f1f) 460 #define HSTX_CTRL_BIT7_RESET _u(0x00000000) 461 // ----------------------------------------------------------------------------- 462 // Field : HSTX_CTRL_BIT7_CLK 463 // Description : Connect this output to the generated clock, rather than the 464 // data shift register. SEL_P and SEL_N are ignored if this bit is 465 // set, but INV can still be set to generate an antiphase clock. 466 #define HSTX_CTRL_BIT7_CLK_RESET _u(0x0) 467 #define HSTX_CTRL_BIT7_CLK_BITS _u(0x00020000) 468 #define HSTX_CTRL_BIT7_CLK_MSB _u(17) 469 #define HSTX_CTRL_BIT7_CLK_LSB _u(17) 470 #define HSTX_CTRL_BIT7_CLK_ACCESS "RW" 471 // ----------------------------------------------------------------------------- 472 // Field : HSTX_CTRL_BIT7_INV 473 // Description : Invert this data output (logical NOT) 474 #define HSTX_CTRL_BIT7_INV_RESET _u(0x0) 475 #define HSTX_CTRL_BIT7_INV_BITS _u(0x00010000) 476 #define HSTX_CTRL_BIT7_INV_MSB _u(16) 477 #define HSTX_CTRL_BIT7_INV_LSB _u(16) 478 #define HSTX_CTRL_BIT7_INV_ACCESS "RW" 479 // ----------------------------------------------------------------------------- 480 // Field : HSTX_CTRL_BIT7_SEL_N 481 // Description : Shift register data bit select for the second half of the HSTX 482 // clock cycle 483 #define HSTX_CTRL_BIT7_SEL_N_RESET _u(0x00) 484 #define HSTX_CTRL_BIT7_SEL_N_BITS _u(0x00001f00) 485 #define HSTX_CTRL_BIT7_SEL_N_MSB _u(12) 486 #define HSTX_CTRL_BIT7_SEL_N_LSB _u(8) 487 #define HSTX_CTRL_BIT7_SEL_N_ACCESS "RW" 488 // ----------------------------------------------------------------------------- 489 // Field : HSTX_CTRL_BIT7_SEL_P 490 // Description : Shift register data bit select for the first half of the HSTX 491 // clock cycle 492 #define HSTX_CTRL_BIT7_SEL_P_RESET _u(0x00) 493 #define HSTX_CTRL_BIT7_SEL_P_BITS _u(0x0000001f) 494 #define HSTX_CTRL_BIT7_SEL_P_MSB _u(4) 495 #define HSTX_CTRL_BIT7_SEL_P_LSB _u(0) 496 #define HSTX_CTRL_BIT7_SEL_P_ACCESS "RW" 497 // ============================================================================= 498 // Register : HSTX_CTRL_EXPAND_SHIFT 499 // Description : Configure the optional shifter inside the command expander 500 #define HSTX_CTRL_EXPAND_SHIFT_OFFSET _u(0x00000024) 501 #define HSTX_CTRL_EXPAND_SHIFT_BITS _u(0x1f1f1f1f) 502 #define HSTX_CTRL_EXPAND_SHIFT_RESET _u(0x01000100) 503 // ----------------------------------------------------------------------------- 504 // Field : HSTX_CTRL_EXPAND_SHIFT_ENC_N_SHIFTS 505 // Description : Number of times to consume from the shift register before 506 // refilling it from the FIFO, when the current command is an 507 // encoded data command (e.g. TMDS). A register value of 0 means 508 // shift 32 times. 509 #define HSTX_CTRL_EXPAND_SHIFT_ENC_N_SHIFTS_RESET _u(0x01) 510 #define HSTX_CTRL_EXPAND_SHIFT_ENC_N_SHIFTS_BITS _u(0x1f000000) 511 #define HSTX_CTRL_EXPAND_SHIFT_ENC_N_SHIFTS_MSB _u(28) 512 #define HSTX_CTRL_EXPAND_SHIFT_ENC_N_SHIFTS_LSB _u(24) 513 #define HSTX_CTRL_EXPAND_SHIFT_ENC_N_SHIFTS_ACCESS "RW" 514 // ----------------------------------------------------------------------------- 515 // Field : HSTX_CTRL_EXPAND_SHIFT_ENC_SHIFT 516 // Description : How many bits to right-rotate the shift register by each time 517 // data is pushed to the output shifter, when the current command 518 // is an encoded data command (e.g. TMDS). 519 #define HSTX_CTRL_EXPAND_SHIFT_ENC_SHIFT_RESET _u(0x00) 520 #define HSTX_CTRL_EXPAND_SHIFT_ENC_SHIFT_BITS _u(0x001f0000) 521 #define HSTX_CTRL_EXPAND_SHIFT_ENC_SHIFT_MSB _u(20) 522 #define HSTX_CTRL_EXPAND_SHIFT_ENC_SHIFT_LSB _u(16) 523 #define HSTX_CTRL_EXPAND_SHIFT_ENC_SHIFT_ACCESS "RW" 524 // ----------------------------------------------------------------------------- 525 // Field : HSTX_CTRL_EXPAND_SHIFT_RAW_N_SHIFTS 526 // Description : Number of times to consume from the shift register before 527 // refilling it from the FIFO, when the current command is a raw 528 // data command. A register value of 0 means shift 32 times. 529 #define HSTX_CTRL_EXPAND_SHIFT_RAW_N_SHIFTS_RESET _u(0x01) 530 #define HSTX_CTRL_EXPAND_SHIFT_RAW_N_SHIFTS_BITS _u(0x00001f00) 531 #define HSTX_CTRL_EXPAND_SHIFT_RAW_N_SHIFTS_MSB _u(12) 532 #define HSTX_CTRL_EXPAND_SHIFT_RAW_N_SHIFTS_LSB _u(8) 533 #define HSTX_CTRL_EXPAND_SHIFT_RAW_N_SHIFTS_ACCESS "RW" 534 // ----------------------------------------------------------------------------- 535 // Field : HSTX_CTRL_EXPAND_SHIFT_RAW_SHIFT 536 // Description : How many bits to right-rotate the shift register by each time 537 // data is pushed to the output shifter, when the current command 538 // is a raw data command. 539 #define HSTX_CTRL_EXPAND_SHIFT_RAW_SHIFT_RESET _u(0x00) 540 #define HSTX_CTRL_EXPAND_SHIFT_RAW_SHIFT_BITS _u(0x0000001f) 541 #define HSTX_CTRL_EXPAND_SHIFT_RAW_SHIFT_MSB _u(4) 542 #define HSTX_CTRL_EXPAND_SHIFT_RAW_SHIFT_LSB _u(0) 543 #define HSTX_CTRL_EXPAND_SHIFT_RAW_SHIFT_ACCESS "RW" 544 // ============================================================================= 545 // Register : HSTX_CTRL_EXPAND_TMDS 546 // Description : Configure the optional TMDS encoder inside the command expander 547 #define HSTX_CTRL_EXPAND_TMDS_OFFSET _u(0x00000028) 548 #define HSTX_CTRL_EXPAND_TMDS_BITS _u(0x00ffffff) 549 #define HSTX_CTRL_EXPAND_TMDS_RESET _u(0x00000000) 550 // ----------------------------------------------------------------------------- 551 // Field : HSTX_CTRL_EXPAND_TMDS_L2_NBITS 552 // Description : Number of valid data bits for the lane 2 TMDS encoder, starting 553 // from bit 7 of the rotated data. Field values of 0 -> 7 encode 554 // counts of 1 -> 8 bits. 555 #define HSTX_CTRL_EXPAND_TMDS_L2_NBITS_RESET _u(0x0) 556 #define HSTX_CTRL_EXPAND_TMDS_L2_NBITS_BITS _u(0x00e00000) 557 #define HSTX_CTRL_EXPAND_TMDS_L2_NBITS_MSB _u(23) 558 #define HSTX_CTRL_EXPAND_TMDS_L2_NBITS_LSB _u(21) 559 #define HSTX_CTRL_EXPAND_TMDS_L2_NBITS_ACCESS "RW" 560 // ----------------------------------------------------------------------------- 561 // Field : HSTX_CTRL_EXPAND_TMDS_L2_ROT 562 // Description : Right-rotate applied to the current shifter data before the 563 // lane 2 TMDS encoder. 564 #define HSTX_CTRL_EXPAND_TMDS_L2_ROT_RESET _u(0x00) 565 #define HSTX_CTRL_EXPAND_TMDS_L2_ROT_BITS _u(0x001f0000) 566 #define HSTX_CTRL_EXPAND_TMDS_L2_ROT_MSB _u(20) 567 #define HSTX_CTRL_EXPAND_TMDS_L2_ROT_LSB _u(16) 568 #define HSTX_CTRL_EXPAND_TMDS_L2_ROT_ACCESS "RW" 569 // ----------------------------------------------------------------------------- 570 // Field : HSTX_CTRL_EXPAND_TMDS_L1_NBITS 571 // Description : Number of valid data bits for the lane 1 TMDS encoder, starting 572 // from bit 7 of the rotated data. Field values of 0 -> 7 encode 573 // counts of 1 -> 8 bits. 574 #define HSTX_CTRL_EXPAND_TMDS_L1_NBITS_RESET _u(0x0) 575 #define HSTX_CTRL_EXPAND_TMDS_L1_NBITS_BITS _u(0x0000e000) 576 #define HSTX_CTRL_EXPAND_TMDS_L1_NBITS_MSB _u(15) 577 #define HSTX_CTRL_EXPAND_TMDS_L1_NBITS_LSB _u(13) 578 #define HSTX_CTRL_EXPAND_TMDS_L1_NBITS_ACCESS "RW" 579 // ----------------------------------------------------------------------------- 580 // Field : HSTX_CTRL_EXPAND_TMDS_L1_ROT 581 // Description : Right-rotate applied to the current shifter data before the 582 // lane 1 TMDS encoder. 583 #define HSTX_CTRL_EXPAND_TMDS_L1_ROT_RESET _u(0x00) 584 #define HSTX_CTRL_EXPAND_TMDS_L1_ROT_BITS _u(0x00001f00) 585 #define HSTX_CTRL_EXPAND_TMDS_L1_ROT_MSB _u(12) 586 #define HSTX_CTRL_EXPAND_TMDS_L1_ROT_LSB _u(8) 587 #define HSTX_CTRL_EXPAND_TMDS_L1_ROT_ACCESS "RW" 588 // ----------------------------------------------------------------------------- 589 // Field : HSTX_CTRL_EXPAND_TMDS_L0_NBITS 590 // Description : Number of valid data bits for the lane 0 TMDS encoder, starting 591 // from bit 7 of the rotated data. Field values of 0 -> 7 encode 592 // counts of 1 -> 8 bits. 593 #define HSTX_CTRL_EXPAND_TMDS_L0_NBITS_RESET _u(0x0) 594 #define HSTX_CTRL_EXPAND_TMDS_L0_NBITS_BITS _u(0x000000e0) 595 #define HSTX_CTRL_EXPAND_TMDS_L0_NBITS_MSB _u(7) 596 #define HSTX_CTRL_EXPAND_TMDS_L0_NBITS_LSB _u(5) 597 #define HSTX_CTRL_EXPAND_TMDS_L0_NBITS_ACCESS "RW" 598 // ----------------------------------------------------------------------------- 599 // Field : HSTX_CTRL_EXPAND_TMDS_L0_ROT 600 // Description : Right-rotate applied to the current shifter data before the 601 // lane 0 TMDS encoder. 602 #define HSTX_CTRL_EXPAND_TMDS_L0_ROT_RESET _u(0x00) 603 #define HSTX_CTRL_EXPAND_TMDS_L0_ROT_BITS _u(0x0000001f) 604 #define HSTX_CTRL_EXPAND_TMDS_L0_ROT_MSB _u(4) 605 #define HSTX_CTRL_EXPAND_TMDS_L0_ROT_LSB _u(0) 606 #define HSTX_CTRL_EXPAND_TMDS_L0_ROT_ACCESS "RW" 607 // ============================================================================= 608 #endif // _HARDWARE_REGS_HSTX_CTRL_H 609 610