1*83d290c5STom Rini // SPDX-License-Identifier: GPL-2.0+ 2cb82a532SUlf Samuelsson /* 309c2b8f3SAndreas Bießmann * (C) Copyright 2010 Andreas Bießmann <andreas@biessmann.org> 499fa97e9SAndreas Bießmann * 599fa97e9SAndreas Bießmann * derived from previous work 699fa97e9SAndreas Bießmann * 7cb82a532SUlf Samuelsson * (C) Copyright 2002 8cb82a532SUlf Samuelsson * Sysgo Real-Time Solutions, GmbH <www.elinos.com> 9cb82a532SUlf Samuelsson * Marius Groeger <mgroeger@sysgo.de> 10cb82a532SUlf Samuelsson */ 11cb82a532SUlf Samuelsson 12cb82a532SUlf Samuelsson #include <common.h> 13c041e9d2SJens Scharsig #include <netdev.h> 14c62db35dSSimon Glass #include <asm/mach-types.h> 1599fa97e9SAndreas Bießmann #include <asm/arch/hardware.h> 1699fa97e9SAndreas Bießmann #include <asm/arch/at91_pio.h> 173432a93bSAndreas Bießmann #include <asm/arch/at91_common.h> 18c041e9d2SJens Scharsig #include <asm/io.h> 19cb82a532SUlf Samuelsson 20cb82a532SUlf Samuelsson DECLARE_GLOBAL_DATA_PTR; 21cb82a532SUlf Samuelsson 22cb82a532SUlf Samuelsson /* ------------------------------------------------------------------------- */ board_init(void)23cb82a532SUlf Samuelssonint board_init(void) 24cb82a532SUlf Samuelsson { 2599fa97e9SAndreas Bießmann at91_pio_t *pio = (at91_pio_t *)AT91_PIO_BASE; 26cb82a532SUlf Samuelsson 27cb82a532SUlf Samuelsson /* 28cb82a532SUlf Samuelsson * Correct IRDA resistor problem 29cb82a532SUlf Samuelsson * Set PA23_TXD in Output 30cb82a532SUlf Samuelsson */ 3180733994SJens Scharsig writel(ATMEL_PMX_AA_TXD2, &pio->pioa.oer); 32cb82a532SUlf Samuelsson 33cb82a532SUlf Samuelsson /* arch number of AT91RM9200EK-Board */ 34cb82a532SUlf Samuelsson gd->bd->bi_arch_number = MACH_TYPE_AT91RM9200EK; 35cb82a532SUlf Samuelsson /* adress of boot parameters */ 3699fa97e9SAndreas Bießmann gd->bd->bi_boot_params = CONFIG_SYS_SDRAM_BASE + 0x100; 37cb82a532SUlf Samuelsson 38cb82a532SUlf Samuelsson return 0; 39cb82a532SUlf Samuelsson } 40cb82a532SUlf Samuelsson board_early_init_f(void)413432a93bSAndreas Bießmannint board_early_init_f(void) 423432a93bSAndreas Bießmann { 433432a93bSAndreas Bießmann at91_seriald_hw_init(); 443432a93bSAndreas Bießmann return 0; 453432a93bSAndreas Bießmann } 463432a93bSAndreas Bießmann dram_init(void)47cb82a532SUlf Samuelssonint dram_init (void) 48cb82a532SUlf Samuelsson { 4999fa97e9SAndreas Bießmann /* dram_init must store complete ramsize in gd->ram_size */ 50a55d23ccSAlbert ARIBAUD gd->ram_size = get_ram_size((long *)CONFIG_SYS_SDRAM_BASE, 5199fa97e9SAndreas Bießmann CONFIG_SYS_SDRAM_SIZE); 52cb82a532SUlf Samuelsson return 0; 53cb82a532SUlf Samuelsson } 54cb82a532SUlf Samuelsson 55c041e9d2SJens Scharsig #ifdef CONFIG_DRIVER_AT91EMAC board_eth_init(bd_t * bis)56c041e9d2SJens Scharsigint board_eth_init(bd_t *bis) 57c041e9d2SJens Scharsig { 5880733994SJens Scharsig return at91emac_register(bis, (u32) ATMEL_BASE_EMAC); 59c041e9d2SJens Scharsig } 60c041e9d2SJens Scharsig #endif 61