xref: /rk3399_ARM-atf/drivers/nxp/ddr/phy-gen2/csr.h (revision 9719e19a977df3e8bf7567b3c0e1d6b2ebc5b46f)
1*b35ce0c4SPankaj Gupta /*
2*b35ce0c4SPankaj Gupta  * Copyright 2021 NXP
3*b35ce0c4SPankaj Gupta  * SPDX-License-Identifier: BSD-3-Clause
4*b35ce0c4SPankaj Gupta  *
5*b35ce0c4SPankaj Gupta  */
6*b35ce0c4SPankaj Gupta 
7*b35ce0c4SPankaj Gupta #ifndef CSR_H
8*b35ce0c4SPankaj Gupta #define CSR_H
9*b35ce0c4SPankaj Gupta 
10*b35ce0c4SPankaj Gupta #define t_anib					0
11*b35ce0c4SPankaj Gupta #define t_dbyte					0x10000
12*b35ce0c4SPankaj Gupta #define t_master				0x20000
13*b35ce0c4SPankaj Gupta #define t_acsm					0x40000
14*b35ce0c4SPankaj Gupta #define t_initeng				0x90000
15*b35ce0c4SPankaj Gupta #define t_drtub					0xc0000
16*b35ce0c4SPankaj Gupta #define t_apbonly				0xd0000
17*b35ce0c4SPankaj Gupta #define csr_dbyte_misc_mode_addr		0x00
18*b35ce0c4SPankaj Gupta #define csr_micro_cont_mux_sel_addr		0x00
19*b35ce0c4SPankaj Gupta #define csr_uct_shadow_regs			0x04
20*b35ce0c4SPankaj Gupta #define csr_cal_uclk_info_addr			0x08
21*b35ce0c4SPankaj Gupta #define csr_seq0bdly0_addr			0x0b
22*b35ce0c4SPankaj Gupta #define csr_seq0bdly1_addr			0x0c
23*b35ce0c4SPankaj Gupta #define csr_seq0bdly2_addr			0x0d
24*b35ce0c4SPankaj Gupta #define csr_seq0bdly3_addr			0x0e
25*b35ce0c4SPankaj Gupta #define csr_seq0bdisable_flag0_addr		0x0c
26*b35ce0c4SPankaj Gupta #define csr_seq0bdisable_flag1_addr		0x0d
27*b35ce0c4SPankaj Gupta #define csr_seq0bdisable_flag2_addr		0x0e
28*b35ce0c4SPankaj Gupta #define csr_seq0bdisable_flag3_addr		0x0f
29*b35ce0c4SPankaj Gupta #define csr_seq0bdisable_flag4_addr		0x10
30*b35ce0c4SPankaj Gupta #define csr_seq0bdisable_flag5_addr		0x11
31*b35ce0c4SPankaj Gupta #define csr_seq0bdisable_flag6_addr		0x12
32*b35ce0c4SPankaj Gupta #define csr_seq0bdisable_flag7_addr		0x13
33*b35ce0c4SPankaj Gupta #define csr_dfi_mode_addr			0x18
34*b35ce0c4SPankaj Gupta #define csr_tristate_mode_ca_addr		0x19
35*b35ce0c4SPankaj Gupta #define csr_dfiphyupd_addr			0x21
36*b35ce0c4SPankaj Gupta #define csr_dqs_preamble_control_addr		0x24
37*b35ce0c4SPankaj Gupta #define csr_master_x4config_addr		0x25
38*b35ce0c4SPankaj Gupta #define csr_enable_cs_multicast_addr		0x27
39*b35ce0c4SPankaj Gupta #define csr_acx4_anib_dis_addr			0x2c
40*b35ce0c4SPankaj Gupta #define csr_dmipin_present_addr			0x2d
41*b35ce0c4SPankaj Gupta #define csr_ard_ptr_init_val_addr		0x2e
42*b35ce0c4SPankaj Gupta #define csr_dct_write_prot			0x31
43*b35ce0c4SPankaj Gupta #define csr_uct_write_only_shadow		0x32
44*b35ce0c4SPankaj Gupta #define csr_uct_write_prot			0x33
45*b35ce0c4SPankaj Gupta #define csr_uct_dat_write_only_shadow		0x34
46*b35ce0c4SPankaj Gupta #define	csr_dbyte_dll_mode_cntrl_addr		0x3a
47*b35ce0c4SPankaj Gupta #define csr_atx_impedance_addr			0x43
48*b35ce0c4SPankaj Gupta #define csr_dq_dqs_rcv_cntrl_addr		0x43
49*b35ce0c4SPankaj Gupta #define csr_cal_offsets_addr			0x45
50*b35ce0c4SPankaj Gupta #define csr_tx_impedance_ctrl1_addr		0x49
51*b35ce0c4SPankaj Gupta #define csr_dq_dqs_rcv_cntrl1_addr		0x4a
52*b35ce0c4SPankaj Gupta #define csr_tx_odt_drv_stren_addr		0x4d
53*b35ce0c4SPankaj Gupta #define csr_cal_drv_str0_addr			0x50
54*b35ce0c4SPankaj Gupta #define csr_atx_slew_rate_addr			0x55
55*b35ce0c4SPankaj Gupta #define csr_proc_odt_time_ctl_addr		0x56
56*b35ce0c4SPankaj Gupta #define csr_mem_alert_control_addr		0x5b
57*b35ce0c4SPankaj Gupta #define csr_mem_alert_control2_addr		0x5c
58*b35ce0c4SPankaj Gupta #define csr_tx_slew_rate_addr			0x5f
59*b35ce0c4SPankaj Gupta #define csr_mem_reset_l_addr			0x60
60*b35ce0c4SPankaj Gupta #define csr_dfi_camode_addr			0x75
61*b35ce0c4SPankaj Gupta #define csr_dll_gain_ctl_addr			0x7c
62*b35ce0c4SPankaj Gupta #define csr_dll_lockparam_addr			0x7d
63*b35ce0c4SPankaj Gupta #define csr_ucclk_hclk_enables_addr		0x80
64*b35ce0c4SPankaj Gupta #define csr_acsm_playback0x0_addr		0x80
65*b35ce0c4SPankaj Gupta #define csr_acsm_playback1x0_addr		0x81
66*b35ce0c4SPankaj Gupta #define csr_cal_rate_addr			0x88
67*b35ce0c4SPankaj Gupta #define csr_cal_zap_addr			0x89
68*b35ce0c4SPankaj Gupta #define csr_cal_misc2_addr			0x98
69*b35ce0c4SPankaj Gupta #define csr_micro_reset_addr			0x99
70*b35ce0c4SPankaj Gupta #define csr_dfi_rd_data_cs_dest_map_addr	0xb0
71*b35ce0c4SPankaj Gupta #define csr_vref_in_global_addr			0xb2
72*b35ce0c4SPankaj Gupta #define csr_dfi_wr_data_cs_dest_map_addr	0xb4
73*b35ce0c4SPankaj Gupta #define csr_pll_pwr_dn_addr			0xc3
74*b35ce0c4SPankaj Gupta #define csr_pll_ctrl2_addr			0xc5
75*b35ce0c4SPankaj Gupta #define csr_pll_ctrl1_addr			0xc7
76*b35ce0c4SPankaj Gupta #define csr_pll_test_mode_addr			0xca
77*b35ce0c4SPankaj Gupta #define csr_pll_ctrl4_addr			0xcc
78*b35ce0c4SPankaj Gupta #define csr_dfi_freq_xlat0_addr			0xf0
79*b35ce0c4SPankaj Gupta #define csr_acsm_ctrl0_addr			0xf0
80*b35ce0c4SPankaj Gupta #define csr_dfi_freq_ratio_addr			0xfa
81*b35ce0c4SPankaj Gupta #define csr_acsm_ctrl13_addr			0xfd
82*b35ce0c4SPankaj Gupta #define csr_tx_pre_drv_mode_lsb			8
83*b35ce0c4SPankaj Gupta #define csr_tx_pre_n_lsb			4
84*b35ce0c4SPankaj Gupta #define csr_tx_pre_p_lsb			0
85*b35ce0c4SPankaj Gupta #define csr_atx_pre_drv_mode_lsb		8
86*b35ce0c4SPankaj Gupta #define csr_atx_pre_n_lsb			4
87*b35ce0c4SPankaj Gupta #define csr_atx_pre_p_lsb			0
88*b35ce0c4SPankaj Gupta #define csr_wdqsextension_lsb			8
89*b35ce0c4SPankaj Gupta #define csr_lp4sttc_pre_bridge_rx_en_lsb	7
90*b35ce0c4SPankaj Gupta #define csr_lp4postamble_ext_lsb		6
91*b35ce0c4SPankaj Gupta #define csr_lp4tgl_two_tck_tx_dqs_pre_lsb	5
92*b35ce0c4SPankaj Gupta #define csr_position_dfe_init_lsb		2
93*b35ce0c4SPankaj Gupta #define csr_two_tck_tx_dqs_pre_lsb		1
94*b35ce0c4SPankaj Gupta #define csr_two_tck_rx_dqs_pre_lsb		0
95*b35ce0c4SPankaj Gupta #define csr_dll_rx_preamble_mode_lsb		1
96*b35ce0c4SPankaj Gupta #define csr_odtstren_n_lsb			6
97*b35ce0c4SPankaj Gupta #define csr_drv_stren_fsdq_n_lsb		6
98*b35ce0c4SPankaj Gupta #define	csr_drv_stren_fsdq_p_lsb		0
99*b35ce0c4SPankaj Gupta #define csr_adrv_stren_n_lsb			5
100*b35ce0c4SPankaj Gupta #define csr_adrv_stren_p_lsb			0
101*b35ce0c4SPankaj Gupta #define csr_cal_drv_str_pu50_lsb		4
102*b35ce0c4SPankaj Gupta #define csr_cal_once_lsb			5
103*b35ce0c4SPankaj Gupta #define csr_cal_interval_lsb			0
104*b35ce0c4SPankaj Gupta #define csr_cal_run_lsb				4
105*b35ce0c4SPankaj Gupta #define csr_global_vref_in_dac_lsb		3
106*b35ce0c4SPankaj Gupta #define csr_gain_curr_adj_lsb			7
107*b35ce0c4SPankaj Gupta #define csr_major_mode_dbyte_lsb		4
108*b35ce0c4SPankaj Gupta #define csr_dfe_ctrl_lsb			2
109*b35ce0c4SPankaj Gupta #define csr_ext_vref_range_lsb			1
110*b35ce0c4SPankaj Gupta #define csr_sel_analog_vref_lsb			0
111*b35ce0c4SPankaj Gupta #define csr_malertsync_bypass_lsb		0
112*b35ce0c4SPankaj Gupta #define csr_ck_dis_val_lsb			2
113*b35ce0c4SPankaj Gupta #define csr_ddr2tmode_lsb			1
114*b35ce0c4SPankaj Gupta #define csr_dis_dyn_adr_tri_lsb			0
115*b35ce0c4SPankaj Gupta #define	csr_dbyte_disable_lsb			2
116*b35ce0c4SPankaj Gupta #define csr_power_down_rcvr_lsb			0
117*b35ce0c4SPankaj Gupta #define csr_power_down_rcvr_dqs_lsb		9
118*b35ce0c4SPankaj Gupta #define csr_rx_pad_standby_en_lsb		10
119*b35ce0c4SPankaj Gupta #define csr_rx_pad_standby_en_mask		0x400
120*b35ce0c4SPankaj Gupta #define csr_x4tg_lsb				0
121*b35ce0c4SPankaj Gupta #define csr_reset_to_micro_mask			0x8
122*b35ce0c4SPankaj Gupta #define csr_protect_mem_reset_mask		0x2
123*b35ce0c4SPankaj Gupta #define csr_stall_to_micro_mask			0x1
124*b35ce0c4SPankaj Gupta #define uct_write_prot_shadow_mask		0x1
125*b35ce0c4SPankaj Gupta #define csr_acsm_par_mode_mask			0x4000
126*b35ce0c4SPankaj Gupta #define csr_acsm_cke_enb_lsb			0
127*b35ce0c4SPankaj Gupta #define csr_dfiphyupd_threshold_lsb		8
128*b35ce0c4SPankaj Gupta #define csr_dfiphyupd_threshold_msb		11
129*b35ce0c4SPankaj Gupta #define csr_dfiphyupd_threshold_mask		0xf00
130*b35ce0c4SPankaj Gupta #define csr_dfi_rd_destm0_lsb			0
131*b35ce0c4SPankaj Gupta #define csr_dfi_rd_destm1_lsb			2
132*b35ce0c4SPankaj Gupta #define csr_dfi_rd_destm2_lsb			4
133*b35ce0c4SPankaj Gupta #define csr_dfi_rd_destm3_lsb			6
134*b35ce0c4SPankaj Gupta #define csr_dfi_wr_destm0_lsb			0
135*b35ce0c4SPankaj Gupta #define csr_dfi_wr_destm1_lsb			2
136*b35ce0c4SPankaj Gupta #define csr_dfi_wr_destm2_lsb			4
137*b35ce0c4SPankaj Gupta #define csr_dfi_wr_destm3_lsb			6
138*b35ce0c4SPankaj Gupta #define csr_acsm_2t_mode_mask			0x40
139*b35ce0c4SPankaj Gupta #define csr_cal_misc2_err_dis			13
140*b35ce0c4SPankaj Gupta #define csr_cal_offset_pdc_lsb			6
141*b35ce0c4SPankaj Gupta #define csr_cal_offset_pdc_msb			9
142*b35ce0c4SPankaj Gupta #define csr_cal_offset_pdc_mask			0xe0
143*b35ce0c4SPankaj Gupta #define csr_cal_drv_pdth_mask			0x3c0
144*b35ce0c4SPankaj Gupta 
145*b35ce0c4SPankaj Gupta 
146*b35ce0c4SPankaj Gupta struct impedance_mapping {
147*b35ce0c4SPankaj Gupta 	int ohm;
148*b35ce0c4SPankaj Gupta 	int code;
149*b35ce0c4SPankaj Gupta };
150*b35ce0c4SPankaj Gupta 
151*b35ce0c4SPankaj Gupta #endif
152