rockchip: rk3399: move chromebook bob specific flow to its board file
[oweals/u-boot.git] / arch / arm / include / asm / arch-rockchip / sdram_rk3399.h
1 /* SPDX-License-Identifier: GPL-2.0+ */
2 /*
3  * Copyright (C) 2016-2017 Rockchip Electronics Co., Ltd
4  */
5
6 #ifndef _ASM_ARCH_SDRAM_RK3399_H
7 #define _ASM_ARCH_SDRAM_RK3399_H
8
9 struct rk3399_ddr_pctl_regs {
10         u32 denali_ctl[332];
11 };
12
13 struct rk3399_ddr_publ_regs {
14         u32 denali_phy[959];
15 };
16
17 struct rk3399_ddr_pi_regs {
18         u32 denali_pi[200];
19 };
20
21 union noc_ddrtimingc0 {
22         u32 d32;
23         struct {
24                 unsigned burstpenalty : 4;
25                 unsigned reserved0 : 4;
26                 unsigned wrtomwr : 6;
27                 unsigned reserved1 : 18;
28         } b;
29 };
30
31 union noc_ddrmode {
32         u32 d32;
33         struct {
34                 unsigned autoprecharge : 1;
35                 unsigned bypassfiltering : 1;
36                 unsigned fawbank : 1;
37                 unsigned burstsize : 2;
38                 unsigned mwrsize : 2;
39                 unsigned reserved2 : 1;
40                 unsigned forceorder : 8;
41                 unsigned forceorderstate : 8;
42                 unsigned reserved3 : 8;
43         } b;
44 };
45
46 struct rk3399_msch_regs {
47         u32 coreid;
48         u32 revisionid;
49         u32 ddrconf;
50         u32 ddrsize;
51         u32 ddrtiminga0;
52         u32 ddrtimingb0;
53         u32 ddrtimingc0;
54         u32 devtodev0;
55         u32 reserved0[(0x110 - 0x20) / 4];
56         u32 ddrmode;
57         u32 reserved1[(0x1000 - 0x114) / 4];
58         u32 agingx0;
59 };
60
61 struct rk3399_msch_timings {
62         u32 ddrtiminga0;
63         u32 ddrtimingb0;
64         union noc_ddrtimingc0 ddrtimingc0;
65         u32 devtodev0;
66         union noc_ddrmode ddrmode;
67         u32 agingx0;
68 };
69
70 struct rk3399_ddr_cic_regs {
71         u32 cic_ctrl0;
72         u32 cic_ctrl1;
73         u32 cic_idle_th;
74         u32 cic_cg_wait_th;
75         u32 cic_status0;
76         u32 cic_status1;
77         u32 cic_ctrl2;
78         u32 cic_ctrl3;
79         u32 cic_ctrl4;
80 };
81
82 /* DENALI_CTL_00 */
83 #define START           1
84
85 /* DENALI_CTL_68 */
86 #define PWRUP_SREFRESH_EXIT     (1 << 16)
87
88 /* DENALI_CTL_274 */
89 #define MEM_RST_VALID   1
90
91 struct rk3399_sdram_channel {
92         struct sdram_cap_info cap_info;
93         struct rk3399_msch_timings noc_timings;
94 };
95
96 struct rk3399_sdram_params {
97         struct rk3399_sdram_channel ch[2];
98         struct sdram_base_params base;
99         struct rk3399_ddr_pctl_regs pctl_regs;
100         struct rk3399_ddr_pi_regs pi_regs;
101         struct rk3399_ddr_publ_regs phy_regs;
102 };
103
104 #define PI_CA_TRAINING          (1 << 0)
105 #define PI_WRITE_LEVELING       (1 << 1)
106 #define PI_READ_GATE_TRAINING   (1 << 2)
107 #define PI_READ_LEVELING        (1 << 3)
108 #define PI_WDQ_LEVELING         (1 << 4)
109 #define PI_FULL_TRAINING        0xff
110
111 #endif