1*83d290c5STom Rini /* SPDX-License-Identifier: GPL-2.0+ */ 26d1970faSKever Yang /* 36d1970faSKever Yang * Copyright (C) 2017 Rockchip Electronics Co., Ltd. 46d1970faSKever Yang */ 56d1970faSKever Yang 66d1970faSKever Yang #ifndef _ASM_ARCH_SDRAM_COMMON_H 76d1970faSKever Yang #define _ASM_ARCH_SDRAM_COMMON_H 86d1970faSKever Yang /* 96d1970faSKever Yang * sys_reg bitfield struct 106d1970faSKever Yang * [31] row_3_4_ch1 116d1970faSKever Yang * [30] row_3_4_ch0 126d1970faSKever Yang * [29:28] chinfo 136d1970faSKever Yang * [27] rank_ch1 146d1970faSKever Yang * [26:25] col_ch1 156d1970faSKever Yang * [24] bk_ch1 166d1970faSKever Yang * [23:22] cs0_row_ch1 176d1970faSKever Yang * [21:20] cs1_row_ch1 186d1970faSKever Yang * [19:18] bw_ch1 196d1970faSKever Yang * [17:16] dbw_ch1; 206d1970faSKever Yang * [15:13] ddrtype 216d1970faSKever Yang * [12] channelnum 226d1970faSKever Yang * [11] rank_ch0 236d1970faSKever Yang * [10:9] col_ch0 246d1970faSKever Yang * [8] bk_ch0 256d1970faSKever Yang * [7:6] cs0_row_ch0 266d1970faSKever Yang * [5:4] cs1_row_ch0 276d1970faSKever Yang * [3:2] bw_ch0 286d1970faSKever Yang * [1:0] dbw_ch0 296d1970faSKever Yang */ 306d1970faSKever Yang #define SYS_REG_DDRTYPE_SHIFT 13 316d1970faSKever Yang #define SYS_REG_DDRTYPE_MASK 7 326d1970faSKever Yang #define SYS_REG_NUM_CH_SHIFT 12 336d1970faSKever Yang #define SYS_REG_NUM_CH_MASK 1 346d1970faSKever Yang #define SYS_REG_ROW_3_4_SHIFT(ch) (30 + (ch)) 356d1970faSKever Yang #define SYS_REG_ROW_3_4_MASK 1 366d1970faSKever Yang #define SYS_REG_CHINFO_SHIFT(ch) (28 + (ch)) 376d1970faSKever Yang #define SYS_REG_RANK_SHIFT(ch) (11 + (ch) * 16) 386d1970faSKever Yang #define SYS_REG_RANK_MASK 1 396d1970faSKever Yang #define SYS_REG_COL_SHIFT(ch) (9 + (ch) * 16) 406d1970faSKever Yang #define SYS_REG_COL_MASK 3 416d1970faSKever Yang #define SYS_REG_BK_SHIFT(ch) (8 + (ch) * 16) 426d1970faSKever Yang #define SYS_REG_BK_MASK 1 436d1970faSKever Yang #define SYS_REG_CS0_ROW_SHIFT(ch) (6 + (ch) * 16) 446d1970faSKever Yang #define SYS_REG_CS0_ROW_MASK 3 456d1970faSKever Yang #define SYS_REG_CS1_ROW_SHIFT(ch) (4 + (ch) * 16) 466d1970faSKever Yang #define SYS_REG_CS1_ROW_MASK 3 476d1970faSKever Yang #define SYS_REG_BW_SHIFT(ch) (2 + (ch) * 16) 486d1970faSKever Yang #define SYS_REG_BW_MASK 3 496d1970faSKever Yang #define SYS_REG_DBW_SHIFT(ch) ((ch) * 16) 506d1970faSKever Yang #define SYS_REG_DBW_MASK 3 516d1970faSKever Yang 526d1970faSKever Yang /* Get sdram size decode from reg */ 536d1970faSKever Yang size_t rockchip_sdram_size(phys_addr_t reg); 546d1970faSKever Yang 556d1970faSKever Yang /* Called by U-Boot board_init_r for Rockchip SoCs */ 566d1970faSKever Yang int dram_init(void); 576d1970faSKever Yang #endif 58