Merge tag 'video-for-2019.10-rc1' of https://gitlab.denx.de/u-boot/custodians/u-boot...
[oweals/u-boot.git] / arch / arm / include / asm / arch-rockchip / sdram_rk3399.h
index 5614b94ecba77a03e20e6dcb44c0989b6aad8c80..dc65ae792431c3ca0409740e176a919c9420e18a 100644 (file)
@@ -6,14 +6,6 @@
 #ifndef _ASM_ARCH_SDRAM_RK3399_H
 #define _ASM_ARCH_SDRAM_RK3399_H
 
-enum {
-       DDR3 = 0x3,
-       LPDDR2 = 0x5,
-       LPDDR3 = 0x6,
-       LPDDR4 = 0x7,
-       UNUSED = 0xFF
-};
-
 struct rk3399_ddr_pctl_regs {
        u32 denali_ctl[332];
 };
@@ -26,6 +18,31 @@ struct rk3399_ddr_pi_regs {
        u32 denali_pi[200];
 };
 
+union noc_ddrtimingc0 {
+       u32 d32;
+       struct {
+               unsigned burstpenalty : 4;
+               unsigned reserved0 : 4;
+               unsigned wrtomwr : 6;
+               unsigned reserved1 : 18;
+       } b;
+};
+
+union noc_ddrmode {
+       u32 d32;
+       struct {
+               unsigned autoprecharge : 1;
+               unsigned bypassfiltering : 1;
+               unsigned fawbank : 1;
+               unsigned burstsize : 2;
+               unsigned mwrsize : 2;
+               unsigned reserved2 : 1;
+               unsigned forceorder : 8;
+               unsigned forceorderstate : 8;
+               unsigned reserved3 : 8;
+       } b;
+};
+
 struct rk3399_msch_regs {
        u32 coreid;
        u32 revisionid;
@@ -44,9 +61,9 @@ struct rk3399_msch_regs {
 struct rk3399_msch_timings {
        u32 ddrtiminga0;
        u32 ddrtimingb0;
-       u32 ddrtimingc0;
+       union noc_ddrtimingc0 ddrtimingc0;
        u32 devtodev0;
-       u32 ddrmode;
+       union noc_ddrmode ddrmode;
        u32 agingx0;
 };
 
@@ -71,39 +88,11 @@ struct rk3399_ddr_cic_regs {
 /* DENALI_CTL_274 */
 #define MEM_RST_VALID  1
 
-struct sdram_cap_info {
-       unsigned int rank;
-       /* dram column number, 0 means this channel is invalid */
-       unsigned int col;
-       /* dram bank number, 3:8bank, 2:4bank */
-       unsigned int bk;
-       /* channel buswidth, 2:32bit, 1:16bit, 0:8bit */
-       unsigned int bw;
-       /* die buswidth, 2:32bit, 1:16bit, 0:8bit */
-       unsigned int dbw;
-       /*
-        * row_3_4 = 1: 6Gb or 12Gb die
-        * row_3_4 = 0: normal die, power of 2
-        */
-       unsigned int row_3_4;
-       unsigned int cs0_row;
-       unsigned int cs1_row;
-       unsigned int ddrconfig;
-};
-
 struct rk3399_sdram_channel {
        struct sdram_cap_info cap_info;
        struct rk3399_msch_timings noc_timings;
 };
 
-struct sdram_base_params {
-       unsigned int ddr_freq;
-       unsigned int dramtype;
-       unsigned int num_channels;
-       unsigned int stride;
-       unsigned int odt;
-};
-
 struct rk3399_sdram_params {
        struct rk3399_sdram_channel ch[2];
        struct sdram_base_params base;