uboot/board/davinci/dm6467evm/dm6467evm.c
<<
>>
Prefs
   1/*
   2 * Copyright (C) 2009 Texas Instruments Incorporated
   3 *
   4 * This program is free software; you can redistribute it and/or modify
   5 * it under the terms of the GNU General Public License as published by
   6 * the Free Software Foundation; either version 2 of the License, or
   7 * (at your option) any later version.
   8 *
   9 * This program is distributed in the hope that it will be useful,
  10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
  11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  12 * GNU General Public License for more details.
  13 *
  14 * You should have received a copy of the GNU General Public License
  15 * along with this program; if not, write to the Free Software
  16 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  17 */
  18
  19#include <common.h>
  20#include <netdev.h>
  21#include <asm/io.h>
  22#include <nand.h>
  23#include <asm/arch/nand_defs.h>
  24
  25DECLARE_GLOBAL_DATA_PTR;
  26
  27#define REV_DM6467EVM           0
  28#define REV_DM6467TEVM          1
  29/*
  30 * get_board_rev() - setup to pass kernel board revision information
  31 * Returns:
  32 * bit[0-3]     System clock frequency
  33 * 0000b        - 27 MHz
  34 * 0001b        - 33 MHz
  35 */
  36u32 get_board_rev(void)
  37{
  38
  39#ifdef CONFIG_DAVINCI_DM6467TEVM
  40        return REV_DM6467TEVM;
  41#else
  42        return REV_DM6467EVM;
  43#endif
  44
  45}
  46
  47int board_init(void)
  48{
  49        gd->bd->bi_arch_number = MACH_TYPE_DAVINCI_DM6467_EVM;
  50        gd->bd->bi_boot_params = PHYS_SDRAM_1 + 0x100;
  51
  52        lpsc_on(DAVINCI_DM646X_LPSC_TIMER0);
  53        lpsc_on(DAVINCI_DM646X_LPSC_UART0);
  54        lpsc_on(DAVINCI_DM646X_LPSC_I2C);
  55        lpsc_on(DAVINCI_DM646X_LPSC_EMAC);
  56
  57        /* Enable GIO3.3V cells used for EMAC */
  58        REG(VDD3P3V_PWDN) = 0x80000c0;
  59
  60        /* Select UART function on UART0 */
  61        REG(PINMUX0) &= ~(0x0000003f << 18);
  62        REG(PINMUX1) &= ~(0x00000003);
  63
  64        return 0;
  65}
  66
  67#if defined(CONFIG_DRIVER_TI_EMAC)
  68
  69int board_eth_init(bd_t *bis)
  70{
  71        if (!davinci_emac_initialize()) {
  72                printf("Error: Ethernet init failed!\n");
  73                return -1;
  74        }
  75
  76        return 0;
  77}
  78#endif /* CONFIG_DRIVER_TI_EMAC */
  79
  80#ifdef CONFIG_NAND_DAVINCI
  81int board_nand_init(struct nand_chip *nand)
  82{
  83        davinci_nand_init(nand);
  84
  85        return 0;
  86}
  87#endif
  88