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