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