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