19609e3e9SSteven J. Hill /* SPDX-License-Identifier: GPL-2.0 */
29609e3e9SSteven J. Hill /* Octeon CIU definitions
354293ec3SDavid Daney  *
49609e3e9SSteven J. Hill  * Copyright (C) 2003-2018 Cavium, Inc.
59609e3e9SSteven J. Hill  */
654293ec3SDavid Daney 
754293ec3SDavid Daney #ifndef __CVMX_CIU_DEFS_H__
854293ec3SDavid Daney #define __CVMX_CIU_DEFS_H__
954293ec3SDavid Daney 
109609e3e9SSteven J. Hill #include <asm/bitfield.h>
119609e3e9SSteven J. Hill 
12aa32a955SDavid Daney #define CVMX_CIU_BIST (CVMX_ADD_IO_SEG(0x0001070000000730ull))
13aa32a955SDavid Daney #define CVMX_CIU_BLOCK_INT (CVMX_ADD_IO_SEG(0x00010700000007C0ull))
14aa32a955SDavid Daney #define CVMX_CIU_DINT (CVMX_ADD_IO_SEG(0x0001070000000720ull))
15c5aa59e8SDavid Daney #define CVMX_CIU_EN2_IOX_INT(offset) (CVMX_ADD_IO_SEG(0x000107000000A600ull) + ((offset) & 1) * 8)
16c5aa59e8SDavid Daney #define CVMX_CIU_EN2_IOX_INT_W1C(offset) (CVMX_ADD_IO_SEG(0x000107000000CE00ull) + ((offset) & 1) * 8)
17c5aa59e8SDavid Daney #define CVMX_CIU_EN2_IOX_INT_W1S(offset) (CVMX_ADD_IO_SEG(0x000107000000AE00ull) + ((offset) & 1) * 8)
18c5aa59e8SDavid Daney #define CVMX_CIU_EN2_PPX_IP2(offset) (CVMX_ADD_IO_SEG(0x000107000000A000ull) + ((offset) & 15) * 8)
19c5aa59e8SDavid Daney #define CVMX_CIU_EN2_PPX_IP2_W1C(offset) (CVMX_ADD_IO_SEG(0x000107000000C800ull) + ((offset) & 15) * 8)
20c5aa59e8SDavid Daney #define CVMX_CIU_EN2_PPX_IP2_W1S(offset) (CVMX_ADD_IO_SEG(0x000107000000A800ull) + ((offset) & 15) * 8)
21c5aa59e8SDavid Daney #define CVMX_CIU_EN2_PPX_IP3(offset) (CVMX_ADD_IO_SEG(0x000107000000A200ull) + ((offset) & 15) * 8)
22c5aa59e8SDavid Daney #define CVMX_CIU_EN2_PPX_IP3_W1C(offset) (CVMX_ADD_IO_SEG(0x000107000000CA00ull) + ((offset) & 15) * 8)
23c5aa59e8SDavid Daney #define CVMX_CIU_EN2_PPX_IP3_W1S(offset) (CVMX_ADD_IO_SEG(0x000107000000AA00ull) + ((offset) & 15) * 8)
24c5aa59e8SDavid Daney #define CVMX_CIU_EN2_PPX_IP4(offset) (CVMX_ADD_IO_SEG(0x000107000000A400ull) + ((offset) & 15) * 8)
25c5aa59e8SDavid Daney #define CVMX_CIU_EN2_PPX_IP4_W1C(offset) (CVMX_ADD_IO_SEG(0x000107000000CC00ull) + ((offset) & 15) * 8)
26c5aa59e8SDavid Daney #define CVMX_CIU_EN2_PPX_IP4_W1S(offset) (CVMX_ADD_IO_SEG(0x000107000000AC00ull) + ((offset) & 15) * 8)
27aa32a955SDavid Daney #define CVMX_CIU_FUSE (CVMX_ADD_IO_SEG(0x0001070000000728ull))
28aa32a955SDavid Daney #define CVMX_CIU_GSTOP (CVMX_ADD_IO_SEG(0x0001070000000710ull))
29aa32a955SDavid Daney #define CVMX_CIU_INT33_SUM0 (CVMX_ADD_IO_SEG(0x0001070000000110ull))
30aa32a955SDavid Daney #define CVMX_CIU_INTX_EN0(offset) (CVMX_ADD_IO_SEG(0x0001070000000200ull) + ((offset) & 63) * 16)
31aa32a955SDavid Daney #define CVMX_CIU_INTX_EN0_W1C(offset) (CVMX_ADD_IO_SEG(0x0001070000002200ull) + ((offset) & 63) * 16)
32aa32a955SDavid Daney #define CVMX_CIU_INTX_EN0_W1S(offset) (CVMX_ADD_IO_SEG(0x0001070000006200ull) + ((offset) & 63) * 16)
33aa32a955SDavid Daney #define CVMX_CIU_INTX_EN1(offset) (CVMX_ADD_IO_SEG(0x0001070000000208ull) + ((offset) & 63) * 16)
34aa32a955SDavid Daney #define CVMX_CIU_INTX_EN1_W1C(offset) (CVMX_ADD_IO_SEG(0x0001070000002208ull) + ((offset) & 63) * 16)
35aa32a955SDavid Daney #define CVMX_CIU_INTX_EN1_W1S(offset) (CVMX_ADD_IO_SEG(0x0001070000006208ull) + ((offset) & 63) * 16)
36aa32a955SDavid Daney #define CVMX_CIU_INTX_EN4_0(offset) (CVMX_ADD_IO_SEG(0x0001070000000C80ull) + ((offset) & 15) * 16)
37aa32a955SDavid Daney #define CVMX_CIU_INTX_EN4_0_W1C(offset) (CVMX_ADD_IO_SEG(0x0001070000002C80ull) + ((offset) & 15) * 16)
38aa32a955SDavid Daney #define CVMX_CIU_INTX_EN4_0_W1S(offset) (CVMX_ADD_IO_SEG(0x0001070000006C80ull) + ((offset) & 15) * 16)
39aa32a955SDavid Daney #define CVMX_CIU_INTX_EN4_1(offset) (CVMX_ADD_IO_SEG(0x0001070000000C88ull) + ((offset) & 15) * 16)
40aa32a955SDavid Daney #define CVMX_CIU_INTX_EN4_1_W1C(offset) (CVMX_ADD_IO_SEG(0x0001070000002C88ull) + ((offset) & 15) * 16)
41aa32a955SDavid Daney #define CVMX_CIU_INTX_EN4_1_W1S(offset) (CVMX_ADD_IO_SEG(0x0001070000006C88ull) + ((offset) & 15) * 16)
42aa32a955SDavid Daney #define CVMX_CIU_INTX_SUM0(offset) (CVMX_ADD_IO_SEG(0x0001070000000000ull) + ((offset) & 63) * 8)
43aa32a955SDavid Daney #define CVMX_CIU_INTX_SUM4(offset) (CVMX_ADD_IO_SEG(0x0001070000000C00ull) + ((offset) & 15) * 8)
44aa32a955SDavid Daney #define CVMX_CIU_INT_DBG_SEL (CVMX_ADD_IO_SEG(0x00010700000007D0ull))
45aa32a955SDavid Daney #define CVMX_CIU_INT_SUM1 (CVMX_ADD_IO_SEG(0x0001070000000108ull))
46c5aa59e8SDavid Daney static inline uint64_t CVMX_CIU_MBOX_CLRX(unsigned long offset)
47c5aa59e8SDavid Daney {
48c5aa59e8SDavid Daney 	switch (cvmx_get_octeon_family()) {
49c5aa59e8SDavid Daney 	case OCTEON_CN30XX & OCTEON_FAMILY_MASK:
50c5aa59e8SDavid Daney 		return CVMX_ADD_IO_SEG(0x0001070000000680ull) + (offset) * 8;
51c5aa59e8SDavid Daney 	case OCTEON_CN52XX & OCTEON_FAMILY_MASK:
52c5aa59e8SDavid Daney 	case OCTEON_CNF71XX & OCTEON_FAMILY_MASK:
53c5aa59e8SDavid Daney 	case OCTEON_CN61XX & OCTEON_FAMILY_MASK:
54c5aa59e8SDavid Daney 		return CVMX_ADD_IO_SEG(0x0001070000000680ull) + (offset) * 8;
55c5aa59e8SDavid Daney 	case OCTEON_CN31XX & OCTEON_FAMILY_MASK:
56c5aa59e8SDavid Daney 	case OCTEON_CN50XX & OCTEON_FAMILY_MASK:
57c5aa59e8SDavid Daney 		return CVMX_ADD_IO_SEG(0x0001070000000680ull) + (offset) * 8;
58c5aa59e8SDavid Daney 	case OCTEON_CN38XX & OCTEON_FAMILY_MASK:
59c5aa59e8SDavid Daney 	case OCTEON_CN58XX & OCTEON_FAMILY_MASK:
60c5aa59e8SDavid Daney 		return CVMX_ADD_IO_SEG(0x0001070000000680ull) + (offset) * 8;
61c5aa59e8SDavid Daney 	case OCTEON_CN56XX & OCTEON_FAMILY_MASK:
62c5aa59e8SDavid Daney 		return CVMX_ADD_IO_SEG(0x0001070000000680ull) + (offset) * 8;
63c5aa59e8SDavid Daney 	case OCTEON_CN66XX & OCTEON_FAMILY_MASK:
64c5aa59e8SDavid Daney 		return CVMX_ADD_IO_SEG(0x0001070000000680ull) + (offset) * 8;
65c5aa59e8SDavid Daney 	case OCTEON_CN63XX & OCTEON_FAMILY_MASK:
66c5aa59e8SDavid Daney 		return CVMX_ADD_IO_SEG(0x0001070000000680ull) + (offset) * 8;
67c5aa59e8SDavid Daney 	case OCTEON_CN68XX & OCTEON_FAMILY_MASK:
68c5aa59e8SDavid Daney 		return CVMX_ADD_IO_SEG(0x0001070100100600ull) + (offset) * 8;
69c5aa59e8SDavid Daney 	}
70c5aa59e8SDavid Daney 	return CVMX_ADD_IO_SEG(0x0001070000000680ull) + (offset) * 8;
71c5aa59e8SDavid Daney }
72c5aa59e8SDavid Daney 
73c5aa59e8SDavid Daney static inline uint64_t CVMX_CIU_MBOX_SETX(unsigned long offset)
74c5aa59e8SDavid Daney {
75c5aa59e8SDavid Daney 	switch (cvmx_get_octeon_family()) {
76c5aa59e8SDavid Daney 	case OCTEON_CN30XX & OCTEON_FAMILY_MASK:
77c5aa59e8SDavid Daney 		return CVMX_ADD_IO_SEG(0x0001070000000600ull) + (offset) * 8;
78c5aa59e8SDavid Daney 	case OCTEON_CN52XX & OCTEON_FAMILY_MASK:
79c5aa59e8SDavid Daney 	case OCTEON_CNF71XX & OCTEON_FAMILY_MASK:
80c5aa59e8SDavid Daney 	case OCTEON_CN61XX & OCTEON_FAMILY_MASK:
81c5aa59e8SDavid Daney 		return CVMX_ADD_IO_SEG(0x0001070000000600ull) + (offset) * 8;
82c5aa59e8SDavid Daney 	case OCTEON_CN31XX & OCTEON_FAMILY_MASK:
83c5aa59e8SDavid Daney 	case OCTEON_CN50XX & OCTEON_FAMILY_MASK:
84c5aa59e8SDavid Daney 		return CVMX_ADD_IO_SEG(0x0001070000000600ull) + (offset) * 8;
85c5aa59e8SDavid Daney 	case OCTEON_CN38XX & OCTEON_FAMILY_MASK:
86c5aa59e8SDavid Daney 	case OCTEON_CN58XX & OCTEON_FAMILY_MASK:
87c5aa59e8SDavid Daney 		return CVMX_ADD_IO_SEG(0x0001070000000600ull) + (offset) * 8;
88c5aa59e8SDavid Daney 	case OCTEON_CN56XX & OCTEON_FAMILY_MASK:
89c5aa59e8SDavid Daney 		return CVMX_ADD_IO_SEG(0x0001070000000600ull) + (offset) * 8;
90c5aa59e8SDavid Daney 	case OCTEON_CN66XX & OCTEON_FAMILY_MASK:
91c5aa59e8SDavid Daney 		return CVMX_ADD_IO_SEG(0x0001070000000600ull) + (offset) * 8;
92c5aa59e8SDavid Daney 	case OCTEON_CN63XX & OCTEON_FAMILY_MASK:
93c5aa59e8SDavid Daney 		return CVMX_ADD_IO_SEG(0x0001070000000600ull) + (offset) * 8;
94c5aa59e8SDavid Daney 	case OCTEON_CN68XX & OCTEON_FAMILY_MASK:
95c5aa59e8SDavid Daney 		return CVMX_ADD_IO_SEG(0x0001070100100400ull) + (offset) * 8;
96c5aa59e8SDavid Daney 	}
97c5aa59e8SDavid Daney 	return CVMX_ADD_IO_SEG(0x0001070000000600ull) + (offset) * 8;
98c5aa59e8SDavid Daney }
99c5aa59e8SDavid Daney 
100aa32a955SDavid Daney #define CVMX_CIU_NMI (CVMX_ADD_IO_SEG(0x0001070000000718ull))
101aa32a955SDavid Daney #define CVMX_CIU_PCI_INTA (CVMX_ADD_IO_SEG(0x0001070000000750ull))
102c5aa59e8SDavid Daney #define CVMX_CIU_PP_BIST_STAT (CVMX_ADD_IO_SEG(0x00010700000007E0ull))
103aa32a955SDavid Daney #define CVMX_CIU_PP_DBG (CVMX_ADD_IO_SEG(0x0001070000000708ull))
104c5aa59e8SDavid Daney static inline uint64_t CVMX_CIU_PP_POKEX(unsigned long offset)
105c5aa59e8SDavid Daney {
106c5aa59e8SDavid Daney 	switch (cvmx_get_octeon_family()) {
107c5aa59e8SDavid Daney 	case OCTEON_CN30XX & OCTEON_FAMILY_MASK:
108c5aa59e8SDavid Daney 		return CVMX_ADD_IO_SEG(0x0001070000000580ull) + (offset) * 8;
109c5aa59e8SDavid Daney 	case OCTEON_CN52XX & OCTEON_FAMILY_MASK:
110c5aa59e8SDavid Daney 	case OCTEON_CNF71XX & OCTEON_FAMILY_MASK:
111c5aa59e8SDavid Daney 	case OCTEON_CN61XX & OCTEON_FAMILY_MASK:
1121fb6e539SSteven J. Hill 	case OCTEON_CN70XX & OCTEON_FAMILY_MASK:
113c5aa59e8SDavid Daney 		return CVMX_ADD_IO_SEG(0x0001070000000580ull) + (offset) * 8;
114c5aa59e8SDavid Daney 	case OCTEON_CN31XX & OCTEON_FAMILY_MASK:
115c5aa59e8SDavid Daney 	case OCTEON_CN50XX & OCTEON_FAMILY_MASK:
116c5aa59e8SDavid Daney 		return CVMX_ADD_IO_SEG(0x0001070000000580ull) + (offset) * 8;
117c5aa59e8SDavid Daney 	case OCTEON_CN38XX & OCTEON_FAMILY_MASK:
118c5aa59e8SDavid Daney 	case OCTEON_CN58XX & OCTEON_FAMILY_MASK:
119c5aa59e8SDavid Daney 		return CVMX_ADD_IO_SEG(0x0001070000000580ull) + (offset) * 8;
120c5aa59e8SDavid Daney 	case OCTEON_CN56XX & OCTEON_FAMILY_MASK:
121c5aa59e8SDavid Daney 		return CVMX_ADD_IO_SEG(0x0001070000000580ull) + (offset) * 8;
122c5aa59e8SDavid Daney 	case OCTEON_CN66XX & OCTEON_FAMILY_MASK:
123c5aa59e8SDavid Daney 		return CVMX_ADD_IO_SEG(0x0001070000000580ull) + (offset) * 8;
124c5aa59e8SDavid Daney 	case OCTEON_CN63XX & OCTEON_FAMILY_MASK:
125c5aa59e8SDavid Daney 		return CVMX_ADD_IO_SEG(0x0001070000000580ull) + (offset) * 8;
126c5aa59e8SDavid Daney 	case OCTEON_CN68XX & OCTEON_FAMILY_MASK:
127c5aa59e8SDavid Daney 		return CVMX_ADD_IO_SEG(0x0001070100100200ull) + (offset) * 8;
1281fb6e539SSteven J. Hill 	case OCTEON_CNF75XX & OCTEON_FAMILY_MASK:
1291fb6e539SSteven J. Hill 	case OCTEON_CN73XX & OCTEON_FAMILY_MASK:
1301fb6e539SSteven J. Hill 	case OCTEON_CN78XX & OCTEON_FAMILY_MASK:
1311fb6e539SSteven J. Hill 		return CVMX_ADD_IO_SEG(0x0001010000030000ull) + (offset) * 8;
132c5aa59e8SDavid Daney 	}
133c5aa59e8SDavid Daney 	return CVMX_ADD_IO_SEG(0x0001070000000580ull) + (offset) * 8;
134c5aa59e8SDavid Daney }
135c5aa59e8SDavid Daney 
136aa32a955SDavid Daney #define CVMX_CIU_PP_RST (CVMX_ADD_IO_SEG(0x0001070000000700ull))
137aa32a955SDavid Daney #define CVMX_CIU_QLM0 (CVMX_ADD_IO_SEG(0x0001070000000780ull))
138aa32a955SDavid Daney #define CVMX_CIU_QLM1 (CVMX_ADD_IO_SEG(0x0001070000000788ull))
139aa32a955SDavid Daney #define CVMX_CIU_QLM2 (CVMX_ADD_IO_SEG(0x0001070000000790ull))
140c5aa59e8SDavid Daney #define CVMX_CIU_QLM3 (CVMX_ADD_IO_SEG(0x0001070000000798ull))
141c5aa59e8SDavid Daney #define CVMX_CIU_QLM4 (CVMX_ADD_IO_SEG(0x00010700000007A0ull))
142aa32a955SDavid Daney #define CVMX_CIU_QLM_DCOK (CVMX_ADD_IO_SEG(0x0001070000000760ull))
143aa32a955SDavid Daney #define CVMX_CIU_QLM_JTGC (CVMX_ADD_IO_SEG(0x0001070000000768ull))
144aa32a955SDavid Daney #define CVMX_CIU_QLM_JTGD (CVMX_ADD_IO_SEG(0x0001070000000770ull))
145aa32a955SDavid Daney #define CVMX_CIU_SOFT_BIST (CVMX_ADD_IO_SEG(0x0001070000000738ull))
146aa32a955SDavid Daney #define CVMX_CIU_SOFT_PRST (CVMX_ADD_IO_SEG(0x0001070000000748ull))
147aa32a955SDavid Daney #define CVMX_CIU_SOFT_PRST1 (CVMX_ADD_IO_SEG(0x0001070000000758ull))
148c5aa59e8SDavid Daney #define CVMX_CIU_SOFT_PRST2 (CVMX_ADD_IO_SEG(0x00010700000007D8ull))
149c5aa59e8SDavid Daney #define CVMX_CIU_SOFT_PRST3 (CVMX_ADD_IO_SEG(0x00010700000007E0ull))
150aa32a955SDavid Daney #define CVMX_CIU_SOFT_RST (CVMX_ADD_IO_SEG(0x0001070000000740ull))
151c5aa59e8SDavid Daney #define CVMX_CIU_SUM1_IOX_INT(offset) (CVMX_ADD_IO_SEG(0x0001070000008600ull) + ((offset) & 1) * 8)
152c5aa59e8SDavid Daney #define CVMX_CIU_SUM1_PPX_IP2(offset) (CVMX_ADD_IO_SEG(0x0001070000008000ull) + ((offset) & 15) * 8)
153c5aa59e8SDavid Daney #define CVMX_CIU_SUM1_PPX_IP3(offset) (CVMX_ADD_IO_SEG(0x0001070000008200ull) + ((offset) & 15) * 8)
154c5aa59e8SDavid Daney #define CVMX_CIU_SUM1_PPX_IP4(offset) (CVMX_ADD_IO_SEG(0x0001070000008400ull) + ((offset) & 15) * 8)
155c5aa59e8SDavid Daney #define CVMX_CIU_SUM2_IOX_INT(offset) (CVMX_ADD_IO_SEG(0x0001070000008E00ull) + ((offset) & 1) * 8)
156c5aa59e8SDavid Daney #define CVMX_CIU_SUM2_PPX_IP2(offset) (CVMX_ADD_IO_SEG(0x0001070000008800ull) + ((offset) & 15) * 8)
157c5aa59e8SDavid Daney #define CVMX_CIU_SUM2_PPX_IP3(offset) (CVMX_ADD_IO_SEG(0x0001070000008A00ull) + ((offset) & 15) * 8)
158c5aa59e8SDavid Daney #define CVMX_CIU_SUM2_PPX_IP4(offset) (CVMX_ADD_IO_SEG(0x0001070000008C00ull) + ((offset) & 15) * 8)
159c5aa59e8SDavid Daney #define CVMX_CIU_TIMX(offset) (CVMX_ADD_IO_SEG(0x0001070000000480ull) + ((offset) & 15) * 8)
160c5aa59e8SDavid Daney #define CVMX_CIU_TIM_MULTI_CAST (CVMX_ADD_IO_SEG(0x000107000000C200ull))
161c5aa59e8SDavid Daney static inline uint64_t CVMX_CIU_WDOGX(unsigned long offset)
162c5aa59e8SDavid Daney {
163c5aa59e8SDavid Daney 	switch (cvmx_get_octeon_family()) {
164c5aa59e8SDavid Daney 	case OCTEON_CN30XX & OCTEON_FAMILY_MASK:
165c5aa59e8SDavid Daney 		return CVMX_ADD_IO_SEG(0x0001070000000500ull) + (offset) * 8;
166c5aa59e8SDavid Daney 	case OCTEON_CN52XX & OCTEON_FAMILY_MASK:
167c5aa59e8SDavid Daney 	case OCTEON_CNF71XX & OCTEON_FAMILY_MASK:
168c5aa59e8SDavid Daney 	case OCTEON_CN61XX & OCTEON_FAMILY_MASK:
1691fb6e539SSteven J. Hill 	case OCTEON_CN70XX & OCTEON_FAMILY_MASK:
170c5aa59e8SDavid Daney 		return CVMX_ADD_IO_SEG(0x0001070000000500ull) + (offset) * 8;
171c5aa59e8SDavid Daney 	case OCTEON_CN31XX & OCTEON_FAMILY_MASK:
172c5aa59e8SDavid Daney 	case OCTEON_CN50XX & OCTEON_FAMILY_MASK:
173c5aa59e8SDavid Daney 		return CVMX_ADD_IO_SEG(0x0001070000000500ull) + (offset) * 8;
174c5aa59e8SDavid Daney 	case OCTEON_CN38XX & OCTEON_FAMILY_MASK:
175c5aa59e8SDavid Daney 	case OCTEON_CN58XX & OCTEON_FAMILY_MASK:
176c5aa59e8SDavid Daney 		return CVMX_ADD_IO_SEG(0x0001070000000500ull) + (offset) * 8;
177c5aa59e8SDavid Daney 	case OCTEON_CN56XX & OCTEON_FAMILY_MASK:
178c5aa59e8SDavid Daney 		return CVMX_ADD_IO_SEG(0x0001070000000500ull) + (offset) * 8;
179c5aa59e8SDavid Daney 	case OCTEON_CN66XX & OCTEON_FAMILY_MASK:
180c5aa59e8SDavid Daney 		return CVMX_ADD_IO_SEG(0x0001070000000500ull) + (offset) * 8;
181c5aa59e8SDavid Daney 	case OCTEON_CN63XX & OCTEON_FAMILY_MASK:
182c5aa59e8SDavid Daney 		return CVMX_ADD_IO_SEG(0x0001070000000500ull) + (offset) * 8;
183c5aa59e8SDavid Daney 	case OCTEON_CN68XX & OCTEON_FAMILY_MASK:
184c5aa59e8SDavid Daney 		return CVMX_ADD_IO_SEG(0x0001070100100000ull) + (offset) * 8;
1851fb6e539SSteven J. Hill 	case OCTEON_CNF75XX & OCTEON_FAMILY_MASK:
1861fb6e539SSteven J. Hill 	case OCTEON_CN73XX & OCTEON_FAMILY_MASK:
1871fb6e539SSteven J. Hill 	case OCTEON_CN78XX & OCTEON_FAMILY_MASK:
1881fb6e539SSteven J. Hill 		return CVMX_ADD_IO_SEG(0x0001010000020000ull) + (offset) * 8;
189c5aa59e8SDavid Daney 	}
190c5aa59e8SDavid Daney 	return CVMX_ADD_IO_SEG(0x0001070000000500ull) + (offset) * 8;
191c5aa59e8SDavid Daney }
19254293ec3SDavid Daney 
1939609e3e9SSteven J. Hill 
194769f4372SSteven J. Hill union cvmx_ciu_qlm {
195aa32a955SDavid Daney 	uint64_t u64;
196769f4372SSteven J. Hill 	struct cvmx_ciu_qlm_s {
1979609e3e9SSteven J. Hill 		__BITFIELD_FIELD(uint64_t g2bypass:1,
1989609e3e9SSteven J. Hill 		__BITFIELD_FIELD(uint64_t reserved_53_62:10,
1999609e3e9SSteven J. Hill 		__BITFIELD_FIELD(uint64_t g2deemph:5,
2009609e3e9SSteven J. Hill 		__BITFIELD_FIELD(uint64_t reserved_45_47:3,
2019609e3e9SSteven J. Hill 		__BITFIELD_FIELD(uint64_t g2margin:5,
2029609e3e9SSteven J. Hill 		__BITFIELD_FIELD(uint64_t reserved_32_39:8,
2039609e3e9SSteven J. Hill 		__BITFIELD_FIELD(uint64_t txbypass:1,
2049609e3e9SSteven J. Hill 		__BITFIELD_FIELD(uint64_t reserved_21_30:10,
2059609e3e9SSteven J. Hill 		__BITFIELD_FIELD(uint64_t txdeemph:5,
2069609e3e9SSteven J. Hill 		__BITFIELD_FIELD(uint64_t reserved_13_15:3,
2079609e3e9SSteven J. Hill 		__BITFIELD_FIELD(uint64_t txmargin:5,
2089609e3e9SSteven J. Hill 		__BITFIELD_FIELD(uint64_t reserved_4_7:4,
2099609e3e9SSteven J. Hill 		__BITFIELD_FIELD(uint64_t lane_en:4,
2109609e3e9SSteven J. Hill 		;)))))))))))))
211aa32a955SDavid Daney 	} s;
21254293ec3SDavid Daney };
21354293ec3SDavid Daney 
21454293ec3SDavid Daney union cvmx_ciu_qlm_jtgc {
21554293ec3SDavid Daney 	uint64_t u64;
21654293ec3SDavid Daney 	struct cvmx_ciu_qlm_jtgc_s {
2179609e3e9SSteven J. Hill 		__BITFIELD_FIELD(uint64_t reserved_17_63:47,
2189609e3e9SSteven J. Hill 		__BITFIELD_FIELD(uint64_t bypass_ext:1,
2199609e3e9SSteven J. Hill 		__BITFIELD_FIELD(uint64_t reserved_11_15:5,
2209609e3e9SSteven J. Hill 		__BITFIELD_FIELD(uint64_t clk_div:3,
2219609e3e9SSteven J. Hill 		__BITFIELD_FIELD(uint64_t reserved_7_7:1,
2229609e3e9SSteven J. Hill 		__BITFIELD_FIELD(uint64_t mux_sel:3,
2239609e3e9SSteven J. Hill 		__BITFIELD_FIELD(uint64_t bypass:4,
2249609e3e9SSteven J. Hill 		;)))))))
22554293ec3SDavid Daney 	} s;
22654293ec3SDavid Daney };
22754293ec3SDavid Daney 
22854293ec3SDavid Daney union cvmx_ciu_qlm_jtgd {
22954293ec3SDavid Daney 	uint64_t u64;
23054293ec3SDavid Daney 	struct cvmx_ciu_qlm_jtgd_s {
2319609e3e9SSteven J. Hill 		__BITFIELD_FIELD(uint64_t capture:1,
2329609e3e9SSteven J. Hill 		__BITFIELD_FIELD(uint64_t shift:1,
2339609e3e9SSteven J. Hill 		__BITFIELD_FIELD(uint64_t update:1,
2349609e3e9SSteven J. Hill 		__BITFIELD_FIELD(uint64_t reserved_45_60:16,
2359609e3e9SSteven J. Hill 		__BITFIELD_FIELD(uint64_t select:5,
2369609e3e9SSteven J. Hill 		__BITFIELD_FIELD(uint64_t reserved_37_39:3,
2379609e3e9SSteven J. Hill 		__BITFIELD_FIELD(uint64_t shft_cnt:5,
2389609e3e9SSteven J. Hill 		__BITFIELD_FIELD(uint64_t shft_reg:32,
2399609e3e9SSteven J. Hill 		;))))))))
24054293ec3SDavid Daney 	} s;
24154293ec3SDavid Daney };
24254293ec3SDavid Daney 
24354293ec3SDavid Daney union cvmx_ciu_soft_prst {
24454293ec3SDavid Daney 	uint64_t u64;
24554293ec3SDavid Daney 	struct cvmx_ciu_soft_prst_s {
2469609e3e9SSteven J. Hill 		__BITFIELD_FIELD(uint64_t reserved_3_63:61,
2479609e3e9SSteven J. Hill 		__BITFIELD_FIELD(uint64_t host64:1,
2489609e3e9SSteven J. Hill 		__BITFIELD_FIELD(uint64_t npi:1,
2499609e3e9SSteven J. Hill 		__BITFIELD_FIELD(uint64_t soft_prst:1,
2509609e3e9SSteven J. Hill 		;))))
25154293ec3SDavid Daney 	} s;
25254293ec3SDavid Daney };
25354293ec3SDavid Daney 
25454293ec3SDavid Daney union cvmx_ciu_timx {
25554293ec3SDavid Daney 	uint64_t u64;
25654293ec3SDavid Daney 	struct cvmx_ciu_timx_s {
2579609e3e9SSteven J. Hill 		__BITFIELD_FIELD(uint64_t reserved_37_63:27,
2589609e3e9SSteven J. Hill 		__BITFIELD_FIELD(uint64_t one_shot:1,
2599609e3e9SSteven J. Hill 		__BITFIELD_FIELD(uint64_t len:36,
2609609e3e9SSteven J. Hill 		;)))
26154293ec3SDavid Daney 	} s;
26254293ec3SDavid Daney };
26354293ec3SDavid Daney 
26454293ec3SDavid Daney union cvmx_ciu_wdogx {
26554293ec3SDavid Daney 	uint64_t u64;
26654293ec3SDavid Daney 	struct cvmx_ciu_wdogx_s {
2679609e3e9SSteven J. Hill 		__BITFIELD_FIELD(uint64_t reserved_46_63:18,
2689609e3e9SSteven J. Hill 		__BITFIELD_FIELD(uint64_t gstopen:1,
2699609e3e9SSteven J. Hill 		__BITFIELD_FIELD(uint64_t dstop:1,
2709609e3e9SSteven J. Hill 		__BITFIELD_FIELD(uint64_t cnt:24,
2719609e3e9SSteven J. Hill 		__BITFIELD_FIELD(uint64_t len:16,
2729609e3e9SSteven J. Hill 		__BITFIELD_FIELD(uint64_t state:2,
2739609e3e9SSteven J. Hill 		__BITFIELD_FIELD(uint64_t mode:2,
2749609e3e9SSteven J. Hill 		;)))))))
27554293ec3SDavid Daney 	} s;
27654293ec3SDavid Daney };
27754293ec3SDavid Daney 
2789609e3e9SSteven J. Hill #endif /* __CVMX_CIU_DEFS_H__ */
279