Advertisement
lehjr

board-olympus-memory.c with JB timings

May 2nd, 2013
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 32.77 KB | None | 0 0
  1. /* Thursday, May 02, 2013  19:21  File automatically generated by MemTimingValCalculator */
  2. /*
  3.  * Copyright (C) 2010 NVIDIA, Inc.
  4.  *
  5.  * This program is free software; you can redistribute it and/or modify
  6.  * it under the terms of the GNU General Public License version 2 as
  7.  * published by the Free Software Foundation.
  8.  *
  9.  * This program is distributed in the hope that it will be useful,
  10.  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  11.  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  12.  * GNU General Public License for more details.
  13.  *
  14.  * You should have received a copy of the GNU General Public License
  15.  * along with this program; if not, write to the Free Software
  16.  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  17.  * 02111-1307, USA
  18.  */
  19.  
  20. #include <linux/kernel.h>
  21. #include <linux/init.h>
  22.  
  23. #include "board-olympus.h"
  24. #include "tegra2_emc.h"
  25.  
  26.  
  27. static const struct tegra_emc_table olympus_emc_tables_elpida_1G_50nm[] = {
  28.     {
  29.         .rate = 25000,   /* SDRAM frequency */
  30.         .regs = {
  31.             0x00000002,   /* RC */
  32.             0x00000006,   /* RFC */
  33.             0x00000003,   /* RAS */
  34.             0x00000003,   /* RP */
  35.             0x00000006,   /* R2W */
  36.             0x00000004,   /* W2R */
  37.             0x00000002,   /* R2P */
  38.             0x00000009,   /* W2P */
  39.             0x00000003,   /* RD_RCD */
  40.             0x00000003,   /* WR_RCD */
  41.             0x00000002,   /* RRD */
  42.             0x00000002,   /* REXT */
  43.             0x00000002,   /* WDV */
  44.             0x00000004,   /* QUSE */
  45.             0x00000003,   /* QRST */
  46.             0x00000008,   /* QSAFE */
  47.             0x0000000b,   /* RDV */
  48.             0x0000004d,   /* REFRESH */
  49.             0x00000000,   /* BURST_REFRESH_NUM */
  50.             0x00000003,   /* PDEX2WR */
  51.             0x00000003,   /* PDEX2RD */
  52.             0x00000003,   /* PCHG2PDEN */
  53.             0x00000008,   /* ACT2PDEN */
  54.             0x00000001,   /* AR2PDEN */
  55.             0x0000000a,   /* RW2PDEN */
  56.             0x00000004,   /* TXSR */
  57.             0x00000003,   /* TCKE */
  58.             0x00000008,   /* TFAW */
  59.             0x00000004,   /* TRPAB */
  60.             0x00000006,   /* TCLKSTABLE */
  61.             0x00000002,   /* TCLKSTOP */
  62.             0x00000068,   /* TREFBW */
  63.             0x00000000,   /* QUSE_EXTRA */
  64.             0x00000003,   /* FBIO_CFG6 */
  65.             0x00000000,   /* ODT_WRITE */
  66.             0x00000000,   /* ODT_READ */
  67.             0x00000282,   /* FBIO_CFG5 */
  68.             0xa06804ae,   /* CFG_DIG_DLL */
  69.             0x00004810,   /* DLL_XFORM_DQS */
  70.             0x00000000,   /* DLL_XFORM_QUSE */
  71.             0x00000000,   /* ZCAL_REF_CNT */
  72.             0x00000003,   /* ZCAL_WAIT_CNT */
  73.             0x00000000,   /* AUTO_CAL_INTERVAL */
  74.             0x00000000,   /* CFG_CLKTRIM_0 */
  75.             0x00000000,   /* CFG_CLKTRIM_1 */
  76.             0x00000000,   /* CFG_CLKTRIM_2 */
  77.         }
  78.     },
  79.     {
  80.         .rate = 50000,   /* SDRAM frequency */
  81.         .regs = {
  82.             0x00000003,   /* RC */
  83.             0x00000007,   /* RFC */
  84.             0x00000003,   /* RAS */
  85.             0x00000003,   /* RP */
  86.             0x00000006,   /* R2W */
  87.             0x00000004,   /* W2R */
  88.             0x00000002,   /* R2P */
  89.             0x00000009,   /* W2P */
  90.             0x00000003,   /* RD_RCD */
  91.             0x00000003,   /* WR_RCD */
  92.             0x00000002,   /* RRD */
  93.             0x00000002,   /* REXT */
  94.             0x00000002,   /* WDV */
  95.             0x00000005,   /* QUSE */
  96.             0x00000003,   /* QRST */
  97.             0x00000008,   /* QSAFE */
  98.             0x0000000b,   /* RDV */
  99.             0x0000009f,   /* REFRESH */
  100.             0x00000000,   /* BURST_REFRESH_NUM */
  101.             0x00000003,   /* PDEX2WR */
  102.             0x00000003,   /* PDEX2RD */
  103.             0x00000003,   /* PCHG2PDEN */
  104.             0x00000008,   /* ACT2PDEN */
  105.             0x00000001,   /* AR2PDEN */
  106.             0x0000000a,   /* RW2PDEN */
  107.             0x00000007,   /* TXSR */
  108.             0x00000003,   /* TCKE */
  109.             0x00000008,   /* TFAW */
  110.             0x00000004,   /* TRPAB */
  111.             0x00000006,   /* TCLKSTABLE */
  112.             0x00000002,   /* TCLKSTOP */
  113.             0x000000d0,   /* TREFBW */
  114.             0x00000000,   /* QUSE_EXTRA */
  115.             0x00000000,   /* FBIO_CFG6 */
  116.             0x00000000,   /* ODT_WRITE */
  117.             0x00000000,   /* ODT_READ */
  118.             0x00000282,   /* FBIO_CFG5 */
  119.             0xa06804ae,   /* CFG_DIG_DLL */
  120.             0x00004810,   /* DLL_XFORM_DQS */
  121.             0x00000000,   /* DLL_XFORM_QUSE */
  122.             0x00000000,   /* ZCAL_REF_CNT */
  123.             0x00000005,   /* ZCAL_WAIT_CNT */
  124.             0x00000000,   /* AUTO_CAL_INTERVAL */
  125.             0x00000000,   /* CFG_CLKTRIM_0 */
  126.             0x00000000,   /* CFG_CLKTRIM_1 */
  127.             0x00000000,   /* CFG_CLKTRIM_2 */
  128.         }
  129.     },
  130.     {
  131.         .rate = 75000,   /* SDRAM frequency */
  132.         .regs = {
  133.             0x00000005,   /* RC */
  134.             0x0000000a,   /* RFC */
  135.             0x00000004,   /* RAS */
  136.             0x00000003,   /* RP */
  137.             0x00000006,   /* R2W */
  138.             0x00000004,   /* W2R */
  139.             0x00000002,   /* R2P */
  140.             0x00000009,   /* W2P */
  141.             0x00000003,   /* RD_RCD */
  142.             0x00000003,   /* WR_RCD */
  143.             0x00000002,   /* RRD */
  144.             0x00000002,   /* REXT */
  145.             0x00000002,   /* WDV */
  146.             0x00000005,   /* QUSE */
  147.             0x00000003,   /* QRST */
  148.             0x00000008,   /* QSAFE */
  149.             0x0000000b,   /* RDV */
  150.             0x000000ff,   /* REFRESH */
  151.             0x00000000,   /* BURST_REFRESH_NUM */
  152.             0x00000003,   /* PDEX2WR */
  153.             0x00000003,   /* PDEX2RD */
  154.             0x00000003,   /* PCHG2PDEN */
  155.             0x00000008,   /* ACT2PDEN */
  156.             0x00000001,   /* AR2PDEN */
  157.             0x0000000a,   /* RW2PDEN */
  158.             0x0000000b,   /* TXSR */
  159.             0x00000003,   /* TCKE */
  160.             0x00000008,   /* TFAW */
  161.             0x00000004,   /* TRPAB */
  162.             0x00000006,   /* TCLKSTABLE */
  163.             0x00000002,   /* TCLKSTOP */
  164.             0x00000138,   /* TREFBW */
  165.             0x00000000,   /* QUSE_EXTRA */
  166.             0x00000000,   /* FBIO_CFG6 */
  167.             0x00000000,   /* ODT_WRITE */
  168.             0x00000000,   /* ODT_READ */
  169.             0x00000282,   /* FBIO_CFG5 */
  170.             0xa06804ae,   /* CFG_DIG_DLL */
  171.             0x00004810,   /* DLL_XFORM_DQS */
  172.             0x00000000,   /* DLL_XFORM_QUSE */
  173.             0x00000000,   /* ZCAL_REF_CNT */
  174.             0x00000007,   /* ZCAL_WAIT_CNT */
  175.             0x00000000,   /* AUTO_CAL_INTERVAL */
  176.             0x00000000,   /* CFG_CLKTRIM_0 */
  177.             0x00000000,   /* CFG_CLKTRIM_1 */
  178.             0x00000000,   /* CFG_CLKTRIM_2 */
  179.         }
  180.     },
  181.     {
  182.         .rate = 150000,   /* SDRAM frequency */
  183.         .regs = {
  184.             0x00000009,   /* RC */
  185.             0x00000014,   /* RFC */
  186.             0x00000007,   /* RAS */
  187.             0x00000004,   /* RP */
  188.             0x00000006,   /* R2W */
  189.             0x00000004,   /* W2R */
  190.             0x00000002,   /* R2P */
  191.             0x00000009,   /* W2P */
  192.             0x00000003,   /* RD_RCD */
  193.             0x00000003,   /* WR_RCD */
  194.             0x00000002,   /* RRD */
  195.             0x00000002,   /* REXT */
  196.             0x00000002,   /* WDV */
  197.             0x00000005,   /* QUSE */
  198.             0x00000003,   /* QRST */
  199.             0x00000008,   /* QSAFE */
  200.             0x0000000b,   /* RDV */
  201.             0x0000021f,   /* REFRESH */
  202.             0x00000000,   /* BURST_REFRESH_NUM */
  203.             0x00000003,   /* PDEX2WR */
  204.             0x00000003,   /* PDEX2RD */
  205.             0x00000004,   /* PCHG2PDEN */
  206.             0x00000008,   /* ACT2PDEN */
  207.             0x00000001,   /* AR2PDEN */
  208.             0x0000000a,   /* RW2PDEN */
  209.             0x00000015,   /* TXSR */
  210.             0x00000003,   /* TCKE */
  211.             0x00000008,   /* TFAW */
  212.             0x00000004,   /* TRPAB */
  213.             0x00000006,   /* TCLKSTABLE */
  214.             0x00000002,   /* TCLKSTOP */
  215.             0x00000270,   /* TREFBW */
  216.             0x00000000,   /* QUSE_EXTRA */
  217.             0x00000001,   /* FBIO_CFG6 */
  218.             0x00000000,   /* ODT_WRITE */
  219.             0x00000000,   /* ODT_READ */
  220.             0x00000282,   /* FBIO_CFG5 */
  221.             0xa04c04ae,   /* CFG_DIG_DLL */
  222.             0x007fc010,   /* DLL_XFORM_DQS */
  223.             0x00000000,   /* DLL_XFORM_QUSE */
  224.             0x00000000,   /* ZCAL_REF_CNT */
  225.             0x0000000e,   /* ZCAL_WAIT_CNT */
  226.             0x00000000,   /* AUTO_CAL_INTERVAL */
  227.             0x00000000,   /* CFG_CLKTRIM_0 */
  228.             0x00000000,   /* CFG_CLKTRIM_1 */
  229.             0x00000000,   /* CFG_CLKTRIM_2 */
  230.         }
  231.     },
  232.     {
  233.         .rate = 300000,   /* SDRAM frequency */
  234.         .regs = {
  235.             0x00000012,   /* RC */
  236.             0x00000027,   /* RFC */
  237.             0x0000000d,   /* RAS */
  238.             0x00000007,   /* RP */
  239.             0x00000007,   /* R2W */
  240.             0x00000005,   /* W2R */
  241.             0x00000003,   /* R2P */
  242.             0x00000009,   /* W2P */
  243.             0x00000006,   /* RD_RCD */
  244.             0x00000006,   /* WR_RCD */
  245.             0x00000003,   /* RRD */
  246.             0x00000003,   /* REXT */
  247.             0x00000002,   /* WDV */
  248.             0x00000006,   /* QUSE */
  249.             0x00000003,   /* QRST */
  250.             0x00000009,   /* QSAFE */
  251.             0x0000000c,   /* RDV */
  252.             0x0000045f,   /* REFRESH */
  253.             0x00000000,   /* BURST_REFRESH_NUM */
  254.             0x00000004,   /* PDEX2WR */
  255.             0x00000004,   /* PDEX2RD */
  256.             0x00000007,   /* PCHG2PDEN */
  257.             0x00000008,   /* ACT2PDEN */
  258.             0x00000001,   /* AR2PDEN */
  259.             0x0000000e,   /* RW2PDEN */
  260.             0x0000002a,   /* TXSR */
  261.             0x00000003,   /* TCKE */
  262.             0x0000000f,   /* TFAW */
  263.             0x00000008,   /* TRPAB */
  264.             0x00000005,   /* TCLKSTABLE */
  265.             0x00000002,   /* TCLKSTOP */
  266.             0x000004e0,   /* TREFBW */
  267.             0x00000005,   /* QUSE_EXTRA */
  268.             0x00000002,   /* FBIO_CFG6 */
  269.             0x00000000,   /* ODT_WRITE */
  270.             0x00000000,   /* ODT_READ */
  271.             0x00000282,   /* FBIO_CFG5 */
  272.             0xf04c040b,   /* CFG_DIG_DLL */
  273.             0x007fe010,   /* DLL_XFORM_DQS */
  274.             0x00000000,   /* DLL_XFORM_QUSE */
  275.             0x00000000,   /* ZCAL_REF_CNT */
  276.             0x0000001b,   /* ZCAL_WAIT_CNT */
  277.             0x00000000,   /* AUTO_CAL_INTERVAL */
  278.             0x00000000,   /* CFG_CLKTRIM_0 */
  279.             0x00000000,   /* CFG_CLKTRIM_1 */
  280.             0x00000000,   /* CFG_CLKTRIM_2 */
  281.         }
  282.     }
  283. };
  284.  
  285.  
  286. static const struct tegra_emc_table olympus_emc_tables_micron_1G[] = {
  287.     {
  288.         .rate = 25000,   /* SDRAM frequency */
  289.         .regs = {
  290.             0x00000002,   /* RC */
  291.             0x00000006,   /* RFC */
  292.             0x00000003,   /* RAS */
  293.             0x00000003,   /* RP */
  294.             0x00000006,   /* R2W */
  295.             0x00000004,   /* W2R */
  296.             0x00000002,   /* R2P */
  297.             0x00000009,   /* W2P */
  298.             0x00000003,   /* RD_RCD */
  299.             0x00000003,   /* WR_RCD */
  300.             0x00000002,   /* RRD */
  301.             0x00000002,   /* REXT */
  302.             0x00000002,   /* WDV */
  303.             0x00000004,   /* QUSE */
  304.             0x00000003,   /* QRST */
  305.             0x00000008,   /* QSAFE */
  306.             0x0000000b,   /* RDV */
  307.             0x0000004d,   /* REFRESH */
  308.             0x00000000,   /* BURST_REFRESH_NUM */
  309.             0x00000003,   /* PDEX2WR */
  310.             0x00000003,   /* PDEX2RD */
  311.             0x00000003,   /* PCHG2PDEN */
  312.             0x00000008,   /* ACT2PDEN */
  313.             0x00000001,   /* AR2PDEN */
  314.             0x0000000a,   /* RW2PDEN */
  315.             0x00000004,   /* TXSR */
  316.             0x00000003,   /* TCKE */
  317.             0x00000008,   /* TFAW */
  318.             0x00000004,   /* TRPAB */
  319.             0x00000006,   /* TCLKSTABLE */
  320.             0x00000002,   /* TCLKSTOP */
  321.             0x00000068,   /* TREFBW */
  322.             0x00000000,   /* QUSE_EXTRA */
  323.             0x00000003,   /* FBIO_CFG6 */
  324.             0x00000000,   /* ODT_WRITE */
  325.             0x00000000,   /* ODT_READ */
  326.             0x00000282,   /* FBIO_CFG5 */
  327.             0xa06804ae,   /* CFG_DIG_DLL */
  328.             0x00004810,   /* DLL_XFORM_DQS */
  329.             0x00000000,   /* DLL_XFORM_QUSE */
  330.             0x00000000,   /* ZCAL_REF_CNT */
  331.             0x00000003,   /* ZCAL_WAIT_CNT */
  332.             0x00000000,   /* AUTO_CAL_INTERVAL */
  333.             0x00000000,   /* CFG_CLKTRIM_0 */
  334.             0x00000000,   /* CFG_CLKTRIM_1 */
  335.             0x00000000,   /* CFG_CLKTRIM_2 */
  336.         }
  337.     },
  338.     {
  339.         .rate = 50000,   /* SDRAM frequency */
  340.         .regs = {
  341.             0x00000003,   /* RC */
  342.             0x00000007,   /* RFC */
  343.             0x00000003,   /* RAS */
  344.             0x00000003,   /* RP */
  345.             0x00000006,   /* R2W */
  346.             0x00000004,   /* W2R */
  347.             0x00000002,   /* R2P */
  348.             0x00000009,   /* W2P */
  349.             0x00000003,   /* RD_RCD */
  350.             0x00000003,   /* WR_RCD */
  351.             0x00000002,   /* RRD */
  352.             0x00000002,   /* REXT */
  353.             0x00000002,   /* WDV */
  354.             0x00000005,   /* QUSE */
  355.             0x00000003,   /* QRST */
  356.             0x00000008,   /* QSAFE */
  357.             0x0000000b,   /* RDV */
  358.             0x0000009f,   /* REFRESH */
  359.             0x00000000,   /* BURST_REFRESH_NUM */
  360.             0x00000003,   /* PDEX2WR */
  361.             0x00000003,   /* PDEX2RD */
  362.             0x00000003,   /* PCHG2PDEN */
  363.             0x00000008,   /* ACT2PDEN */
  364.             0x00000001,   /* AR2PDEN */
  365.             0x0000000a,   /* RW2PDEN */
  366.             0x00000007,   /* TXSR */
  367.             0x00000003,   /* TCKE */
  368.             0x00000008,   /* TFAW */
  369.             0x00000004,   /* TRPAB */
  370.             0x00000006,   /* TCLKSTABLE */
  371.             0x00000002,   /* TCLKSTOP */
  372.             0x000000d0,   /* TREFBW */
  373.             0x00000000,   /* QUSE_EXTRA */
  374.             0x00000000,   /* FBIO_CFG6 */
  375.             0x00000000,   /* ODT_WRITE */
  376.             0x00000000,   /* ODT_READ */
  377.             0x00000282,   /* FBIO_CFG5 */
  378.             0xa06804ae,   /* CFG_DIG_DLL */
  379.             0x00004810,   /* DLL_XFORM_DQS */
  380.             0x00000000,   /* DLL_XFORM_QUSE */
  381.             0x00000000,   /* ZCAL_REF_CNT */
  382.             0x00000005,   /* ZCAL_WAIT_CNT */
  383.             0x00000000,   /* AUTO_CAL_INTERVAL */
  384.             0x00000000,   /* CFG_CLKTRIM_0 */
  385.             0x00000000,   /* CFG_CLKTRIM_1 */
  386.             0x00000000,   /* CFG_CLKTRIM_2 */
  387.         }
  388.     },
  389.     {
  390.         .rate = 75000,   /* SDRAM frequency */
  391.         .regs = {
  392.             0x00000005,   /* RC */
  393.             0x0000000a,   /* RFC */
  394.             0x00000004,   /* RAS */
  395.             0x00000003,   /* RP */
  396.             0x00000006,   /* R2W */
  397.             0x00000004,   /* W2R */
  398.             0x00000002,   /* R2P */
  399.             0x00000009,   /* W2P */
  400.             0x00000003,   /* RD_RCD */
  401.             0x00000003,   /* WR_RCD */
  402.             0x00000002,   /* RRD */
  403.             0x00000002,   /* REXT */
  404.             0x00000002,   /* WDV */
  405.             0x00000005,   /* QUSE */
  406.             0x00000003,   /* QRST */
  407.             0x00000008,   /* QSAFE */
  408.             0x0000000b,   /* RDV */
  409.             0x000000ff,   /* REFRESH */
  410.             0x00000000,   /* BURST_REFRESH_NUM */
  411.             0x00000003,   /* PDEX2WR */
  412.             0x00000003,   /* PDEX2RD */
  413.             0x00000003,   /* PCHG2PDEN */
  414.             0x00000008,   /* ACT2PDEN */
  415.             0x00000001,   /* AR2PDEN */
  416.             0x0000000a,   /* RW2PDEN */
  417.             0x0000000b,   /* TXSR */
  418.             0x00000003,   /* TCKE */
  419.             0x00000008,   /* TFAW */
  420.             0x00000004,   /* TRPAB */
  421.             0x00000006,   /* TCLKSTABLE */
  422.             0x00000002,   /* TCLKSTOP */
  423.             0x00000138,   /* TREFBW */
  424.             0x00000000,   /* QUSE_EXTRA */
  425.             0x00000000,   /* FBIO_CFG6 */
  426.             0x00000000,   /* ODT_WRITE */
  427.             0x00000000,   /* ODT_READ */
  428.             0x00000282,   /* FBIO_CFG5 */
  429.             0xa06804ae,   /* CFG_DIG_DLL */
  430.             0x00004810,   /* DLL_XFORM_DQS */
  431.             0x00000000,   /* DLL_XFORM_QUSE */
  432.             0x00000000,   /* ZCAL_REF_CNT */
  433.             0x00000007,   /* ZCAL_WAIT_CNT */
  434.             0x00000000,   /* AUTO_CAL_INTERVAL */
  435.             0x00000000,   /* CFG_CLKTRIM_0 */
  436.             0x00000000,   /* CFG_CLKTRIM_1 */
  437.             0x00000000,   /* CFG_CLKTRIM_2 */
  438.         }
  439.     },
  440.     {
  441.         .rate = 150000,   /* SDRAM frequency */
  442.         .regs = {
  443.             0x00000009,   /* RC */
  444.             0x00000014,   /* RFC */
  445.             0x00000007,   /* RAS */
  446.             0x00000003,   /* RP */
  447.             0x00000006,   /* R2W */
  448.             0x00000004,   /* W2R */
  449.             0x00000002,   /* R2P */
  450.             0x00000009,   /* W2P */
  451.             0x00000003,   /* RD_RCD */
  452.             0x00000003,   /* WR_RCD */
  453.             0x00000002,   /* RRD */
  454.             0x00000002,   /* REXT */
  455.             0x00000002,   /* WDV */
  456.             0x00000005,   /* QUSE */
  457.             0x00000003,   /* QRST */
  458.             0x00000008,   /* QSAFE */
  459.             0x0000000b,   /* RDV */
  460.             0x0000021f,   /* REFRESH */
  461.             0x00000000,   /* BURST_REFRESH_NUM */
  462.             0x00000003,   /* PDEX2WR */
  463.             0x00000003,   /* PDEX2RD */
  464.             0x00000003,   /* PCHG2PDEN */
  465.             0x00000008,   /* ACT2PDEN */
  466.             0x00000001,   /* AR2PDEN */
  467.             0x0000000a,   /* RW2PDEN */
  468.             0x00000015,   /* TXSR */
  469.             0x00000003,   /* TCKE */
  470.             0x00000008,   /* TFAW */
  471.             0x00000004,   /* TRPAB */
  472.             0x00000006,   /* TCLKSTABLE */
  473.             0x00000002,   /* TCLKSTOP */
  474.             0x00000270,   /* TREFBW */
  475.             0x00000000,   /* QUSE_EXTRA */
  476.             0x00000001,   /* FBIO_CFG6 */
  477.             0x00000000,   /* ODT_WRITE */
  478.             0x00000000,   /* ODT_READ */
  479.             0x00000282,   /* FBIO_CFG5 */
  480.             0xa04c04ae,   /* CFG_DIG_DLL */
  481.             0x007fe010,   /* DLL_XFORM_DQS */
  482.             0x00000000,   /* DLL_XFORM_QUSE */
  483.             0x00000000,   /* ZCAL_REF_CNT */
  484.             0x0000000e,   /* ZCAL_WAIT_CNT */
  485.             0x00000000,   /* AUTO_CAL_INTERVAL */
  486.             0x00000000,   /* CFG_CLKTRIM_0 */
  487.             0x00000000,   /* CFG_CLKTRIM_1 */
  488.             0x00000000,   /* CFG_CLKTRIM_2 */
  489.         }
  490.     },
  491.     {
  492.         .rate = 300000,   /* SDRAM frequency */
  493.         .regs = {
  494.             0x00000012,   /* RC */
  495.             0x00000027,   /* RFC */
  496.             0x0000000d,   /* RAS */
  497.             0x00000006,   /* RP */
  498.             0x00000007,   /* R2W */
  499.             0x00000005,   /* W2R */
  500.             0x00000003,   /* R2P */
  501.             0x00000009,   /* W2P */
  502.             0x00000006,   /* RD_RCD */
  503.             0x00000006,   /* WR_RCD */
  504.             0x00000003,   /* RRD */
  505.             0x00000003,   /* REXT */
  506.             0x00000002,   /* WDV */
  507.             0x00000006,   /* QUSE */
  508.             0x00000004,   /* QRST */
  509.             0x00000009,   /* QSAFE */
  510.             0x0000000c,   /* RDV */
  511.             0x0000045f,   /* REFRESH */
  512.             0x00000000,   /* BURST_REFRESH_NUM */
  513.             0x00000004,   /* PDEX2WR */
  514.             0x00000004,   /* PDEX2RD */
  515.             0x00000006,   /* PCHG2PDEN */
  516.             0x00000008,   /* ACT2PDEN */
  517.             0x00000001,   /* AR2PDEN */
  518.             0x0000000e,   /* RW2PDEN */
  519.             0x0000002a,   /* TXSR */
  520.             0x00000003,   /* TCKE */
  521.             0x0000000f,   /* TFAW */
  522.             0x00000007,   /* TRPAB */
  523.             0x00000005,   /* TCLKSTABLE */
  524.             0x00000002,   /* TCLKSTOP */
  525.             0x000004e0,   /* TREFBW */
  526.             0x00000005,   /* QUSE_EXTRA */
  527.             0x00000002,   /* FBIO_CFG6 */
  528.             0x00000000,   /* ODT_WRITE */
  529.             0x00000000,   /* ODT_READ */
  530.             0x00000282,   /* FBIO_CFG5 */
  531.             0xe03c048b,   /* CFG_DIG_DLL */
  532.             0x007fc010,   /* DLL_XFORM_DQS */
  533.             0x00000000,   /* DLL_XFORM_QUSE */
  534.             0x00000000,   /* ZCAL_REF_CNT */
  535.             0x0000001b,   /* ZCAL_WAIT_CNT */
  536.             0x00000000,   /* AUTO_CAL_INTERVAL */
  537.             0x00000000,   /* CFG_CLKTRIM_0 */
  538.             0x00000000,   /* CFG_CLKTRIM_1 */
  539.             0x00000000,   /* CFG_CLKTRIM_2 */
  540.         }
  541.     }
  542. };
  543.  
  544.  
  545. static const struct tegra_emc_table olympus_emc_tables_hynix_1G_54nm[] = {
  546.     {
  547.         .rate = 25000,   /* SDRAM frequency */
  548.         .regs = {
  549.             0x00000002,   /* RC */
  550.             0x00000006,   /* RFC */
  551.             0x00000003,   /* RAS */
  552.             0x00000003,   /* RP */
  553.             0x00000006,   /* R2W */
  554.             0x00000004,   /* W2R */
  555.             0x00000002,   /* R2P */
  556.             0x00000009,   /* W2P */
  557.             0x00000003,   /* RD_RCD */
  558.             0x00000003,   /* WR_RCD */
  559.             0x00000002,   /* RRD */
  560.             0x00000002,   /* REXT */
  561.             0x00000002,   /* WDV */
  562.             0x00000004,   /* QUSE */
  563.             0x00000003,   /* QRST */
  564.             0x00000008,   /* QSAFE */
  565.             0x0000000b,   /* RDV */
  566.             0x0000004d,   /* REFRESH */
  567.             0x00000000,   /* BURST_REFRESH_NUM */
  568.             0x00000003,   /* PDEX2WR */
  569.             0x00000003,   /* PDEX2RD */
  570.             0x00000003,   /* PCHG2PDEN */
  571.             0x00000008,   /* ACT2PDEN */
  572.             0x00000001,   /* AR2PDEN */
  573.             0x0000000a,   /* RW2PDEN */
  574.             0x00000004,   /* TXSR */
  575.             0x00000003,   /* TCKE */
  576.             0x00000008,   /* TFAW */
  577.             0x00000004,   /* TRPAB */
  578.             0x00000006,   /* TCLKSTABLE */
  579.             0x00000002,   /* TCLKSTOP */
  580.             0x00000068,   /* TREFBW */
  581.             0x00000000,   /* QUSE_EXTRA */
  582.             0x00000003,   /* FBIO_CFG6 */
  583.             0x00000000,   /* ODT_WRITE */
  584.             0x00000000,   /* ODT_READ */
  585.             0x00000282,   /* FBIO_CFG5 */
  586.             0xa06804ae,   /* CFG_DIG_DLL */
  587.             0x0001f000,   /* DLL_XFORM_DQS */
  588.             0x00000000,   /* DLL_XFORM_QUSE */
  589.             0x00000000,   /* ZCAL_REF_CNT */
  590.             0x00000003,   /* ZCAL_WAIT_CNT */
  591.             0x00000000,   /* AUTO_CAL_INTERVAL */
  592.             0x00000000,   /* CFG_CLKTRIM_0 */
  593.             0x00000000,   /* CFG_CLKTRIM_1 */
  594.             0x00000000,   /* CFG_CLKTRIM_2 */
  595.         }
  596.     },
  597.     {
  598.         .rate = 50000,   /* SDRAM frequency */
  599.         .regs = {
  600.             0x00000003,   /* RC */
  601.             0x00000007,   /* RFC */
  602.             0x00000003,   /* RAS */
  603.             0x00000003,   /* RP */
  604.             0x00000006,   /* R2W */
  605.             0x00000004,   /* W2R */
  606.             0x00000002,   /* R2P */
  607.             0x00000009,   /* W2P */
  608.             0x00000003,   /* RD_RCD */
  609.             0x00000003,   /* WR_RCD */
  610.             0x00000002,   /* RRD */
  611.             0x00000002,   /* REXT */
  612.             0x00000002,   /* WDV */
  613.             0x00000005,   /* QUSE */
  614.             0x00000003,   /* QRST */
  615.             0x00000008,   /* QSAFE */
  616.             0x0000000b,   /* RDV */
  617.             0x0000009f,   /* REFRESH */
  618.             0x00000000,   /* BURST_REFRESH_NUM */
  619.             0x00000003,   /* PDEX2WR */
  620.             0x00000003,   /* PDEX2RD */
  621.             0x00000003,   /* PCHG2PDEN */
  622.             0x00000008,   /* ACT2PDEN */
  623.             0x00000001,   /* AR2PDEN */
  624.             0x0000000a,   /* RW2PDEN */
  625.             0x00000007,   /* TXSR */
  626.             0x00000003,   /* TCKE */
  627.             0x00000008,   /* TFAW */
  628.             0x00000004,   /* TRPAB */
  629.             0x00000006,   /* TCLKSTABLE */
  630.             0x00000002,   /* TCLKSTOP */
  631.             0x000000d0,   /* TREFBW */
  632.             0x00000000,   /* QUSE_EXTRA */
  633.             0x00000000,   /* FBIO_CFG6 */
  634.             0x00000000,   /* ODT_WRITE */
  635.             0x00000000,   /* ODT_READ */
  636.             0x00000282,   /* FBIO_CFG5 */
  637.             0xa06804ae,   /* CFG_DIG_DLL */
  638.             0x0001f000,   /* DLL_XFORM_DQS */
  639.             0x00000000,   /* DLL_XFORM_QUSE */
  640.             0x00000000,   /* ZCAL_REF_CNT */
  641.             0x00000005,   /* ZCAL_WAIT_CNT */
  642.             0x00000000,   /* AUTO_CAL_INTERVAL */
  643.             0x00000000,   /* CFG_CLKTRIM_0 */
  644.             0x00000000,   /* CFG_CLKTRIM_1 */
  645.             0x00000000,   /* CFG_CLKTRIM_2 */
  646.         }
  647.     },
  648.     {
  649.         .rate = 75000,   /* SDRAM frequency */
  650.         .regs = {
  651.             0x00000005,   /* RC */
  652.             0x0000000a,   /* RFC */
  653.             0x00000004,   /* RAS */
  654.             0x00000003,   /* RP */
  655.             0x00000006,   /* R2W */
  656.             0x00000004,   /* W2R */
  657.             0x00000002,   /* R2P */
  658.             0x00000009,   /* W2P */
  659.             0x00000003,   /* RD_RCD */
  660.             0x00000003,   /* WR_RCD */
  661.             0x00000002,   /* RRD */
  662.             0x00000002,   /* REXT */
  663.             0x00000002,   /* WDV */
  664.             0x00000005,   /* QUSE */
  665.             0x00000003,   /* QRST */
  666.             0x00000008,   /* QSAFE */
  667.             0x0000000b,   /* RDV */
  668.             0x000000ff,   /* REFRESH */
  669.             0x00000000,   /* BURST_REFRESH_NUM */
  670.             0x00000003,   /* PDEX2WR */
  671.             0x00000003,   /* PDEX2RD */
  672.             0x00000003,   /* PCHG2PDEN */
  673.             0x00000008,   /* ACT2PDEN */
  674.             0x00000001,   /* AR2PDEN */
  675.             0x0000000a,   /* RW2PDEN */
  676.             0x0000000b,   /* TXSR */
  677.             0x00000003,   /* TCKE */
  678.             0x00000008,   /* TFAW */
  679.             0x00000004,   /* TRPAB */
  680.             0x00000006,   /* TCLKSTABLE */
  681.             0x00000002,   /* TCLKSTOP */
  682.             0x00000138,   /* TREFBW */
  683.             0x00000000,   /* QUSE_EXTRA */
  684.             0x00000000,   /* FBIO_CFG6 */
  685.             0x00000000,   /* ODT_WRITE */
  686.             0x00000000,   /* ODT_READ */
  687.             0x00000282,   /* FBIO_CFG5 */
  688.             0xa06804ae,   /* CFG_DIG_DLL */
  689.             0x0001f000,   /* DLL_XFORM_DQS */
  690.             0x00000000,   /* DLL_XFORM_QUSE */
  691.             0x00000000,   /* ZCAL_REF_CNT */
  692.             0x00000007,   /* ZCAL_WAIT_CNT */
  693.             0x00000000,   /* AUTO_CAL_INTERVAL */
  694.             0x00000000,   /* CFG_CLKTRIM_0 */
  695.             0x00000000,   /* CFG_CLKTRIM_1 */
  696.             0x00000000,   /* CFG_CLKTRIM_2 */
  697.         }
  698.     },
  699.     {
  700.         .rate = 150000,   /* SDRAM frequency */
  701.         .regs = {
  702.             0x00000009,   /* RC */
  703.             0x00000014,   /* RFC */
  704.             0x00000007,   /* RAS */
  705.             0x00000003,   /* RP */
  706.             0x00000006,   /* R2W */
  707.             0x00000004,   /* W2R */
  708.             0x00000002,   /* R2P */
  709.             0x00000009,   /* W2P */
  710.             0x00000003,   /* RD_RCD */
  711.             0x00000003,   /* WR_RCD */
  712.             0x00000002,   /* RRD */
  713.             0x00000002,   /* REXT */
  714.             0x00000002,   /* WDV */
  715.             0x00000005,   /* QUSE */
  716.             0x00000003,   /* QRST */
  717.             0x00000008,   /* QSAFE */
  718.             0x0000000b,   /* RDV */
  719.             0x0000021f,   /* REFRESH */
  720.             0x00000000,   /* BURST_REFRESH_NUM */
  721.             0x00000003,   /* PDEX2WR */
  722.             0x00000003,   /* PDEX2RD */
  723.             0x00000003,   /* PCHG2PDEN */
  724.             0x00000008,   /* ACT2PDEN */
  725.             0x00000001,   /* AR2PDEN */
  726.             0x0000000a,   /* RW2PDEN */
  727.             0x00000015,   /* TXSR */
  728.             0x00000003,   /* TCKE */
  729.             0x00000008,   /* TFAW */
  730.             0x00000004,   /* TRPAB */
  731.             0x00000006,   /* TCLKSTABLE */
  732.             0x00000002,   /* TCLKSTOP */
  733.             0x00000270,   /* TREFBW */
  734.             0x00000000,   /* QUSE_EXTRA */
  735.             0x00000001,   /* FBIO_CFG6 */
  736.             0x00000000,   /* ODT_WRITE */
  737.             0x00000000,   /* ODT_READ */
  738.             0x00000282,   /* FBIO_CFG5 */
  739.             0xa04c04ae,   /* CFG_DIG_DLL */
  740.             0x007fa010,   /* DLL_XFORM_DQS */
  741.             0x00000000,   /* DLL_XFORM_QUSE */
  742.             0x00000000,   /* ZCAL_REF_CNT */
  743.             0x0000000e,   /* ZCAL_WAIT_CNT */
  744.             0x00000000,   /* AUTO_CAL_INTERVAL */
  745.             0x00000000,   /* CFG_CLKTRIM_0 */
  746.             0x00000000,   /* CFG_CLKTRIM_1 */
  747.             0x00000000,   /* CFG_CLKTRIM_2 */
  748.         }
  749.     },
  750.     {
  751.         .rate = 300000,   /* SDRAM frequency */
  752.         .regs = {
  753.             0x00000012,   /* RC */
  754.             0x00000027,   /* RFC */
  755.             0x0000000d,   /* RAS */
  756.             0x00000006,   /* RP */
  757.             0x00000007,   /* R2W */
  758.             0x00000005,   /* W2R */
  759.             0x00000003,   /* R2P */
  760.             0x00000009,   /* W2P */
  761.             0x00000006,   /* RD_RCD */
  762.             0x00000006,   /* WR_RCD */
  763.             0x00000003,   /* RRD */
  764.             0x00000003,   /* REXT */
  765.             0x00000002,   /* WDV */
  766.             0x00000006,   /* QUSE */
  767.             0x00000003,   /* QRST */
  768.             0x00000009,   /* QSAFE */
  769.             0x0000000c,   /* RDV */
  770.             0x0000045f,   /* REFRESH */
  771.             0x00000000,   /* BURST_REFRESH_NUM */
  772.             0x00000004,   /* PDEX2WR */
  773.             0x00000004,   /* PDEX2RD */
  774.             0x00000006,   /* PCHG2PDEN */
  775.             0x00000008,   /* ACT2PDEN */
  776.             0x00000001,   /* AR2PDEN */
  777.             0x0000000e,   /* RW2PDEN */
  778.             0x0000002a,   /* TXSR */
  779.             0x00000003,   /* TCKE */
  780.             0x0000000f,   /* TFAW */
  781.             0x00000007,   /* TRPAB */
  782.             0x00000005,   /* TCLKSTABLE */
  783.             0x00000002,   /* TCLKSTOP */
  784.             0x000004e0,   /* TREFBW */
  785.             0x00000005,   /* QUSE_EXTRA */
  786.             0x00000002,   /* FBIO_CFG6 */
  787.             0x00000000,   /* ODT_WRITE */
  788.             0x00000000,   /* ODT_READ */
  789.             0x00000282,   /* FBIO_CFG5 */
  790.             0xe03c048b,   /* CFG_DIG_DLL */
  791.             0x007fb010,   /* DLL_XFORM_DQS */
  792.             0x00000000,   /* DLL_XFORM_QUSE */
  793.             0x00000000,   /* ZCAL_REF_CNT */
  794.             0x0000001b,   /* ZCAL_WAIT_CNT */
  795.             0x00000000,   /* AUTO_CAL_INTERVAL */
  796.             0x00000000,   /* CFG_CLKTRIM_0 */
  797.             0x00000000,   /* CFG_CLKTRIM_1 */
  798.             0x00000000,   /* CFG_CLKTRIM_2 */
  799.         }
  800.     }
  801. };
  802.  
  803.  
  804. static const struct tegra_emc_table olympus_emc_tables_elpida_1G_40nm[] = {
  805.     {
  806.         .rate = 25000,   /* SDRAM frequency */
  807.         .regs = {
  808.             0x00000002,   /* RC */
  809.             0x00000006,   /* RFC */
  810.             0x00000003,   /* RAS */
  811.             0x00000003,   /* RP */
  812.             0x00000006,   /* R2W */
  813.             0x00000004,   /* W2R */
  814.             0x00000002,   /* R2P */
  815.             0x00000009,   /* W2P */
  816.             0x00000003,   /* RD_RCD */
  817.             0x00000003,   /* WR_RCD */
  818.             0x00000002,   /* RRD */
  819.             0x00000002,   /* REXT */
  820.             0x00000002,   /* WDV */
  821.             0x00000004,   /* QUSE */
  822.             0x00000003,   /* QRST */
  823.             0x00000008,   /* QSAFE */
  824.             0x0000000b,   /* RDV */
  825.             0x0000004d,   /* REFRESH */
  826.             0x00000000,   /* BURST_REFRESH_NUM */
  827.             0x00000003,   /* PDEX2WR */
  828.             0x00000003,   /* PDEX2RD */
  829.             0x00000003,   /* PCHG2PDEN */
  830.             0x00000008,   /* ACT2PDEN */
  831.             0x00000001,   /* AR2PDEN */
  832.             0x0000000a,   /* RW2PDEN */
  833.             0x00000004,   /* TXSR */
  834.             0x00000003,   /* TCKE */
  835.             0x00000008,   /* TFAW */
  836.             0x00000004,   /* TRPAB */
  837.             0x00000006,   /* TCLKSTABLE */
  838.             0x00000002,   /* TCLKSTOP */
  839.             0x00000068,   /* TREFBW */
  840.             0x00000000,   /* QUSE_EXTRA */
  841.             0x00000003,   /* FBIO_CFG6 */
  842.             0x00000000,   /* ODT_WRITE */
  843.             0x00000000,   /* ODT_READ */
  844.             0x00000282,   /* FBIO_CFG5 */
  845.             0xa06804ae,   /* CFG_DIG_DLL */
  846.             0x0001f000,   /* DLL_XFORM_DQS */
  847.             0x00000000,   /* DLL_XFORM_QUSE */
  848.             0x00000000,   /* ZCAL_REF_CNT */
  849.             0x00000003,   /* ZCAL_WAIT_CNT */
  850.             0x00000000,   /* AUTO_CAL_INTERVAL */
  851.             0x00000000,   /* CFG_CLKTRIM_0 */
  852.             0x00000000,   /* CFG_CLKTRIM_1 */
  853.             0x00000000,   /* CFG_CLKTRIM_2 */
  854.         }
  855.     },
  856.     {
  857.         .rate = 50000,   /* SDRAM frequency */
  858.         .regs = {
  859.             0x00000003,   /* RC */
  860.             0x00000007,   /* RFC */
  861.             0x00000003,   /* RAS */
  862.             0x00000003,   /* RP */
  863.             0x00000006,   /* R2W */
  864.             0x00000004,   /* W2R */
  865.             0x00000002,   /* R2P */
  866.             0x00000009,   /* W2P */
  867.             0x00000003,   /* RD_RCD */
  868.             0x00000003,   /* WR_RCD */
  869.             0x00000002,   /* RRD */
  870.             0x00000002,   /* REXT */
  871.             0x00000002,   /* WDV */
  872.             0x00000005,   /* QUSE */
  873.             0x00000003,   /* QRST */
  874.             0x00000008,   /* QSAFE */
  875.             0x0000000b,   /* RDV */
  876.             0x0000009f,   /* REFRESH */
  877.             0x00000000,   /* BURST_REFRESH_NUM */
  878.             0x00000003,   /* PDEX2WR */
  879.             0x00000003,   /* PDEX2RD */
  880.             0x00000003,   /* PCHG2PDEN */
  881.             0x00000008,   /* ACT2PDEN */
  882.             0x00000001,   /* AR2PDEN */
  883.             0x0000000a,   /* RW2PDEN */
  884.             0x00000007,   /* TXSR */
  885.             0x00000003,   /* TCKE */
  886.             0x00000008,   /* TFAW */
  887.             0x00000004,   /* TRPAB */
  888.             0x00000006,   /* TCLKSTABLE */
  889.             0x00000002,   /* TCLKSTOP */
  890.             0x000000d0,   /* TREFBW */
  891.             0x00000000,   /* QUSE_EXTRA */
  892.             0x00000000,   /* FBIO_CFG6 */
  893.             0x00000000,   /* ODT_WRITE */
  894.             0x00000000,   /* ODT_READ */
  895.             0x00000282,   /* FBIO_CFG5 */
  896.             0xa06804ae,   /* CFG_DIG_DLL */
  897.             0x0001f000,   /* DLL_XFORM_DQS */
  898.             0x00000000,   /* DLL_XFORM_QUSE */
  899.             0x00000000,   /* ZCAL_REF_CNT */
  900.             0x00000005,   /* ZCAL_WAIT_CNT */
  901.             0x00000000,   /* AUTO_CAL_INTERVAL */
  902.             0x00000000,   /* CFG_CLKTRIM_0 */
  903.             0x00000000,   /* CFG_CLKTRIM_1 */
  904.             0x00000000,   /* CFG_CLKTRIM_2 */
  905.         }
  906.     },
  907.     {
  908.         .rate = 75000,   /* SDRAM frequency */
  909.         .regs = {
  910.             0x00000005,   /* RC */
  911.             0x0000000a,   /* RFC */
  912.             0x00000004,   /* RAS */
  913.             0x00000003,   /* RP */
  914.             0x00000006,   /* R2W */
  915.             0x00000004,   /* W2R */
  916.             0x00000002,   /* R2P */
  917.             0x00000009,   /* W2P */
  918.             0x00000003,   /* RD_RCD */
  919.             0x00000003,   /* WR_RCD */
  920.             0x00000002,   /* RRD */
  921.             0x00000002,   /* REXT */
  922.             0x00000002,   /* WDV */
  923.             0x00000005,   /* QUSE */
  924.             0x00000003,   /* QRST */
  925.             0x00000008,   /* QSAFE */
  926.             0x0000000b,   /* RDV */
  927.             0x000000ff,   /* REFRESH */
  928.             0x00000000,   /* BURST_REFRESH_NUM */
  929.             0x00000003,   /* PDEX2WR */
  930.             0x00000003,   /* PDEX2RD */
  931.             0x00000003,   /* PCHG2PDEN */
  932.             0x00000008,   /* ACT2PDEN */
  933.             0x00000001,   /* AR2PDEN */
  934.             0x0000000a,   /* RW2PDEN */
  935.             0x0000000b,   /* TXSR */
  936.             0x00000003,   /* TCKE */
  937.             0x00000008,   /* TFAW */
  938.             0x00000004,   /* TRPAB */
  939.             0x00000006,   /* TCLKSTABLE */
  940.             0x00000002,   /* TCLKSTOP */
  941.             0x00000138,   /* TREFBW */
  942.             0x00000000,   /* QUSE_EXTRA */
  943.             0x00000000,   /* FBIO_CFG6 */
  944.             0x00000000,   /* ODT_WRITE */
  945.             0x00000000,   /* ODT_READ */
  946.             0x00000282,   /* FBIO_CFG5 */
  947.             0xa06804ae,   /* CFG_DIG_DLL */
  948.             0x0001f000,   /* DLL_XFORM_DQS */
  949.             0x00000000,   /* DLL_XFORM_QUSE */
  950.             0x00000000,   /* ZCAL_REF_CNT */
  951.             0x00000007,   /* ZCAL_WAIT_CNT */
  952.             0x00000000,   /* AUTO_CAL_INTERVAL */
  953.             0x00000000,   /* CFG_CLKTRIM_0 */
  954.             0x00000000,   /* CFG_CLKTRIM_1 */
  955.             0x00000000,   /* CFG_CLKTRIM_2 */
  956.         }
  957.     },
  958.     {
  959.         .rate = 150000,   /* SDRAM frequency */
  960.         .regs = {
  961.             0x00000009,   /* RC */
  962.             0x00000014,   /* RFC */
  963.             0x00000007,   /* RAS */
  964.             0x00000003,   /* RP */
  965.             0x00000006,   /* R2W */
  966.             0x00000004,   /* W2R */
  967.             0x00000002,   /* R2P */
  968.             0x00000009,   /* W2P */
  969.             0x00000003,   /* RD_RCD */
  970.             0x00000003,   /* WR_RCD */
  971.             0x00000002,   /* RRD */
  972.             0x00000002,   /* REXT */
  973.             0x00000002,   /* WDV */
  974.             0x00000005,   /* QUSE */
  975.             0x00000003,   /* QRST */
  976.             0x00000008,   /* QSAFE */
  977.             0x0000000b,   /* RDV */
  978.             0x0000021f,   /* REFRESH */
  979.             0x00000000,   /* BURST_REFRESH_NUM */
  980.             0x00000003,   /* PDEX2WR */
  981.             0x00000003,   /* PDEX2RD */
  982.             0x00000003,   /* PCHG2PDEN */
  983.             0x00000008,   /* ACT2PDEN */
  984.             0x00000001,   /* AR2PDEN */
  985.             0x0000000a,   /* RW2PDEN */
  986.             0x00000015,   /* TXSR */
  987.             0x00000003,   /* TCKE */
  988.             0x00000008,   /* TFAW */
  989.             0x00000004,   /* TRPAB */
  990.             0x00000006,   /* TCLKSTABLE */
  991.             0x00000002,   /* TCLKSTOP */
  992.             0x00000270,   /* TREFBW */
  993.             0x00000000,   /* QUSE_EXTRA */
  994.             0x00000001,   /* FBIO_CFG6 */
  995.             0x00000000,   /* ODT_WRITE */
  996.             0x00000000,   /* ODT_READ */
  997.             0x00000282,   /* FBIO_CFG5 */
  998.             0xa04c04ae,   /* CFG_DIG_DLL */
  999.             0x007fa810,   /* DLL_XFORM_DQS */
  1000.             0x00000000,   /* DLL_XFORM_QUSE */
  1001.             0x00000000,   /* ZCAL_REF_CNT */
  1002.             0x0000000e,   /* ZCAL_WAIT_CNT */
  1003.             0x00000000,   /* AUTO_CAL_INTERVAL */
  1004.             0x00000000,   /* CFG_CLKTRIM_0 */
  1005.             0x00000000,   /* CFG_CLKTRIM_1 */
  1006.             0x00000000,   /* CFG_CLKTRIM_2 */
  1007.         }
  1008.     },
  1009.     {
  1010.         .rate = 300000,   /* SDRAM frequency */
  1011.         .regs = {
  1012.             0x00000012,   /* RC */
  1013.             0x00000027,   /* RFC */
  1014.             0x0000000d,   /* RAS */
  1015.             0x00000006,   /* RP */
  1016.             0x00000007,   /* R2W */
  1017.             0x00000005,   /* W2R */
  1018.             0x00000003,   /* R2P */
  1019.             0x00000009,   /* W2P */
  1020.             0x00000006,   /* RD_RCD */
  1021.             0x00000006,   /* WR_RCD */
  1022.             0x00000003,   /* RRD */
  1023.             0x00000003,   /* REXT */
  1024.             0x00000002,   /* WDV */
  1025.             0x00000006,   /* QUSE */
  1026.             0x00000003,   /* QRST */
  1027.             0x00000009,   /* QSAFE */
  1028.             0x0000000c,   /* RDV */
  1029.             0x0000045f,   /* REFRESH */
  1030.             0x00000000,   /* BURST_REFRESH_NUM */
  1031.             0x00000004,   /* PDEX2WR */
  1032.             0x00000004,   /* PDEX2RD */
  1033.             0x00000006,   /* PCHG2PDEN */
  1034.             0x00000008,   /* ACT2PDEN */
  1035.             0x00000001,   /* AR2PDEN */
  1036.             0x0000000e,   /* RW2PDEN */
  1037.             0x0000002a,   /* TXSR */
  1038.             0x00000003,   /* TCKE */
  1039.             0x0000000f,   /* TFAW */
  1040.             0x00000007,   /* TRPAB */
  1041.             0x00000005,   /* TCLKSTABLE */
  1042.             0x00000002,   /* TCLKSTOP */
  1043.             0x000004e0,   /* TREFBW */
  1044.             0x00000005,   /* QUSE_EXTRA */
  1045.             0x00000002,   /* FBIO_CFG6 */
  1046.             0x00000000,   /* ODT_WRITE */
  1047.             0x00000000,   /* ODT_READ */
  1048.             0x00000282,   /* FBIO_CFG5 */
  1049.             0xe03c048b,   /* CFG_DIG_DLL */
  1050.             0x007fb810,   /* DLL_XFORM_DQS */
  1051.             0x00000000,   /* DLL_XFORM_QUSE */
  1052.             0x00000000,   /* ZCAL_REF_CNT */
  1053.             0x0000001b,   /* ZCAL_WAIT_CNT */
  1054.             0x00000000,   /* AUTO_CAL_INTERVAL */
  1055.             0x00000000,   /* CFG_CLKTRIM_0 */
  1056.             0x00000000,   /* CFG_CLKTRIM_1 */
  1057.             0x00000000,   /* CFG_CLKTRIM_2 */
  1058.         }
  1059.     }
  1060. };
  1061.  
  1062.  
  1063. struct tegra_emc_chip olympus_emc_chips[] = {
  1064.     {
  1065.         .description = "Elpida 1G 50nm",
  1066.         .mem_manufacturer_id = 0x0303,
  1067.         .mem_revision_id1 = -1,
  1068.         .mem_revision_id2 = -1,
  1069.         .mem_pid = 0x5454,
  1070.         .table = olympus_emc_tables_elpida_1G_50nm,
  1071.         .table_size = ARRAY_SIZE(olympus_emc_tables_elpida_1G_50nm)
  1072.     },
  1073.     {
  1074.         .description = "Hynix 1G 54nm",
  1075.         .mem_manufacturer_id = 0x0606,
  1076.         .mem_revision_id1 = -1,
  1077.         .mem_revision_id2 = -1,
  1078.         .mem_pid = 0x5454,
  1079.         .table = olympus_emc_tables_hynix_1G_54nm,
  1080.         .table_size = ARRAY_SIZE(olympus_emc_tables_hynix_1G_54nm)
  1081.     },
  1082.     {
  1083.         .description = "Elpida 1G 40nm",
  1084.         .mem_manufacturer_id = 0x0303,
  1085.         .mem_revision_id1 = 0x0101,
  1086.         .mem_revision_id2 = -1,
  1087.         .mem_pid = 0x5454,
  1088.         .table = olympus_emc_tables_elpida_1G_40nm,
  1089.         .table_size = ARRAY_SIZE(olympus_emc_tables_elpida_1G_40nm)
  1090.     },
  1091.     {
  1092.         .description = "Micron 1G",
  1093.         .mem_manufacturer_id = 0xFFFF,
  1094.         .mem_revision_id1 = -1,
  1095.         .mem_revision_id2 = -1,
  1096.         .mem_pid = 0x5454,
  1097.         .table = olympus_emc_tables_micron_1G,
  1098.         .table_size = ARRAY_SIZE(olympus_emc_tables_micron_1G)
  1099.     },
  1100. };
  1101.  
  1102. void olympus_emc_init(void)
  1103. {
  1104.     printk(KERN_INFO "pICS_%s",__func__);
  1105.     tegra_init_emc(olympus_emc_chips, ARRAY_SIZE(olympus_emc_chips));
  1106. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement