Lines Matching refs:cap_info
53 void sdram_print_ddr_info(struct sdram_cap_info *cap_info, in sdram_print_ddr_info() argument
59 bg = (cap_info->dbw == 0) ? 2 : 1; in sdram_print_ddr_info()
68 printdec(8 << cap_info->bw); in sdram_print_ddr_info()
70 printdec(cap_info->col); in sdram_print_ddr_info()
72 printdec(0x1 << cap_info->bk); in sdram_print_ddr_info()
78 printdec(cap_info->cs0_row); in sdram_print_ddr_info()
79 if (cap_info->cs0_high16bit_row != in sdram_print_ddr_info()
80 cap_info->cs0_row) { in sdram_print_ddr_info()
82 printdec(cap_info->cs0_high16bit_row); in sdram_print_ddr_info()
84 if (cap_info->rank > 1) { in sdram_print_ddr_info()
86 printdec(cap_info->cs1_row); in sdram_print_ddr_info()
87 if (cap_info->cs1_high16bit_row != in sdram_print_ddr_info()
88 cap_info->cs1_row) { in sdram_print_ddr_info()
90 printdec(cap_info->cs1_high16bit_row); in sdram_print_ddr_info()
93 if (cap_info->rank > 2) { in sdram_print_ddr_info()
95 printdec(cap_info->cs2_row); in sdram_print_ddr_info()
96 if (cap_info->cs2_high16bit_row != in sdram_print_ddr_info()
97 cap_info->cs2_row) { in sdram_print_ddr_info()
99 printdec(cap_info->cs2_high16bit_row); in sdram_print_ddr_info()
102 printdec(cap_info->cs3_row); in sdram_print_ddr_info()
103 if (cap_info->cs3_high16bit_row != in sdram_print_ddr_info()
104 cap_info->cs3_row) { in sdram_print_ddr_info()
106 printdec(cap_info->cs3_high16bit_row); in sdram_print_ddr_info()
110 printdec(cap_info->rank); in sdram_print_ddr_info()
112 printdec(8 << cap_info->dbw); in sdram_print_ddr_info()
114 cap = sdram_get_cs_cap(cap_info, 3, base->dramtype); in sdram_print_ddr_info()
115 if (cap_info->row_3_4) in sdram_print_ddr_info()
131 u64 sdram_get_cs_cap(struct sdram_cap_info *cap_info, u32 cs, u32 dram_type) in sdram_get_cs_cap() argument
140 bg = (cap_info->dbw == 0) ? 2 : 1; in sdram_get_cs_cap()
143 cap[0] = 1llu << (cap_info->bw + cap_info->col + in sdram_get_cs_cap()
144 bg + cap_info->bk + cap_info->cs0_row); in sdram_get_cs_cap()
146 if (cap_info->rank >= 2) in sdram_get_cs_cap()
147 cap[1] = 1llu << (cap_info->bw + cap_info->col + in sdram_get_cs_cap()
148 bg + cap_info->bk + cap_info->cs1_row); in sdram_get_cs_cap()
152 if (cap_info->rank == 4) { in sdram_get_cs_cap()
153 cap[2] = 1llu << (cap_info->bw + cap_info->col + in sdram_get_cs_cap()
154 bg + cap_info->bk + cap_info->cs2_row); in sdram_get_cs_cap()
155 cap[3] = 1llu << (cap_info->bw + cap_info->col + in sdram_get_cs_cap()
156 bg + cap_info->bk + cap_info->cs3_row); in sdram_get_cs_cap()
181 void sdram_org_config(struct sdram_cap_info *cap_info, in sdram_org_config() argument
188 *p_os_reg2 |= SYS_REG_ENC_ROW_3_4(cap_info->row_3_4, channel); in sdram_org_config()
190 *p_os_reg2 |= SYS_REG_ENC_RANK(cap_info->rank, channel); in sdram_org_config()
191 *p_os_reg2 |= SYS_REG_ENC_COL(cap_info->col, channel); in sdram_org_config()
192 *p_os_reg2 |= SYS_REG_ENC_BK(cap_info->bk, channel); in sdram_org_config()
193 *p_os_reg2 |= SYS_REG_ENC_BW(cap_info->bw, channel); in sdram_org_config()
194 *p_os_reg2 |= SYS_REG_ENC_DBW(cap_info->dbw, channel); in sdram_org_config()
196 SYS_REG_ENC_CS0_ROW(cap_info->cs0_row, *p_os_reg2, *p_os_reg3, channel); in sdram_org_config()
197 if (cap_info->cs1_row) in sdram_org_config()
198 SYS_REG_ENC_CS1_ROW(cap_info->cs1_row, *p_os_reg2, in sdram_org_config()
200 *p_os_reg3 |= SYS_REG_ENC_CS1_COL(cap_info->col, channel); in sdram_org_config()
204 void sdram_org_config_v3(struct sdram_cap_info *cap_info, in sdram_org_config_v3() argument
213 *p_os_reg2 |= SYS_REG_ENC_ROW_3_4_V3(cap_info->row_3_4, channel); in sdram_org_config_v3()
216 SYS_REG_ENC_CH0_2_RANK_V3(cap_info->rank, in sdram_org_config_v3()
219 *p_os_reg2 |= SYS_REG_ENC_CH1_3_RANK(cap_info->rank); in sdram_org_config_v3()
221 *p_os_reg2 |= SYS_REG_ENC_COL_V3(cap_info->col, channel); in sdram_org_config_v3()
222 *p_os_reg2 |= SYS_REG_ENC_BK_V3(cap_info->bk, channel); in sdram_org_config_v3()
223 *p_os_reg2 |= SYS_REG_ENC_BW_V3(cap_info->bw, channel); in sdram_org_config_v3()
224 *p_os_reg2 |= SYS_REG_ENC_DBW_V3(cap_info->dbw, channel); in sdram_org_config_v3()
226 SYS_REG_ENC_CS0_ROW_V3(cap_info->cs0_row, *p_os_reg2, *p_os_reg3, channel); in sdram_org_config_v3()
227 if (cap_info->cs1_row) in sdram_org_config_v3()
228 SYS_REG_ENC_CS1_ROW_V3(cap_info->cs1_row, *p_os_reg2, in sdram_org_config_v3()
230 if ((channel == 0 || channel == 2) && cap_info->rank > 2) { in sdram_org_config_v3()
231 if (cap_info->cs2_row == cap_info->cs0_row) in sdram_org_config_v3()
236 if (cap_info->cs3_row == cap_info->cs0_row) in sdram_org_config_v3()
242 *p_os_reg3 |= SYS_REG_ENC_CS1_COL_V3(cap_info->col, channel); in sdram_org_config_v3()
246 int sdram_detect_bw(struct sdram_cap_info *cap_info) in sdram_detect_bw() argument
251 int sdram_detect_cs(struct sdram_cap_info *cap_info) in sdram_detect_cs() argument
256 int sdram_detect_col(struct sdram_cap_info *cap_info, in sdram_detect_col() argument
261 u32 bw = cap_info->bw; in sdram_detect_col()
277 cap_info->col = col; in sdram_detect_col()
282 int sdram_detect_bank(struct sdram_cap_info *cap_info, void __iomem *pctl_base, in sdram_detect_bank() argument
287 u32 bw = cap_info->bw; in sdram_detect_bank()
305 cap_info->bk = bk; in sdram_detect_bank()
314 int sdram_detect_bg(struct sdram_cap_info *cap_info, void __iomem *pctl_base, in sdram_detect_bg() argument
319 u32 bw = cap_info->bw; in sdram_detect_bg()
337 cap_info->dbw = dbw; in sdram_detect_bg()
345 int sdram_detect_dbw(struct sdram_cap_info *cap_info, u32 dram_type) in sdram_detect_dbw() argument
351 if (cap_info->bw == 0) in sdram_detect_dbw()
352 cap_info->dbw = 0; in sdram_detect_dbw()
354 cap_info->dbw = 1; in sdram_detect_dbw()
356 cap_info->dbw = 1; in sdram_detect_dbw()
358 row = cap_info->cs0_row; in sdram_detect_dbw()
359 col = cap_info->col; in sdram_detect_dbw()
360 bk = cap_info->bk; in sdram_detect_dbw()
361 cs = cap_info->rank; in sdram_detect_dbw()
362 bw = cap_info->bw; in sdram_detect_dbw()
374 row = cap_info->cs1_row; in sdram_detect_dbw()
389 cap_info->dbw = (die_bw_0 > die_bw_1) ? die_bw_0 : die_bw_1; in sdram_detect_dbw()
395 int sdram_detect_row(struct sdram_cap_info *cap_info, in sdram_detect_row() argument
399 u32 bw = cap_info->bw; in sdram_detect_row()
416 cap_info->cs0_row = row; in sdram_detect_row()
421 int sdram_detect_row_3_4(struct sdram_cap_info *cap_info, in sdram_detect_row_3_4() argument
425 u32 bw = cap_info->bw; in sdram_detect_row_3_4()
426 u32 row = cap_info->cs0_row; in sdram_detect_row_3_4()
440 cap_info->row_3_4 = row_3_4; in sdram_detect_row_3_4()
445 int sdram_detect_high_row(struct sdram_cap_info *cap_info, u32 dramtype) in sdram_detect_high_row() argument
456 cs = cap_info->rank; in sdram_detect_high_row()
458 if (!cap_info->bw) { in sdram_detect_high_row()
459 cs0_high_row = cap_info->cs0_row; in sdram_detect_high_row()
460 cs1_high_row = cap_info->cs1_row; in sdram_detect_high_row()
463 cs2_high_row = cap_info->cs2_row; in sdram_detect_high_row()
464 cs3_high_row = cap_info->cs3_row; in sdram_detect_high_row()
471 cs0_high_row = cap_info->cs0_row; in sdram_detect_high_row()
472 cs1_high_row = cap_info->cs1_row; in sdram_detect_high_row()
473 cs2_high_row = cap_info->cs2_row; in sdram_detect_high_row()
474 cs3_high_row = cap_info->cs3_row; in sdram_detect_high_row()
480 cs0_cap = sdram_get_cs_cap(cap_info, 0, dramtype); in sdram_detect_high_row()
483 cap = sdram_get_cs_cap(cap_info, 1, dramtype); in sdram_detect_high_row()
505 cs0_high_row = cap_info->cs0_row; in sdram_detect_high_row()
509 cs1_high_row = cap_info->cs1_row - i; in sdram_detect_high_row()
511 cs0_high_row = cap_info->cs0_row - i; in sdram_detect_high_row()
516 cap_info->cs0_high16bit_row = cs0_high_row; in sdram_detect_high_row()
517 cap_info->cs1_high16bit_row = cs1_high_row; in sdram_detect_high_row()
520 cap_info->cs2_high16bit_row = cs2_high_row; in sdram_detect_high_row()
521 cap_info->cs3_high16bit_row = cs3_high_row; in sdram_detect_high_row()
528 int sdram_detect_cs1_row(struct sdram_cap_info *cap_info, u32 dram_type) in sdram_detect_cs1_row() argument
535 if (cap_info->rank == 2) { in sdram_detect_cs1_row()
536 cs0_cap = sdram_get_cs_cap(cap_info, 0, dram_type); in sdram_detect_cs1_row()
539 if (cap_info->dbw == 0) in sdram_detect_cs1_row()
540 bktmp = cap_info->bk + 2; in sdram_detect_cs1_row()
542 bktmp = cap_info->bk + 1; in sdram_detect_cs1_row()
544 bktmp = cap_info->bk; in sdram_detect_cs1_row()
546 bw = cap_info->bw; in sdram_detect_cs1_row()
547 coltmp = cap_info->col; in sdram_detect_cs1_row()
561 for (row = cap_info->cs0_row; row > 12; row--) { in sdram_detect_cs1_row()
577 cap_info->cs1_row = row; in sdram_detect_cs1_row()