Merge tag 'u-boot-atmel-fixes-2020.07-a' of https://gitlab.denx.de/u-boot/custodians...
[oweals/u-boot.git] / board / atmel / at91rm9200ek / at91rm9200ek.c
1 // SPDX-License-Identifier: GPL-2.0+
2 /*
3  * (C) Copyright 2010 Andreas Bießmann <andreas@biessmann.org>
4  *
5  * derived from previous work
6  *
7  * (C) Copyright 2002
8  * Sysgo Real-Time Solutions, GmbH <www.elinos.com>
9  * Marius Groeger <mgroeger@sysgo.de>
10  */
11
12 #include <common.h>
13 #include <init.h>
14 #include <net.h>
15 #include <netdev.h>
16 #include <asm/mach-types.h>
17 #include <asm/arch/hardware.h>
18 #include <asm/arch/at91_pio.h>
19 #include <asm/arch/at91_common.h>
20 #include <asm/io.h>
21
22 DECLARE_GLOBAL_DATA_PTR;
23
24 /* ------------------------------------------------------------------------- */
25 int board_init(void)
26 {
27         at91_pio_t *pio = (at91_pio_t *)AT91_PIO_BASE;
28
29         /*
30          * Correct IRDA resistor problem
31          * Set PA23_TXD in Output
32          */
33         writel(ATMEL_PMX_AA_TXD2, &pio->pioa.oer);
34
35         /* arch number of AT91RM9200EK-Board */
36         gd->bd->bi_arch_number = MACH_TYPE_AT91RM9200EK;
37         /* adress of boot parameters */
38         gd->bd->bi_boot_params = CONFIG_SYS_SDRAM_BASE + 0x100;
39
40         return 0;
41 }
42
43 int board_early_init_f(void)
44 {
45         at91_seriald_hw_init();
46         return 0;
47 }
48
49 int dram_init (void)
50 {
51         /* dram_init must store complete ramsize in gd->ram_size */
52         gd->ram_size = get_ram_size((long *)CONFIG_SYS_SDRAM_BASE,
53                         CONFIG_SYS_SDRAM_SIZE);
54         return 0;
55 }
56
57 #ifdef CONFIG_DRIVER_AT91EMAC
58 int board_eth_init(bd_t *bis)
59 {
60         return at91emac_register(bis, (u32) ATMEL_BASE_EMAC);
61 }
62 #endif