1*b111ab5aSJacob Keller /* SPDX-License-Identifier: GPL-2.0 */
2*b111ab5aSJacob Keller /* Copyright (C) 2018-2021, Intel Corporation. */
3*b111ab5aSJacob Keller 
4*b111ab5aSJacob Keller #ifndef _ICE_CGU_REGS_H_
5*b111ab5aSJacob Keller #define _ICE_CGU_REGS_H_
6*b111ab5aSJacob Keller 
7*b111ab5aSJacob Keller #define NAC_CGU_DWORD9 0x24
8*b111ab5aSJacob Keller union nac_cgu_dword9 {
9*b111ab5aSJacob Keller 	struct {
10*b111ab5aSJacob Keller 		u32 time_ref_freq_sel : 3;
11*b111ab5aSJacob Keller 		u32 clk_eref1_en : 1;
12*b111ab5aSJacob Keller 		u32 clk_eref0_en : 1;
13*b111ab5aSJacob Keller 		u32 time_ref_en : 1;
14*b111ab5aSJacob Keller 		u32 time_sync_en : 1;
15*b111ab5aSJacob Keller 		u32 one_pps_out_en : 1;
16*b111ab5aSJacob Keller 		u32 clk_ref_synce_en : 1;
17*b111ab5aSJacob Keller 		u32 clk_synce1_en : 1;
18*b111ab5aSJacob Keller 		u32 clk_synce0_en : 1;
19*b111ab5aSJacob Keller 		u32 net_clk_ref1_en : 1;
20*b111ab5aSJacob Keller 		u32 net_clk_ref0_en : 1;
21*b111ab5aSJacob Keller 		u32 clk_synce1_amp : 2;
22*b111ab5aSJacob Keller 		u32 misc6 : 1;
23*b111ab5aSJacob Keller 		u32 clk_synce0_amp : 2;
24*b111ab5aSJacob Keller 		u32 one_pps_out_amp : 2;
25*b111ab5aSJacob Keller 		u32 misc24 : 12;
26*b111ab5aSJacob Keller 	} field;
27*b111ab5aSJacob Keller 	u32 val;
28*b111ab5aSJacob Keller };
29*b111ab5aSJacob Keller 
30*b111ab5aSJacob Keller #define NAC_CGU_DWORD19 0x4c
31*b111ab5aSJacob Keller union nac_cgu_dword19 {
32*b111ab5aSJacob Keller 	struct {
33*b111ab5aSJacob Keller 		u32 tspll_fbdiv_intgr : 8;
34*b111ab5aSJacob Keller 		u32 fdpll_ulck_thr : 5;
35*b111ab5aSJacob Keller 		u32 misc15 : 3;
36*b111ab5aSJacob Keller 		u32 tspll_ndivratio : 4;
37*b111ab5aSJacob Keller 		u32 tspll_iref_ndivratio : 3;
38*b111ab5aSJacob Keller 		u32 misc19 : 1;
39*b111ab5aSJacob Keller 		u32 japll_ndivratio : 4;
40*b111ab5aSJacob Keller 		u32 japll_iref_ndivratio : 3;
41*b111ab5aSJacob Keller 		u32 misc27 : 1;
42*b111ab5aSJacob Keller 	} field;
43*b111ab5aSJacob Keller 	u32 val;
44*b111ab5aSJacob Keller };
45*b111ab5aSJacob Keller 
46*b111ab5aSJacob Keller #define NAC_CGU_DWORD22 0x58
47*b111ab5aSJacob Keller union nac_cgu_dword22 {
48*b111ab5aSJacob Keller 	struct {
49*b111ab5aSJacob Keller 		u32 fdpll_frac_div_out_nc : 2;
50*b111ab5aSJacob Keller 		u32 fdpll_lock_int_for : 1;
51*b111ab5aSJacob Keller 		u32 synce_hdov_int_for : 1;
52*b111ab5aSJacob Keller 		u32 synce_lock_int_for : 1;
53*b111ab5aSJacob Keller 		u32 fdpll_phlead_slip_nc : 1;
54*b111ab5aSJacob Keller 		u32 fdpll_acc1_ovfl_nc : 1;
55*b111ab5aSJacob Keller 		u32 fdpll_acc2_ovfl_nc : 1;
56*b111ab5aSJacob Keller 		u32 synce_status_nc : 6;
57*b111ab5aSJacob Keller 		u32 fdpll_acc1f_ovfl : 1;
58*b111ab5aSJacob Keller 		u32 misc18 : 1;
59*b111ab5aSJacob Keller 		u32 fdpllclk_div : 4;
60*b111ab5aSJacob Keller 		u32 time1588clk_div : 4;
61*b111ab5aSJacob Keller 		u32 synceclk_div : 4;
62*b111ab5aSJacob Keller 		u32 synceclk_sel_div2 : 1;
63*b111ab5aSJacob Keller 		u32 fdpllclk_sel_div2 : 1;
64*b111ab5aSJacob Keller 		u32 time1588clk_sel_div2 : 1;
65*b111ab5aSJacob Keller 		u32 misc3 : 1;
66*b111ab5aSJacob Keller 	} field;
67*b111ab5aSJacob Keller 	u32 val;
68*b111ab5aSJacob Keller };
69*b111ab5aSJacob Keller 
70*b111ab5aSJacob Keller #define NAC_CGU_DWORD24 0x60
71*b111ab5aSJacob Keller union nac_cgu_dword24 {
72*b111ab5aSJacob Keller 	struct {
73*b111ab5aSJacob Keller 		u32 tspll_fbdiv_frac : 22;
74*b111ab5aSJacob Keller 		u32 misc20 : 2;
75*b111ab5aSJacob Keller 		u32 ts_pll_enable : 1;
76*b111ab5aSJacob Keller 		u32 time_sync_tspll_align_sel : 1;
77*b111ab5aSJacob Keller 		u32 ext_synce_sel : 1;
78*b111ab5aSJacob Keller 		u32 ref1588_ck_div : 4;
79*b111ab5aSJacob Keller 		u32 time_ref_sel : 1;
80*b111ab5aSJacob Keller 	} field;
81*b111ab5aSJacob Keller 	u32 val;
82*b111ab5aSJacob Keller };
83*b111ab5aSJacob Keller 
84*b111ab5aSJacob Keller #define TSPLL_CNTR_BIST_SETTINGS 0x344
85*b111ab5aSJacob Keller union tspll_cntr_bist_settings {
86*b111ab5aSJacob Keller 	struct {
87*b111ab5aSJacob Keller 		u32 i_irefgen_settling_time_cntr_7_0 : 8;
88*b111ab5aSJacob Keller 		u32 i_irefgen_settling_time_ro_standby_1_0 : 2;
89*b111ab5aSJacob Keller 		u32 reserved195 : 5;
90*b111ab5aSJacob Keller 		u32 i_plllock_sel_0 : 1;
91*b111ab5aSJacob Keller 		u32 i_plllock_sel_1 : 1;
92*b111ab5aSJacob Keller 		u32 i_plllock_cnt_6_0 : 7;
93*b111ab5aSJacob Keller 		u32 i_plllock_cnt_10_7 : 4;
94*b111ab5aSJacob Keller 		u32 reserved200 : 4;
95*b111ab5aSJacob Keller 	} field;
96*b111ab5aSJacob Keller 	u32 val;
97*b111ab5aSJacob Keller };
98*b111ab5aSJacob Keller 
99*b111ab5aSJacob Keller #define TSPLL_RO_BWM_LF 0x370
100*b111ab5aSJacob Keller union tspll_ro_bwm_lf {
101*b111ab5aSJacob Keller 	struct {
102*b111ab5aSJacob Keller 		u32 bw_freqov_high_cri_7_0 : 8;
103*b111ab5aSJacob Keller 		u32 bw_freqov_high_cri_9_8 : 2;
104*b111ab5aSJacob Keller 		u32 biascaldone_cri : 1;
105*b111ab5aSJacob Keller 		u32 plllock_gain_tran_cri : 1;
106*b111ab5aSJacob Keller 		u32 plllock_true_lock_cri : 1;
107*b111ab5aSJacob Keller 		u32 pllunlock_flag_cri : 1;
108*b111ab5aSJacob Keller 		u32 afcerr_cri : 1;
109*b111ab5aSJacob Keller 		u32 afcdone_cri : 1;
110*b111ab5aSJacob Keller 		u32 feedfwrdgain_cal_cri_7_0 : 8;
111*b111ab5aSJacob Keller 		u32 m2fbdivmod_cri_7_0 : 8;
112*b111ab5aSJacob Keller 	} field;
113*b111ab5aSJacob Keller 	u32 val;
114*b111ab5aSJacob Keller };
115*b111ab5aSJacob Keller 
116*b111ab5aSJacob Keller #endif /* _ICE_CGU_REGS_H_ */
117