aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSteve Kipisz <s-kipisz2@ti.com>2017-08-22 13:52:58 +0530
committerTom Rini <trini@konsulko.com>2017-09-11 16:22:31 -0400
commit209742fa8858a201af2f32e05b1fb72ef299540e (patch)
tree1a6f25371ca67c3b4b8ead12133002cc90d0934c
parentfede94298049fe243eaed08a10db67fe9bcb17a2 (diff)
downloadu-boot-209742fa8858a201af2f32e05b1fb72ef299540e.zip
u-boot-209742fa8858a201af2f32e05b1fb72ef299540e.tar.gz
u-boot-209742fa8858a201af2f32e05b1fb72ef299540e.tar.bz2
board: ti: am571x: Add 666MHz support for AM571x IDK
AM571x supports DDR running at 666MHz. Right now it is clocked at 532MHz which is lower than what is supported. In order to have maximum performance on AM571-IDK, switch DDR to 666MHz. Signed-off-by: Steve Kipisz <s-kipisz2@ti.com> Signed-off-by: Lokesh Vutla <lokeshvutla@ti.com> Reviewed-by: Tom Rini <trini@konsulko.com>
-rw-r--r--arch/arm/include/asm/omap_common.h1
-rw-r--r--board/ti/am57xx/board.c35
2 files changed, 34 insertions, 2 deletions
diff --git a/arch/arm/include/asm/omap_common.h b/arch/arm/include/asm/omap_common.h
index d7e453e..8b296c9 100644
--- a/arch/arm/include/asm/omap_common.h
+++ b/arch/arm/include/asm/omap_common.h
@@ -596,6 +596,7 @@ extern struct prcm_regs const omap4_prcm;
extern struct prcm_regs const dra7xx_prcm;
extern struct dplls const **dplls_data;
extern struct dplls dra7xx_dplls;
+extern struct dplls dra72x_dplls;
extern struct vcores_data const **omap_vcores;
extern const u32 sys_clk_array[8];
extern struct omap_sys_ctrl_regs const **ctrl;
diff --git a/board/ti/am57xx/board.c b/board/ti/am57xx/board.c
index 7e7056c..3d15cb1 100644
--- a/board/ti/am57xx/board.c
+++ b/board/ti/am57xx/board.c
@@ -223,11 +223,39 @@ static const u32 beagle_x15_emif2_ddr3_ext_phy_ctrl_const_regs[] = {
0x0
};
+static const struct emif_regs am571x_emif1_ddr3_666mhz_emif_regs = {
+ .sdram_config_init = 0x61863332,
+ .sdram_config = 0x61863332,
+ .sdram_config2 = 0x08000000,
+ .ref_ctrl = 0x0000514d,
+ .ref_ctrl_final = 0x0000144a,
+ .sdram_tim1 = 0xd333887c,
+ .sdram_tim2 = 0x40b37fe3,
+ .sdram_tim3 = 0x409f8ada,
+ .read_idle_ctrl = 0x00050000,
+ .zq_config = 0x5007190b,
+ .temp_alert_config = 0x00000000,
+ .emif_ddr_phy_ctlr_1_init = 0x0024400f,
+ .emif_ddr_phy_ctlr_1 = 0x0e24400f,
+ .emif_ddr_ext_phy_ctrl_1 = 0x10040100,
+ .emif_ddr_ext_phy_ctrl_2 = 0x00910091,
+ .emif_ddr_ext_phy_ctrl_3 = 0x00950095,
+ .emif_ddr_ext_phy_ctrl_4 = 0x009b009b,
+ .emif_ddr_ext_phy_ctrl_5 = 0x009e009e,
+ .emif_rd_wr_lvl_rmp_win = 0x00000000,
+ .emif_rd_wr_lvl_rmp_ctl = 0x80000000,
+ .emif_rd_wr_lvl_ctl = 0x00000000,
+ .emif_rd_wr_exec_thresh = 0x00000305
+};
+
void emif_get_reg_dump(u32 emif_nr, const struct emif_regs **regs)
{
switch (emif_nr) {
case 1:
- *regs = &beagle_x15_emif1_ddr3_532mhz_emif_regs;
+ if (board_is_am571x_idk())
+ *regs = &am571x_emif1_ddr3_666mhz_emif_regs;
+ else
+ *regs = &beagle_x15_emif1_ddr3_532mhz_emif_regs;
break;
case 2:
*regs = &beagle_x15_emif2_ddr3_532mhz_emif_regs;
@@ -513,7 +541,10 @@ void vcores_init(void)
void hw_data_init(void)
{
*prcm = &dra7xx_prcm;
- *dplls_data = &dra7xx_dplls;
+ if (is_dra72x())
+ *dplls_data = &dra72x_dplls;
+ else
+ *dplls_data = &dra7xx_dplls;
*ctrl = &dra7xx_ctrl;
}