]>
Commit | Line | Data |
---|---|---|
d8380c9d | 1 | /* |
af4b8b4b | 2 | * (C) Copyright 2006-2010 Eukrea Electromatique <www.eukrea.com> |
d8380c9d TR |
3 | * Eric Benard <eric@eukrea.com> |
4 | * based on at91rm9200dk.c which is : | |
5 | * (C) Copyright 2002 | |
6 | * Sysgo Real-Time Solutions, GmbH <www.elinos.com> | |
7 | * Marius Groeger <mgroeger@sysgo.de> | |
8 | * | |
1a459660 | 9 | * SPDX-License-Identifier: GPL-2.0+ |
d8380c9d TR |
10 | */ |
11 | ||
12 | #include <common.h> | |
c041e9d2 | 13 | #include <netdev.h> |
c041e9d2 | 14 | |
af4b8b4b EB |
15 | #include <asm/io.h> |
16 | #include <asm/arch/hardware.h> | |
17 | #include <asm/arch/at91_pio.h> | |
18 | #include <asm/arch/at91_pmc.h> | |
dbbf13ba | 19 | #include <asm/arch/at91_common.h> |
d8380c9d TR |
20 | |
21 | DECLARE_GLOBAL_DATA_PTR; | |
22 | ||
23 | /* ------------------------------------------------------------------------- */ | |
24 | /* | |
25 | * Miscelaneous platform dependent initialisations | |
26 | */ | |
27 | ||
28 | int board_init(void) | |
29 | { | |
d8380c9d TR |
30 | /* arch number of CPUAT91-Board */ |
31 | gd->bd->bi_arch_number = MACH_TYPE_CPUAT91; | |
32 | /* adress of boot parameters */ | |
632f8fdf | 33 | gd->bd->bi_boot_params = CONFIG_SYS_SDRAM_BASE + 0x100; |
d8380c9d TR |
34 | |
35 | return 0; | |
36 | } | |
37 | ||
dbbf13ba AB |
38 | int board_early_init_f(void) |
39 | { | |
40 | at91_seriald_hw_init(); | |
41 | return 0; | |
42 | } | |
43 | ||
44 | ||
d8380c9d TR |
45 | int dram_init(void) |
46 | { | |
632f8fdf | 47 | /* dram_init must store complete ramsize in gd->ram_size */ |
a55d23cc | 48 | gd->ram_size = get_ram_size((long *)CONFIG_SYS_SDRAM_BASE, |
632f8fdf | 49 | CONFIG_SYS_SDRAM_SIZE); |
d8380c9d TR |
50 | return 0; |
51 | } | |
52 | ||
c041e9d2 | 53 | #ifdef CONFIG_DRIVER_AT91EMAC |
c041e9d2 JS |
54 | int board_eth_init(bd_t *bis) |
55 | { | |
d0a94620 | 56 | return at91emac_register(bis, (u32) ATMEL_BASE_EMAC); |
c041e9d2 JS |
57 | } |
58 | #endif | |
af4b8b4b | 59 | |
ea818dbb | 60 | #ifdef CONFIG_SYS_I2C_SOFT |
af4b8b4b EB |
61 | void i2c_init_board(void) |
62 | { | |
63 | u32 pin; | |
d0a94620 EB |
64 | at91_pmc_t *pmc = (at91_pmc_t *) ATMEL_BASE_PMC; |
65 | at91_pio_t *pio = (at91_pio_t *) ATMEL_BASE_PIO; | |
af4b8b4b EB |
66 | |
67 | writel(1 << AT91_ID_PIOA, &pmc->pcer); | |
68 | pin = AT91_PMX_AA_TWD | AT91_PMX_AA_TWCK; | |
69 | writel(pin, &pio->pioa.idr); | |
70 | writel(pin, &pio->pioa.pudr); | |
71 | writel(pin, &pio->pioa.per); | |
72 | writel(pin, &pio->pioa.oer); | |
73 | writel(pin, &pio->pioa.sodr); | |
74 | } | |
75 | #endif |