summaryrefslogtreecommitdiff
path: root/board/ti
diff options
context:
space:
mode:
authorLokesh Vutla <lokeshvutla@ti.com>2013-07-30 10:48:52 +0530
committerTom Rini <trini@ti.com>2013-08-15 08:51:10 -0400
commit94d77fb656d49f2b0efe2de5605a52c5145d2c3b (patch)
tree0730083980308d786e0c44ceb61e4c156748b071 /board/ti
parentfdce7b633a1de24456226b18527cc7900c34282a (diff)
downloadu-boot-imx-94d77fb656d49f2b0efe2de5605a52c5145d2c3b.zip
u-boot-imx-94d77fb656d49f2b0efe2de5605a52c5145d2c3b.tar.gz
u-boot-imx-94d77fb656d49f2b0efe2de5605a52c5145d2c3b.tar.bz2
ARM: AM33xx: Cleanup dplls data
Locking sequence for all the dplls is same. In the current code same sequence is done repeatedly for each dpll. Instead have a generic function for locking dplls and pass dpll data to that function. This is derived from OMAP4 boards. Signed-off-by: Lokesh Vutla <lokeshvutla@ti.com> Tested-by: Heiko Schocher <hs@denx.de> Acked-by: Heiko Schocher <hs@denx.de>
Diffstat (limited to 'board/ti')
-rw-r--r--board/ti/am335x/board.c27
1 files changed, 27 insertions, 0 deletions
diff --git a/board/ti/am335x/board.c b/board/ti/am335x/board.c
index 728afc2..2be2297 100644
--- a/board/ti/am335x/board.c
+++ b/board/ti/am335x/board.c
@@ -242,6 +242,33 @@ int spl_start_uboot(void)
}
#endif
+#define OSC (V_OSCK/1000000)
+const struct dpll_params dpll_ddr = {
+ 266, OSC-1, 1, -1, -1, -1, -1};
+const struct dpll_params dpll_ddr_evm_sk = {
+ 303, OSC-1, 1, -1, -1, -1, -1};
+const struct dpll_params dpll_ddr_bone_black = {
+ 400, OSC-1, 1, -1, -1, -1, -1};
+
+const struct dpll_params *get_dpll_ddr_params(void)
+{
+ struct am335x_baseboard_id header;
+
+ enable_i2c0_pin_mux();
+ i2c_init(CONFIG_SYS_I2C_SPEED, CONFIG_SYS_I2C_SLAVE);
+ if (read_eeprom(&header) < 0)
+ puts("Could not get board ID.\n");
+
+ if (board_is_evm_sk(&header))
+ return &dpll_ddr_evm_sk;
+ else if (board_is_bone_lt(&header))
+ return &dpll_ddr_bone_black;
+ else if (board_is_evm_15_or_later(&header))
+ return &dpll_ddr_evm_sk;
+ else
+ return &dpll_ddr;
+}
+
#endif
/*