Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
jedec_ddr_data.c
Go to the documentation of this file.
1 /*
2  * DDR addressing details and AC timing parameters from JEDEC specs
3  *
4  * Copyright (C) 2012 Texas Instruments, Inc.
5  *
6  * Aneesh V <[email protected]>
7  *
8  * This program is free software; you can redistribute it and/or modify
9  * it under the terms of the GNU General Public License version 2 as
10  * published by the Free Software Foundation.
11  */
12 
13 #include <memory/jedec_ddr.h>
14 #include <linux/module.h>
15 
16 /* LPDDR2 addressing details from JESD209-2 section 2.4 */
17 const struct lpddr2_addressing
19  {B4, T_REFI_15_6, T_RFC_90}, /* 64M */
20  {B4, T_REFI_15_6, T_RFC_90}, /* 128M */
21  {B4, T_REFI_7_8, T_RFC_90}, /* 256M */
22  {B4, T_REFI_7_8, T_RFC_90}, /* 512M */
23  {B8, T_REFI_7_8, T_RFC_130}, /* 1GS4 */
24  {B8, T_REFI_3_9, T_RFC_130}, /* 2GS4 */
25  {B8, T_REFI_3_9, T_RFC_130}, /* 4G */
26  {B8, T_REFI_3_9, T_RFC_210}, /* 8G */
27  {B4, T_REFI_7_8, T_RFC_130}, /* 1GS2 */
28  {B4, T_REFI_3_9, T_RFC_130}, /* 2GS2 */
29 };
30 EXPORT_SYMBOL_GPL(lpddr2_jedec_addressing_table);
31 
32 /* LPDDR2 AC timing parameters from JESD209-2 section 12 */
33 const struct lpddr2_timings
35  /* Speed bin 400(200 MHz) */
36  [0] = {
37  .max_freq = 200000000,
38  .min_freq = 10000000,
39  .tRPab = 21000,
40  .tRCD = 18000,
41  .tWR = 15000,
42  .tRAS_min = 42000,
43  .tRRD = 10000,
44  .tWTR = 10000,
45  .tXP = 7500,
46  .tRTP = 7500,
47  .tCKESR = 15000,
48  .tDQSCK_max = 5500,
49  .tFAW = 50000,
50  .tZQCS = 90000,
51  .tZQCL = 360000,
52  .tZQinit = 1000000,
53  .tRAS_max_ns = 70000,
54  .tDQSCK_max_derated = 6000,
55  },
56  /* Speed bin 533(266 MHz) */
57  [1] = {
58  .max_freq = 266666666,
59  .min_freq = 10000000,
60  .tRPab = 21000,
61  .tRCD = 18000,
62  .tWR = 15000,
63  .tRAS_min = 42000,
64  .tRRD = 10000,
65  .tWTR = 7500,
66  .tXP = 7500,
67  .tRTP = 7500,
68  .tCKESR = 15000,
69  .tDQSCK_max = 5500,
70  .tFAW = 50000,
71  .tZQCS = 90000,
72  .tZQCL = 360000,
73  .tZQinit = 1000000,
74  .tRAS_max_ns = 70000,
75  .tDQSCK_max_derated = 6000,
76  },
77  /* Speed bin 800(400 MHz) */
78  [2] = {
79  .max_freq = 400000000,
80  .min_freq = 10000000,
81  .tRPab = 21000,
82  .tRCD = 18000,
83  .tWR = 15000,
84  .tRAS_min = 42000,
85  .tRRD = 10000,
86  .tWTR = 7500,
87  .tXP = 7500,
88  .tRTP = 7500,
89  .tCKESR = 15000,
90  .tDQSCK_max = 5500,
91  .tFAW = 50000,
92  .tZQCS = 90000,
93  .tZQCL = 360000,
94  .tZQinit = 1000000,
95  .tRAS_max_ns = 70000,
96  .tDQSCK_max_derated = 6000,
97  },
98  /* Speed bin 1066(533 MHz) */
99  [3] = {
100  .max_freq = 533333333,
101  .min_freq = 10000000,
102  .tRPab = 21000,
103  .tRCD = 18000,
104  .tWR = 15000,
105  .tRAS_min = 42000,
106  .tRRD = 10000,
107  .tWTR = 7500,
108  .tXP = 7500,
109  .tRTP = 7500,
110  .tCKESR = 15000,
111  .tDQSCK_max = 5500,
112  .tFAW = 50000,
113  .tZQCS = 90000,
114  .tZQCL = 360000,
115  .tZQinit = 1000000,
116  .tRAS_max_ns = 70000,
117  .tDQSCK_max_derated = 5620,
118  },
119 };
120 EXPORT_SYMBOL_GPL(lpddr2_jedec_timings);
121 
123  .tRPab = 3,
124  .tRCD = 3,
125  .tWR = 3,
126  .tRASmin = 3,
127  .tRRD = 2,
128  .tWTR = 2,
129  .tXP = 2,
130  .tRTP = 2,
131  .tCKE = 3,
132  .tCKESR = 3,
133  .tFAW = 8
134 };
135 EXPORT_SYMBOL_GPL(lpddr2_jedec_min_tck);