Kyle Swenson | 8d8f654 | 2021-03-15 11:02:55 -0600 | [diff] [blame^] | 1 | /* |
| 2 | * DDR addressing details and AC timing parameters from JEDEC specs |
| 3 | * |
| 4 | * Copyright (C) 2012 Texas Instruments, Inc. |
| 5 | * |
| 6 | * Aneesh V <aneesh@ti.com> |
| 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 |
| 18 | lpddr2_jedec_addressing_table[NUM_DDR_ADDR_TABLE_ENTRIES] = { |
| 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 |
| 34 | lpddr2_jedec_timings[NUM_DDR_TIMING_TABLE_ENTRIES] = { |
| 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 | |
| 122 | const struct lpddr2_min_tck lpddr2_jedec_min_tck = { |
| 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); |