]> git.sur5r.net Git - u-boot/blob - arch/arm/include/asm/arch-rockchip/sdram.h
rockchip: Update the sdram-channel property to support of-platdata
[u-boot] / arch / arm / include / asm / arch-rockchip / sdram.h
1 /*
2  * Copyright (c) 2015 Google, Inc
3  *
4  * Copyright 2014 Rockchip Inc.
5  *
6  * SPDX-License-Identifier:     GPL-2.0
7  */
8
9 #ifndef _ASM_ARCH_RK3288_SDRAM_H__
10 #define _ASM_ARCH_RK3288_SDRAM_H__
11
12 enum {
13         DDR3 = 3,
14         LPDDR3 = 6,
15         UNUSED = 0xFF,
16 };
17
18 struct rk3288_sdram_channel {
19         u8 rank;
20         u8 col;
21         u8 bk;
22         u8 bw;
23         u8 dbw;
24         u8 row_3_4;
25         u8 cs0_row;
26         u8 cs1_row;
27         /*
28          * For of-platdata, which would otherwise convert this into two
29          * byte-swapped integers. With a size of 9 bytes, this struct will
30          * appear in of-platdata as a byte array.
31          */
32         u8 dummy;
33 };
34
35 struct rk3288_sdram_pctl_timing {
36         u32 togcnt1u;
37         u32 tinit;
38         u32 trsth;
39         u32 togcnt100n;
40         u32 trefi;
41         u32 tmrd;
42         u32 trfc;
43         u32 trp;
44         u32 trtw;
45         u32 tal;
46         u32 tcl;
47         u32 tcwl;
48         u32 tras;
49         u32 trc;
50         u32 trcd;
51         u32 trrd;
52         u32 trtp;
53         u32 twr;
54         u32 twtr;
55         u32 texsr;
56         u32 txp;
57         u32 txpdll;
58         u32 tzqcs;
59         u32 tzqcsi;
60         u32 tdqs;
61         u32 tcksre;
62         u32 tcksrx;
63         u32 tcke;
64         u32 tmod;
65         u32 trstl;
66         u32 tzqcl;
67         u32 tmrr;
68         u32 tckesr;
69         u32 tdpd;
70 };
71 check_member(rk3288_sdram_pctl_timing, tdpd, 0x144 - 0xc0);
72
73 struct rk3288_sdram_phy_timing {
74         u32 dtpr0;
75         u32 dtpr1;
76         u32 dtpr2;
77         u32 mr[4];
78 };
79
80 struct rk3288_base_params {
81         u32 noc_timing;
82         u32 noc_activate;
83         u32 ddrconfig;
84         u32 ddr_freq;
85         u32 dramtype;
86         u32 stride;
87         u32 odt;
88 };
89
90 struct rk3288_sdram_params {
91         struct rk3288_sdram_channel ch[2];
92         struct rk3288_sdram_pctl_timing pctl_timing;
93         struct rk3288_sdram_phy_timing phy_timing;
94         struct rk3288_base_params base;
95         int num_channels;
96 };
97
98 #endif