Advertisement
Guest User

Untitled

a guest
Aug 29th, 2016
144
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.38 KB | None | 0 0
  1. From 6e58bc0c9d5fa1d5fc914b385b94c95193fb0561 Mon Sep 17 00:00:00 2001
  2. From: Fabio Estevam <festevam@gmail.com>
  3. Date: Mon, 29 Aug 2016 16:37:06 -0300
  4. Subject: [PATCH 1/2] mx6: ddr: Allow changing REFSEL and REFR fields
  5.  
  6. Allow the SPL DDR initialization code to override the default
  7. configurations for the REFSEL and REFR fields of the MDREF register.
  8.  
  9. Signed-off-by: Fabio Estevam <fabio.estevam@nxp.com>
  10. ---
  11. arch/arm/cpu/armv7/mx6/ddr.c | 15 ++++++++++++---
  12. arch/arm/include/asm/arch-mx6/mx6-ddr.h | 2 ++
  13. 2 files changed, 14 insertions(+), 3 deletions(-)
  14.  
  15. diff --git a/arch/arm/cpu/armv7/mx6/ddr.c b/arch/arm/cpu/armv7/mx6/ddr.c
  16. index f151eec..ebc7903 100644
  17. --- a/arch/arm/cpu/armv7/mx6/ddr.c
  18. +++ b/arch/arm/cpu/armv7/mx6/ddr.c
  19. @@ -1183,7 +1183,7 @@ void mx6_ddr3_cfg(const struct mx6_ddr_sysinfo *sysinfo,
  20. volatile struct mmdc_p_regs *mmdc0;
  21. volatile struct mmdc_p_regs *mmdc1;
  22. u32 val;
  23. - u8 tcke, tcksrx, tcksre, txpdll, taofpd, taonpd, trrd;
  24. + u8 tcke, tcksrx, tcksre, txpdll, taofpd, taonpd, trrd, refsel, refr;
  25. u8 todtlon, taxpd, tanpd, tcwl, txp, tfaw, tcl;
  26. u8 todt_idle_off = 0x4; /* from DDR3 Script Aid spreadsheet */
  27. u16 trcd, trc, tras, twr, tmrd, trtp, trp, twtr, trfc, txs, txpr;
  28. @@ -1472,8 +1472,17 @@ void mx6_ddr3_cfg(const struct mx6_ddr_sysinfo *sysinfo,
  29. MMDC1(mpzqhwctrl, val);
  30.  
  31. /* Step 12: Configure and activate periodic refresh */
  32. - mmdc0->mdref = (1 << 14) | /* REF_SEL: Periodic refresh cycle: 32kHz */
  33. - (7 << 11); /* REFR: Refresh Rate - 8 refreshes */
  34. + if (!sysinfo->refsel)
  35. + refsel = 1; /* REF_SEL: Periodic refresh cycle: 32kHz */
  36. + else
  37. + refsel = sysinfo->refsel;
  38. +
  39. + if (!sysinfo->refr)
  40. + refr = 7; /* REFR: Refresh Rate - 8 refreshes */
  41. + else
  42. + refr = sysinfo->refr;
  43. +
  44. + mmdc0->mdref = (refsel << 14) | (refr << 11);
  45.  
  46. /* Step 13: Deassert config request - init complete */
  47. mmdc0->mdscr = 0x00000000;
  48. diff --git a/arch/arm/include/asm/arch-mx6/mx6-ddr.h b/arch/arm/include/asm/arch-mx6/mx6-ddr.h
  49. index 12c30d2..819ec19 100644
  50. --- a/arch/arm/include/asm/arch-mx6/mx6-ddr.h
  51. +++ b/arch/arm/include/asm/arch-mx6/mx6-ddr.h
  52. @@ -408,6 +408,8 @@ struct mx6_ddr_sysinfo {
  53. u8 sde_to_rst; /* Time from SDE enable until DDR reset# is high */
  54. u8 pd_fast_exit;/* enable precharge powerdown fast-exit */
  55. u8 ddr_type; /* DDR type: DDR3(0) or LPDDR2(1) */
  56. + u8 refsel;
  57. + u8 refr;
  58. };
  59.  
  60. /*
  61. --
  62. 1.9.1
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement