14169b863SDavid Daney /***********************license start***************
24169b863SDavid Daney  * Author: Cavium Networks
34169b863SDavid Daney  *
44169b863SDavid Daney  * Contact: support@caviumnetworks.com
54169b863SDavid Daney  * This file is part of the OCTEON SDK
64169b863SDavid Daney  *
7c5aa59e8SDavid Daney  * Copyright (c) 2003-2012 Cavium Networks
84169b863SDavid Daney  *
94169b863SDavid Daney  * This file is free software; you can redistribute it and/or modify
104169b863SDavid Daney  * it under the terms of the GNU General Public License, Version 2, as
114169b863SDavid Daney  * published by the Free Software Foundation.
124169b863SDavid Daney  *
134169b863SDavid Daney  * This file is distributed in the hope that it will be useful, but
144169b863SDavid Daney  * AS-IS and WITHOUT ANY WARRANTY; without even the implied warranty
154169b863SDavid Daney  * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE, TITLE, or
164169b863SDavid Daney  * NONINFRINGEMENT.  See the GNU General Public License for more
174169b863SDavid Daney  * details.
184169b863SDavid Daney  *
194169b863SDavid Daney  * You should have received a copy of the GNU General Public License
204169b863SDavid Daney  * along with this file; if not, write to the Free Software
214169b863SDavid Daney  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
224169b863SDavid Daney  * or visit http://www.gnu.org/licenses/.
234169b863SDavid Daney  *
244169b863SDavid Daney  * This file may also be available under a different license from Cavium.
254169b863SDavid Daney  * Contact Cavium Networks for more information
264169b863SDavid Daney  ***********************license end**************************************/
274169b863SDavid Daney 
28c5aa59e8SDavid Daney #ifndef __CVMX_UCTLX_DEFS_H__
29c5aa59e8SDavid Daney #define __CVMX_UCTLX_DEFS_H__
304169b863SDavid Daney 
314169b863SDavid Daney #define CVMX_UCTLX_BIST_STATUS(block_id) (CVMX_ADD_IO_SEG(0x000118006F0000A0ull))
324169b863SDavid Daney #define CVMX_UCTLX_CLK_RST_CTL(block_id) (CVMX_ADD_IO_SEG(0x000118006F000000ull))
334169b863SDavid Daney #define CVMX_UCTLX_EHCI_CTL(block_id) (CVMX_ADD_IO_SEG(0x000118006F000080ull))
344169b863SDavid Daney #define CVMX_UCTLX_EHCI_FLA(block_id) (CVMX_ADD_IO_SEG(0x000118006F0000A8ull))
354169b863SDavid Daney #define CVMX_UCTLX_ERTO_CTL(block_id) (CVMX_ADD_IO_SEG(0x000118006F000090ull))
364169b863SDavid Daney #define CVMX_UCTLX_IF_ENA(block_id) (CVMX_ADD_IO_SEG(0x000118006F000030ull))
374169b863SDavid Daney #define CVMX_UCTLX_INT_ENA(block_id) (CVMX_ADD_IO_SEG(0x000118006F000028ull))
384169b863SDavid Daney #define CVMX_UCTLX_INT_REG(block_id) (CVMX_ADD_IO_SEG(0x000118006F000020ull))
394169b863SDavid Daney #define CVMX_UCTLX_OHCI_CTL(block_id) (CVMX_ADD_IO_SEG(0x000118006F000088ull))
404169b863SDavid Daney #define CVMX_UCTLX_ORTO_CTL(block_id) (CVMX_ADD_IO_SEG(0x000118006F000098ull))
414169b863SDavid Daney #define CVMX_UCTLX_PPAF_WM(block_id) (CVMX_ADD_IO_SEG(0x000118006F000038ull))
424169b863SDavid Daney #define CVMX_UCTLX_UPHY_CTL_STATUS(block_id) (CVMX_ADD_IO_SEG(0x000118006F000008ull))
434169b863SDavid Daney #define CVMX_UCTLX_UPHY_PORTX_CTL_STATUS(offset, block_id) (CVMX_ADD_IO_SEG(0x000118006F000010ull) + (((offset) & 1) + ((block_id) & 0) * 0x0ull) * 8)
444169b863SDavid Daney 
454169b863SDavid Daney union cvmx_uctlx_bist_status {
464169b863SDavid Daney 	uint64_t u64;
474169b863SDavid Daney 	struct cvmx_uctlx_bist_status_s {
48c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD
494169b863SDavid Daney 		uint64_t reserved_6_63:58;
504169b863SDavid Daney 		uint64_t data_bis:1;
514169b863SDavid Daney 		uint64_t desc_bis:1;
524169b863SDavid Daney 		uint64_t erbm_bis:1;
534169b863SDavid Daney 		uint64_t orbm_bis:1;
544169b863SDavid Daney 		uint64_t wrbm_bis:1;
554169b863SDavid Daney 		uint64_t ppaf_bis:1;
56c5aa59e8SDavid Daney #else
57c5aa59e8SDavid Daney 		uint64_t ppaf_bis:1;
58c5aa59e8SDavid Daney 		uint64_t wrbm_bis:1;
59c5aa59e8SDavid Daney 		uint64_t orbm_bis:1;
60c5aa59e8SDavid Daney 		uint64_t erbm_bis:1;
61c5aa59e8SDavid Daney 		uint64_t desc_bis:1;
62c5aa59e8SDavid Daney 		uint64_t data_bis:1;
63c5aa59e8SDavid Daney 		uint64_t reserved_6_63:58;
64c5aa59e8SDavid Daney #endif
654169b863SDavid Daney 	} s;
66c5aa59e8SDavid Daney 	struct cvmx_uctlx_bist_status_s cn61xx;
674169b863SDavid Daney 	struct cvmx_uctlx_bist_status_s cn63xx;
684169b863SDavid Daney 	struct cvmx_uctlx_bist_status_s cn63xxp1;
69c5aa59e8SDavid Daney 	struct cvmx_uctlx_bist_status_s cn66xx;
70c5aa59e8SDavid Daney 	struct cvmx_uctlx_bist_status_s cn68xx;
71c5aa59e8SDavid Daney 	struct cvmx_uctlx_bist_status_s cn68xxp1;
72c5aa59e8SDavid Daney 	struct cvmx_uctlx_bist_status_s cnf71xx;
734169b863SDavid Daney };
744169b863SDavid Daney 
754169b863SDavid Daney union cvmx_uctlx_clk_rst_ctl {
764169b863SDavid Daney 	uint64_t u64;
774169b863SDavid Daney 	struct cvmx_uctlx_clk_rst_ctl_s {
78c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD
794169b863SDavid Daney 		uint64_t reserved_25_63:39;
804169b863SDavid Daney 		uint64_t clear_bist:1;
814169b863SDavid Daney 		uint64_t start_bist:1;
824169b863SDavid Daney 		uint64_t ehci_sm:1;
834169b863SDavid Daney 		uint64_t ohci_clkcktrst:1;
844169b863SDavid Daney 		uint64_t ohci_sm:1;
854169b863SDavid Daney 		uint64_t ohci_susp_lgcy:1;
864169b863SDavid Daney 		uint64_t app_start_clk:1;
874169b863SDavid Daney 		uint64_t o_clkdiv_rst:1;
884169b863SDavid Daney 		uint64_t h_clkdiv_byp:1;
894169b863SDavid Daney 		uint64_t h_clkdiv_rst:1;
904169b863SDavid Daney 		uint64_t h_clkdiv_en:1;
914169b863SDavid Daney 		uint64_t o_clkdiv_en:1;
924169b863SDavid Daney 		uint64_t h_div:4;
934169b863SDavid Daney 		uint64_t p_refclk_sel:2;
944169b863SDavid Daney 		uint64_t p_refclk_div:2;
954169b863SDavid Daney 		uint64_t reserved_4_4:1;
964169b863SDavid Daney 		uint64_t p_com_on:1;
974169b863SDavid Daney 		uint64_t p_por:1;
984169b863SDavid Daney 		uint64_t p_prst:1;
994169b863SDavid Daney 		uint64_t hrst:1;
100c5aa59e8SDavid Daney #else
101c5aa59e8SDavid Daney 		uint64_t hrst:1;
102c5aa59e8SDavid Daney 		uint64_t p_prst:1;
103c5aa59e8SDavid Daney 		uint64_t p_por:1;
104c5aa59e8SDavid Daney 		uint64_t p_com_on:1;
105c5aa59e8SDavid Daney 		uint64_t reserved_4_4:1;
106c5aa59e8SDavid Daney 		uint64_t p_refclk_div:2;
107c5aa59e8SDavid Daney 		uint64_t p_refclk_sel:2;
108c5aa59e8SDavid Daney 		uint64_t h_div:4;
109c5aa59e8SDavid Daney 		uint64_t o_clkdiv_en:1;
110c5aa59e8SDavid Daney 		uint64_t h_clkdiv_en:1;
111c5aa59e8SDavid Daney 		uint64_t h_clkdiv_rst:1;
112c5aa59e8SDavid Daney 		uint64_t h_clkdiv_byp:1;
113c5aa59e8SDavid Daney 		uint64_t o_clkdiv_rst:1;
114c5aa59e8SDavid Daney 		uint64_t app_start_clk:1;
115c5aa59e8SDavid Daney 		uint64_t ohci_susp_lgcy:1;
116c5aa59e8SDavid Daney 		uint64_t ohci_sm:1;
117c5aa59e8SDavid Daney 		uint64_t ohci_clkcktrst:1;
118c5aa59e8SDavid Daney 		uint64_t ehci_sm:1;
119c5aa59e8SDavid Daney 		uint64_t start_bist:1;
120c5aa59e8SDavid Daney 		uint64_t clear_bist:1;
121c5aa59e8SDavid Daney 		uint64_t reserved_25_63:39;
122c5aa59e8SDavid Daney #endif
1234169b863SDavid Daney 	} s;
124c5aa59e8SDavid Daney 	struct cvmx_uctlx_clk_rst_ctl_s cn61xx;
1254169b863SDavid Daney 	struct cvmx_uctlx_clk_rst_ctl_s cn63xx;
1264169b863SDavid Daney 	struct cvmx_uctlx_clk_rst_ctl_s cn63xxp1;
127c5aa59e8SDavid Daney 	struct cvmx_uctlx_clk_rst_ctl_s cn66xx;
128c5aa59e8SDavid Daney 	struct cvmx_uctlx_clk_rst_ctl_s cn68xx;
129c5aa59e8SDavid Daney 	struct cvmx_uctlx_clk_rst_ctl_s cn68xxp1;
130c5aa59e8SDavid Daney 	struct cvmx_uctlx_clk_rst_ctl_s cnf71xx;
1314169b863SDavid Daney };
1324169b863SDavid Daney 
1334169b863SDavid Daney union cvmx_uctlx_ehci_ctl {
1344169b863SDavid Daney 	uint64_t u64;
1354169b863SDavid Daney 	struct cvmx_uctlx_ehci_ctl_s {
136c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD
1374169b863SDavid Daney 		uint64_t reserved_20_63:44;
1384169b863SDavid Daney 		uint64_t desc_rbm:1;
1394169b863SDavid Daney 		uint64_t reg_nb:1;
1404169b863SDavid Daney 		uint64_t l2c_dc:1;
1414169b863SDavid Daney 		uint64_t l2c_bc:1;
1424169b863SDavid Daney 		uint64_t l2c_0pag:1;
1434169b863SDavid Daney 		uint64_t l2c_stt:1;
1444169b863SDavid Daney 		uint64_t l2c_buff_emod:2;
1454169b863SDavid Daney 		uint64_t l2c_desc_emod:2;
1464169b863SDavid Daney 		uint64_t inv_reg_a2:1;
1474169b863SDavid Daney 		uint64_t ehci_64b_addr_en:1;
1484169b863SDavid Daney 		uint64_t l2c_addr_msb:8;
149c5aa59e8SDavid Daney #else
150c5aa59e8SDavid Daney 		uint64_t l2c_addr_msb:8;
151c5aa59e8SDavid Daney 		uint64_t ehci_64b_addr_en:1;
152c5aa59e8SDavid Daney 		uint64_t inv_reg_a2:1;
153c5aa59e8SDavid Daney 		uint64_t l2c_desc_emod:2;
154c5aa59e8SDavid Daney 		uint64_t l2c_buff_emod:2;
155c5aa59e8SDavid Daney 		uint64_t l2c_stt:1;
156c5aa59e8SDavid Daney 		uint64_t l2c_0pag:1;
157c5aa59e8SDavid Daney 		uint64_t l2c_bc:1;
158c5aa59e8SDavid Daney 		uint64_t l2c_dc:1;
159c5aa59e8SDavid Daney 		uint64_t reg_nb:1;
160c5aa59e8SDavid Daney 		uint64_t desc_rbm:1;
161c5aa59e8SDavid Daney 		uint64_t reserved_20_63:44;
162c5aa59e8SDavid Daney #endif
1634169b863SDavid Daney 	} s;
164c5aa59e8SDavid Daney 	struct cvmx_uctlx_ehci_ctl_s cn61xx;
1654169b863SDavid Daney 	struct cvmx_uctlx_ehci_ctl_s cn63xx;
1664169b863SDavid Daney 	struct cvmx_uctlx_ehci_ctl_s cn63xxp1;
167c5aa59e8SDavid Daney 	struct cvmx_uctlx_ehci_ctl_s cn66xx;
168c5aa59e8SDavid Daney 	struct cvmx_uctlx_ehci_ctl_s cn68xx;
169c5aa59e8SDavid Daney 	struct cvmx_uctlx_ehci_ctl_s cn68xxp1;
170c5aa59e8SDavid Daney 	struct cvmx_uctlx_ehci_ctl_s cnf71xx;
1714169b863SDavid Daney };
1724169b863SDavid Daney 
1734169b863SDavid Daney union cvmx_uctlx_ehci_fla {
1744169b863SDavid Daney 	uint64_t u64;
1754169b863SDavid Daney 	struct cvmx_uctlx_ehci_fla_s {
176c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD
1774169b863SDavid Daney 		uint64_t reserved_6_63:58;
1784169b863SDavid Daney 		uint64_t fla:6;
179c5aa59e8SDavid Daney #else
180c5aa59e8SDavid Daney 		uint64_t fla:6;
181c5aa59e8SDavid Daney 		uint64_t reserved_6_63:58;
182c5aa59e8SDavid Daney #endif
1834169b863SDavid Daney 	} s;
184c5aa59e8SDavid Daney 	struct cvmx_uctlx_ehci_fla_s cn61xx;
1854169b863SDavid Daney 	struct cvmx_uctlx_ehci_fla_s cn63xx;
1864169b863SDavid Daney 	struct cvmx_uctlx_ehci_fla_s cn63xxp1;
187c5aa59e8SDavid Daney 	struct cvmx_uctlx_ehci_fla_s cn66xx;
188c5aa59e8SDavid Daney 	struct cvmx_uctlx_ehci_fla_s cn68xx;
189c5aa59e8SDavid Daney 	struct cvmx_uctlx_ehci_fla_s cn68xxp1;
190c5aa59e8SDavid Daney 	struct cvmx_uctlx_ehci_fla_s cnf71xx;
1914169b863SDavid Daney };
1924169b863SDavid Daney 
1934169b863SDavid Daney union cvmx_uctlx_erto_ctl {
1944169b863SDavid Daney 	uint64_t u64;
1954169b863SDavid Daney 	struct cvmx_uctlx_erto_ctl_s {
196c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD
1974169b863SDavid Daney 		uint64_t reserved_32_63:32;
1984169b863SDavid Daney 		uint64_t to_val:27;
1994169b863SDavid Daney 		uint64_t reserved_0_4:5;
200c5aa59e8SDavid Daney #else
201c5aa59e8SDavid Daney 		uint64_t reserved_0_4:5;
202c5aa59e8SDavid Daney 		uint64_t to_val:27;
203c5aa59e8SDavid Daney 		uint64_t reserved_32_63:32;
204c5aa59e8SDavid Daney #endif
2054169b863SDavid Daney 	} s;
206c5aa59e8SDavid Daney 	struct cvmx_uctlx_erto_ctl_s cn61xx;
2074169b863SDavid Daney 	struct cvmx_uctlx_erto_ctl_s cn63xx;
2084169b863SDavid Daney 	struct cvmx_uctlx_erto_ctl_s cn63xxp1;
209c5aa59e8SDavid Daney 	struct cvmx_uctlx_erto_ctl_s cn66xx;
210c5aa59e8SDavid Daney 	struct cvmx_uctlx_erto_ctl_s cn68xx;
211c5aa59e8SDavid Daney 	struct cvmx_uctlx_erto_ctl_s cn68xxp1;
212c5aa59e8SDavid Daney 	struct cvmx_uctlx_erto_ctl_s cnf71xx;
2134169b863SDavid Daney };
2144169b863SDavid Daney 
2154169b863SDavid Daney union cvmx_uctlx_if_ena {
2164169b863SDavid Daney 	uint64_t u64;
2174169b863SDavid Daney 	struct cvmx_uctlx_if_ena_s {
218c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD
2194169b863SDavid Daney 		uint64_t reserved_1_63:63;
2204169b863SDavid Daney 		uint64_t en:1;
221c5aa59e8SDavid Daney #else
222c5aa59e8SDavid Daney 		uint64_t en:1;
223c5aa59e8SDavid Daney 		uint64_t reserved_1_63:63;
224c5aa59e8SDavid Daney #endif
2254169b863SDavid Daney 	} s;
226c5aa59e8SDavid Daney 	struct cvmx_uctlx_if_ena_s cn61xx;
2274169b863SDavid Daney 	struct cvmx_uctlx_if_ena_s cn63xx;
2284169b863SDavid Daney 	struct cvmx_uctlx_if_ena_s cn63xxp1;
229c5aa59e8SDavid Daney 	struct cvmx_uctlx_if_ena_s cn66xx;
230c5aa59e8SDavid Daney 	struct cvmx_uctlx_if_ena_s cn68xx;
231c5aa59e8SDavid Daney 	struct cvmx_uctlx_if_ena_s cn68xxp1;
232c5aa59e8SDavid Daney 	struct cvmx_uctlx_if_ena_s cnf71xx;
2334169b863SDavid Daney };
2344169b863SDavid Daney 
2354169b863SDavid Daney union cvmx_uctlx_int_ena {
2364169b863SDavid Daney 	uint64_t u64;
2374169b863SDavid Daney 	struct cvmx_uctlx_int_ena_s {
238c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD
2394169b863SDavid Daney 		uint64_t reserved_8_63:56;
2404169b863SDavid Daney 		uint64_t ec_ovf_e:1;
2414169b863SDavid Daney 		uint64_t oc_ovf_e:1;
2424169b863SDavid Daney 		uint64_t wb_pop_e:1;
2434169b863SDavid Daney 		uint64_t wb_psh_f:1;
2444169b863SDavid Daney 		uint64_t cf_psh_f:1;
2454169b863SDavid Daney 		uint64_t or_psh_f:1;
2464169b863SDavid Daney 		uint64_t er_psh_f:1;
2474169b863SDavid Daney 		uint64_t pp_psh_f:1;
248c5aa59e8SDavid Daney #else
249c5aa59e8SDavid Daney 		uint64_t pp_psh_f:1;
250c5aa59e8SDavid Daney 		uint64_t er_psh_f:1;
251c5aa59e8SDavid Daney 		uint64_t or_psh_f:1;
252c5aa59e8SDavid Daney 		uint64_t cf_psh_f:1;
253c5aa59e8SDavid Daney 		uint64_t wb_psh_f:1;
254c5aa59e8SDavid Daney 		uint64_t wb_pop_e:1;
255c5aa59e8SDavid Daney 		uint64_t oc_ovf_e:1;
256c5aa59e8SDavid Daney 		uint64_t ec_ovf_e:1;
257c5aa59e8SDavid Daney 		uint64_t reserved_8_63:56;
258c5aa59e8SDavid Daney #endif
2594169b863SDavid Daney 	} s;
260c5aa59e8SDavid Daney 	struct cvmx_uctlx_int_ena_s cn61xx;
2614169b863SDavid Daney 	struct cvmx_uctlx_int_ena_s cn63xx;
2624169b863SDavid Daney 	struct cvmx_uctlx_int_ena_s cn63xxp1;
263c5aa59e8SDavid Daney 	struct cvmx_uctlx_int_ena_s cn66xx;
264c5aa59e8SDavid Daney 	struct cvmx_uctlx_int_ena_s cn68xx;
265c5aa59e8SDavid Daney 	struct cvmx_uctlx_int_ena_s cn68xxp1;
266c5aa59e8SDavid Daney 	struct cvmx_uctlx_int_ena_s cnf71xx;
2674169b863SDavid Daney };
2684169b863SDavid Daney 
2694169b863SDavid Daney union cvmx_uctlx_int_reg {
2704169b863SDavid Daney 	uint64_t u64;
2714169b863SDavid Daney 	struct cvmx_uctlx_int_reg_s {
272c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD
2734169b863SDavid Daney 		uint64_t reserved_8_63:56;
2744169b863SDavid Daney 		uint64_t ec_ovf_e:1;
2754169b863SDavid Daney 		uint64_t oc_ovf_e:1;
2764169b863SDavid Daney 		uint64_t wb_pop_e:1;
2774169b863SDavid Daney 		uint64_t wb_psh_f:1;
2784169b863SDavid Daney 		uint64_t cf_psh_f:1;
2794169b863SDavid Daney 		uint64_t or_psh_f:1;
2804169b863SDavid Daney 		uint64_t er_psh_f:1;
2814169b863SDavid Daney 		uint64_t pp_psh_f:1;
282c5aa59e8SDavid Daney #else
283c5aa59e8SDavid Daney 		uint64_t pp_psh_f:1;
284c5aa59e8SDavid Daney 		uint64_t er_psh_f:1;
285c5aa59e8SDavid Daney 		uint64_t or_psh_f:1;
286c5aa59e8SDavid Daney 		uint64_t cf_psh_f:1;
287c5aa59e8SDavid Daney 		uint64_t wb_psh_f:1;
288c5aa59e8SDavid Daney 		uint64_t wb_pop_e:1;
289c5aa59e8SDavid Daney 		uint64_t oc_ovf_e:1;
290c5aa59e8SDavid Daney 		uint64_t ec_ovf_e:1;
291c5aa59e8SDavid Daney 		uint64_t reserved_8_63:56;
292c5aa59e8SDavid Daney #endif
2934169b863SDavid Daney 	} s;
294c5aa59e8SDavid Daney 	struct cvmx_uctlx_int_reg_s cn61xx;
2954169b863SDavid Daney 	struct cvmx_uctlx_int_reg_s cn63xx;
2964169b863SDavid Daney 	struct cvmx_uctlx_int_reg_s cn63xxp1;
297c5aa59e8SDavid Daney 	struct cvmx_uctlx_int_reg_s cn66xx;
298c5aa59e8SDavid Daney 	struct cvmx_uctlx_int_reg_s cn68xx;
299c5aa59e8SDavid Daney 	struct cvmx_uctlx_int_reg_s cn68xxp1;
300c5aa59e8SDavid Daney 	struct cvmx_uctlx_int_reg_s cnf71xx;
3014169b863SDavid Daney };
3024169b863SDavid Daney 
3034169b863SDavid Daney union cvmx_uctlx_ohci_ctl {
3044169b863SDavid Daney 	uint64_t u64;
3054169b863SDavid Daney 	struct cvmx_uctlx_ohci_ctl_s {
306c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD
3074169b863SDavid Daney 		uint64_t reserved_19_63:45;
3084169b863SDavid Daney 		uint64_t reg_nb:1;
3094169b863SDavid Daney 		uint64_t l2c_dc:1;
3104169b863SDavid Daney 		uint64_t l2c_bc:1;
3114169b863SDavid Daney 		uint64_t l2c_0pag:1;
3124169b863SDavid Daney 		uint64_t l2c_stt:1;
3134169b863SDavid Daney 		uint64_t l2c_buff_emod:2;
3144169b863SDavid Daney 		uint64_t l2c_desc_emod:2;
3154169b863SDavid Daney 		uint64_t inv_reg_a2:1;
3164169b863SDavid Daney 		uint64_t reserved_8_8:1;
3174169b863SDavid Daney 		uint64_t l2c_addr_msb:8;
318c5aa59e8SDavid Daney #else
319c5aa59e8SDavid Daney 		uint64_t l2c_addr_msb:8;
320c5aa59e8SDavid Daney 		uint64_t reserved_8_8:1;
321c5aa59e8SDavid Daney 		uint64_t inv_reg_a2:1;
322c5aa59e8SDavid Daney 		uint64_t l2c_desc_emod:2;
323c5aa59e8SDavid Daney 		uint64_t l2c_buff_emod:2;
324c5aa59e8SDavid Daney 		uint64_t l2c_stt:1;
325c5aa59e8SDavid Daney 		uint64_t l2c_0pag:1;
326c5aa59e8SDavid Daney 		uint64_t l2c_bc:1;
327c5aa59e8SDavid Daney 		uint64_t l2c_dc:1;
328c5aa59e8SDavid Daney 		uint64_t reg_nb:1;
329c5aa59e8SDavid Daney 		uint64_t reserved_19_63:45;
330c5aa59e8SDavid Daney #endif
3314169b863SDavid Daney 	} s;
332c5aa59e8SDavid Daney 	struct cvmx_uctlx_ohci_ctl_s cn61xx;
3334169b863SDavid Daney 	struct cvmx_uctlx_ohci_ctl_s cn63xx;
3344169b863SDavid Daney 	struct cvmx_uctlx_ohci_ctl_s cn63xxp1;
335c5aa59e8SDavid Daney 	struct cvmx_uctlx_ohci_ctl_s cn66xx;
336c5aa59e8SDavid Daney 	struct cvmx_uctlx_ohci_ctl_s cn68xx;
337c5aa59e8SDavid Daney 	struct cvmx_uctlx_ohci_ctl_s cn68xxp1;
338c5aa59e8SDavid Daney 	struct cvmx_uctlx_ohci_ctl_s cnf71xx;
3394169b863SDavid Daney };
3404169b863SDavid Daney 
3414169b863SDavid Daney union cvmx_uctlx_orto_ctl {
3424169b863SDavid Daney 	uint64_t u64;
3434169b863SDavid Daney 	struct cvmx_uctlx_orto_ctl_s {
344c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD
3454169b863SDavid Daney 		uint64_t reserved_32_63:32;
3464169b863SDavid Daney 		uint64_t to_val:24;
3474169b863SDavid Daney 		uint64_t reserved_0_7:8;
348c5aa59e8SDavid Daney #else
349c5aa59e8SDavid Daney 		uint64_t reserved_0_7:8;
350c5aa59e8SDavid Daney 		uint64_t to_val:24;
351c5aa59e8SDavid Daney 		uint64_t reserved_32_63:32;
352c5aa59e8SDavid Daney #endif
3534169b863SDavid Daney 	} s;
354c5aa59e8SDavid Daney 	struct cvmx_uctlx_orto_ctl_s cn61xx;
3554169b863SDavid Daney 	struct cvmx_uctlx_orto_ctl_s cn63xx;
3564169b863SDavid Daney 	struct cvmx_uctlx_orto_ctl_s cn63xxp1;
357c5aa59e8SDavid Daney 	struct cvmx_uctlx_orto_ctl_s cn66xx;
358c5aa59e8SDavid Daney 	struct cvmx_uctlx_orto_ctl_s cn68xx;
359c5aa59e8SDavid Daney 	struct cvmx_uctlx_orto_ctl_s cn68xxp1;
360c5aa59e8SDavid Daney 	struct cvmx_uctlx_orto_ctl_s cnf71xx;
3614169b863SDavid Daney };
3624169b863SDavid Daney 
3634169b863SDavid Daney union cvmx_uctlx_ppaf_wm {
3644169b863SDavid Daney 	uint64_t u64;
3654169b863SDavid Daney 	struct cvmx_uctlx_ppaf_wm_s {
366c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD
3674169b863SDavid Daney 		uint64_t reserved_5_63:59;
3684169b863SDavid Daney 		uint64_t wm:5;
369c5aa59e8SDavid Daney #else
370c5aa59e8SDavid Daney 		uint64_t wm:5;
371c5aa59e8SDavid Daney 		uint64_t reserved_5_63:59;
372c5aa59e8SDavid Daney #endif
3734169b863SDavid Daney 	} s;
374c5aa59e8SDavid Daney 	struct cvmx_uctlx_ppaf_wm_s cn61xx;
3754169b863SDavid Daney 	struct cvmx_uctlx_ppaf_wm_s cn63xx;
3764169b863SDavid Daney 	struct cvmx_uctlx_ppaf_wm_s cn63xxp1;
377c5aa59e8SDavid Daney 	struct cvmx_uctlx_ppaf_wm_s cn66xx;
378c5aa59e8SDavid Daney 	struct cvmx_uctlx_ppaf_wm_s cnf71xx;
3794169b863SDavid Daney };
3804169b863SDavid Daney 
3814169b863SDavid Daney union cvmx_uctlx_uphy_ctl_status {
3824169b863SDavid Daney 	uint64_t u64;
3834169b863SDavid Daney 	struct cvmx_uctlx_uphy_ctl_status_s {
384c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD
3854169b863SDavid Daney 		uint64_t reserved_10_63:54;
3864169b863SDavid Daney 		uint64_t bist_done:1;
3874169b863SDavid Daney 		uint64_t bist_err:1;
3884169b863SDavid Daney 		uint64_t hsbist:1;
3894169b863SDavid Daney 		uint64_t fsbist:1;
3904169b863SDavid Daney 		uint64_t lsbist:1;
3914169b863SDavid Daney 		uint64_t siddq:1;
3924169b863SDavid Daney 		uint64_t vtest_en:1;
3934169b863SDavid Daney 		uint64_t uphy_bist:1;
3944169b863SDavid Daney 		uint64_t bist_en:1;
3954169b863SDavid Daney 		uint64_t ate_reset:1;
396c5aa59e8SDavid Daney #else
397c5aa59e8SDavid Daney 		uint64_t ate_reset:1;
398c5aa59e8SDavid Daney 		uint64_t bist_en:1;
399c5aa59e8SDavid Daney 		uint64_t uphy_bist:1;
400c5aa59e8SDavid Daney 		uint64_t vtest_en:1;
401c5aa59e8SDavid Daney 		uint64_t siddq:1;
402c5aa59e8SDavid Daney 		uint64_t lsbist:1;
403c5aa59e8SDavid Daney 		uint64_t fsbist:1;
404c5aa59e8SDavid Daney 		uint64_t hsbist:1;
405c5aa59e8SDavid Daney 		uint64_t bist_err:1;
406c5aa59e8SDavid Daney 		uint64_t bist_done:1;
407c5aa59e8SDavid Daney 		uint64_t reserved_10_63:54;
408c5aa59e8SDavid Daney #endif
4094169b863SDavid Daney 	} s;
410c5aa59e8SDavid Daney 	struct cvmx_uctlx_uphy_ctl_status_s cn61xx;
4114169b863SDavid Daney 	struct cvmx_uctlx_uphy_ctl_status_s cn63xx;
4124169b863SDavid Daney 	struct cvmx_uctlx_uphy_ctl_status_s cn63xxp1;
413c5aa59e8SDavid Daney 	struct cvmx_uctlx_uphy_ctl_status_s cn66xx;
414c5aa59e8SDavid Daney 	struct cvmx_uctlx_uphy_ctl_status_s cn68xx;
415c5aa59e8SDavid Daney 	struct cvmx_uctlx_uphy_ctl_status_s cn68xxp1;
416c5aa59e8SDavid Daney 	struct cvmx_uctlx_uphy_ctl_status_s cnf71xx;
4174169b863SDavid Daney };
4184169b863SDavid Daney 
4194169b863SDavid Daney union cvmx_uctlx_uphy_portx_ctl_status {
4204169b863SDavid Daney 	uint64_t u64;
4214169b863SDavid Daney 	struct cvmx_uctlx_uphy_portx_ctl_status_s {
422c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD
4234169b863SDavid Daney 		uint64_t reserved_43_63:21;
4244169b863SDavid Daney 		uint64_t tdata_out:4;
4254169b863SDavid Daney 		uint64_t txbiststuffenh:1;
4264169b863SDavid Daney 		uint64_t txbiststuffen:1;
4274169b863SDavid Daney 		uint64_t dmpulldown:1;
4284169b863SDavid Daney 		uint64_t dppulldown:1;
4294169b863SDavid Daney 		uint64_t vbusvldext:1;
4304169b863SDavid Daney 		uint64_t portreset:1;
4314169b863SDavid Daney 		uint64_t txhsvxtune:2;
4324169b863SDavid Daney 		uint64_t txvreftune:4;
4334169b863SDavid Daney 		uint64_t txrisetune:1;
4344169b863SDavid Daney 		uint64_t txpreemphasistune:1;
4354169b863SDavid Daney 		uint64_t txfslstune:4;
4364169b863SDavid Daney 		uint64_t sqrxtune:3;
4374169b863SDavid Daney 		uint64_t compdistune:3;
4384169b863SDavid Daney 		uint64_t loop_en:1;
4394169b863SDavid Daney 		uint64_t tclk:1;
4404169b863SDavid Daney 		uint64_t tdata_sel:1;
4414169b863SDavid Daney 		uint64_t taddr_in:4;
4424169b863SDavid Daney 		uint64_t tdata_in:8;
443c5aa59e8SDavid Daney #else
444c5aa59e8SDavid Daney 		uint64_t tdata_in:8;
445c5aa59e8SDavid Daney 		uint64_t taddr_in:4;
446c5aa59e8SDavid Daney 		uint64_t tdata_sel:1;
447c5aa59e8SDavid Daney 		uint64_t tclk:1;
448c5aa59e8SDavid Daney 		uint64_t loop_en:1;
449c5aa59e8SDavid Daney 		uint64_t compdistune:3;
450c5aa59e8SDavid Daney 		uint64_t sqrxtune:3;
451c5aa59e8SDavid Daney 		uint64_t txfslstune:4;
452c5aa59e8SDavid Daney 		uint64_t txpreemphasistune:1;
453c5aa59e8SDavid Daney 		uint64_t txrisetune:1;
454c5aa59e8SDavid Daney 		uint64_t txvreftune:4;
455c5aa59e8SDavid Daney 		uint64_t txhsvxtune:2;
456c5aa59e8SDavid Daney 		uint64_t portreset:1;
457c5aa59e8SDavid Daney 		uint64_t vbusvldext:1;
458c5aa59e8SDavid Daney 		uint64_t dppulldown:1;
459c5aa59e8SDavid Daney 		uint64_t dmpulldown:1;
460c5aa59e8SDavid Daney 		uint64_t txbiststuffen:1;
461c5aa59e8SDavid Daney 		uint64_t txbiststuffenh:1;
462c5aa59e8SDavid Daney 		uint64_t tdata_out:4;
463c5aa59e8SDavid Daney 		uint64_t reserved_43_63:21;
464c5aa59e8SDavid Daney #endif
4654169b863SDavid Daney 	} s;
466c5aa59e8SDavid Daney 	struct cvmx_uctlx_uphy_portx_ctl_status_s cn61xx;
4674169b863SDavid Daney 	struct cvmx_uctlx_uphy_portx_ctl_status_s cn63xx;
4684169b863SDavid Daney 	struct cvmx_uctlx_uphy_portx_ctl_status_s cn63xxp1;
469c5aa59e8SDavid Daney 	struct cvmx_uctlx_uphy_portx_ctl_status_s cn66xx;
470c5aa59e8SDavid Daney 	struct cvmx_uctlx_uphy_portx_ctl_status_s cn68xx;
471c5aa59e8SDavid Daney 	struct cvmx_uctlx_uphy_portx_ctl_status_s cn68xxp1;
472c5aa59e8SDavid Daney 	struct cvmx_uctlx_uphy_portx_ctl_status_s cnf71xx;
4734169b863SDavid Daney };
4744169b863SDavid Daney 
4754169b863SDavid Daney #endif
476