blob: b1c9b5dcd6e37165dba9cb83a882ffd69cf4e7d6 [file] [log] [blame]
Masahiro Yamada323d1f92015-09-22 00:27:39 +09001/*
2 * Copyright (C) 2013-2015 Masahiro Yamada <yamada.masahiro@socionext.com>
3 *
4 * SPDX-License-Identifier: GPL-2.0+
5 */
6
7#include <common.h>
8#include <spl.h>
Masahiro Yamada107b3fb2016-01-09 01:51:13 +09009
10#include "../init.h"
11#include "../micro-support-card.h"
Masahiro Yamada323d1f92015-09-22 00:27:39 +090012
Masahiro Yamada5b660062016-03-30 20:17:02 +090013int uniphier_ld4_init(const struct uniphier_board_data *bd)
Masahiro Yamada323d1f92015-09-22 00:27:39 +090014{
Masahiro Yamada5b660062016-03-30 20:17:02 +090015 uniphier_ld4_bcu_init(bd);
Masahiro Yamada323d1f92015-09-22 00:27:39 +090016
Masahiro Yamada5b660062016-03-30 20:17:02 +090017 uniphier_sbc_init_savepin(bd);
Masahiro Yamada5d0607c2016-03-18 16:41:44 +090018 uniphier_ld4_sbc_init(bd);
Masahiro Yamada323d1f92015-09-22 00:27:39 +090019
20 support_card_reset();
21
Masahiro Yamada5b660062016-03-30 20:17:02 +090022 uniphier_ld4_pll_init(bd);
Masahiro Yamada323d1f92015-09-22 00:27:39 +090023
24 support_card_init();
25
26 led_puts("L0");
27
28 memconf_init(bd);
29
30 led_puts("L1");
31
Masahiro Yamada5b660062016-03-30 20:17:02 +090032 uniphier_ld4_early_clk_init(bd);
Masahiro Yamada323d1f92015-09-22 00:27:39 +090033
34 led_puts("L2");
35
36 led_puts("L3");
37
38#ifdef CONFIG_SPL_SERIAL_SUPPORT
39 preloader_console_init();
40#endif
41
42 led_puts("L4");
43
44 {
45 int res;
46
Masahiro Yamada5b660062016-03-30 20:17:02 +090047 res = uniphier_ld4_umc_init(bd);
Masahiro Yamada323d1f92015-09-22 00:27:39 +090048 if (res < 0) {
49 while (1)
50 ;
51 }
52 }
53
54 led_puts("L5");
55
Masahiro Yamada5b660062016-03-30 20:17:02 +090056 uniphier_ld4_enable_dpll_ssc(bd);
Masahiro Yamada323d1f92015-09-22 00:27:39 +090057
58 led_puts("L6");
59
60 return 0;
61}