Advertisement
lehjr

Atrix LPDDR2 kernel 3.1 with GB frequencies and timings

Apr 7th, 2013
134
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 38.83 KB | None | 0 0
  1. /* Known Memory Types:
  2.    -------------------
  3. *note they should all be 0x54 for 1G memory, and as far as we know
  4.  all memory is 1GB
  5.  
  6.  
  7. tegra_emc_table olympus_emc_tables_elpida_1G_40nm
  8. -------------------------------------------------
  9. vendor:0x03 (0x0303)
  10. id1:1
  11. id2:0
  12.  
  13. tegra_emc_table olympus_emc_tables_elpida_1G_50nm
  14. -------------------------------------------------
  15. vendor:0x03 (0x0303)
  16. id1:0
  17. id2:0
  18.  
  19. tegra_emc_table olympus_emc_tables_hynix_1G_54nm
  20. -------------------------------------------------
  21. vendor: 0x06 (0x0606)
  22. id1: ignored
  23. id2: ignored
  24.  
  25. ** Micron we haven't actually seen so far, but since it a 1G chip, it is possible **
  26.  
  27. tegra_emc_table olympus_emc_tables_micron_1G    
  28. -------------------------------------------------
  29. vendor:0xFF (0xFFFF?)
  30. id1:0
  31. id2:0
  32.  
  33. */
  34.  
  35.  
  36. #include <linux/kernel.h>
  37. #include <linux/init.h>
  38.  
  39. #include "board-olympus.h"
  40. #include "tegra2_emc.h"
  41.  
  42.  
  43. static const struct tegra_emc_table olympus_emc_tables_elpida_1G_40nm[] = {
  44.     {
  45.         .rate = 18000,   /* SDRAM frequency */
  46.         .regs = {
  47.             0x00000002,   /* RC */
  48.             0x00000006,   /* RFC */
  49.             0x00000003,   /* RAS */
  50.             0x00000003,   /* RP */
  51.             0x00000006,   /* R2W */
  52.             0x00000004,   /* W2R */
  53.             0x00000002,   /* R2P */
  54.             0x00000009,   /* W2P */
  55.             0x00000003,   /* RD_RCD */
  56.             0x00000003,   /* WR_RCD */
  57.             0x00000002,   /* RRD */
  58.             0x00000002,   /* REXT */
  59.             0x00000002,   /* WDV */
  60.             0x00000004,   /* QUSE */
  61.             0x00000003,   /* QRST */
  62.             0x00000008,   /* QSAFE */
  63.             0x0000000b,   /* RDV */
  64.             0x00000038,   /* REFRESH */
  65.             0x00000000,   /* BURST_REFRESH_NUM */
  66.             0x00000003,   /* PDEX2WR */
  67.             0x00000003,   /* PDEX2RD */
  68.             0x00000003,   /* PCHG2PDEN */
  69.             0x00000008,   /* ACT2PDEN */
  70.             0x00000001,   /* AR2PDEN */
  71.             0x0000000a,   /* RW2PDEN */
  72.             0x00000003,   /* TXSR */
  73.             0x00000003,   /* TCKE */
  74.             0x00000008,   /* TFAW */
  75.             0x00000004,   /* TRPAB */
  76.             0x00000006,   /* TCLKSTABLE */
  77.             0x00000002,   /* TCLKSTOP */
  78.             0x0000004b,   /* TREFBW */
  79.             0x00000000,   /* QUSE_EXTRA */
  80.             0x00000003,   /* FBIO_CFG6 */
  81.             0x00000000,   /* ODT_WRITE */
  82.             0x00000000,   /* ODT_READ */
  83.             0x00000282,   /* FBIO_CFG5 */
  84.             0xa06804ae,   /* CFG_DIG_DLL */
  85.             0x00020000,   /* DLL_XFORM_DQS */
  86.             0x00000000,   /* DLL_XFORM_QUSE */
  87.             0x00000000,   /* ZCAL_REF_CNT */
  88.             0x00000002,   /* ZCAL_WAIT_CNT */
  89.             0x00000000,   /* AUTO_CAL_INTERVAL */
  90.             0x00000000,   /* CFG_CLKTRIM_0 */
  91.             0x00000000,   /* CFG_CLKTRIM_1 */
  92.             0x00000000,   /* CFG_CLKTRIM_2 */
  93.         }
  94.     },
  95.     {
  96.         .rate = 27000,   /* SDRAM frequency */
  97.         .regs = {
  98.             0x00000002,   /* RC */
  99.             0x00000006,   /* RFC */
  100.             0x00000003,   /* RAS */
  101.             0x00000003,   /* RP */
  102.             0x00000006,   /* R2W */
  103.             0x00000004,   /* W2R */
  104.             0x00000002,   /* R2P */
  105.             0x00000009,   /* W2P */
  106.             0x00000003,   /* RD_RCD */
  107.             0x00000003,   /* WR_RCD */
  108.             0x00000002,   /* RRD */
  109.             0x00000002,   /* REXT */
  110.             0x00000002,   /* WDV */
  111.             0x00000004,   /* QUSE */
  112.             0x00000003,   /* QRST */
  113.             0x00000008,   /* QSAFE */
  114.             0x0000000b,   /* RDV */
  115.             0x00000054,   /* REFRESH */
  116.             0x00000000,   /* BURST_REFRESH_NUM */
  117.             0x00000003,   /* PDEX2WR */
  118.             0x00000003,   /* PDEX2RD */
  119.             0x00000003,   /* PCHG2PDEN */
  120.             0x00000008,   /* ACT2PDEN */
  121.             0x00000001,   /* AR2PDEN */
  122.             0x0000000a,   /* RW2PDEN */
  123.             0x00000004,   /* TXSR */
  124.             0x00000003,   /* TCKE */
  125.             0x00000008,   /* TFAW */
  126.             0x00000004,   /* TRPAB */
  127.             0x00000006,   /* TCLKSTABLE */
  128.             0x00000002,   /* TCLKSTOP */
  129.             0x00000071,   /* TREFBW */
  130.             0x00000000,   /* QUSE_EXTRA */
  131.             0x00000003,   /* FBIO_CFG6 */
  132.             0x00000000,   /* ODT_WRITE */
  133.             0x00000000,   /* ODT_READ */
  134.             0x00000282,   /* FBIO_CFG5 */
  135.             0xa06804ae,   /* CFG_DIG_DLL */
  136.             0x0001f000,   /* DLL_XFORM_DQS */
  137.             0x00000000,   /* DLL_XFORM_QUSE */
  138.             0x00000000,   /* ZCAL_REF_CNT */
  139.             0x00000003,   /* ZCAL_WAIT_CNT */
  140.             0x00000000,   /* AUTO_CAL_INTERVAL */
  141.             0x00000000,   /* CFG_CLKTRIM_0 */
  142.             0x00000000,   /* CFG_CLKTRIM_1 */
  143.             0x00000000,   /* CFG_CLKTRIM_2 */
  144.         }
  145.     },
  146.     {
  147.         .rate = 54000,   /* SDRAM frequency */
  148.         .regs = {
  149.             0x00000004,   /* RC */
  150.             0x00000008,   /* RFC */
  151.             0x00000003,   /* RAS */
  152.             0x00000003,   /* RP */
  153.             0x00000006,   /* R2W */
  154.             0x00000004,   /* W2R */
  155.             0x00000002,   /* R2P */
  156.             0x00000009,   /* W2P */
  157.             0x00000003,   /* RD_RCD */
  158.             0x00000003,   /* WR_RCD */
  159.             0x00000002,   /* RRD */
  160.             0x00000002,   /* REXT */
  161.             0x00000002,   /* WDV */
  162.             0x00000005,   /* QUSE */
  163.             0x00000003,   /* QRST */
  164.             0x00000008,   /* QSAFE */
  165.             0x0000000b,   /* RDV */
  166.             0x000000a8,   /* REFRESH */
  167.             0x00000000,   /* BURST_REFRESH_NUM */
  168.             0x00000003,   /* PDEX2WR */
  169.             0x00000003,   /* PDEX2RD */
  170.             0x00000003,   /* PCHG2PDEN */
  171.             0x00000008,   /* ACT2PDEN */
  172.             0x00000001,   /* AR2PDEN */
  173.             0x0000000a,   /* RW2PDEN */
  174.             0x00000008,   /* TXSR */
  175.             0x00000003,   /* TCKE */
  176.             0x00000008,   /* TFAW */
  177.             0x00000004,   /* TRPAB */
  178.             0x00000006,   /* TCLKSTABLE */
  179.             0x00000002,   /* TCLKSTOP */
  180.             0x000000e1,   /* TREFBW */
  181.             0x00000000,   /* QUSE_EXTRA */
  182.             0x00000000,   /* FBIO_CFG6 */
  183.             0x00000000,   /* ODT_WRITE */
  184.             0x00000000,   /* ODT_READ */
  185.             0x00000282,   /* FBIO_CFG5 */
  186.             0xa06804ae,   /* CFG_DIG_DLL */
  187.             0x0001f000,   /* DLL_XFORM_DQS */
  188.             0x00000000,   /* DLL_XFORM_QUSE */
  189.             0x00000000,   /* ZCAL_REF_CNT */
  190.             0x00000005,   /* ZCAL_WAIT_CNT */
  191.             0x00000000,   /* AUTO_CAL_INTERVAL */
  192.             0x00000000,   /* CFG_CLKTRIM_0 */
  193.             0x00000000,   /* CFG_CLKTRIM_1 */
  194.             0x00000000,   /* CFG_CLKTRIM_2 */
  195.         }
  196.     },
  197.     {
  198.         .rate = 108000,   /* SDRAM frequency */
  199.         .regs = {
  200.             0x00000007,   /* RC */
  201.             0x0000000f,   /* RFC */
  202.             0x00000005,   /* RAS */
  203.             0x00000003,   /* RP */
  204.             0x00000006,   /* R2W */
  205.             0x00000004,   /* W2R */
  206.             0x00000002,   /* R2P */
  207.             0x00000009,   /* W2P */
  208.             0x00000003,   /* RD_RCD */
  209.             0x00000003,   /* WR_RCD */
  210.             0x00000002,   /* RRD */
  211.             0x00000002,   /* REXT */
  212.             0x00000002,   /* WDV */
  213.             0x00000005,   /* QUSE */
  214.             0x00000003,   /* QRST */
  215.             0x00000008,   /* QSAFE */
  216.             0x0000000b,   /* RDV */
  217.             0x0000017f,   /* REFRESH */
  218.             0x00000000,   /* BURST_REFRESH_NUM */
  219.             0x00000003,   /* PDEX2WR */
  220.             0x00000003,   /* PDEX2RD */
  221.             0x00000003,   /* PCHG2PDEN */
  222.             0x00000008,   /* ACT2PDEN */
  223.             0x00000001,   /* AR2PDEN */
  224.             0x0000000a,   /* RW2PDEN */
  225.             0x00000010,   /* TXSR */
  226.             0x00000003,   /* TCKE */
  227.             0x00000008,   /* TFAW */
  228.             0x00000004,   /* TRPAB */
  229.             0x00000006,   /* TCLKSTABLE */
  230.             0x00000002,   /* TCLKSTOP */
  231.             0x000001c2,   /* TREFBW */
  232.             0x00000000,   /* QUSE_EXTRA */
  233.             0x00000001,   /* FBIO_CFG6 */
  234.             0x00000000,   /* ODT_WRITE */
  235.             0x00000000,   /* ODT_READ */
  236.             0x00000282,   /* FBIO_CFG5 */
  237.             0xa06804ae,   /* CFG_DIG_DLL */
  238.             0x007f7010,   /* DLL_XFORM_DQS */
  239.             0x00000000,   /* DLL_XFORM_QUSE */
  240.             0x00000000,   /* ZCAL_REF_CNT */
  241.             0x0000000a,   /* ZCAL_WAIT_CNT */
  242.             0x00000000,   /* AUTO_CAL_INTERVAL */
  243.             0x00000000,   /* CFG_CLKTRIM_0 */
  244.             0x00000000,   /* CFG_CLKTRIM_1 */
  245.             0x00000000,   /* CFG_CLKTRIM_2 */
  246.         }
  247.     },
  248.     {
  249.         .rate = 150000,   /* SDRAM frequency */
  250.         .regs = {
  251.             0x00000009,   /* RC */
  252.             0x00000014,   /* RFC */
  253.             0x00000007,   /* RAS */
  254.             0x00000003,   /* RP */
  255.             0x00000006,   /* R2W */
  256.             0x00000004,   /* W2R */
  257.             0x00000002,   /* R2P */
  258.             0x00000009,   /* W2P */
  259.             0x00000003,   /* RD_RCD */
  260.             0x00000003,   /* WR_RCD */
  261.             0x00000002,   /* RRD */
  262.             0x00000002,   /* REXT */
  263.             0x00000002,   /* WDV */
  264.             0x00000005,   /* QUSE */
  265.             0x00000003,   /* QRST */
  266.             0x00000008,   /* QSAFE */
  267.             0x0000000b,   /* RDV */
  268.             0x0000021f,   /* REFRESH */
  269.             0x00000000,   /* BURST_REFRESH_NUM */
  270.             0x00000003,   /* PDEX2WR */
  271.             0x00000003,   /* PDEX2RD */
  272.             0x00000003,   /* PCHG2PDEN */
  273.             0x00000008,   /* ACT2PDEN */
  274.             0x00000001,   /* AR2PDEN */
  275.             0x0000000a,   /* RW2PDEN */
  276.             0x00000015,   /* TXSR */
  277.             0x00000003,   /* TCKE */
  278.             0x00000008,   /* TFAW */
  279.             0x00000004,   /* TRPAB */
  280.             0x00000006,   /* TCLKSTABLE */
  281.             0x00000002,   /* TCLKSTOP */
  282.             0x00000270,   /* TREFBW */
  283.             0x00000000,   /* QUSE_EXTRA */
  284.             0x00000001,   /* FBIO_CFG6 */
  285.             0x00000000,   /* ODT_WRITE */
  286.             0x00000000,   /* ODT_READ */
  287.             0x00000282,   /* FBIO_CFG5 */
  288.             0xa04c04ae,   /* CFG_DIG_DLL */
  289.             0x007fa810,   /* DLL_XFORM_DQS */
  290.             0x00000000,   /* DLL_XFORM_QUSE */
  291.             0x00000000,   /* ZCAL_REF_CNT */
  292.             0x0000000e,   /* ZCAL_WAIT_CNT */
  293.             0x00000000,   /* AUTO_CAL_INTERVAL */
  294.             0x00000000,   /* CFG_CLKTRIM_0 */
  295.             0x00000000,   /* CFG_CLKTRIM_1 */
  296.             0x00000000,   /* CFG_CLKTRIM_2 */
  297.         }
  298.     },
  299.     {
  300.         .rate = 300000,   /* SDRAM frequency */
  301.         .regs = {
  302.             0x00000012,   /* RC */
  303.             0x00000027,   /* RFC */
  304.             0x0000000d,   /* RAS */
  305.             0x00000006,   /* RP */
  306.             0x00000007,   /* R2W */
  307.             0x00000005,   /* W2R */
  308.             0x00000003,   /* R2P */
  309.             0x00000009,   /* W2P */
  310.             0x00000006,   /* RD_RCD */
  311.             0x00000006,   /* WR_RCD */
  312.             0x00000003,   /* RRD */
  313.             0x00000003,   /* REXT */
  314.             0x00000002,   /* WDV */
  315.             0x00000006,   /* QUSE */
  316.             0x00000003,   /* QRST */
  317.             0x00000009,   /* QSAFE */
  318.             0x0000000c,   /* RDV */
  319.             0x0000045f,   /* REFRESH */
  320.             0x00000000,   /* BURST_REFRESH_NUM */
  321.             0x00000004,   /* PDEX2WR */
  322.             0x00000004,   /* PDEX2RD */
  323.             0x00000006,   /* PCHG2PDEN */
  324.             0x00000008,   /* ACT2PDEN */
  325.             0x00000001,   /* AR2PDEN */
  326.             0x0000000e,   /* RW2PDEN */
  327.             0x0000002a,   /* TXSR */
  328.             0x00000003,   /* TCKE */
  329.             0x0000000f,   /* TFAW */
  330.             0x00000007,   /* TRPAB */
  331.             0x00000005,   /* TCLKSTABLE */
  332.             0x00000002,   /* TCLKSTOP */
  333.             0x000004e0,   /* TREFBW */
  334.             0x00000005,   /* QUSE_EXTRA */
  335.             0x00000002,   /* FBIO_CFG6 */
  336.             0x00000000,   /* ODT_WRITE */
  337.             0x00000000,   /* ODT_READ */
  338.             0x00000282,   /* FBIO_CFG5 */
  339.             0xe03c048b,   /* CFG_DIG_DLL */
  340.             0x007fb810,   /* DLL_XFORM_DQS */
  341.             0x00000000,   /* DLL_XFORM_QUSE */
  342.             0x00000000,   /* ZCAL_REF_CNT */
  343.             0x0000001b,   /* ZCAL_WAIT_CNT */
  344.             0x00000000,   /* AUTO_CAL_INTERVAL */
  345.             0x00000000,   /* CFG_CLKTRIM_0 */
  346.             0x00000000,   /* CFG_CLKTRIM_1 */
  347.             0x00000000,   /* CFG_CLKTRIM_2 */
  348.         }
  349.     }
  350. };
  351.  
  352.  
  353. static const struct tegra_emc_table olympus_emc_tables_elpida_1G_50nm[] = {
  354.     {
  355.         .rate = 18000,   /* SDRAM frequency */
  356.         .regs = {
  357.             0x00000002,   /* RC */
  358.             0x00000006,   /* RFC */
  359.             0x00000003,   /* RAS */
  360.             0x00000003,   /* RP */
  361.             0x00000006,   /* R2W */
  362.             0x00000004,   /* W2R */
  363.             0x00000002,   /* R2P */
  364.             0x00000009,   /* W2P */
  365.             0x00000003,   /* RD_RCD */
  366.             0x00000003,   /* WR_RCD */
  367.             0x00000002,   /* RRD */
  368.             0x00000002,   /* REXT */
  369.             0x00000002,   /* WDV */
  370.             0x00000004,   /* QUSE */
  371.             0x00000003,   /* QRST */
  372.             0x00000008,   /* QSAFE */
  373.             0x0000000b,   /* RDV */
  374.             0x00000038,   /* REFRESH */
  375.             0x00000000,   /* BURST_REFRESH_NUM */
  376.             0x00000003,   /* PDEX2WR */
  377.             0x00000003,   /* PDEX2RD */
  378.             0x00000003,   /* PCHG2PDEN */
  379.             0x00000008,   /* ACT2PDEN */
  380.             0x00000001,   /* AR2PDEN */
  381.             0x0000000a,   /* RW2PDEN */
  382.             0x00000003,   /* TXSR */
  383.             0x00000003,   /* TCKE */
  384.             0x00000008,   /* TFAW */
  385.             0x00000004,   /* TRPAB */
  386.             0x00000006,   /* TCLKSTABLE */
  387.             0x00000002,   /* TCLKSTOP */
  388.             0x0000004b,   /* TREFBW */
  389.             0x00000000,   /* QUSE_EXTRA */
  390.             0x00000003,   /* FBIO_CFG6 */
  391.             0x00000000,   /* ODT_WRITE */
  392.             0x00000000,   /* ODT_READ */
  393.             0x00000282,   /* FBIO_CFG5 */
  394.             0xa06804ae,   /* CFG_DIG_DLL */
  395.             0x00004810,   /* DLL_XFORM_DQS */
  396.             0x00000000,   /* DLL_XFORM_QUSE */
  397.             0x00000000,   /* ZCAL_REF_CNT */
  398.             0x00000002,   /* ZCAL_WAIT_CNT */
  399.             0x00000000,   /* AUTO_CAL_INTERVAL */
  400.             0x00000000,   /* CFG_CLKTRIM_0 */
  401.             0x00000000,   /* CFG_CLKTRIM_1 */
  402.             0x00000000,   /* CFG_CLKTRIM_2 */
  403.         }
  404.     },
  405.     {
  406.         .rate = 27000,   /* SDRAM frequency */
  407.         .regs = {
  408.             0x00000002,   /* RC */
  409.             0x00000006,   /* RFC */
  410.             0x00000003,   /* RAS */
  411.             0x00000003,   /* RP */
  412.             0x00000006,   /* R2W */
  413.             0x00000004,   /* W2R */
  414.             0x00000002,   /* R2P */
  415.             0x00000009,   /* W2P */
  416.             0x00000003,   /* RD_RCD */
  417.             0x00000003,   /* WR_RCD */
  418.             0x00000002,   /* RRD */
  419.             0x00000002,   /* REXT */
  420.             0x00000002,   /* WDV */
  421.             0x00000004,   /* QUSE */
  422.             0x00000003,   /* QRST */
  423.             0x00000008,   /* QSAFE */
  424.             0x0000000b,   /* RDV */
  425.             0x00000054,   /* REFRESH */
  426.             0x00000000,   /* BURST_REFRESH_NUM */
  427.             0x00000003,   /* PDEX2WR */
  428.             0x00000003,   /* PDEX2RD */
  429.             0x00000003,   /* PCHG2PDEN */
  430.             0x00000008,   /* ACT2PDEN */
  431.             0x00000001,   /* AR2PDEN */
  432.             0x0000000a,   /* RW2PDEN */
  433.             0x00000004,   /* TXSR */
  434.             0x00000003,   /* TCKE */
  435.             0x00000008,   /* TFAW */
  436.             0x00000004,   /* TRPAB */
  437.             0x00000006,   /* TCLKSTABLE */
  438.             0x00000002,   /* TCLKSTOP */
  439.             0x00000071,   /* TREFBW */
  440.             0x00000000,   /* QUSE_EXTRA */
  441.             0x00000003,   /* FBIO_CFG6 */
  442.             0x00000000,   /* ODT_WRITE */
  443.             0x00000000,   /* ODT_READ */
  444.             0x00000282,   /* FBIO_CFG5 */
  445.             0xa06804ae,   /* CFG_DIG_DLL */
  446.             0x00004810,   /* DLL_XFORM_DQS */
  447.             0x00000000,   /* DLL_XFORM_QUSE */
  448.             0x00000000,   /* ZCAL_REF_CNT */
  449.             0x00000003,   /* ZCAL_WAIT_CNT */
  450.             0x00000000,   /* AUTO_CAL_INTERVAL */
  451.             0x00000000,   /* CFG_CLKTRIM_0 */
  452.             0x00000000,   /* CFG_CLKTRIM_1 */
  453.             0x00000000,   /* CFG_CLKTRIM_2 */
  454.         }
  455.     },
  456.     {
  457.         .rate = 54000,   /* SDRAM frequency */
  458.         .regs = {
  459.             0x00000004,   /* RC */
  460.             0x00000008,   /* RFC */
  461.             0x00000003,   /* RAS */
  462.             0x00000003,   /* RP */
  463.             0x00000006,   /* R2W */
  464.             0x00000004,   /* W2R */
  465.             0x00000002,   /* R2P */
  466.             0x00000009,   /* W2P */
  467.             0x00000003,   /* RD_RCD */
  468.             0x00000003,   /* WR_RCD */
  469.             0x00000002,   /* RRD */
  470.             0x00000002,   /* REXT */
  471.             0x00000002,   /* WDV */
  472.             0x00000005,   /* QUSE */
  473.             0x00000003,   /* QRST */
  474.             0x00000008,   /* QSAFE */
  475.             0x0000000b,   /* RDV */
  476.             0x000000a8,   /* REFRESH */
  477.             0x00000000,   /* BURST_REFRESH_NUM */
  478.             0x00000003,   /* PDEX2WR */
  479.             0x00000003,   /* PDEX2RD */
  480.             0x00000003,   /* PCHG2PDEN */
  481.             0x00000008,   /* ACT2PDEN */
  482.             0x00000001,   /* AR2PDEN */
  483.             0x0000000a,   /* RW2PDEN */
  484.             0x00000008,   /* TXSR */
  485.             0x00000003,   /* TCKE */
  486.             0x00000008,   /* TFAW */
  487.             0x00000004,   /* TRPAB */
  488.             0x00000006,   /* TCLKSTABLE */
  489.             0x00000002,   /* TCLKSTOP */
  490.             0x000000e1,   /* TREFBW */
  491.             0x00000000,   /* QUSE_EXTRA */
  492.             0x00000000,   /* FBIO_CFG6 */
  493.             0x00000000,   /* ODT_WRITE */
  494.             0x00000000,   /* ODT_READ */
  495.             0x00000282,   /* FBIO_CFG5 */
  496.             0xa06804ae,   /* CFG_DIG_DLL */
  497.             0x00004810,   /* DLL_XFORM_DQS */
  498.             0x00000000,   /* DLL_XFORM_QUSE */
  499.             0x00000000,   /* ZCAL_REF_CNT */
  500.             0x00000005,   /* ZCAL_WAIT_CNT */
  501.             0x00000000,   /* AUTO_CAL_INTERVAL */
  502.             0x00000000,   /* CFG_CLKTRIM_0 */
  503.             0x00000000,   /* CFG_CLKTRIM_1 */
  504.             0x00000000,   /* CFG_CLKTRIM_2 */
  505.         }
  506.     },
  507.     {
  508.         .rate = 108000,   /* SDRAM frequency */
  509.         .regs = {
  510.             0x00000007,   /* RC */
  511.             0x0000000f,   /* RFC */
  512.             0x00000005,   /* RAS */
  513.             0x00000003,   /* RP */
  514.             0x00000006,   /* R2W */
  515.             0x00000004,   /* W2R */
  516.             0x00000002,   /* R2P */
  517.             0x00000009,   /* W2P */
  518.             0x00000003,   /* RD_RCD */
  519.             0x00000003,   /* WR_RCD */
  520.             0x00000002,   /* RRD */
  521.             0x00000002,   /* REXT */
  522.             0x00000002,   /* WDV */
  523.             0x00000005,   /* QUSE */
  524.             0x00000003,   /* QRST */
  525.             0x00000008,   /* QSAFE */
  526.             0x0000000b,   /* RDV */
  527.             0x0000017f,   /* REFRESH */
  528.             0x00000000,   /* BURST_REFRESH_NUM */
  529.             0x00000003,   /* PDEX2WR */
  530.             0x00000003,   /* PDEX2RD */
  531.             0x00000003,   /* PCHG2PDEN */
  532.             0x00000008,   /* ACT2PDEN */
  533.             0x00000001,   /* AR2PDEN */
  534.             0x0000000a,   /* RW2PDEN */
  535.             0x00000010,   /* TXSR */
  536.             0x00000003,   /* TCKE */
  537.             0x00000008,   /* TFAW */
  538.             0x00000004,   /* TRPAB */
  539.             0x00000006,   /* TCLKSTABLE */
  540.             0x00000002,   /* TCLKSTOP */
  541.             0x000001c2,   /* TREFBW */
  542.             0x00000000,   /* QUSE_EXTRA */
  543.             0x00000001,   /* FBIO_CFG6 */
  544.             0x00000000,   /* ODT_WRITE */
  545.             0x00000000,   /* ODT_READ */
  546.             0x00000282,   /* FBIO_CFG5 */
  547.             0xa06804ae,   /* CFG_DIG_DLL */
  548.             0x007fb010,   /* DLL_XFORM_DQS */
  549.             0x00000000,   /* DLL_XFORM_QUSE */
  550.             0x00000000,   /* ZCAL_REF_CNT */
  551.             0x0000000a,   /* ZCAL_WAIT_CNT */
  552.             0x00000000,   /* AUTO_CAL_INTERVAL */
  553.             0x00000000,   /* CFG_CLKTRIM_0 */
  554.             0x00000000,   /* CFG_CLKTRIM_1 */
  555.             0x00000000,   /* CFG_CLKTRIM_2 */
  556.         }
  557.     },
  558.     {
  559.         .rate = 150000,   /* SDRAM frequency */
  560.         .regs = {
  561.             0x00000009,   /* RC */
  562.             0x00000014,   /* RFC */
  563.             0x00000007,   /* RAS */
  564.             0x00000004,   /* RP */
  565.             0x00000006,   /* R2W */
  566.             0x00000004,   /* W2R */
  567.             0x00000002,   /* R2P */
  568.             0x00000009,   /* W2P */
  569.             0x00000003,   /* RD_RCD */
  570.             0x00000003,   /* WR_RCD */
  571.             0x00000002,   /* RRD */
  572.             0x00000002,   /* REXT */
  573.             0x00000002,   /* WDV */
  574.             0x00000005,   /* QUSE */
  575.             0x00000003,   /* QRST */
  576.             0x00000008,   /* QSAFE */
  577.             0x0000000b,   /* RDV */
  578.             0x0000021f,   /* REFRESH */
  579.             0x00000000,   /* BURST_REFRESH_NUM */
  580.             0x00000003,   /* PDEX2WR */
  581.             0x00000003,   /* PDEX2RD */
  582.             0x00000004,   /* PCHG2PDEN */
  583.             0x00000008,   /* ACT2PDEN */
  584.             0x00000001,   /* AR2PDEN */
  585.             0x0000000a,   /* RW2PDEN */
  586.             0x00000015,   /* TXSR */
  587.             0x00000003,   /* TCKE */
  588.             0x00000008,   /* TFAW */
  589.             0x00000004,   /* TRPAB */
  590.             0x00000006,   /* TCLKSTABLE */
  591.             0x00000002,   /* TCLKSTOP */
  592.             0x00000270,   /* TREFBW */
  593.             0x00000000,   /* QUSE_EXTRA */
  594.             0x00000001,   /* FBIO_CFG6 */
  595.             0x00000000,   /* ODT_WRITE */
  596.             0x00000000,   /* ODT_READ */
  597.             0x00000282,   /* FBIO_CFG5 */
  598.             0xa04c04ae,   /* CFG_DIG_DLL */
  599.             0x007fc010,   /* DLL_XFORM_DQS */
  600.             0x00000000,   /* DLL_XFORM_QUSE */
  601.             0x00000000,   /* ZCAL_REF_CNT */
  602.             0x0000000e,   /* ZCAL_WAIT_CNT */
  603.             0x00000000,   /* AUTO_CAL_INTERVAL */
  604.             0x00000000,   /* CFG_CLKTRIM_0 */
  605.             0x00000000,   /* CFG_CLKTRIM_1 */
  606.             0x00000000,   /* CFG_CLKTRIM_2 */
  607.         }
  608.     },
  609.     {
  610.         .rate = 300000,   /* SDRAM frequency */
  611.         .regs = {
  612.             0x00000012,   /* RC */
  613.             0x00000027,   /* RFC */
  614.             0x0000000d,   /* RAS */
  615.             0x00000007,   /* RP */
  616.             0x00000007,   /* R2W */
  617.             0x00000005,   /* W2R */
  618.             0x00000003,   /* R2P */
  619.             0x00000009,   /* W2P */
  620.             0x00000006,   /* RD_RCD */
  621.             0x00000006,   /* WR_RCD */
  622.             0x00000003,   /* RRD */
  623.             0x00000003,   /* REXT */
  624.             0x00000002,   /* WDV */
  625.             0x00000006,   /* QUSE */
  626.             0x00000003,   /* QRST */
  627.             0x00000009,   /* QSAFE */
  628.             0x0000000c,   /* RDV */
  629.             0x0000045f,   /* REFRESH */
  630.             0x00000000,   /* BURST_REFRESH_NUM */
  631.             0x00000004,   /* PDEX2WR */
  632.             0x00000004,   /* PDEX2RD */
  633.             0x00000007,   /* PCHG2PDEN */
  634.             0x00000008,   /* ACT2PDEN */
  635.             0x00000001,   /* AR2PDEN */
  636.             0x0000000e,   /* RW2PDEN */
  637.             0x0000002a,   /* TXSR */
  638.             0x00000003,   /* TCKE */
  639.             0x0000000f,   /* TFAW */
  640.             0x00000008,   /* TRPAB */
  641.             0x00000005,   /* TCLKSTABLE */
  642.             0x00000002,   /* TCLKSTOP */
  643.             0x000004e0,   /* TREFBW */
  644.             0x00000005,   /* QUSE_EXTRA */
  645.             0x00000002,   /* FBIO_CFG6 */
  646.             0x00000000,   /* ODT_WRITE */
  647.             0x00000000,   /* ODT_READ */
  648.             0x00000282,   /* FBIO_CFG5 */
  649.             0xF04C040B,   /* CFG_DIG_DLL */
  650.             0x007fe010,   /* DLL_XFORM_DQS */
  651.             0x00000000,   /* DLL_XFORM_QUSE */
  652.             0x00000000,   /* ZCAL_REF_CNT */
  653.             0x0000001b,   /* ZCAL_WAIT_CNT */
  654.             0x00000000,   /* AUTO_CAL_INTERVAL */
  655.             0x00000000,   /* CFG_CLKTRIM_0 */
  656.             0x00000000,   /* CFG_CLKTRIM_1 */
  657.             0x00000000,   /* CFG_CLKTRIM_2 */
  658.         }
  659.     }
  660. };
  661.  
  662.  
  663. static const struct tegra_emc_table olympus_emc_tables_hynix_1G_54nm[] = {
  664.     {
  665.         .rate = 18000,   /* SDRAM frequency */
  666.         .regs = {
  667.             0x00000002,   /* RC */
  668.             0x00000006,   /* RFC */
  669.             0x00000003,   /* RAS */
  670.             0x00000003,   /* RP */
  671.             0x00000006,   /* R2W */
  672.             0x00000004,   /* W2R */
  673.             0x00000002,   /* R2P */
  674.             0x00000009,   /* W2P */
  675.             0x00000003,   /* RD_RCD */
  676.             0x00000003,   /* WR_RCD */
  677.             0x00000002,   /* RRD */
  678.             0x00000002,   /* REXT */
  679.             0x00000002,   /* WDV */
  680.             0x00000004,   /* QUSE */
  681.             0x00000003,   /* QRST */
  682.             0x00000008,   /* QSAFE */
  683.             0x0000000b,   /* RDV */
  684.             0x00000038,   /* REFRESH */
  685.             0x00000000,   /* BURST_REFRESH_NUM */
  686.             0x00000003,   /* PDEX2WR */
  687.             0x00000003,   /* PDEX2RD */
  688.             0x00000003,   /* PCHG2PDEN */
  689.             0x00000008,   /* ACT2PDEN */
  690.             0x00000001,   /* AR2PDEN */
  691.             0x0000000a,   /* RW2PDEN */
  692.             0x00000003,   /* TXSR */
  693.             0x00000003,   /* TCKE */
  694.             0x00000008,   /* TFAW */
  695.             0x00000004,   /* TRPAB */
  696.             0x00000006,   /* TCLKSTABLE */
  697.             0x00000002,   /* TCLKSTOP */
  698.             0x0000004b,   /* TREFBW */
  699.             0x00000000,   /* QUSE_EXTRA */
  700.             0x00000003,   /* FBIO_CFG6 */
  701.             0x00000000,   /* ODT_WRITE */
  702.             0x00000000,   /* ODT_READ */
  703.             0x00000282,   /* FBIO_CFG5 */
  704.             0xa06804ae,   /* CFG_DIG_DLL */
  705.             0x0001f000,   /* DLL_XFORM_DQS */
  706.             0x00000000,   /* DLL_XFORM_QUSE */
  707.             0x00000000,   /* ZCAL_REF_CNT */
  708.             0x00000002,   /* ZCAL_WAIT_CNT */
  709.             0x00000000,   /* AUTO_CAL_INTERVAL */
  710.             0x00000000,   /* CFG_CLKTRIM_0 */
  711.             0x00000000,   /* CFG_CLKTRIM_1 */
  712.             0x00000000,   /* CFG_CLKTRIM_2 */
  713.         }
  714.     },
  715.     {
  716.         .rate = 27000,   /* SDRAM frequency */
  717.         .regs = {
  718.             0x00000002,   /* RC */
  719.             0x00000006,   /* RFC */
  720.             0x00000003,   /* RAS */
  721.             0x00000003,   /* RP */
  722.             0x00000006,   /* R2W */
  723.             0x00000004,   /* W2R */
  724.             0x00000002,   /* R2P */
  725.             0x00000009,   /* W2P */
  726.             0x00000003,   /* RD_RCD */
  727.             0x00000003,   /* WR_RCD */
  728.             0x00000002,   /* RRD */
  729.             0x00000002,   /* REXT */
  730.             0x00000002,   /* WDV */
  731.             0x00000004,   /* QUSE */
  732.             0x00000003,   /* QRST */
  733.             0x00000008,   /* QSAFE */
  734.             0x0000000b,   /* RDV */
  735.             0x00000054,   /* REFRESH */
  736.             0x00000000,   /* BURST_REFRESH_NUM */
  737.             0x00000003,   /* PDEX2WR */
  738.             0x00000003,   /* PDEX2RD */
  739.             0x00000003,   /* PCHG2PDEN */
  740.             0x00000008,   /* ACT2PDEN */
  741.             0x00000001,   /* AR2PDEN */
  742.             0x0000000a,   /* RW2PDEN */
  743.             0x00000004,   /* TXSR */
  744.             0x00000003,   /* TCKE */
  745.             0x00000008,   /* TFAW */
  746.             0x00000004,   /* TRPAB */
  747.             0x00000006,   /* TCLKSTABLE */
  748.             0x00000002,   /* TCLKSTOP */
  749.             0x00000071,   /* TREFBW */
  750.             0x00000000,   /* QUSE_EXTRA */
  751.             0x00000003,   /* FBIO_CFG6 */
  752.             0x00000000,   /* ODT_WRITE */
  753.             0x00000000,   /* ODT_READ */
  754.             0x00000282,   /* FBIO_CFG5 */
  755.             0xa06804ae,   /* CFG_DIG_DLL */
  756.             0x0001f000,   /* DLL_XFORM_DQS */
  757.             0x00000000,   /* DLL_XFORM_QUSE */
  758.             0x00000000,   /* ZCAL_REF_CNT */
  759.             0x00000003,   /* ZCAL_WAIT_CNT */
  760.             0x00000000,   /* AUTO_CAL_INTERVAL */
  761.             0x00000000,   /* CFG_CLKTRIM_0 */
  762.             0x00000000,   /* CFG_CLKTRIM_1 */
  763.             0x00000000,   /* CFG_CLKTRIM_2 */
  764.         }
  765.     },
  766.     {
  767.         .rate = 54000,   /* SDRAM frequency */
  768.         .regs = {
  769.             0x00000004,   /* RC */
  770.             0x00000008,   /* RFC */
  771.             0x00000003,   /* RAS */
  772.             0x00000003,   /* RP */
  773.             0x00000006,   /* R2W */
  774.             0x00000004,   /* W2R */
  775.             0x00000002,   /* R2P */
  776.             0x00000009,   /* W2P */
  777.             0x00000003,   /* RD_RCD */
  778.             0x00000003,   /* WR_RCD */
  779.             0x00000002,   /* RRD */
  780.             0x00000002,   /* REXT */
  781.             0x00000002,   /* WDV */
  782.             0x00000005,   /* QUSE */
  783.             0x00000003,   /* QRST */
  784.             0x00000008,   /* QSAFE */
  785.             0x0000000b,   /* RDV */
  786.             0x000000a8,   /* REFRESH */
  787.             0x00000000,   /* BURST_REFRESH_NUM */
  788.             0x00000003,   /* PDEX2WR */
  789.             0x00000003,   /* PDEX2RD */
  790.             0x00000003,   /* PCHG2PDEN */
  791.             0x00000008,   /* ACT2PDEN */
  792.             0x00000001,   /* AR2PDEN */
  793.             0x0000000a,   /* RW2PDEN */
  794.             0x00000008,   /* TXSR */
  795.             0x00000003,   /* TCKE */
  796.             0x00000008,   /* TFAW */
  797.             0x00000004,   /* TRPAB */
  798.             0x00000006,   /* TCLKSTABLE */
  799.             0x00000002,   /* TCLKSTOP */
  800.             0x000000e1,   /* TREFBW */
  801.             0x00000000,   /* QUSE_EXTRA */
  802.             0x00000000,   /* FBIO_CFG6 */
  803.             0x00000000,   /* ODT_WRITE */
  804.             0x00000000,   /* ODT_READ */
  805.             0x00000282,   /* FBIO_CFG5 */
  806.             0xa06804ae,   /* CFG_DIG_DLL */
  807.             0x0001f000,   /* DLL_XFORM_DQS */
  808.             0x00000000,   /* DLL_XFORM_QUSE */
  809.             0x00000000,   /* ZCAL_REF_CNT */
  810.             0x00000005,   /* ZCAL_WAIT_CNT */
  811.             0x00000000,   /* AUTO_CAL_INTERVAL */
  812.             0x00000000,   /* CFG_CLKTRIM_0 */
  813.             0x00000000,   /* CFG_CLKTRIM_1 */
  814.             0x00000000,   /* CFG_CLKTRIM_2 */
  815.         }
  816.     },
  817.     {
  818.         .rate = 108000,   /* SDRAM frequency */
  819.         .regs = {
  820.             0x00000007,   /* RC */
  821.             0x0000000f,   /* RFC */
  822.             0x00000005,   /* RAS */
  823.             0x00000003,   /* RP */
  824.             0x00000006,   /* R2W */
  825.             0x00000004,   /* W2R */
  826.             0x00000002,   /* R2P */
  827.             0x00000009,   /* W2P */
  828.             0x00000003,   /* RD_RCD */
  829.             0x00000003,   /* WR_RCD */
  830.             0x00000002,   /* RRD */
  831.             0x00000002,   /* REXT */
  832.             0x00000002,   /* WDV */
  833.             0x00000005,   /* QUSE */
  834.             0x00000003,   /* QRST */
  835.             0x00000008,   /* QSAFE */
  836.             0x0000000b,   /* RDV */
  837.             0x0000017f,   /* REFRESH */
  838.             0x00000000,   /* BURST_REFRESH_NUM */
  839.             0x00000003,   /* PDEX2WR */
  840.             0x00000003,   /* PDEX2RD */
  841.             0x00000003,   /* PCHG2PDEN */
  842.             0x00000008,   /* ACT2PDEN */
  843.             0x00000001,   /* AR2PDEN */
  844.             0x0000000a,   /* RW2PDEN */
  845.             0x00000010,   /* TXSR */
  846.             0x00000003,   /* TCKE */
  847.             0x00000008,   /* TFAW */
  848.             0x00000004,   /* TRPAB */
  849.             0x00000006,   /* TCLKSTABLE */
  850.             0x00000002,   /* TCLKSTOP */
  851.             0x000001c2,   /* TREFBW */
  852.             0x00000000,   /* QUSE_EXTRA */
  853.             0x00000001,   /* FBIO_CFG6 */
  854.             0x00000000,   /* ODT_WRITE */
  855.             0x00000000,   /* ODT_READ */
  856.             0x00000282,   /* FBIO_CFG5 */
  857.             0xa06804ae,   /* CFG_DIG_DLL */
  858.             0x007f7010,   /* DLL_XFORM_DQS */
  859.             0x00000000,   /* DLL_XFORM_QUSE */
  860.             0x00000000,   /* ZCAL_REF_CNT */
  861.             0x0000000a,   /* ZCAL_WAIT_CNT */
  862.             0x00000000,   /* AUTO_CAL_INTERVAL */
  863.             0x00000000,   /* CFG_CLKTRIM_0 */
  864.             0x00000000,   /* CFG_CLKTRIM_1 */
  865.             0x00000000,   /* CFG_CLKTRIM_2 */
  866.         }
  867.     },
  868.     {
  869.         .rate = 150000,   /* SDRAM frequency */
  870.         .regs = {
  871.             0x00000009,   /* RC */
  872.             0x00000014,   /* RFC */
  873.             0x00000007,   /* RAS */
  874.             0x00000003,   /* RP */
  875.             0x00000006,   /* R2W */
  876.             0x00000004,   /* W2R */
  877.             0x00000002,   /* R2P */
  878.             0x00000009,   /* W2P */
  879.             0x00000003,   /* RD_RCD */
  880.             0x00000003,   /* WR_RCD */
  881.             0x00000002,   /* RRD */
  882.             0x00000002,   /* REXT */
  883.             0x00000002,   /* WDV */
  884.             0x00000005,   /* QUSE */
  885.             0x00000003,   /* QRST */
  886.             0x00000008,   /* QSAFE */
  887.             0x0000000b,   /* RDV */
  888.             0x0000021f,   /* REFRESH */
  889.             0x00000000,   /* BURST_REFRESH_NUM */
  890.             0x00000003,   /* PDEX2WR */
  891.             0x00000003,   /* PDEX2RD */
  892.             0x00000003,   /* PCHG2PDEN */
  893.             0x00000008,   /* ACT2PDEN */
  894.             0x00000001,   /* AR2PDEN */
  895.             0x0000000a,   /* RW2PDEN */
  896.             0x00000015,   /* TXSR */
  897.             0x00000003,   /* TCKE */
  898.             0x00000008,   /* TFAW */
  899.             0x00000004,   /* TRPAB */
  900.             0x00000006,   /* TCLKSTABLE */
  901.             0x00000002,   /* TCLKSTOP */
  902.             0x00000270,   /* TREFBW */
  903.             0x00000000,   /* QUSE_EXTRA */
  904.             0x00000001,   /* FBIO_CFG6 */
  905.             0x00000000,   /* ODT_WRITE */
  906.             0x00000000,   /* ODT_READ */
  907.             0x00000282,   /* FBIO_CFG5 */
  908.             0xa04c04ae,   /* CFG_DIG_DLL */
  909.             0x007fa010,   /* DLL_XFORM_DQS */
  910.             0x00000000,   /* DLL_XFORM_QUSE */
  911.             0x00000000,   /* ZCAL_REF_CNT */
  912.             0x0000000e,   /* ZCAL_WAIT_CNT */
  913.             0x00000000,   /* AUTO_CAL_INTERVAL */
  914.             0x00000000,   /* CFG_CLKTRIM_0 */
  915.             0x00000000,   /* CFG_CLKTRIM_1 */
  916.             0x00000000,   /* CFG_CLKTRIM_2 */
  917.         }
  918.     },
  919.     {
  920.         .rate = 300000,   /* SDRAM frequency */
  921.         .regs = {
  922.             0x00000012,   /* RC */
  923.             0x00000027,   /* RFC */
  924.             0x0000000d,   /* RAS */
  925.             0x00000006,   /* RP */
  926.             0x00000007,   /* R2W */
  927.             0x00000005,   /* W2R */
  928.             0x00000003,   /* R2P */
  929.             0x00000009,   /* W2P */
  930.             0x00000006,   /* RD_RCD */
  931.             0x00000006,   /* WR_RCD */
  932.             0x00000003,   /* RRD */
  933.             0x00000003,   /* REXT */
  934.             0x00000002,   /* WDV */
  935.             0x00000006,   /* QUSE */
  936.             0x00000003,   /* QRST */
  937.             0x00000009,   /* QSAFE */
  938.             0x0000000c,   /* RDV */
  939.             0x0000045f,   /* REFRESH */
  940.             0x00000000,   /* BURST_REFRESH_NUM */
  941.             0x00000004,   /* PDEX2WR */
  942.             0x00000004,   /* PDEX2RD */
  943.             0x00000006,   /* PCHG2PDEN */
  944.             0x00000008,   /* ACT2PDEN */
  945.             0x00000001,   /* AR2PDEN */
  946.             0x0000000e,   /* RW2PDEN */
  947.             0x0000002a,   /* TXSR */
  948.             0x00000003,   /* TCKE */
  949.             0x0000000f,   /* TFAW */
  950.             0x00000007,   /* TRPAB */
  951.             0x00000005,   /* TCLKSTABLE */
  952.             0x00000002,   /* TCLKSTOP */
  953.             0x000004e0,   /* TREFBW */
  954.             0x00000005,   /* QUSE_EXTRA */
  955.             0x00000002,   /* FBIO_CFG6 */
  956.             0x00000000,   /* ODT_WRITE */
  957.             0x00000000,   /* ODT_READ */
  958.             0x00000282,   /* FBIO_CFG5 */
  959.             0xe03c048b,   /* CFG_DIG_DLL */
  960.             0x007fb010,   /* DLL_XFORM_DQS */
  961.             0x00000000,   /* DLL_XFORM_QUSE */
  962.             0x00000000,   /* ZCAL_REF_CNT */
  963.             0x0000001b,   /* ZCAL_WAIT_CNT */
  964.             0x00000000,   /* AUTO_CAL_INTERVAL */
  965.             0x00000000,   /* CFG_CLKTRIM_0 */
  966.             0x00000000,   /* CFG_CLKTRIM_1 */
  967.             0x00000000,   /* CFG_CLKTRIM_2 */
  968.         }
  969.     }
  970. };
  971.  
  972.  
  973. static const struct tegra_emc_table olympus_emc_tables_micron_1G[] = {
  974.     {
  975.         .rate = 18000,   /* SDRAM frequency */
  976.         .regs = {
  977.             0x00000002,   /* RC */
  978.             0x00000006,   /* RFC */
  979.             0x00000003,   /* RAS */
  980.             0x00000003,   /* RP */
  981.             0x00000006,   /* R2W */
  982.             0x00000004,   /* W2R */
  983.             0x00000002,   /* R2P */
  984.             0x00000009,   /* W2P */
  985.             0x00000003,   /* RD_RCD */
  986.             0x00000003,   /* WR_RCD */
  987.             0x00000002,   /* RRD */
  988.             0x00000002,   /* REXT */
  989.             0x00000002,   /* WDV */
  990.             0x00000004,   /* QUSE */
  991.             0x00000003,   /* QRST */
  992.             0x00000008,   /* QSAFE */
  993.             0x0000000b,   /* RDV */
  994.             0x00000038,   /* REFRESH */
  995.             0x00000000,   /* BURST_REFRESH_NUM */
  996.             0x00000003,   /* PDEX2WR */
  997.             0x00000003,   /* PDEX2RD */
  998.             0x00000003,   /* PCHG2PDEN */
  999.             0x00000008,   /* ACT2PDEN */
  1000.             0x00000001,   /* AR2PDEN */
  1001.             0x0000000a,   /* RW2PDEN */
  1002.             0x00000003,   /* TXSR */
  1003.             0x00000003,   /* TCKE */
  1004.             0x00000008,   /* TFAW */
  1005.             0x00000004,   /* TRPAB */
  1006.             0x00000006,   /* TCLKSTABLE */
  1007.             0x00000002,   /* TCLKSTOP */
  1008.             0x0000004b,   /* TREFBW */
  1009.             0x00000000,   /* QUSE_EXTRA */
  1010.             0x00000003,   /* FBIO_CFG6 */
  1011.             0x00000000,   /* ODT_WRITE */
  1012.             0x00000000,   /* ODT_READ */
  1013.             0x00000282,   /* FBIO_CFG5 */
  1014.             0xa06804ae,   /* CFG_DIG_DLL */
  1015.             0x00004810,   /* DLL_XFORM_DQS */
  1016.             0x00000000,   /* DLL_XFORM_QUSE */
  1017.             0x00000000,   /* ZCAL_REF_CNT */
  1018.             0x00000002,   /* ZCAL_WAIT_CNT */
  1019.             0x00000000,   /* AUTO_CAL_INTERVAL */
  1020.             0x00000000,   /* CFG_CLKTRIM_0 */
  1021.             0x00000000,   /* CFG_CLKTRIM_1 */
  1022.             0x00000000,   /* CFG_CLKTRIM_2 */
  1023.         }
  1024.     },
  1025.     {
  1026.         .rate = 27000,   /* SDRAM frequency */
  1027.         .regs = {
  1028.             0x00000002,   /* RC */
  1029.             0x00000006,   /* RFC */
  1030.             0x00000003,   /* RAS */
  1031.             0x00000003,   /* RP */
  1032.             0x00000006,   /* R2W */
  1033.             0x00000004,   /* W2R */
  1034.             0x00000002,   /* R2P */
  1035.             0x00000009,   /* W2P */
  1036.             0x00000003,   /* RD_RCD */
  1037.             0x00000003,   /* WR_RCD */
  1038.             0x00000002,   /* RRD */
  1039.             0x00000002,   /* REXT */
  1040.             0x00000002,   /* WDV */
  1041.             0x00000004,   /* QUSE */
  1042.             0x00000003,   /* QRST */
  1043.             0x00000008,   /* QSAFE */
  1044.             0x0000000b,   /* RDV */
  1045.             0x00000054,   /* REFRESH */
  1046.             0x00000000,   /* BURST_REFRESH_NUM */
  1047.             0x00000003,   /* PDEX2WR */
  1048.             0x00000003,   /* PDEX2RD */
  1049.             0x00000003,   /* PCHG2PDEN */
  1050.             0x00000008,   /* ACT2PDEN */
  1051.             0x00000001,   /* AR2PDEN */
  1052.             0x0000000a,   /* RW2PDEN */
  1053.             0x00000004,   /* TXSR */
  1054.             0x00000003,   /* TCKE */
  1055.             0x00000008,   /* TFAW */
  1056.             0x00000004,   /* TRPAB */
  1057.             0x00000006,   /* TCLKSTABLE */
  1058.             0x00000002,   /* TCLKSTOP */
  1059.             0x00000071,   /* TREFBW */
  1060.             0x00000000,   /* QUSE_EXTRA */
  1061.             0x00000003,   /* FBIO_CFG6 */
  1062.             0x00000000,   /* ODT_WRITE */
  1063.             0x00000000,   /* ODT_READ */
  1064.             0x00000282,   /* FBIO_CFG5 */
  1065.             0xa06804ae,   /* CFG_DIG_DLL */
  1066.             0x00004810,   /* DLL_XFORM_DQS */
  1067.             0x00000000,   /* DLL_XFORM_QUSE */
  1068.             0x00000000,   /* ZCAL_REF_CNT */
  1069.             0x00000003,   /* ZCAL_WAIT_CNT */
  1070.             0x00000000,   /* AUTO_CAL_INTERVAL */
  1071.             0x00000000,   /* CFG_CLKTRIM_0 */
  1072.             0x00000000,   /* CFG_CLKTRIM_1 */
  1073.             0x00000000,   /* CFG_CLKTRIM_2 */
  1074.         }
  1075.     },
  1076.     {
  1077.         .rate = 54000,   /* SDRAM frequency */
  1078.         .regs = {
  1079.             0x00000004,   /* RC */
  1080.             0x00000008,   /* RFC */
  1081.             0x00000003,   /* RAS */
  1082.             0x00000003,   /* RP */
  1083.             0x00000006,   /* R2W */
  1084.             0x00000004,   /* W2R */
  1085.             0x00000002,   /* R2P */
  1086.             0x00000009,   /* W2P */
  1087.             0x00000003,   /* RD_RCD */
  1088.             0x00000003,   /* WR_RCD */
  1089.             0x00000002,   /* RRD */
  1090.             0x00000002,   /* REXT */
  1091.             0x00000002,   /* WDV */
  1092.             0x00000005,   /* QUSE */
  1093.             0x00000003,   /* QRST */
  1094.             0x00000008,   /* QSAFE */
  1095.             0x0000000b,   /* RDV */
  1096.             0x000000a8,   /* REFRESH */
  1097.             0x00000000,   /* BURST_REFRESH_NUM */
  1098.             0x00000003,   /* PDEX2WR */
  1099.             0x00000003,   /* PDEX2RD */
  1100.             0x00000003,   /* PCHG2PDEN */
  1101.             0x00000008,   /* ACT2PDEN */
  1102.             0x00000001,   /* AR2PDEN */
  1103.             0x0000000a,   /* RW2PDEN */
  1104.             0x00000008,   /* TXSR */
  1105.             0x00000003,   /* TCKE */
  1106.             0x00000008,   /* TFAW */
  1107.             0x00000004,   /* TRPAB */
  1108.             0x00000006,   /* TCLKSTABLE */
  1109.             0x00000002,   /* TCLKSTOP */
  1110.             0x000000e1,   /* TREFBW */
  1111.             0x00000000,   /* QUSE_EXTRA */
  1112.             0x00000000,   /* FBIO_CFG6 */
  1113.             0x00000000,   /* ODT_WRITE */
  1114.             0x00000000,   /* ODT_READ */
  1115.             0x00000282,   /* FBIO_CFG5 */
  1116.             0xa06804ae,   /* CFG_DIG_DLL */
  1117.             0x00004810,   /* DLL_XFORM_DQS */
  1118.             0x00000000,   /* DLL_XFORM_QUSE */
  1119.             0x00000000,   /* ZCAL_REF_CNT */
  1120.             0x00000005,   /* ZCAL_WAIT_CNT */
  1121.             0x00000000,   /* AUTO_CAL_INTERVAL */
  1122.             0x00000000,   /* CFG_CLKTRIM_0 */
  1123.             0x00000000,   /* CFG_CLKTRIM_1 */
  1124.             0x00000000,   /* CFG_CLKTRIM_2 */
  1125.         }
  1126.     },
  1127.     {
  1128.         .rate = 108000,   /* SDRAM frequency */
  1129.         .regs = {
  1130.             0x00000007,   /* RC */
  1131.             0x0000000f,   /* RFC */
  1132.             0x00000005,   /* RAS */
  1133.             0x00000003,   /* RP */
  1134.             0x00000006,   /* R2W */
  1135.             0x00000004,   /* W2R */
  1136.             0x00000002,   /* R2P */
  1137.             0x00000009,   /* W2P */
  1138.             0x00000003,   /* RD_RCD */
  1139.             0x00000003,   /* WR_RCD */
  1140.             0x00000002,   /* RRD */
  1141.             0x00000002,   /* REXT */
  1142.             0x00000002,   /* WDV */
  1143.             0x00000005,   /* QUSE */
  1144.             0x00000003,   /* QRST */
  1145.             0x00000008,   /* QSAFE */
  1146.             0x0000000b,   /* RDV */
  1147.             0x0000017f,   /* REFRESH */
  1148.             0x00000000,   /* BURST_REFRESH_NUM */
  1149.             0x00000003,   /* PDEX2WR */
  1150.             0x00000003,   /* PDEX2RD */
  1151.             0x00000003,   /* PCHG2PDEN */
  1152.             0x00000008,   /* ACT2PDEN */
  1153.             0x00000001,   /* AR2PDEN */
  1154.             0x0000000a,   /* RW2PDEN */
  1155.             0x00000010,   /* TXSR */
  1156.             0x00000003,   /* TCKE */
  1157.             0x00000008,   /* TFAW */
  1158.             0x00000004,   /* TRPAB */
  1159.             0x00000006,   /* TCLKSTABLE */
  1160.             0x00000002,   /* TCLKSTOP */
  1161.             0x000001c2,   /* TREFBW */
  1162.             0x00000000,   /* QUSE_EXTRA */
  1163.             0x00000001,   /* FBIO_CFG6 */
  1164.             0x00000000,   /* ODT_WRITE */
  1165.             0x00000000,   /* ODT_READ */
  1166.             0x00000282,   /* FBIO_CFG5 */
  1167.             0xa06804ae,   /* CFG_DIG_DLL */
  1168.             0x00000810,   /* DLL_XFORM_DQS */
  1169.             0x00000000,   /* DLL_XFORM_QUSE */
  1170.             0x00000000,   /* ZCAL_REF_CNT */
  1171.             0x0000000a,   /* ZCAL_WAIT_CNT */
  1172.             0x00000000,   /* AUTO_CAL_INTERVAL */
  1173.             0x00000000,   /* CFG_CLKTRIM_0 */
  1174.             0x00000000,   /* CFG_CLKTRIM_1 */
  1175.             0x00000000,   /* CFG_CLKTRIM_2 */
  1176.         }
  1177.     {
  1178.         .rate = 150000,   /* SDRAM frequency */
  1179.         .regs = {
  1180.             0x00000009,   /* RC */
  1181.             0x00000014,   /* RFC */
  1182.             0x00000007,   /* RAS */
  1183.             0x00000003,   /* RP */
  1184.             0x00000006,   /* R2W */
  1185.             0x00000004,   /* W2R */
  1186.             0x00000002,   /* R2P */
  1187.             0x00000009,   /* W2P */
  1188.             0x00000003,   /* RD_RCD */
  1189.             0x00000003,   /* WR_RCD */
  1190.             0x00000002,   /* RRD */
  1191.             0x00000002,   /* REXT */
  1192.             0x00000002,   /* WDV */
  1193.             0x00000005,   /* QUSE */
  1194.             0x00000003,   /* QRST */
  1195.             0x00000008,   /* QSAFE */
  1196.             0x0000000b,   /* RDV */
  1197.             0x0000021f,   /* REFRESH */
  1198.             0x00000000,   /* BURST_REFRESH_NUM */
  1199.             0x00000003,   /* PDEX2WR */
  1200.             0x00000003,   /* PDEX2RD */
  1201.             0x00000003,   /* PCHG2PDEN */
  1202.             0x00000008,   /* ACT2PDEN */
  1203.             0x00000001,   /* AR2PDEN */
  1204.             0x0000000a,   /* RW2PDEN */
  1205.             0x00000015,   /* TXSR */
  1206.             0x00000003,   /* TCKE */
  1207.             0x00000008,   /* TFAW */
  1208.             0x00000004,   /* TRPAB */
  1209.             0x00000006,   /* TCLKSTABLE */
  1210.             0x00000002,   /* TCLKSTOP */
  1211.             0x00000270,   /* TREFBW */
  1212.             0x00000000,   /* QUSE_EXTRA */
  1213.             0x00000001,   /* FBIO_CFG6 */
  1214.             0x00000000,   /* ODT_WRITE */
  1215.             0x00000000,   /* ODT_READ */
  1216.             0x00000282,   /* FBIO_CFG5 */
  1217.             0xa04c04ae,   /* CFG_DIG_DLL */
  1218.             0x007fe010,   /* DLL_XFORM_DQS */
  1219.             0x00000000,   /* DLL_XFORM_QUSE */
  1220.             0x00000000,   /* ZCAL_REF_CNT */
  1221.             0x0000000e,   /* ZCAL_WAIT_CNT */
  1222.             0x00000000,   /* AUTO_CAL_INTERVAL */
  1223.             0x00000000,   /* CFG_CLKTRIM_0 */
  1224.             0x00000000,   /* CFG_CLKTRIM_1 */
  1225.             0x00000000,   /* CFG_CLKTRIM_2 */
  1226.         }
  1227.     },
  1228.     {
  1229.         .rate = 300000,   /* SDRAM frequency */
  1230.         .regs = {
  1231.             0x00000012,   /* RC */
  1232.             0x00000027,   /* RFC */
  1233.             0x0000000d,   /* RAS */
  1234.             0x00000006,   /* RP */
  1235.             0x00000007,   /* R2W */
  1236.             0x00000005,   /* W2R */
  1237.             0x00000003,   /* R2P */
  1238.             0x00000009,   /* W2P */
  1239.             0x00000006,   /* RD_RCD */
  1240.             0x00000006,   /* WR_RCD */
  1241.             0x00000003,   /* RRD */
  1242.             0x00000003,   /* REXT */
  1243.             0x00000002,   /* WDV */
  1244.             0x00000006,   /* QUSE */
  1245.             0x00000004,   /* QRST */
  1246.             0x00000009,   /* QSAFE */
  1247.             0x0000000c,   /* RDV */
  1248.             0x0000045f,   /* REFRESH */
  1249.             0x00000000,   /* BURST_REFRESH_NUM */
  1250.             0x00000004,   /* PDEX2WR */
  1251.             0x00000004,   /* PDEX2RD */
  1252.             0x00000006,   /* PCHG2PDEN */
  1253.             0x00000008,   /* ACT2PDEN */
  1254.             0x00000001,   /* AR2PDEN */
  1255.             0x0000000e,   /* RW2PDEN */
  1256.             0x0000002a,   /* TXSR */
  1257.             0x00000003,   /* TCKE */
  1258.             0x0000000f,   /* TFAW */
  1259.             0x00000007,   /* TRPAB */
  1260.             0x00000005,   /* TCLKSTABLE */
  1261.             0x00000002,   /* TCLKSTOP */
  1262.             0x000004e0,   /* TREFBW */
  1263.             0x00000005,   /* QUSE_EXTRA */
  1264.             0x00000002,   /* FBIO_CFG6 */
  1265.             0x00000000,   /* ODT_WRITE */
  1266.             0x00000000,   /* ODT_READ */
  1267.             0x00000282,   /* FBIO_CFG5 */
  1268.             0xe03c048b,   /* CFG_DIG_DLL */
  1269.             0x007fc010,   /* DLL_XFORM_DQS */
  1270.             0x00000000,   /* DLL_XFORM_QUSE */
  1271.             0x00000000,   /* ZCAL_REF_CNT */
  1272.             0x0000001b,   /* ZCAL_WAIT_CNT */
  1273.             0x00000000,   /* AUTO_CAL_INTERVAL */
  1274.             0x00000000,   /* CFG_CLKTRIM_0 */
  1275.             0x00000000,   /* CFG_CLKTRIM_1 */
  1276.             0x00000000,   /* CFG_CLKTRIM_2 */
  1277.         }
  1278.     }
  1279. };
  1280.  
  1281.  
  1282. struct tegra_emc_chip olympus_emc_chips[] = {
  1283.     {
  1284.         .description = "Elpida 40nm",
  1285.         .mem_manufacturer_id = 0x0303,
  1286.         .mem_revision_id1 = 0x0101,
  1287.         .mem_revision_id2 = -1,
  1288.         .mem_pid = 0x5454,
  1289.         .table = olympus_emc_tables_elpida_1G_40nm,
  1290.         .table_size = ARRAY_SIZE(olympus_emc_tables_elpida_1G_40nm)
  1291.     },
  1292.     {
  1293.         .description = "Elpida 50nm",
  1294.         .mem_manufacturer_id = 0x0303,
  1295.         .mem_revision_id1 = -1,
  1296.         .mem_revision_id2 = -1,
  1297.         .mem_pid = 0x5454,
  1298.         .table = olympus_emc_tables_elpida_1G_50nm,
  1299.         .table_size = ARRAY_SIZE(olympus_emc_tables_elpida_1G_50nm)
  1300.     },
  1301.     {
  1302.         .description = "Hynix 54nm",
  1303.         .mem_manufacturer_id = 0x0606,
  1304.         .mem_revision_id1 = -1,
  1305.         .mem_revision_id2 = -1,
  1306.         .mem_pid = -1,
  1307.         .table = olympus_emc_tables_hynix_1G_54nm,
  1308.         .table_size = ARRAY_SIZE(olympus_emc_tables_hynix_1G_54nm)
  1309.     },
  1310.     {
  1311.         .description = "Micron",
  1312.         .mem_manufacturer_id = 0xFFFF,
  1313.         .mem_revision_id1 = -1,
  1314.         .mem_revision_id2 = -1,
  1315.         .mem_pid = -1,
  1316.         .table = olympus_emc_tables_micron_1G,
  1317.         .table_size = ARRAY_SIZE(olympus_emc_tables_micron_1G)
  1318.     },
  1319. };
  1320.  
  1321. void olympus_emc_init(void)
  1322. {
  1323.     printk(KERN_INFO "pICS_%s",__func__);
  1324.     tegra_init_emc(olympus_emc_chips, ARRAY_SIZE(olympus_emc_chips));
  1325. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement