diff --git a/drivers/memory/rockchip/dsmc-controller.c b/drivers/memory/rockchip/dsmc-controller.c index d4e85f85cdc9..495f8a3820fb 100644 --- a/drivers/memory/rockchip/dsmc-controller.c +++ b/drivers/memory/rockchip/dsmc-controller.c @@ -507,6 +507,9 @@ static int dsmc_psram_cfg(struct rockchip_dsmc *dsmc, uint32_t cs) mr_tmp = (mr_tmp & (~(XCCELA_MR4_WL_MASK << XCCELA_MR4_WL_SHIFT))) | (tmp << XCCELA_MR4_WL_SHIFT); + /* set 0.5x refresh rate allow */ + mr_tmp = (mr_tmp & (~(XCCELA_MR4_REFRESH_MASK << XCCELA_MR4_REFRESH_SHIFT))) | + (XCCELA_MR4_0_5_REFRESH_RATE << XCCELA_MR4_REFRESH_SHIFT); xccela_write_mr(region_map, 4, mr_tmp); diff --git a/drivers/memory/rockchip/dsmc-host.h b/drivers/memory/rockchip/dsmc-host.h index 9e4f7671a594..0c17d7eafd79 100644 --- a/drivers/memory/rockchip/dsmc-host.h +++ b/drivers/memory/rockchip/dsmc-host.h @@ -254,6 +254,9 @@ #define XCCELA_MR4_WL_SHIFT (5) #define XCCELA_MR4_WL_MASK (0x7) +#define XCCELA_MR4_REFRESH_SHIFT (3) +#define XCCELA_MR4_REFRESH_MASK (0x3) +#define XCCELA_MR4_0_5_REFRESH_RATE (0x3) #define XCCELA_MR8_IO_TYPE_SHIFT (6) #define XCCELA_MR8_IO_TYPE_MASK (0x1)