xref: /openbmc/u-boot/board/samsung/arndale/arndale.c (revision a2ac68fb2b35e57cd483e7d6fb30b9d9331acc01)
1 /*
2  * Copyright (C) 2013 Samsung Electronics
3  *
4  * SPDX-License-Identifier:	GPL-2.0+
5  */
6 
7 #include <common.h>
8 #include <asm/arch/pinmux.h>
9 #include <asm/arch/power.h>
10 
11 DECLARE_GLOBAL_DATA_PTR;
12 
13 int board_init(void)
14 {
15 	gd->bd->bi_boot_params = (PHYS_SDRAM_1 + 0x100UL);
16 	return 0;
17 }
18 
19 int dram_init(void)
20 {
21 	int i;
22 	u32 addr;
23 
24 	for (i = 0; i < CONFIG_NR_DRAM_BANKS; i++) {
25 		addr = CONFIG_SYS_SDRAM_BASE + (i * SDRAM_BANK_SIZE);
26 		gd->ram_size += get_ram_size((long *)addr, SDRAM_BANK_SIZE);
27 	}
28 	return 0;
29 }
30 
31 int power_init_board(void)
32 {
33 	set_ps_hold_ctrl();
34 	return 0;
35 }
36 
37 void dram_init_banksize(void)
38 {
39 	int i;
40 	u32 addr, size;
41 
42 	for (i = 0; i < CONFIG_NR_DRAM_BANKS; i++) {
43 		addr = CONFIG_SYS_SDRAM_BASE + (i * SDRAM_BANK_SIZE);
44 		size = get_ram_size((long *)addr, SDRAM_BANK_SIZE);
45 
46 		gd->bd->bi_dram[i].start = addr;
47 		gd->bd->bi_dram[i].size = size;
48 	}
49 }
50 
51 static int board_uart_init(void)
52 {
53 	int err = 0, uart_id;
54 
55 	for (uart_id = PERIPH_ID_UART0; uart_id <= PERIPH_ID_UART3; uart_id++) {
56 		err = exynos_pinmux_config(uart_id, PINMUX_FLAG_NONE);
57 		if (err) {
58 			debug("UART%d not configured\n",
59 			      (uart_id - PERIPH_ID_UART0));
60 			return err;
61 		}
62 	}
63 	return err;
64 }
65 
66 #ifdef CONFIG_BOARD_EARLY_INIT_F
67 int board_early_init_f(void)
68 {
69 	int err;
70 
71 	err = board_uart_init();
72 	if (err) {
73 		debug("UART init failed\n");
74 		return err;
75 	}
76 	return err;
77 }
78 #endif
79 
80 #ifdef CONFIG_DISPLAY_BOARDINFO
81 int checkboard(void)
82 {
83 	printf("\nBoard: Arndale\n");
84 
85 	return 0;
86 }
87 #endif
88