]> git.ipfire.org Git - people/ms/u-boot.git/blobdiff - board/kosagi/novena/novena_spl.c
Merge branch 'master' of git://www.denx.de/git/u-boot-imx
[people/ms/u-boot.git] / board / kosagi / novena / novena_spl.c
index 5ebc59b970ab176987148e73c5db6b6969e08a0f..3645b75cb29bfa07222eec8f673862b5e3e1e1bb 100644 (file)
@@ -14,9 +14,9 @@
 #include <asm/arch/mx6-pins.h>
 #include <asm/arch/sys_proto.h>
 #include <asm/gpio.h>
-#include <asm/imx-common/boot_mode.h>
-#include <asm/imx-common/iomux-v3.h>
-#include <asm/imx-common/mxc_i2c.h>
+#include <asm/mach-imx/boot_mode.h>
+#include <asm/mach-imx/iomux-v3.h>
+#include <asm/mach-imx/mxc_i2c.h>
 #include <asm/arch/crm_regs.h>
 #include <i2c.h>
 #include <mmc.h>
@@ -386,6 +386,13 @@ static void novena_spl_setup_iomux_uart(void)
 static iomux_v3_cfg_t hdmi_pads[] = {
        /* "Ghost HPD" pin */
        MX6_PAD_EIM_A24__GPIO5_IO04 | MUX_PAD_CTRL(NO_PAD_CTRL),
+
+       /* LCD_PWR_CTL */
+       MX6_PAD_CSI0_DAT10__GPIO5_IO28 | MUX_PAD_CTRL(NO_PAD_CTRL),
+       /* LCD_BL_ON */
+       MX6_PAD_KEY_ROW4__GPIO4_IO15 | MUX_PAD_CTRL(NO_PAD_CTRL),
+       /* GPIO_PWM1 */
+       MX6_PAD_DISP0_DAT8__GPIO4_IO29 | MUX_PAD_CTRL(NO_PAD_CTRL),
 };
 
 static void novena_spl_setup_iomux_video(void)
@@ -427,8 +434,8 @@ static struct mx6dq_iomux_ddr_regs novena_ddr_ioregs = {
        .dram_ras               = 0x00000038,
        .dram_reset             = 0x00000038,
        /* SDCKE[0:1]: 100k pull-up */
-       .dram_sdcke0            = 0x00003000,
-       .dram_sdcke1            = 0x00003000,
+       .dram_sdcke0            = 0x00000038,
+       .dram_sdcke1            = 0x00000038,
        /* SDBA2: pull-up disabled */
        .dram_sdba2             = 0x00000000,
        /* SDODT[0:1]: 100k pull-up, 40 ohm */
@@ -505,14 +512,16 @@ static struct mx6_ddr_sysinfo novena_ddr_info = {
        /* Single chip select */
        .ncs            = 1,
        .cs1_mirror     = 0,
-       .rtt_wr         = 1,    /* RTT_Wr = RZQ/4 */
-       .rtt_nom        = 2,    /* RTT_Nom = RZQ/2 */
-       .walat          = 3,    /* Write additional latency */
-       .ralat          = 7,    /* Read additional latency */
+       .rtt_wr         = 0,    /* RTT_Wr = RZQ/4 */
+       .rtt_nom        = 1,    /* RTT_Nom = RZQ/2 */
+       .walat          = 0,    /* Write additional latency */
+       .ralat          = 5,    /* Read additional latency */
        .mif3_mode      = 3,    /* Command prediction working mode */
        .bi_on          = 1,    /* Bank interleaving enabled */
        .sde_to_rst     = 0x10, /* 14 cycles, 200us (JEDEC default) */
        .rst_to_cke     = 0x23, /* 33 cycles, 500us (JEDEC default) */
+       .refsel = 1,    /* Refresh cycles at 32KHz */
+       .refr = 7,      /* 8 refresh commands per refresh cycle */
 };
 
 static struct mx6_ddr3_cfg elpida_4gib_1600 = {
@@ -523,9 +532,9 @@ static struct mx6_ddr3_cfg elpida_4gib_1600 = {
        .rowaddr        = 16,
        .coladdr        = 10,
        .pagesz         = 2,
-       .trcd           = 1300,
-       .trcmin         = 4900,
-       .trasmin        = 3590,
+       .trcd           = 1375,
+       .trcmin         = 4875,
+       .trasmin        = 3500,
 };
 
 static void ccgr_init(void)
@@ -594,13 +603,14 @@ void board_init_f(ulong dummy)
        mx6dq_dram_iocfg(64, &novena_ddr_ioregs, &novena_grp_ioregs);
        mx6_dram_cfg(&novena_ddr_info, &novena_mmdc_calib, &elpida_4gib_1600);
 
+       /* Perform DDR DRAM calibration */
+       udelay(100);
+       mmdc_do_write_level_calibration(&novena_ddr_info);
+       mmdc_do_dqs_calibration(&novena_ddr_info);
+
        /* Clear the BSS. */
        memset(__bss_start, 0, __bss_end - __bss_start);
 
        /* load/boot image from boot device */
        board_init_r(NULL, 0);
 }
-
-void reset_cpu(ulong addr)
-{
-}