ram: rk3399: Map chipselect for lpddr4
authorJagan Teki <jagan@amarulasolutions.com>
Tue, 16 Jul 2019 11:57:18 +0000 (17:27 +0530)
committerKever Yang <kever.yang@rock-chips.com>
Sat, 20 Jul 2019 15:59:44 +0000 (23:59 +0800)
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>
drivers/ram/rockchip/sdram_rk3399.c

index e5265128ae24c3a80ea1056284a947da5b4bbe4d..2498620aecd3d6250139a9b9653f2397dcc6649e 100644 (file)
@@ -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)