From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jean-Christophe PLAGNIOL-VILLARD Date: Sat, 6 Dec 2008 20:28:28 +0100 Subject: [U-Boot] [PATCH-OMAP3 1/2] OMAP3: Add Pandora board files In-Reply-To: <1227651267-25807-2-git-send-email-notasas@gmail.com> References: <1227651267-25807-1-git-send-email-notasas@gmail.com> <1227651267-25807-2-git-send-email-notasas@gmail.com> Message-ID: <20081206192828.GO2977@game.jcrosoft.org> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de > diff --git a/board/omap3/pandora/pandora.c b/board/omap3/pandora/pandora.c > new file mode 100644 > index 0000000..7c0c5b4 > --- /dev/null > +++ b/board/omap3/pandora/pandora.c > @@ -0,0 +1,124 @@ > +/* Copyright? > + * Maintainer : Grazvydas Ignotas > + * > + * Derived from Beagle Board, 3430 SDP, and OMAP3EVM code by > + * Richard Woodruff > + * Syed Mohammed Khasim > + * Sunil Kumar > + * Shashi Ranjan > + * > + * (C) Copyright 2004-2008 > + * Texas Instruments, > + * > + * See file CREDITS for list of people who contributed to this > + * project. > + * > + * This program is free software; you can redistribute it and/or > + * modify it under the terms of the GNU General Public License as > + * published by the Free Software Foundation; either version 2 of > + * the License, or (at your option) any later version. > + * > + * This program is distributed in the hope that it will be useful, > + * but WITHOUT ANY WARRANTY; without even the implied warranty of > + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the > + * GNU General Public License for more details. > + * > + * You should have received a copy of the GNU General Public License > + * along with this program; if not, write to the Free Software > + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, > + * MA 02111-1307 USA > + */ > +#include > +#include > +#include > +#include > +#include > +#include > +#include "pandora.h" > + > +/****************************************************************************** > + * Routine: board_init > + * Description: Early hardware init. > + *****************************************************************************/ > +int board_init(void) > +{ > + DECLARE_GLOBAL_DATA_PTR; > + > + gpmc_init(); /* in SRAM or SDRAM, finish GPMC */ > + /* board id for Linux */ > + gd->bd->bi_arch_number = MACH_TYPE_OMAP3_PANDORA; > + /* boot param addr */ > + gd->bd->bi_boot_params = (OMAP34XX_SDRC_CS0 + 0x100); > + > + return 0; > +} > + > +/****************************************************************************** > + * Routine: misc_init_r > + * Description: Configure power supply > + *****************************************************************************/ > +int misc_init_r(void) > +{ > + > + unsigned char byte; > + unsigned int *gpio1_base = (unsigned int *)OMAP34XX_GPIO1_BASE; > + unsigned int *gpio4_base = (unsigned int *)OMAP34XX_GPIO4_BASE; > + unsigned int *gpio5_base = (unsigned int *)OMAP34XX_GPIO5_BASE; > + unsigned int *gpio6_base = (unsigned int *)OMAP34XX_GPIO6_BASE; > + > +#ifdef CONFIG_DRIVER_OMAP34XX_I2C > + i2c_init(CONFIG_SYS_I2C_SPEED, CONFIG_SYS_I2C_SLAVE); > +#endif > + > + /* > + * Configure OMAP3 supply voltages in power management > + * companion chip. > + */ > + > + /* set VAUX3 to 2.8V */ > + byte = DEV_GRP_P1; > + i2c_write(PWRMGT_ADDR_ID4, VAUX3_DEV_GRP, 1, &byte, 1); > + byte = VAUX3_VSEL_28; > + i2c_write(PWRMGT_ADDR_ID4, VAUX3_DEDICATED, 1, &byte, 1); > + > + /* set VPLL2 to 1.8V */ > + byte = DEV_GRP_ALL; > + i2c_write(PWRMGT_ADDR_ID4, VPLL2_DEV_GRP, 1, &byte, 1); > + byte = VPLL2_VSEL_18; > + i2c_write(PWRMGT_ADDR_ID4, VPLL2_DEDICATED, 1, &byte, 1); > + > + /* set VDAC to 1.8V */ > + byte = DEV_GRP_P1; > + i2c_write(PWRMGT_ADDR_ID4, VDAC_DEV_GRP, 1, &byte, 1); > + byte = VDAC_VSEL_18; > + i2c_write(PWRMGT_ADDR_ID4, VDAC_DEDICATED, 1, &byte, 1); is it possible to reduce duplicate code? this block is also use in the Beagle > + > + /* enable LED */ > + byte = LEDBPWM | LEDAPWM | LEDBON | LEDAON; > + i2c_write(PWRMGT_ADDR_ID3, LEDEN, 1, &byte, 1); > + > + /* Configure GPIOs to output */ > + writel(~(GPIO14 | GPIO15 | GPIO16 | GPIO23), > + gpio1_base + OFFS(GPIO_OE)); > + writel(~GPIO22, gpio4_base + OFFS(GPIO_OE)); /* 118 */ > + writel(~(GPIO0 | GPIO1 | GPIO28 | GPIO29 | GPIO30 | GPIO31), > + gpio5_base + OFFS(GPIO_OE)); /* 128, 129, 156-159 */ > + writel(~GPIO4, gpio6_base + OFFS(GPIO_OE)); /* 164 */ > + > + /* Set GPIOs */ > + writel(GPIO28, gpio5_base + OFFS(GPIO_SETDATAOUT)); > + writel(GPIO4, gpio6_base + OFFS(GPIO_SETDATAOUT)); > + > + return 0; > +} > + > +/****************************************************************************** > + * Routine: set_muxconf_regs > + * Description: Setting up the configuration Mux registers specific to the > + * hardware. Many pins need to be moved from protect to primary > + * mode. > + *****************************************************************************/ > +void set_muxconf_regs(void) > +{ > + MUX_PANDORA(); > +} > diff --git a/board/omap3/pandora/u-boot.lds b/board/omap3/pandora/u-boot.lds > new file mode 100644 > index 0000000..7f2fa32 > --- /dev/null > +++ b/board/omap3/pandora/u-boot.lds > @@ -0,0 +1,63 @@ > +/* > + * January 2004 - Changed to support H4 device > + * Copyright (c) 2004 Texas Instruments > + * > + * (C) Copyright 2002 > + * Gary Jennejohn, DENX Software Engineering, > + * > + * See file CREDITS for list of people who contributed to this > + * project. > + * > + * This program is free software; you can redistribute it and/or > + * modify it under the terms of the GNU General Public License as > + * published by the Free Software Foundation; either version 2 of > + * the License, or (at your option) any later version. > + * > + * This program is distributed in the hope that it will be useful, > + * but WITHOUT ANY WARRANTY; without even the implied warranty of > + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the > + * GNU General Public License for more details. > + * > + * You should have received a copy of the GNU General Public License > + * along with this program; if not, write to the Free Software > + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, > + * MA 02111-1307 USA > + */ > + > +OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm") > +OUTPUT_ARCH(arm) > +ENTRY(_start) > +SECTIONS > +{ > + . = 0x00000000; > + > + . = ALIGN(4); > + .text : ^^^^^^ > + { > + cpu/arm_cortexa8/start.o (.text) ^^ > + { > + *(.text) ^^ > + { > + } > + > + . = ALIGN(4); > + .rodata : { *(.rodata) } > + > + .ARM.extab : { *(.ARM.extab* .gnu.linkonce.armextab.*) } ^^^ > + { > + __exidx_start = .; > + .ARM.exidx : { *(.ARM.exidx* .gnu.linkonce.armexidx.*) } ^^^ > + { > + __exidx_end = .; > + > + . = ALIGN(4); > + .data : { *(.data) } > + > + . = ALIGN(4); > + .got : { *(.got) } > + > + __u_boot_cmd_start = .; > + .u_boot_cmd : { *(.u_boot_cmd) } > + __u_boot_cmd_end = .; > + > + . = ALIGN(4); > + __bss_start = .; > + .bss : { *(.bss) } > + _end = .; > +} Best Regards, J.