100a2749dSAllen Martin /* 200a2749dSAllen Martin * (C) Copyright 2010, 2011 300a2749dSAllen Martin * NVIDIA Corporation <www.nvidia.com> 400a2749dSAllen Martin * 5*1a459660SWolfgang Denk * SPDX-License-Identifier: GPL-2.0+ 600a2749dSAllen Martin */ 700a2749dSAllen Martin 800a2749dSAllen Martin #ifndef _SDRAM_PARAM_H_ 900a2749dSAllen Martin #define _SDRAM_PARAM_H_ 1000a2749dSAllen Martin 1100a2749dSAllen Martin /* 1200a2749dSAllen Martin * Defines the number of 32-bit words provided in each set of SDRAM parameters 1300a2749dSAllen Martin * for arbitration configuration data. 1400a2749dSAllen Martin */ 1500a2749dSAllen Martin #define BCT_SDRAM_ARB_CONFIG_WORDS 27 1600a2749dSAllen Martin 1700a2749dSAllen Martin enum memory_type { 1800a2749dSAllen Martin MEMORY_TYPE_NONE = 0, 1900a2749dSAllen Martin MEMORY_TYPE_DDR, 2000a2749dSAllen Martin MEMORY_TYPE_LPDDR, 2100a2749dSAllen Martin MEMORY_TYPE_DDR2, 2200a2749dSAllen Martin MEMORY_TYPE_LPDDR2, 2300a2749dSAllen Martin MEMORY_TYPE_NUM, 2400a2749dSAllen Martin MEMORY_TYPE_FORCE32 = 0x7FFFFFFF 2500a2749dSAllen Martin }; 2600a2749dSAllen Martin 2700a2749dSAllen Martin /* Defines the SDRAM parameter structure */ 2800a2749dSAllen Martin struct sdram_params { 2900a2749dSAllen Martin enum memory_type memory_type; 3000a2749dSAllen Martin u32 pllm_charge_pump_setup_control; 3100a2749dSAllen Martin u32 pllm_loop_filter_setup_control; 3200a2749dSAllen Martin u32 pllm_input_divider; 3300a2749dSAllen Martin u32 pllm_feedback_divider; 3400a2749dSAllen Martin u32 pllm_post_divider; 3500a2749dSAllen Martin u32 pllm_stable_time; 3600a2749dSAllen Martin u32 emc_clock_divider; 3700a2749dSAllen Martin u32 emc_auto_cal_interval; 3800a2749dSAllen Martin u32 emc_auto_cal_config; 3900a2749dSAllen Martin u32 emc_auto_cal_wait; 4000a2749dSAllen Martin u32 emc_pin_program_wait; 4100a2749dSAllen Martin u32 emc_rc; 4200a2749dSAllen Martin u32 emc_rfc; 4300a2749dSAllen Martin u32 emc_ras; 4400a2749dSAllen Martin u32 emc_rp; 4500a2749dSAllen Martin u32 emc_r2w; 4600a2749dSAllen Martin u32 emc_w2r; 4700a2749dSAllen Martin u32 emc_r2p; 4800a2749dSAllen Martin u32 emc_w2p; 4900a2749dSAllen Martin u32 emc_rd_rcd; 5000a2749dSAllen Martin u32 emc_wr_rcd; 5100a2749dSAllen Martin u32 emc_rrd; 5200a2749dSAllen Martin u32 emc_rext; 5300a2749dSAllen Martin u32 emc_wdv; 5400a2749dSAllen Martin u32 emc_quse; 5500a2749dSAllen Martin u32 emc_qrst; 5600a2749dSAllen Martin u32 emc_qsafe; 5700a2749dSAllen Martin u32 emc_rdv; 5800a2749dSAllen Martin u32 emc_refresh; 5900a2749dSAllen Martin u32 emc_burst_refresh_num; 6000a2749dSAllen Martin u32 emc_pdex2wr; 6100a2749dSAllen Martin u32 emc_pdex2rd; 6200a2749dSAllen Martin u32 emc_pchg2pden; 6300a2749dSAllen Martin u32 emc_act2pden; 6400a2749dSAllen Martin u32 emc_ar2pden; 6500a2749dSAllen Martin u32 emc_rw2pden; 6600a2749dSAllen Martin u32 emc_txsr; 6700a2749dSAllen Martin u32 emc_tcke; 6800a2749dSAllen Martin u32 emc_tfaw; 6900a2749dSAllen Martin u32 emc_trpab; 7000a2749dSAllen Martin u32 emc_tclkstable; 7100a2749dSAllen Martin u32 emc_tclkstop; 7200a2749dSAllen Martin u32 emc_trefbw; 7300a2749dSAllen Martin u32 emc_quseextra; 7400a2749dSAllen Martin u32 emc_fbioc_fg1; 7500a2749dSAllen Martin u32 emc_fbio_dqsib_dly; 7600a2749dSAllen Martin u32 emc_fbio_dqsib_dly_msb; 7700a2749dSAllen Martin u32 emc_fbio_quse_dly; 7800a2749dSAllen Martin u32 emc_fbio_quse_dly_msb; 7900a2749dSAllen Martin u32 emc_fbio_cfg5; 8000a2749dSAllen Martin u32 emc_fbio_cfg6; 8100a2749dSAllen Martin u32 emc_fbio_spare; 8200a2749dSAllen Martin u32 emc_mrs; 8300a2749dSAllen Martin u32 emc_emrs; 8400a2749dSAllen Martin u32 emc_mrw1; 8500a2749dSAllen Martin u32 emc_mrw2; 8600a2749dSAllen Martin u32 emc_mrw3; 8700a2749dSAllen Martin u32 emc_mrw_reset_command; 8800a2749dSAllen Martin u32 emc_mrw_reset_init_wait; 8900a2749dSAllen Martin u32 emc_adr_cfg; 9000a2749dSAllen Martin u32 emc_adr_cfg1; 9100a2749dSAllen Martin u32 emc_emem_cfg; 9200a2749dSAllen Martin u32 emc_low_latency_config; 9300a2749dSAllen Martin u32 emc_cfg; 9400a2749dSAllen Martin u32 emc_cfg2; 9500a2749dSAllen Martin u32 emc_dbg; 9600a2749dSAllen Martin u32 ahb_arbitration_xbar_ctrl; 9700a2749dSAllen Martin u32 emc_cfg_dig_dll; 9800a2749dSAllen Martin u32 emc_dll_xform_dqs; 9900a2749dSAllen Martin u32 emc_dll_xform_quse; 10000a2749dSAllen Martin u32 warm_boot_wait; 10100a2749dSAllen Martin u32 emc_ctt_term_ctrl; 10200a2749dSAllen Martin u32 emc_odt_write; 10300a2749dSAllen Martin u32 emc_odt_read; 10400a2749dSAllen Martin u32 emc_zcal_ref_cnt; 10500a2749dSAllen Martin u32 emc_zcal_wait_cnt; 10600a2749dSAllen Martin u32 emc_zcal_mrw_cmd; 10700a2749dSAllen Martin u32 emc_mrs_reset_dll; 10800a2749dSAllen Martin u32 emc_mrw_zq_init_dev0; 10900a2749dSAllen Martin u32 emc_mrw_zq_init_dev1; 11000a2749dSAllen Martin u32 emc_mrw_zq_init_wait; 11100a2749dSAllen Martin u32 emc_mrs_reset_dll_wait; 11200a2749dSAllen Martin u32 emc_emrs_emr2; 11300a2749dSAllen Martin u32 emc_emrs_emr3; 11400a2749dSAllen Martin u32 emc_emrs_ddr2_dll_enable; 11500a2749dSAllen Martin u32 emc_mrs_ddr2_dll_reset; 11600a2749dSAllen Martin u32 emc_emrs_ddr2_ocd_calib; 11700a2749dSAllen Martin u32 emc_edr2_wait; 11800a2749dSAllen Martin u32 emc_cfg_clktrim0; 11900a2749dSAllen Martin u32 emc_cfg_clktrim1; 12000a2749dSAllen Martin u32 emc_cfg_clktrim2; 12100a2749dSAllen Martin u32 pmc_ddr_pwr; 12200a2749dSAllen Martin u32 apb_misc_gp_xm2cfga_padctrl; 12300a2749dSAllen Martin u32 apb_misc_gp_xm2cfgc_padctrl; 12400a2749dSAllen Martin u32 apb_misc_gp_xm2cfgc_padctrl2; 12500a2749dSAllen Martin u32 apb_misc_gp_xm2cfgd_padctrl; 12600a2749dSAllen Martin u32 apb_misc_gp_xm2cfgd_padctrl2; 12700a2749dSAllen Martin u32 apb_misc_gp_xm2clkcfg_padctrl; 12800a2749dSAllen Martin u32 apb_misc_gp_xm2comp_padctrl; 12900a2749dSAllen Martin u32 apb_misc_gp_xm2vttgen_padctrl; 13000a2749dSAllen Martin u32 arbitration_config[BCT_SDRAM_ARB_CONFIG_WORDS]; 13100a2749dSAllen Martin }; 13200a2749dSAllen Martin #endif 133