summaryrefslogtreecommitdiff
path: root/board/sunxi
diff options
context:
space:
mode:
Diffstat (limited to 'board/sunxi')
-rw-r--r--board/sunxi/Kconfig25
-rw-r--r--board/sunxi/dram_sun4i_auto.c3
-rw-r--r--board/sunxi/dram_sun5i_auto.c3
3 files changed, 22 insertions, 9 deletions
diff --git a/board/sunxi/Kconfig b/board/sunxi/Kconfig
index 012f9a4cef..a6bbf6e786 100644
--- a/board/sunxi/Kconfig
+++ b/board/sunxi/Kconfig
@@ -91,6 +91,13 @@ config DRAM_ZQ
---help---
Set the dram zq value.
+config DRAM_ODT_EN
+ bool "sunxi dram odt enable"
+ default n if !MACH_SUN8I_A23
+ default y if MACH_SUN8I_A23
+ ---help---
+ Select this to enable dram odt (on die termination).
+
if MACH_SUN4I || MACH_SUN5I || MACH_SUN7I
config DRAM_EMR1
int "sunxi dram emr1 value"
@@ -99,13 +106,6 @@ config DRAM_EMR1
---help---
Set the dram controller emr1 value.
-config DRAM_ODT_EN
- int "sunxi dram odt_en value"
- default 0
- ---help---
- Set the dram controller odt_en parameter. This can be used to
- enable/disable the ODT feature.
-
config DRAM_TPR3
hex "sunxi dram tpr3 value"
default 0
@@ -166,6 +166,17 @@ endchoice
endif
+if MACH_SUN8I_A23
+config DRAM_ODT_CORRECTION
+ int "sunxi dram odt correction value"
+ default 0
+ ---help---
+ Set the dram odt correction value (range -255 - 255). In allwinner
+ fex files, this option is found in bits 8-15 of the u32 odt_en variable
+ in the [dram] section. When bit 31 of the odt_en variable is set
+ then the correction is negative. Usually the value for this is 0.
+endif
+
config SYS_CLK_FREQ
default 912000000 if MACH_SUN7I
default 1008000000 if MACH_SUN4I || MACH_SUN5I || MACH_SUN6I || MACH_SUN8I
diff --git a/board/sunxi/dram_sun4i_auto.c b/board/sunxi/dram_sun4i_auto.c
index 09e0c9ae2e..149bb51dcb 100644
--- a/board/sunxi/dram_sun4i_auto.c
+++ b/board/sunxi/dram_sun4i_auto.c
@@ -1,5 +1,6 @@
#include <common.h>
#include <asm/arch/dram.h>
+#include <linux/kconfig.h>
static struct dram_para dram_para = {
.clock = CONFIG_DRAM_CLK,
@@ -9,7 +10,7 @@ static struct dram_para dram_para = {
.io_width = 0,
.bus_width = 0,
.zq = CONFIG_DRAM_ZQ,
- .odt_en = CONFIG_DRAM_ODT_EN,
+ .odt_en = IS_ENABLED(CONFIG_DRAM_ODT_EN),
.size = 0,
#ifdef CONFIG_DRAM_TIMINGS_VENDOR_MAGIC
.cas = 6,
diff --git a/board/sunxi/dram_sun5i_auto.c b/board/sunxi/dram_sun5i_auto.c
index 660b18ebbd..596a206072 100644
--- a/board/sunxi/dram_sun5i_auto.c
+++ b/board/sunxi/dram_sun5i_auto.c
@@ -2,6 +2,7 @@
#include <common.h>
#include <asm/arch/dram.h>
+#include <linux/kconfig.h>
static struct dram_para dram_para = {
.clock = CONFIG_DRAM_CLK,
@@ -12,7 +13,7 @@ static struct dram_para dram_para = {
.io_width = 0,
.bus_width = 0,
.zq = CONFIG_DRAM_ZQ,
- .odt_en = CONFIG_DRAM_ODT_EN,
+ .odt_en = IS_ENABLED(CONFIG_DRAM_ODT_EN),
.size = 0,
#ifdef CONFIG_DRAM_TIMINGS_VENDOR_MAGIC
.cas = 9,