diff options
| author | Stefano Babic <sbabic@denx.de> | 2010-11-30 11:32:10 -0500 | 
|---|---|---|
| committer | Sandeep Paulraj <s-paulraj@ti.com> | 2010-11-30 11:32:59 -0500 | 
| commit | 6d1c649f44fd6c10a6ab83e9eec7d36da4ec7c80 (patch) | |
| tree | d0c1bc8a2593a363340c4a7315d215a3903388d8 | |
| parent | d26074012b1ae28e4d593fabde389a3dc4471114 (diff) | |
| download | olio-uboot-2014.01-6d1c649f44fd6c10a6ab83e9eec7d36da4ec7c80.tar.xz olio-uboot-2014.01-6d1c649f44fd6c10a6ab83e9eec7d36da4ec7c80.zip | |
Davinci 8xx: Move common functions to share code
As more Davinci 8xx board can be added, move common code
to be shared between boards.
 * rebased ontop of Sugosh's patches
 * moving the HAWKBOARD_KICK{0,1}_UNLOCK defines to
   arch/arm/include/asm/arch-davinci/davinci_misc.h from to
   arch/arm/include/asm/arch-davinci/da8xx_common.h
 * don't define dram functions in PRELOADER
 * move sync_env_enetaddr into existing EMAC ifdef
 * use misc.c in hawkboard nand_spl
Signed-off-by: Ben Gardiner <bengardiner@nanometrics.ca>
Signed-off-by: Stefano Babic <sbabic@denx.de>
Signed-off-by: Sandeep Paulraj <s-paulraj@ti.com>
| -rw-r--r-- | arch/arm/include/asm/arch-davinci/da8xx_common.h | 37 | ||||
| -rw-r--r-- | arch/arm/include/asm/arch-davinci/davinci_misc.h | 15 | ||||
| -rw-r--r-- | board/davinci/common/misc.c | 54 | ||||
| -rw-r--r-- | board/davinci/da8xxevm/Makefile | 1 | ||||
| -rw-r--r-- | board/davinci/da8xxevm/common.c | 69 | ||||
| -rw-r--r-- | board/davinci/da8xxevm/da830evm.c | 1 | ||||
| -rw-r--r-- | board/davinci/da8xxevm/da850evm.c | 3 | ||||
| -rw-r--r-- | board/davinci/da8xxevm/hawkboard.c | 1 | ||||
| -rw-r--r-- | board/davinci/da8xxevm/hawkboard_nand_spl.c | 1 | ||||
| -rw-r--r-- | nand_spl/board/davinci/da8xxevm/Makefile | 6 | 
10 files changed, 72 insertions, 116 deletions
| diff --git a/arch/arm/include/asm/arch-davinci/da8xx_common.h b/arch/arm/include/asm/arch-davinci/da8xx_common.h deleted file mode 100644 index e52f613ea..000000000 --- a/arch/arm/include/asm/arch-davinci/da8xx_common.h +++ /dev/null @@ -1,37 +0,0 @@ -/* - * Copyright (C) 2010 Texas Instruments Incorporated - http://www.ti.com/ - * - * 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., 675 Mass Ave, Cambridge, MA 02139, USA. - */ - -#ifndef __COMMON_H -#define __COMMON_H - -#define	HAWKBOARD_KICK0_UNLOCK		0x83e70b13 -#define	HAWKBOARD_KICK1_UNLOCK		0x95a4f1e0 - -struct lpsc_resource { -	const int	lpsc_no; -}; - -void irq_init(void); -int da8xx_configure_lpsc_items(const struct lpsc_resource *item, -				    int n_items); - -#if defined(CONFIG_DRIVER_TI_EMAC) && defined(CONFIG_MACH_DAVINCI_DA850_EVM) -void da850_emac_mii_mode_sel(int mode_sel); -#endif - -#endif /* __COMMON_H */ diff --git a/arch/arm/include/asm/arch-davinci/davinci_misc.h b/arch/arm/include/asm/arch-davinci/davinci_misc.h index a6ac3b9a5..347aa89e3 100644 --- a/arch/arm/include/asm/arch-davinci/davinci_misc.h +++ b/arch/arm/include/asm/arch-davinci/davinci_misc.h @@ -45,10 +45,25 @@ struct pinmux_resource {  				.n_pins = ARRAY_SIZE(item) \  			  } +#define HAWKBOARD_KICK0_UNLOCK          0x83e70b13 +#define HAWKBOARD_KICK1_UNLOCK          0x95a4f1e0 + +struct lpsc_resource { +	const int	lpsc_no; +}; +  int dvevm_read_mac_address(uint8_t *buf);  void davinci_sync_env_enetaddr(uint8_t *rom_enetaddr);  int davinci_configure_pin_mux(const struct pinmux_config *pins, int n_pins);  int davinci_configure_pin_mux_items(const struct pinmux_resource *item,  				    int n_items); +#if defined(CONFIG_DRIVER_TI_EMAC) && defined(CONFIG_MACH_DAVINCI_DA850_EVM) +void davinci_emac_mii_mode_sel(int mode_sel); +#endif +#if defined(CONFIG_SOC_DA8XX) +void irq_init(void); +int da8xx_configure_lpsc_items(const struct lpsc_resource *item, +				    const int n_items); +#endif  #endif /* __MISC_H */ diff --git a/board/davinci/common/misc.c b/board/davinci/common/misc.c index f25ad7ee7..08c898fed 100644 --- a/board/davinci/common/misc.c +++ b/board/davinci/common/misc.c @@ -33,6 +33,7 @@  DECLARE_GLOBAL_DATA_PTR; +#ifndef CONFIG_PRELOADER  int dram_init(void)  {  	/* dram_init must store complete ramsize in gd->ram_size */ @@ -47,6 +48,7 @@ void dram_init_banksize(void)  	gd->bd->bi_dram[0].start = CONFIG_SYS_SDRAM_BASE;  	gd->bd->bi_dram[0].size = gd->ram_size;  } +#endif  #ifdef CONFIG_DRIVER_TI_EMAC @@ -76,6 +78,22 @@ err:  }  /* + * Set the mii mode as MII or RMII + */ +#if defined(CONFIG_DRIVER_TI_EMAC) +void davinci_emac_mii_mode_sel(int mode_sel) +{ +	int val; + +	val = readl(&davinci_syscfg_regs->cfgchip3); +	if (mode_sel == 0) +		val &= ~(1 << 8); +	else +		val |= (1 << 8); +	writel(val, &davinci_syscfg_regs->cfgchip3); +} +#endif +/*   * If there is no MAC address in the environment, then it will be initialized   * (silently) from the value in the EEPROM.   */ @@ -94,4 +112,38 @@ void davinci_sync_env_enetaddr(uint8_t *rom_enetaddr)  	}  } -#endif	/* DAVINCI_EMAC */ +#endif	/* CONFIG_DRIVER_TI_EMAC */ + +#if defined(CONFIG_SOC_DA8XX) +#ifndef CONFIG_USE_IRQ +void irq_init(void) +{ +	/* +	 * Mask all IRQs by clearing the global enable and setting +	 * the enable clear for all the 90 interrupts. +	 */ + +	writel(0, &davinci_aintc_regs->ger); + +	writel(0, &davinci_aintc_regs->hier); + +	writel(0xffffffff, &davinci_aintc_regs->ecr1); +	writel(0xffffffff, &davinci_aintc_regs->ecr2); +	writel(0xffffffff, &davinci_aintc_regs->ecr3); +} +#endif + +/* + * Enable PSC for various peripherals. + */ +int da8xx_configure_lpsc_items(const struct lpsc_resource *item, +				    const int n_items) +{ +	int i; + +	for (i = 0; i < n_items; i++) +		lpsc_on(item[i].lpsc_no); + +	return 0; +} +#endif diff --git a/board/davinci/da8xxevm/Makefile b/board/davinci/da8xxevm/Makefile index 181636870..c1b2119d5 100644 --- a/board/davinci/da8xxevm/Makefile +++ b/board/davinci/da8xxevm/Makefile @@ -27,7 +27,6 @@ include $(TOPDIR)/config.mk  LIB	= $(obj)lib$(BOARD).o -COBJS-y	+= common.o  COBJS-$(CONFIG_MACH_DAVINCI_DA830_EVM)	+= da830evm.o  COBJS-$(CONFIG_MACH_DAVINCI_DA850_EVM)	+= da850evm.o  COBJS-$(CONFIG_MACH_DAVINCI_HAWK)	+= hawkboard.o diff --git a/board/davinci/da8xxevm/common.c b/board/davinci/da8xxevm/common.c deleted file mode 100644 index 2d9a64bff..000000000 --- a/board/davinci/da8xxevm/common.c +++ /dev/null @@ -1,69 +0,0 @@ -/* - * Miscellaneous DA8XX functions. - * - * Copyright (C) 2010 Texas Instruments Incorporated - http://www.ti.com/ - * - * 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., 675 Mass Ave, Cambridge, MA 02139, USA. - */ - -#include <asm/io.h> -#include <asm/arch/hardware.h> -#include <asm/arch/da8xx_common.h> - -#ifndef CONFIG_USE_IRQ -void irq_init(void) -{ -	/* -	 * Mask all IRQs by clearing the global enable and setting -	 * the enable clear for all the 90 interrupts. -	 */ - -	writel(0, &davinci_aintc_regs->ger); - -	writel(0, &davinci_aintc_regs->hier); - -	writel(0xffffffff, &davinci_aintc_regs->ecr1); -	writel(0xffffffff, &davinci_aintc_regs->ecr2); -	writel(0xffffffff, &davinci_aintc_regs->ecr3); -} -#endif - -/* - * Enable PSC for various peripherals. - */ -int da8xx_configure_lpsc_items(const struct lpsc_resource *item, -				    const int n_items) -{ -	int i; - -	for (i = 0; i < n_items; i++) -		lpsc_on(item[i].lpsc_no); - -	return 0; -} - -#if defined(CONFIG_DRIVER_TI_EMAC) && defined(CONFIG_MACH_DAVINCI_DA850_EVM) -void da850_emac_mii_mode_sel(int mode_sel) -{ -	int val; - -	val = readl(&davinci_syscfg_regs->cfgchip3); -	if (mode_sel == 0) -		val &= ~(1 << 8); -	else -		val |= (1 << 8); -	writel(val, &davinci_syscfg_regs->cfgchip3); -} -#endif diff --git a/board/davinci/da8xxevm/da830evm.c b/board/davinci/da8xxevm/da830evm.c index b6b7e37fe..06506537b 100644 --- a/board/davinci/da8xxevm/da830evm.c +++ b/board/davinci/da8xxevm/da830evm.c @@ -41,7 +41,6 @@  #include <asm/arch/emac_defs.h>  #include <asm/io.h>  #include <asm/arch/davinci_misc.h> -#include <asm/arch/da8xx_common.h>  DECLARE_GLOBAL_DATA_PTR; diff --git a/board/davinci/da8xxevm/da850evm.c b/board/davinci/da8xxevm/da850evm.c index 291757c1f..b088c9c3e 100644 --- a/board/davinci/da8xxevm/da850evm.c +++ b/board/davinci/da8xxevm/da850evm.c @@ -30,7 +30,6 @@  #include <asm/arch/emac_defs.h>  #include <asm/io.h>  #include <asm/arch/davinci_misc.h> -#include <asm/arch/da8xx_common.h>  DECLARE_GLOBAL_DATA_PTR; @@ -220,7 +219,7 @@ int board_init(void)  	if (davinci_configure_pin_mux(emac_pins, ARRAY_SIZE(emac_pins)) != 0)  		return 1; -	da850_emac_mii_mode_sel(HAS_RMII); +	davinci_emac_mii_mode_sel(HAS_RMII);  #endif /* CONFIG_DRIVER_TI_EMAC */  	/* enable the console UART */ diff --git a/board/davinci/da8xxevm/hawkboard.c b/board/davinci/da8xxevm/hawkboard.c index b672c9dbc..f34830ed2 100644 --- a/board/davinci/da8xxevm/hawkboard.c +++ b/board/davinci/da8xxevm/hawkboard.c @@ -28,7 +28,6 @@  #include <asm/io.h>  #include <asm/arch/davinci_misc.h>  #include <ns16550.h> -#include <asm/arch/da8xx_common.h>  DECLARE_GLOBAL_DATA_PTR; diff --git a/board/davinci/da8xxevm/hawkboard_nand_spl.c b/board/davinci/da8xxevm/hawkboard_nand_spl.c index 74eec1321..915523632 100644 --- a/board/davinci/da8xxevm/hawkboard_nand_spl.c +++ b/board/davinci/da8xxevm/hawkboard_nand_spl.c @@ -28,7 +28,6 @@  #include <asm/io.h>  #include <asm/arch/davinci_misc.h>  #include <ns16550.h> -#include <asm/arch/da8xx_common.h>  DECLARE_GLOBAL_DATA_PTR; diff --git a/nand_spl/board/davinci/da8xxevm/Makefile b/nand_spl/board/davinci/da8xxevm/Makefile index 61026759e..4cae22396 100644 --- a/nand_spl/board/davinci/da8xxevm/Makefile +++ b/nand_spl/board/davinci/da8xxevm/Makefile @@ -35,7 +35,7 @@ CFLAGS	+= -DCONFIG_PRELOADER -DCONFIG_NAND_SPL  SOBJS	= start.o _udivsi3.o _divsi3.o  COBJS	= cpu.o davinci_nand.o ns16550.o div0.o davinci_pinmux.o psc.o	\ -	common.o hawkboard_nand_spl.o nand_boot.o +	misc.o hawkboard_nand_spl.o nand_boot.o  SRCS	:= $(addprefix $(obj),$(SOBJS:.o=.S) $(COBJS:.o=.c))  OBJS	:= $(addprefix $(obj),$(SOBJS) $(COBJS)) @@ -116,9 +116,9 @@ $(obj)hawkboard_nand_spl.c:  	ln -s $(TOPDIR)/board/davinci/da8xxevm/hawkboard_nand_spl.c $@  # from board directory -$(obj)common.c: +$(obj)misc.c:  	@rm -f $@ -	ln -s $(TOPDIR)/board/davinci/da8xxevm/common.c $@ +	ln -s $(TOPDIR)/board/davinci/common/misc.c $@  $(obj)psc.c:  	@rm -f $@ |