Advertisement
lehjr

Atrix LPDDR2

Apr 7th, 2013
54
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 18.67 KB | None | 0 0
  1. static const struct tegra_emc_table olympus_emc_tables_elpida_1G_40nm[] = {
  2.     {
  3.         .rate = 25000,   /* SDRAM frequency */
  4.         .regs = {
  5.             0x00000002,   /* RC */
  6.                     0x00000006,   /* RFC */
  7.                     0x00000003,   /* RAS */
  8.                     0x00000003,   /* RP */
  9.                     0x00000006,   /* R2W */
  10.                     0x00000004,   /* W2R */
  11.                     0x00000002,   /* R2P */
  12.                     0x00000009,   /* W2P */
  13.                     0x00000003,   /* RD_RCD */
  14.                     0x00000003,   /* WR_RCD */
  15.                     0x00000002,   /* RRD */
  16.                     0x00000002,   /* REXT */
  17.                     0x00000002,   /* WDV */
  18.                     0x00000004,   /* QUSE */
  19.                     0x00000003,   /* QRST */
  20.                     0x00000008,   /* QSAFE */
  21.                     0x0000000b,   /* RDV */        
  22.             0x0000004e,   /* REFRESH */
  23.                     0x00000000,   /* BURST_REFRESH_NUM */
  24.                     0x00000003,   /* PDEX2WR */
  25.                     0x00000003,   /* PDEX2RD */
  26.                     0x00000003,   /* PCHG2PDEN */
  27.                     0x00000008,   /* ACT2PDEN */
  28.                     0x00000001,   /* AR2PDEN */
  29.                     0x0000000a,   /* RW2PDEN */
  30.                     0x00000004,   /* TXSR */
  31.                     0x00000003,   /* TCKE */
  32.                     0x00000008,   /* TFAW */
  33.                     0x00000004,   /* TRPAB */
  34.                     0x00000006,   /* TCLKSTABLE */
  35.                     0x00000002,   /* TCLKSTOP */
  36.                     0x00000069,   /* TREFBW */
  37.                     0x00000000,   /* QUSE_EXTRA */
  38.                     0x00000003,   /* FBIO_CFG6 */
  39.                     0x00000000,   /* ODT_WRITE */
  40.                     0x00000000,   /* ODT_READ */
  41.                     0x00000282,   /* FBIO_CFG5 */
  42.                     0xa06804ae,   /* CFG_DIG_DLL */
  43.             0x0001f38e,   /* DLL_XFORM_DQS */
  44.                     0x00000000,   /* DLL_XFORM_QUSE */
  45.                     0x00000000,   /* ZCAL_REF_CNT */
  46.                     0x00000003,   /* ZCAL_WAIT_CNT */
  47.                     0x00000000,   /* AUTO_CAL_INTERVAL */
  48.                     0x00000000,   /* CFG_CLKTRIM_0 */
  49.                     0x00000000,   /* CFG_CLKTRIM_1 */
  50.                     0x00000000,   /* CFG_CLKTRIM_2 */
  51.         }
  52.     },
  53.     {
  54.         .rate = 50000,   /* SDRAM frequency */
  55.         .regs = {
  56.                     0x00000004,   /* RC */ //4
  57.                     0x00000008,   /* RFC */ //8
  58.                     0x00000003,   /* RAS */
  59.                     0x00000003,   /* RP */
  60.                     0x00000006,   /* R2W */
  61.                     0x00000004,   /* W2R */
  62.                     0x00000002,   /* R2P */
  63.                     0x00000009,   /* W2P */
  64.                     0x00000003,   /* RD_RCD */
  65.                     0x00000003,   /* WR_RCD */
  66.                     0x00000002,   /* RRD */
  67.                     0x00000002,   /* REXT */
  68.                     0x00000002,   /* WDV */
  69.                     0x00000005,   /* QUSE */ //5
  70.                     0x00000003,   /* QRST */
  71.                     0x00000008,   /* QSAFE */
  72.                     0x0000000b,   /* RDV */
  73.                     0x0000009C,   /* REFRESH */
  74.                     0x00000000,   /* BURST_REFRESH_NUM */
  75.                     0x00000003,   /* PDEX2WR */
  76.                     0x00000003,   /* PDEX2RD */
  77.                     0x00000003,   /* PCHG2PDEN */
  78.                     0x00000008,   /* ACT2PDEN */
  79.                     0x00000001,   /* AR2PDEN */
  80.                     0x0000000a,   /* RW2PDEN */
  81.                     0x00000007,   /* TXSR */
  82.                     0x00000003,   /* TCKE */
  83.                     0x00000008,   /* TFAW */
  84.                     0x00000004,   /* TRPAB */
  85.                     0x00000006,   /* TCLKSTABLE */
  86.                     0x00000002,   /* TCLKSTOP */
  87.                     0x000000d1,   /* TREFBW */
  88.                     0x00000000,   /* QUSE_EXTRA */
  89.                     0x00000000,   /* FBIO_CFG6 */
  90.                     0x00000000,   /* ODT_WRITE */
  91.                     0x00000000,   /* ODT_READ */
  92.                     0x00000282,   /* FBIO_CFG5 */
  93.                     0xa06804ae,   /* CFG_DIG_DLL */
  94.                     0x0001f000,   /* DLL_XFORM_DQS */
  95.                     0x00000000,   /* DLL_XFORM_QUSE */
  96.                     0x00000000,   /* ZCAL_REF_CNT */
  97.                     0x00000005,   /* ZCAL_WAIT_CNT */
  98.                     0x00000000,   /* AUTO_CAL_INTERVAL */
  99.                     0x00000000,   /* CFG_CLKTRIM_0 */
  100.                     0x00000000,   /* CFG_CLKTRIM_1 */
  101.                     0x00000000,   /* CFG_CLKTRIM_2 */
  102.         }
  103.     },
  104.     {
  105.         .rate = 75000,   /* SDRAM frequency */
  106.         .regs = {
  107.  
  108. /*  -- Stuff goes here -- */
  109.  
  110.         }
  111.     },
  112.     {
  113.         .rate = 150000,   /* SDRAM frequency */
  114.         .regs = {
  115.             0x00000009,   /* RC */
  116.             0x00000014,   /* RFC */
  117.             0x00000007,   /* RAS */
  118.             0x00000003,   /* RP */
  119.             0x00000006,   /* R2W */
  120.             0x00000004,   /* W2R */
  121.             0x00000002,   /* R2P */
  122.             0x00000009,   /* W2P */
  123.             0x00000003,   /* RD_RCD */
  124.             0x00000003,   /* WR_RCD */
  125.             0x00000002,   /* RRD */
  126.             0x00000002,   /* REXT */
  127.             0x00000002,   /* WDV */
  128.             0x00000005,   /* QUSE */
  129.             0x00000003,   /* QRST */
  130.             0x00000008,   /* QSAFE */
  131.             0x0000000b,   /* RDV */
  132.             0x0000021f,   /* REFRESH */
  133.             0x00000000,   /* BURST_REFRESH_NUM */
  134.             0x00000003,   /* PDEX2WR */
  135.             0x00000003,   /* PDEX2RD */
  136.             0x00000003,   /* PCHG2PDEN */
  137.             0x00000008,   /* ACT2PDEN */
  138.             0x00000001,   /* AR2PDEN */
  139.             0x0000000a,   /* RW2PDEN */
  140.             0x00000015,   /* TXSR */
  141.             0x00000003,   /* TCKE */
  142.             0x00000008,   /* TFAW */
  143.             0x00000004,   /* TRPAB */
  144.             0x00000006,   /* TCLKSTABLE */
  145.             0x00000002,   /* TCLKSTOP */
  146.             0x00000270,   /* TREFBW */
  147.             0x00000000,   /* QUSE_EXTRA */
  148.             0x00000001,   /* FBIO_CFG6 */
  149.             0x00000000,   /* ODT_WRITE */
  150.             0x00000000,   /* ODT_READ */
  151.             0x00000282,   /* FBIO_CFG5 */
  152.             0xa04c04ae,   /* CFG_DIG_DLL */
  153.             0x007fa810,   /* DLL_XFORM_DQS */
  154.             0x00000000,   /* DLL_XFORM_QUSE */
  155.             0x00000000,   /* ZCAL_REF_CNT */
  156.             0x0000000e,   /* ZCAL_WAIT_CNT */
  157.             0x00000000,   /* AUTO_CAL_INTERVAL */
  158.             0x00000000,   /* CFG_CLKTRIM_0 */
  159.             0x00000000,   /* CFG_CLKTRIM_1 */
  160.             0x00000000,   /* CFG_CLKTRIM_2 */
  161.         }
  162.     },
  163.     {
  164.         .rate = 300000,   /* SDRAM frequency */
  165.         .regs = {
  166.             0x00000012,   /* RC */
  167.             0x00000027,   /* RFC */
  168.             0x0000000d,   /* RAS */
  169.             0x00000006,   /* RP */
  170.             0x00000007,   /* R2W */
  171.             0x00000005,   /* W2R */
  172.             0x00000003,   /* R2P */
  173.             0x00000009,   /* W2P */
  174.             0x00000006,   /* RD_RCD */
  175.             0x00000006,   /* WR_RCD */
  176.             0x00000003,   /* RRD */
  177.             0x00000003,   /* REXT */
  178.             0x00000002,   /* WDV */
  179.             0x00000006,   /* QUSE */
  180.             0x00000003,   /* QRST */
  181.             0x00000009,   /* QSAFE */
  182.             0x0000000c,   /* RDV */
  183.             0x0000045f,   /* REFRESH */
  184.             0x00000000,   /* BURST_REFRESH_NUM */
  185.             0x00000004,   /* PDEX2WR */
  186.             0x00000004,   /* PDEX2RD */
  187.             0x00000006,   /* PCHG2PDEN */
  188.             0x00000008,   /* ACT2PDEN */
  189.             0x00000001,   /* AR2PDEN */
  190.             0x0000000e,   /* RW2PDEN */
  191.             0x0000002a,   /* TXSR */
  192.             0x00000003,   /* TCKE */
  193.             0x0000000f,   /* TFAW */
  194.             0x00000007,   /* TRPAB */
  195.             0x00000005,   /* TCLKSTABLE */
  196.             0x00000002,   /* TCLKSTOP */
  197.             0x000004e0,   /* TREFBW */
  198.             0x00000005,   /* QUSE_EXTRA */
  199.             0x00000002,   /* FBIO_CFG6 */
  200.             0x00000000,   /* ODT_WRITE */
  201.             0x00000000,   /* ODT_READ */
  202.             0x00000282,   /* FBIO_CFG5 */
  203.             0xe03c048b,   /* CFG_DIG_DLL */
  204.             0x007fb810,   /* DLL_XFORM_DQS */
  205.             0x00000000,   /* DLL_XFORM_QUSE */
  206.             0x00000000,   /* ZCAL_REF_CNT */
  207.             0x0000001b,   /* ZCAL_WAIT_CNT */
  208.             0x00000000,   /* AUTO_CAL_INTERVAL */
  209.             0x00000000,   /* CFG_CLKTRIM_0 */
  210.             0x00000000,   /* CFG_CLKTRIM_1 */
  211.             0x00000000,   /* CFG_CLKTRIM_2 */
  212.         }
  213.     }
  214. };
  215.  
  216.  
  217.  
  218.  
  219. static const struct tegra_emc_table olympus_emc_tables_elpida_1G_50nm[] = {
  220.     {
  221.         .rate = 25000,   /* SDRAM frequency */
  222.         .regs = {
  223.  
  224. /*  -- Stuff goes here -- */
  225.  
  226.         }
  227.     },
  228.     {
  229.         .rate = 50000,   /* SDRAM frequency */
  230.         .regs = {
  231.  
  232. /*  -- Stuff goes here -- */
  233.  
  234.         }
  235.     },
  236.     {
  237.         .rate = 75000,   /* SDRAM frequency */
  238.         .regs = {
  239.  
  240. /*  -- Stuff goes here -- */
  241.  
  242.         }
  243.     },
  244.     {
  245.         .rate = 150000,   /* SDRAM frequency */
  246.         .regs = {
  247.             0x00000009,   /* RC */
  248.             0x00000014,   /* RFC */
  249.             0x00000007,   /* RAS */
  250.             0x00000004,   /* RP */
  251.             0x00000006,   /* R2W */
  252.             0x00000004,   /* W2R */
  253.             0x00000002,   /* R2P */
  254.             0x00000009,   /* W2P */
  255.             0x00000003,   /* RD_RCD */
  256.             0x00000003,   /* WR_RCD */
  257.             0x00000002,   /* RRD */
  258.             0x00000002,   /* REXT */
  259.             0x00000002,   /* WDV */
  260.             0x00000005,   /* QUSE */
  261.             0x00000003,   /* QRST */
  262.             0x00000008,   /* QSAFE */
  263.             0x0000000b,   /* RDV */
  264.             0x0000021f,   /* REFRESH */
  265.             0x00000000,   /* BURST_REFRESH_NUM */
  266.             0x00000003,   /* PDEX2WR */
  267.             0x00000003,   /* PDEX2RD */
  268.             0x00000004,   /* PCHG2PDEN */
  269.             0x00000008,   /* ACT2PDEN */
  270.             0x00000001,   /* AR2PDEN */
  271.             0x0000000a,   /* RW2PDEN */
  272.             0x00000015,   /* TXSR */
  273.             0x00000003,   /* TCKE */
  274.             0x00000008,   /* TFAW */
  275.             0x00000004,   /* TRPAB */
  276.             0x00000006,   /* TCLKSTABLE */
  277.             0x00000002,   /* TCLKSTOP */
  278.             0x00000270,   /* TREFBW */
  279.             0x00000000,   /* QUSE_EXTRA */
  280.             0x00000001,   /* FBIO_CFG6 */
  281.             0x00000000,   /* ODT_WRITE */
  282.             0x00000000,   /* ODT_READ */
  283.             0x00000282,   /* FBIO_CFG5 */
  284.             0xa04c04ae,   /* CFG_DIG_DLL */
  285.             0x007fc010,   /* DLL_XFORM_DQS */
  286.             0x00000000,   /* DLL_XFORM_QUSE */
  287.             0x00000000,   /* ZCAL_REF_CNT */
  288.             0x0000000e,   /* ZCAL_WAIT_CNT */
  289.             0x00000000,   /* AUTO_CAL_INTERVAL */
  290.             0x00000000,   /* CFG_CLKTRIM_0 */
  291.             0x00000000,   /* CFG_CLKTRIM_1 */
  292.             0x00000000,   /* CFG_CLKTRIM_2 */
  293.         }
  294.     },
  295.     {
  296.         .rate = 300000,   /* SDRAM frequency */
  297.         .regs = {
  298.             0x00000012,   /* RC */
  299.             0x00000027,   /* RFC */
  300.             0x0000000d,   /* RAS */
  301.             0x00000007,   /* RP */
  302.             0x00000007,   /* R2W */
  303.             0x00000005,   /* W2R */
  304.             0x00000003,   /* R2P */
  305.             0x00000009,   /* W2P */
  306.             0x00000006,   /* RD_RCD */
  307.             0x00000006,   /* WR_RCD */
  308.             0x00000003,   /* RRD */
  309.             0x00000003,   /* REXT */
  310.             0x00000002,   /* WDV */
  311.             0x00000006,   /* QUSE */
  312.             0x00000003,   /* QRST */
  313.             0x00000009,   /* QSAFE */
  314.             0x0000000c,   /* RDV */
  315.             0x0000045f,   /* REFRESH */
  316.             0x00000000,   /* BURST_REFRESH_NUM */
  317.             0x00000004,   /* PDEX2WR */
  318.             0x00000004,   /* PDEX2RD */
  319.             0x00000007,   /* PCHG2PDEN */
  320.             0x00000008,   /* ACT2PDEN */
  321.             0x00000001,   /* AR2PDEN */
  322.             0x0000000e,   /* RW2PDEN */
  323.             0x0000002a,   /* TXSR */
  324.             0x00000003,   /* TCKE */
  325.             0x0000000f,   /* TFAW */
  326.             0x00000008,   /* TRPAB */
  327.             0x00000005,   /* TCLKSTABLE */
  328.             0x00000002,   /* TCLKSTOP */
  329.             0x000004e0,   /* TREFBW */
  330.             0x00000005,   /* QUSE_EXTRA */
  331.             0x00000002,   /* FBIO_CFG6 */
  332.             0x00000000,   /* ODT_WRITE */
  333.             0x00000000,   /* ODT_READ */
  334.             0x00000282,   /* FBIO_CFG5 */
  335.             0xF04C040B,   /* CFG_DIG_DLL */
  336.             0x007fe010,   /* DLL_XFORM_DQS */
  337.             0x00000000,   /* DLL_XFORM_QUSE */
  338.             0x00000000,   /* ZCAL_REF_CNT */
  339.             0x0000001b,   /* ZCAL_WAIT_CNT */
  340.             0x00000000,   /* AUTO_CAL_INTERVAL */
  341.             0x00000000,   /* CFG_CLKTRIM_0 */
  342.             0x00000000,   /* CFG_CLKTRIM_1 */
  343.             0x00000000,   /* CFG_CLKTRIM_2 */
  344.         }
  345.     }
  346. };
  347.  
  348.  
  349.  
  350. static const struct tegra_emc_table olympus_emc_tables_hynix_1G_54nm[] = {
  351.     {
  352.         .rate = 25000,   /* SDRAM frequency */
  353.         .regs = {
  354.  
  355. /*  -- Stuff goes here -- */
  356.  
  357.         }
  358.     },
  359.     {
  360.         .rate = 50000,   /* SDRAM frequency */
  361.         .regs = {
  362.  
  363. /*  -- Stuff goes here -- */
  364.  
  365.         }
  366.     },
  367.     {
  368.         .rate = 75000,   /* SDRAM frequency */
  369.         .regs = {
  370.  
  371. /*  -- Stuff goes here -- */
  372.  
  373.         }
  374.     },
  375.     {
  376.         .rate = 150000,   /* SDRAM frequency */
  377.         .regs = {
  378.             0x00000009,   /* RC */
  379.             0x00000014,   /* RFC */
  380.             0x00000007,   /* RAS */
  381.             0x00000003,   /* RP */
  382.             0x00000006,   /* R2W */
  383.             0x00000004,   /* W2R */
  384.             0x00000002,   /* R2P */
  385.             0x00000009,   /* W2P */
  386.             0x00000003,   /* RD_RCD */
  387.             0x00000003,   /* WR_RCD */
  388.             0x00000002,   /* RRD */
  389.             0x00000002,   /* REXT */
  390.             0x00000002,   /* WDV */
  391.             0x00000005,   /* QUSE */
  392.             0x00000003,   /* QRST */
  393.             0x00000008,   /* QSAFE */
  394.             0x0000000b,   /* RDV */
  395.             0x0000021f,   /* REFRESH */
  396.             0x00000000,   /* BURST_REFRESH_NUM */
  397.             0x00000003,   /* PDEX2WR */
  398.             0x00000003,   /* PDEX2RD */
  399.             0x00000003,   /* PCHG2PDEN */
  400.             0x00000008,   /* ACT2PDEN */
  401.             0x00000001,   /* AR2PDEN */
  402.             0x0000000a,   /* RW2PDEN */
  403.             0x00000015,   /* TXSR */
  404.             0x00000003,   /* TCKE */
  405.             0x00000008,   /* TFAW */
  406.             0x00000004,   /* TRPAB */
  407.             0x00000006,   /* TCLKSTABLE */
  408.             0x00000002,   /* TCLKSTOP */
  409.             0x00000270,   /* TREFBW */
  410.             0x00000000,   /* QUSE_EXTRA */
  411.             0x00000001,   /* FBIO_CFG6 */
  412.             0x00000000,   /* ODT_WRITE */
  413.             0x00000000,   /* ODT_READ */
  414.             0x00000282,   /* FBIO_CFG5 */
  415.             0xa04c04ae,   /* CFG_DIG_DLL */
  416.             0x007fa010,   /* DLL_XFORM_DQS */
  417.             0x00000000,   /* DLL_XFORM_QUSE */
  418.             0x00000000,   /* ZCAL_REF_CNT */
  419.             0x0000000e,   /* ZCAL_WAIT_CNT */
  420.             0x00000000,   /* AUTO_CAL_INTERVAL */
  421.             0x00000000,   /* CFG_CLKTRIM_0 */
  422.             0x00000000,   /* CFG_CLKTRIM_1 */
  423.             0x00000000,   /* CFG_CLKTRIM_2 */
  424.         }
  425.     },
  426.     {
  427.         .rate = 300000,   /* SDRAM frequency */
  428.         .regs = {
  429.             0x00000012,   /* RC */
  430.             0x00000027,   /* RFC */
  431.             0x0000000d,   /* RAS */
  432.             0x00000006,   /* RP */
  433.             0x00000007,   /* R2W */
  434.             0x00000005,   /* W2R */
  435.             0x00000003,   /* R2P */
  436.             0x00000009,   /* W2P */
  437.             0x00000006,   /* RD_RCD */
  438.             0x00000006,   /* WR_RCD */
  439.             0x00000003,   /* RRD */
  440.             0x00000003,   /* REXT */
  441.             0x00000002,   /* WDV */
  442.             0x00000006,   /* QUSE */
  443.             0x00000003,   /* QRST */
  444.             0x00000009,   /* QSAFE */
  445.             0x0000000c,   /* RDV */
  446.             0x0000045f,   /* REFRESH */
  447.             0x00000000,   /* BURST_REFRESH_NUM */
  448.             0x00000004,   /* PDEX2WR */
  449.             0x00000004,   /* PDEX2RD */
  450.             0x00000006,   /* PCHG2PDEN */
  451.             0x00000008,   /* ACT2PDEN */
  452.             0x00000001,   /* AR2PDEN */
  453.             0x0000000e,   /* RW2PDEN */
  454.             0x0000002a,   /* TXSR */
  455.             0x00000003,   /* TCKE */
  456.             0x0000000f,   /* TFAW */
  457.             0x00000007,   /* TRPAB */
  458.             0x00000005,   /* TCLKSTABLE */
  459.             0x00000002,   /* TCLKSTOP */
  460.             0x000004e0,   /* TREFBW */
  461.             0x00000005,   /* QUSE_EXTRA */
  462.             0x00000002,   /* FBIO_CFG6 */
  463.             0x00000000,   /* ODT_WRITE */
  464.             0x00000000,   /* ODT_READ */
  465.             0x00000282,   /* FBIO_CFG5 */
  466.             0xe03c048b,   /* CFG_DIG_DLL */
  467.             0x007fb010,   /* DLL_XFORM_DQS */
  468.             0x00000000,   /* DLL_XFORM_QUSE */
  469.             0x00000000,   /* ZCAL_REF_CNT */
  470.             0x0000001b,   /* ZCAL_WAIT_CNT */
  471.             0x00000000,   /* AUTO_CAL_INTERVAL */
  472.             0x00000000,   /* CFG_CLKTRIM_0 */
  473.             0x00000000,   /* CFG_CLKTRIM_1 */
  474.             0x00000000,   /* CFG_CLKTRIM_2 */
  475.         }
  476.     }
  477. };
  478.  
  479.  
  480.  
  481. static const struct tegra_emc_table olympus_emc_tables_micron_1G[] = {
  482.     {
  483.         .rate = 25000,   /* SDRAM frequency */
  484.         .regs = {
  485.  
  486. /*  -- Stuff goes here -- */
  487.  
  488.         }
  489.     },
  490.     {
  491.         .rate = 50000,   /* SDRAM frequency */
  492.         .regs = {
  493.  
  494. /*  -- Stuff goes here -- */
  495.  
  496.         }
  497.     },
  498.     {
  499.         .rate = 75000,   /* SDRAM frequency */
  500.         .regs = {
  501.  
  502. /*  -- Stuff goes here -- */
  503.  
  504.         }
  505.     },
  506.     {
  507.         .rate = 150000,   /* SDRAM frequency */
  508.         .regs = {
  509.             0x00000009,   /* RC */
  510.             0x00000014,   /* RFC */
  511.             0x00000007,   /* RAS */
  512.             0x00000003,   /* RP */
  513.             0x00000006,   /* R2W */
  514.             0x00000004,   /* W2R */
  515.             0x00000002,   /* R2P */
  516.             0x00000009,   /* W2P */
  517.             0x00000003,   /* RD_RCD */
  518.             0x00000003,   /* WR_RCD */
  519.             0x00000002,   /* RRD */
  520.             0x00000002,   /* REXT */
  521.             0x00000002,   /* WDV */
  522.             0x00000005,   /* QUSE */
  523.             0x00000003,   /* QRST */
  524.             0x00000008,   /* QSAFE */
  525.             0x0000000b,   /* RDV */
  526.             0x0000021f,   /* REFRESH */
  527.             0x00000000,   /* BURST_REFRESH_NUM */
  528.             0x00000003,   /* PDEX2WR */
  529.             0x00000003,   /* PDEX2RD */
  530.             0x00000003,   /* PCHG2PDEN */
  531.             0x00000008,   /* ACT2PDEN */
  532.             0x00000001,   /* AR2PDEN */
  533.             0x0000000a,   /* RW2PDEN */
  534.             0x00000015,   /* TXSR */
  535.             0x00000003,   /* TCKE */
  536.             0x00000008,   /* TFAW */
  537.             0x00000004,   /* TRPAB */
  538.             0x00000006,   /* TCLKSTABLE */
  539.             0x00000002,   /* TCLKSTOP */
  540.             0x00000270,   /* TREFBW */
  541.             0x00000000,   /* QUSE_EXTRA */
  542.             0x00000001,   /* FBIO_CFG6 */
  543.             0x00000000,   /* ODT_WRITE */
  544.             0x00000000,   /* ODT_READ */
  545.             0x00000282,   /* FBIO_CFG5 */
  546.             0xa04c04ae,   /* CFG_DIG_DLL */
  547.             0x007fe010,   /* DLL_XFORM_DQS */
  548.             0x00000000,   /* DLL_XFORM_QUSE */
  549.             0x00000000,   /* ZCAL_REF_CNT */
  550.             0x0000000e,   /* ZCAL_WAIT_CNT */
  551.             0x00000000,   /* AUTO_CAL_INTERVAL */
  552.             0x00000000,   /* CFG_CLKTRIM_0 */
  553.             0x00000000,   /* CFG_CLKTRIM_1 */
  554.             0x00000000,   /* CFG_CLKTRIM_2 */
  555.         }
  556.     },
  557.     {
  558.         .rate = 300000,   /* SDRAM frequency */
  559.         .regs = {
  560.             0x00000012,   /* RC */
  561.             0x00000027,   /* RFC */
  562.             0x0000000d,   /* RAS */
  563.             0x00000006,   /* RP */
  564.             0x00000007,   /* R2W */
  565.             0x00000005,   /* W2R */
  566.             0x00000003,   /* R2P */
  567.             0x00000009,   /* W2P */
  568.             0x00000006,   /* RD_RCD */
  569.             0x00000006,   /* WR_RCD */
  570.             0x00000003,   /* RRD */
  571.             0x00000003,   /* REXT */
  572.             0x00000002,   /* WDV */
  573.             0x00000006,   /* QUSE */
  574.             0x00000004,   /* QRST */
  575.             0x00000009,   /* QSAFE */
  576.             0x0000000c,   /* RDV */
  577.             0x0000045f,   /* REFRESH */
  578.             0x00000000,   /* BURST_REFRESH_NUM */
  579.             0x00000004,   /* PDEX2WR */
  580.             0x00000004,   /* PDEX2RD */
  581.             0x00000006,   /* PCHG2PDEN */
  582.             0x00000008,   /* ACT2PDEN */
  583.             0x00000001,   /* AR2PDEN */
  584.             0x0000000e,   /* RW2PDEN */
  585.             0x0000002a,   /* TXSR */
  586.             0x00000003,   /* TCKE */
  587.             0x0000000f,   /* TFAW */
  588.             0x00000007,   /* TRPAB */
  589.             0x00000005,   /* TCLKSTABLE */
  590.             0x00000002,   /* TCLKSTOP */
  591.             0x000004e0,   /* TREFBW */
  592.             0x00000005,   /* QUSE_EXTRA */
  593.             0x00000002,   /* FBIO_CFG6 */
  594.             0x00000000,   /* ODT_WRITE */
  595.             0x00000000,   /* ODT_READ */
  596.             0x00000282,   /* FBIO_CFG5 */
  597.             0xe03c048b,   /* CFG_DIG_DLL */
  598.             0x007fc010,   /* DLL_XFORM_DQS */
  599.             0x00000000,   /* DLL_XFORM_QUSE */
  600.             0x00000000,   /* ZCAL_REF_CNT */
  601.             0x0000001b,   /* ZCAL_WAIT_CNT */
  602.             0x00000000,   /* AUTO_CAL_INTERVAL */
  603.             0x00000000,   /* CFG_CLKTRIM_0 */
  604.             0x00000000,   /* CFG_CLKTRIM_1 */
  605.             0x00000000,   /* CFG_CLKTRIM_2 */
  606.         }
  607.     }
  608. };
  609.  
  610.  
  611. struct tegra_emc_chip olympus_emc_chips[] = {
  612.     {
  613.         .description = "Elpida 40nm",
  614.         .mem_manufacturer_id = 0x0303,
  615.         .mem_revision_id1 = 0x0101,
  616.         .mem_revision_id2 = -1,
  617.         .mem_pid = 0x5454,
  618.         .table = olympus_emc_tables_elpida_1G_40nm,
  619.         .table_size = ARRAY_SIZE(olympus_emc_tables_elpida_1G_40nm)
  620.     },
  621.     {
  622.         .description = "Elpida 50nm",
  623.         .mem_manufacturer_id = 0x0303,
  624.         .mem_revision_id1 = -1,
  625.         .mem_revision_id2 = -1,
  626.         .mem_pid = 0x5454,
  627.         .table = olympus_emc_tables_elpida_1G_50nm,
  628.         .table_size = ARRAY_SIZE(olympus_emc_tables_elpida_1G_50nm)
  629.     },
  630.     {
  631.         .description = "Hynix 54nm",
  632.         .mem_manufacturer_id = 0x0606,
  633.         .mem_revision_id1 = -1,
  634.         .mem_revision_id2 = -1,
  635.         .mem_pid = -1,
  636.         .table = olympus_emc_tables_hynix_1G_54nm,
  637.         .table_size = ARRAY_SIZE(olympus_emc_tables_hynix_1G_54nm)
  638.     },
  639.     {
  640.         .description = "Micron",
  641.         .mem_manufacturer_id = 0xFFFF,
  642.         .mem_revision_id1 = -1,
  643.         .mem_revision_id2 = -1,
  644.         .mem_pid = -1,
  645.         .table = olympus_emc_tables_micron_1G,
  646.         .table_size = ARRAY_SIZE(olympus_emc_tables_micron_1G)
  647.     },
  648. };
  649.  
  650. void olympus_emc_init(void)
  651. {
  652.     printk(KERN_INFO "pICS_%s",__func__);
  653.     tegra_init_emc(olympus_emc_chips, ARRAY_SIZE(olympus_emc_chips));
  654. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement