summaryrefslogtreecommitdiff
path: root/drivers/ram/rockchip
diff options
context:
space:
mode:
authorJagan Teki <jagan@amarulasolutions.com>2019-07-16 14:57:18 +0300
committerKever Yang <kever.yang@rock-chips.com>2019-07-20 18:59:44 +0300
commit4e9de9eba844a2432a40ffb4ce7a07f9d786e940 (patch)
treed3155de01620f8fd59160d19e651170add6d0894 /drivers/ram/rockchip
parentd3d0099ca6661af0ae3cab1402fbe87121b645a5 (diff)
downloadu-boot-4e9de9eba844a2432a40ffb4ce7a07f9d786e940.tar.xz
ram: rk3399: Map chipselect for lpddr4
Assign desired cs_map values for lpddr4 during set memory map. Initial cs_map values is based on the sdram parameters, so the same will adjusted based dramtype as LPDDR4. Signed-off-by: Jagan Teki <jagan@amarulasolutions.com> Signed-off-by: YouMin Chen <cym@rock-chips.com>
Diffstat (limited to 'drivers/ram/rockchip')
-rw-r--r--drivers/ram/rockchip/sdram_rk3399.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/drivers/ram/rockchip/sdram_rk3399.c b/drivers/ram/rockchip/sdram_rk3399.c
index e5265128ae..2498620aec 100644
--- a/drivers/ram/rockchip/sdram_rk3399.c
+++ b/drivers/ram/rockchip/sdram_rk3399.c
@@ -188,6 +188,16 @@ static void set_memory_map(const struct chan_info *chan, u32 channel,
clrsetbits_le32(&denali_pi[155], (0x3 << 16) | (0x7 << 24),
((3 - sdram_ch->cap_info.bk) << 16) |
((16 - row) << 24));
+
+ if (IS_ENABLED(CONFIG_RAM_RK3399_LPDDR4)) {
+ if (cs_map == 1)
+ cs_map = 0x5;
+ else if (cs_map == 2)
+ cs_map = 0xa;
+ else
+ cs_map = 0xF;
+ }
+
/* PI_41 PI_CS_MAP:RW:24:4 */
clrsetbits_le32(&denali_pi[41], 0xf << 24, cs_map << 24);
if (sdram_ch->cap_info.rank == 1 && params->base.dramtype == DDR3)