From a27290a6f892421d335ffbdd5b8724135132b991 Mon Sep 17 00:00:00 2001 From: Kever Yang Date: Mon, 25 Sep 2017 16:33:22 +0800 Subject: [PATCH] rockchip: rk3188: ram: add support for 16bit row address RK3188 using the same ddr_conf for both 15 bit and 16 bit row address. Signed-off-by: Kever Yang Acked-by: Philipp Tomsich Reviewed-by: Philipp Tomsich [Fixed compile-error by declaring 'row':] Signed-off-by: Philipp Tomsich --- drivers/ram/rockchip/sdram_rk3188.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/drivers/ram/rockchip/sdram_rk3188.c b/drivers/ram/rockchip/sdram_rk3188.c index 9d8b225dfa..365d00ef54 100644 --- a/drivers/ram/rockchip/sdram_rk3188.c +++ b/drivers/ram/rockchip/sdram_rk3188.c @@ -682,11 +682,18 @@ out: static int sdram_get_niu_config(struct rk3188_sdram_params *sdram_params) { - int i, tmp, size, ret = 0; + int i, tmp, size, row, ret = 0; + row = sdram_params->ch[0].cs0_row; + /* + * RK3188 share the rank and row bit15, we use same ddr config for 15bit + * and 16bit row + */ + if (row == 16) + row = 15; tmp = sdram_params->ch[0].col - 9; tmp -= (sdram_params->ch[0].bw == 2) ? 0 : 1; - tmp |= ((sdram_params->ch[0].cs0_row - 13) << 4); + tmp |= ((row - 13) << 4); size = sizeof(ddrconf_table)/sizeof(ddrconf_table[0]); for (i = 0; i < size; i++) if (tmp == ddrconf_table[i]) -- 2.25.1