Hi Marek,

On Wed,  3 Oct 2012 20:54:08 +0200, Marek Vasut <ma...@denx.de> wrote:

> This stuff has been rotting in the tree for a year now. Remove it.
> 
> Signed-off-by: Marek Vasut <ma...@denx.de>
> ---
> Changes in v3:
>  - Rebase on top of -next
> 
> Changes in v2:
>  - Rebase on top of -next
> 
>  arch/arm/cpu/arm720t/cpu.c                         |    2 +-
>  arch/arm/cpu/arm720t/interrupts.c                  |   28 +--
>  arch/arm/cpu/arm720t/lpc2292/Makefile              |   50 ----
>  arch/arm/cpu/arm720t/lpc2292/flash.c               |  249 
> --------------------
>  arch/arm/cpu/arm720t/lpc2292/iap_entry.S           |    7 -
>  arch/arm/cpu/arm720t/lpc2292/mmc.c                 |  131 ----------
>  arch/arm/cpu/arm720t/lpc2292/mmc_hw.c              |  233 ------------------
>  arch/arm/cpu/arm720t/lpc2292/mmc_hw.h              |   29 ---
>  arch/arm/cpu/arm720t/lpc2292/spi.c                 |   40 ----
>  arch/arm/cpu/arm720t/start.S                       |   69 +-----
>  arch/arm/include/asm/arch-lpc2292/hardware.h       |   33 ---
>  .../include/asm/arch-lpc2292/lpc2292_registers.h   |  225 ------------------
>  arch/arm/include/asm/arch-lpc2292/spi.h            |   82 -------
>  drivers/i2c/soft_i2c.c                             |    3 -
>  drivers/serial/Makefile                            |    1 -
>  drivers/serial/serial.c                            |    2 -
>  drivers/serial/serial_lpc2292.c                    |  124 ----------
>  include/flash.h                                    |    1 -
>  18 files changed, 3 insertions(+), 1306 deletions(-)
>  delete mode 100644 arch/arm/cpu/arm720t/lpc2292/Makefile
>  delete mode 100644 arch/arm/cpu/arm720t/lpc2292/flash.c
>  delete mode 100644 arch/arm/cpu/arm720t/lpc2292/iap_entry.S
>  delete mode 100644 arch/arm/cpu/arm720t/lpc2292/mmc.c
>  delete mode 100644 arch/arm/cpu/arm720t/lpc2292/mmc_hw.c
>  delete mode 100644 arch/arm/cpu/arm720t/lpc2292/mmc_hw.h
>  delete mode 100644 arch/arm/cpu/arm720t/lpc2292/spi.c
>  delete mode 100644 arch/arm/include/asm/arch-lpc2292/hardware.h
>  delete mode 100644 arch/arm/include/asm/arch-lpc2292/lpc2292_registers.h
>  delete mode 100644 arch/arm/include/asm/arch-lpc2292/spi.h
>  delete mode 100644 drivers/serial/serial_lpc2292.c
> 
> diff --git a/arch/arm/cpu/arm720t/cpu.c b/arch/arm/cpu/arm720t/cpu.c
> index ce7b3c9..e25f6f2 100644
> --- a/arch/arm/cpu/arm720t/cpu.c
> +++ b/arch/arm/cpu/arm720t/cpu.c
> @@ -46,7 +46,7 @@ int cleanup_before_linux (void)
>        * and we set the CPU-speed to 73 MHz - see start.S for details
>        */
>  
> -#if defined(CONFIG_NETARM) || defined(CONFIG_S3C4510B) || 
> defined(CONFIG_LPC2292)
> +#if defined(CONFIG_NETARM) || defined(CONFIG_S3C4510B)
>       disable_interrupts ();
>       /* Nothing more needed */
>  #elif defined(CONFIG_INTEGRATOR) && defined(CONFIG_ARCH_INTEGRATOR)
> diff --git a/arch/arm/cpu/arm720t/interrupts.c 
> b/arch/arm/cpu/arm720t/interrupts.c
> index c2f898f..5b21cc3 100644
> --- a/arch/arm/cpu/arm720t/interrupts.c
> +++ b/arch/arm/cpu/arm720t/interrupts.c
> @@ -37,11 +37,6 @@
>  /* macro to read the 16 bit timer */
>  #define READ_TIMER (IO_TC1D & 0xffff)
>  
> -#ifdef CONFIG_LPC2292
> -#undef READ_TIMER
> -#define READ_TIMER (0xFFFFFFFF - GET32(T0TC))
> -#endif
> -
>  #else
>  #define IRQEN        (*(volatile unsigned int *)(NETARM_GEN_MODULE_BASE + 
> NETARM_GEN_INTR_ENABLE))
>  #define TM2CTRL (*(volatile unsigned int *)(NETARM_GEN_MODULE_BASE + 
> NETARM_GEN_TIMER2_CONTROL))
> @@ -73,13 +68,6 @@ void do_irq (struct pt_regs *pt_regs)
>       }
>  #elif defined(CONFIG_INTEGRATOR) && defined(CONFIG_ARCH_INTEGRATOR)
>       /* No do_irq() for IntegratorAP/CM720T as yet */
> -#elif defined(CONFIG_LPC2292)
> -
> -    void (*pfnct)(void);
> -
> -    pfnct = (void (*)(void))VICVectAddr;
> -
> -    (*pfnct)();
>  #else
>  #error do_irq() not defined for this CPU type
>  #endif
> @@ -172,14 +160,6 @@ int timer_init (void)
>  
>       /* Start timer */
>       SET_REG( REG_TMOD, TM0_RUN);
> -#elif defined(CONFIG_LPC2292)
> -     PUT32(T0IR, 0);         /* disable all timer0 interrupts */
> -     PUT32(T0TCR, 0);        /* disable timer0 */
> -     PUT32(T0PR, CONFIG_SYS_SYS_CLK_FREQ / CONFIG_SYS_HZ);
> -     PUT32(T0MCR, 0);
> -     PUT32(T0TC, 0);
> -     PUT32(T0TCR, 1);        /* enable timer0 */
> -
>  #elif defined(CONFIG_TEGRA)
>       /* No timer routines for tegra as yet */
>       lastdec = 0;
> @@ -198,7 +178,7 @@ int timer_init (void)
>   */
>  
>  
> -#if defined(CONFIG_NETARM) || defined(CONFIG_LPC2292)
> +#if defined(CONFIG_NETARM)
>  
>  ulong get_timer (ulong base)
>  {
> @@ -216,12 +196,6 @@ void __udelay (unsigned long usec)
>       tmo += get_timer (0);
>  
>       while (get_timer_masked () < tmo)
> -#ifdef CONFIG_LPC2292
> -             /* GJ - not sure whether this is really needed or a 
> misunderstanding */
> -             __asm__ __volatile__(" nop");
> -#else
> -             /*NOP*/;
> -#endif
>  }
>  
>  ulong get_timer_masked (void)
> diff --git a/arch/arm/cpu/arm720t/lpc2292/Makefile 
> b/arch/arm/cpu/arm720t/lpc2292/Makefile
> deleted file mode 100644
> index 1b93008..0000000
> --- a/arch/arm/cpu/arm720t/lpc2292/Makefile
> +++ /dev/null
> @@ -1,50 +0,0 @@
> -#
> -# (C) Copyright 2000-2007
> -# Wolfgang Denk, DENX Software Engineering, w...@denx.de.
> -#
> -# 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 $(TOPDIR)/config.mk
> -
> -LIB  = $(obj)lib$(SOC).o
> -
> -COBJS        = flash.o mmc.o mmc_hw.o spi.o
> -SOBJS        = $(obj)iap_entry.o
> -
> -SRCS := $(COBJS:.o=.c)
> -OBJS := $(addprefix $(obj),$(COBJS))
> -
> -all: $(obj).depend $(LIB)
> -
> -$(LIB):      $(OBJS) $(SOBJS)
> -     $(call cmd_link_o_target, $(OBJS) $(SOBJS))
> -
> -# this MUST be compiled as thumb code!
> -$(SOBJS):
> -     $(CC) $(AFLAGS) -march=armv4t -c -o $(SOBJS) iap_entry.S
> -
> -#########################################################################
> -
> -# defines $(obj).depend target
> -include $(SRCTREE)/rules.mk
> -
> -sinclude $(obj).depend
> -
> -#########################################################################
> diff --git a/arch/arm/cpu/arm720t/lpc2292/flash.c 
> b/arch/arm/cpu/arm720t/lpc2292/flash.c
> deleted file mode 100644
> index 3d2dc32..0000000
> --- a/arch/arm/cpu/arm720t/lpc2292/flash.c
> +++ /dev/null
> @@ -1,249 +0,0 @@
> -/*
> - * (C) Copyright 2006 Embedded Artists AB <www.embeddedartists.com>
> - *
> - * Modified to remove all but the IAP-command related code by
> - * Gary Jennejohn <ga...@denx.de>
> - *
> - * 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 <common.h>
> -#include <asm/arch/hardware.h>
> -
> -/* IAP commands use 32 bytes at the top of CPU internal sram, we
> -   use 512 bytes below that */
> -#define COPY_BUFFER_LOCATION 0x40003de0
> -
> -#define IAP_LOCATION 0x7ffffff1
> -#define IAP_CMD_PREPARE 50
> -#define IAP_CMD_COPY 51
> -#define IAP_CMD_ERASE 52
> -#define IAP_CMD_CHECK 53
> -#define IAP_CMD_ID 54
> -#define IAP_CMD_VERSION 55
> -#define IAP_CMD_COMPARE 56
> -
> -#define IAP_RET_CMD_SUCCESS 0
> -
> -static unsigned long command[5];
> -static unsigned long result[2];
> -
> -extern void iap_entry(unsigned long * command, unsigned long * result);
> -
> -/*-----------------------------------------------------------------------
> - *
> - */
> -static int get_flash_sector(flash_info_t * info, ulong flash_addr)
> -{
> -     int i;
> -
> -     for(i = 1; i < (info->sector_count); i++) {
> -             if (flash_addr < (info->start[i]))
> -                     break;
> -     }
> -
> -     return (i-1);
> -}
> -
> -/*-----------------------------------------------------------------------
> - * This function assumes that flash_addr is aligned on 512 bytes boundary
> - * in flash. This function also assumes that prepare have been called
> - * for the sector in question.
> - */
> -int lpc2292_copy_buffer_to_flash(flash_info_t * info, ulong flash_addr)
> -{
> -     int first_sector;
> -     int last_sector;
> -
> -     first_sector = get_flash_sector(info, flash_addr);
> -     last_sector = get_flash_sector(info, flash_addr + 512 - 1);
> -
> -     /* prepare sectors for write */
> -     command[0] = IAP_CMD_PREPARE;
> -     command[1] = first_sector;
> -     command[2] = last_sector;
> -     iap_entry(command, result);
> -     if (result[0] != IAP_RET_CMD_SUCCESS) {
> -             printf("IAP prepare failed\n");
> -             return ERR_PROG_ERROR;
> -     }
> -
> -     command[0] = IAP_CMD_COPY;
> -     command[1] = flash_addr;
> -     command[2] = COPY_BUFFER_LOCATION;
> -     command[3] = 512;
> -     command[4] = CONFIG_SYS_SYS_CLK_FREQ >> 10;
> -     iap_entry(command, result);
> -     if (result[0] != IAP_RET_CMD_SUCCESS) {
> -             printf("IAP copy failed\n");
> -             return 1;
> -     }
> -
> -     return 0;
> -}
> -
> -/*-----------------------------------------------------------------------
> - */
> -
> -int lpc2292_flash_erase (flash_info_t * info, int s_first, int s_last)
> -{
> -     int flag;
> -     int prot;
> -     int sect;
> -
> -     prot = 0;
> -     for (sect = s_first; sect <= s_last; ++sect) {
> -             if (info->protect[sect]) {
> -                     prot++;
> -             }
> -     }
> -     if (prot)
> -             return ERR_PROTECTED;
> -
> -
> -     flag = disable_interrupts();
> -
> -     printf ("Erasing %d sectors starting at sector %2d.\n"
> -     "This make take some time ... ",
> -     s_last - s_first + 1, s_first);
> -
> -     command[0] = IAP_CMD_PREPARE;
> -     command[1] = s_first;
> -     command[2] = s_last;
> -     iap_entry(command, result);
> -     if (result[0] != IAP_RET_CMD_SUCCESS) {
> -             printf("IAP prepare failed\n");
> -             return ERR_PROTECTED;
> -     }
> -
> -     command[0] = IAP_CMD_ERASE;
> -     command[1] = s_first;
> -     command[2] = s_last;
> -     command[3] = CONFIG_SYS_SYS_CLK_FREQ >> 10;
> -     iap_entry(command, result);
> -     if (result[0] != IAP_RET_CMD_SUCCESS) {
> -             printf("IAP erase failed\n");
> -             return ERR_PROTECTED;
> -     }
> -
> -     if (flag)
> -             enable_interrupts();
> -
> -     return ERR_OK;
> -}
> -
> -int lpc2292_write_buff (flash_info_t * info, uchar * src, ulong addr,
> -                     ulong cnt)
> -{
> -     int first_copy_size;
> -     int last_copy_size;
> -     int first_block;
> -     int last_block;
> -     int nbr_mid_blocks;
> -     uchar memmap_value;
> -     ulong i;
> -     uchar* src_org;
> -     uchar* dst_org;
> -     int ret = ERR_OK;
> -
> -     src_org = src;
> -     dst_org = (uchar*)addr;
> -
> -     first_block = addr / 512;
> -     last_block = (addr + cnt) / 512;
> -     nbr_mid_blocks = last_block - first_block - 1;
> -
> -     first_copy_size = 512 - (addr % 512);
> -     last_copy_size = (addr + cnt) % 512;
> -
> -     debug("\ncopy first block: (1) %lX -> %lX 0x200 bytes, "
> -             "(2) %lX -> %lX 0x%X bytes, (3) %lX -> %lX 0x200 bytes\n",
> -     (ulong)(first_block * 512),
> -     (ulong)COPY_BUFFER_LOCATION,
> -     (ulong)src,
> -     (ulong)(COPY_BUFFER_LOCATION + 512 - first_copy_size),
> -     first_copy_size,
> -     (ulong)COPY_BUFFER_LOCATION,
> -     (ulong)(first_block * 512));
> -
> -     /* copy first block */
> -     memcpy((void*)COPY_BUFFER_LOCATION,
> -             (void*)(first_block * 512), 512);
> -     memcpy((void*)(COPY_BUFFER_LOCATION + 512 - first_copy_size),
> -             src, first_copy_size);
> -     lpc2292_copy_buffer_to_flash(info, first_block * 512);
> -     src += first_copy_size;
> -     addr += first_copy_size;
> -
> -     /* copy middle blocks */
> -     for (i = 0; i < nbr_mid_blocks; i++) {
> -             debug("copy middle block: %lX -> %lX 512 bytes, "
> -             "%lX -> %lX 512 bytes\n",
> -             (ulong)src,
> -             (ulong)COPY_BUFFER_LOCATION,
> -             (ulong)COPY_BUFFER_LOCATION,
> -             (ulong)addr);
> -
> -             memcpy((void*)COPY_BUFFER_LOCATION, src, 512);
> -             lpc2292_copy_buffer_to_flash(info, addr);
> -             src += 512;
> -             addr += 512;
> -     }
> -
> -
> -     if (last_copy_size > 0) {
> -             debug("copy last block: (1) %lX -> %lX 0x200 bytes, "
> -             "(2) %lX -> %lX 0x%X bytes, (3) %lX -> %lX x200 bytes\n",
> -             (ulong)(last_block * 512),
> -             (ulong)COPY_BUFFER_LOCATION,
> -             (ulong)src,
> -             (ulong)(COPY_BUFFER_LOCATION),
> -             last_copy_size,
> -             (ulong)COPY_BUFFER_LOCATION,
> -             (ulong)addr);
> -
> -             /* copy last block */
> -             memcpy((void*)COPY_BUFFER_LOCATION,
> -                     (void*)(last_block * 512), 512);
> -             memcpy((void*)COPY_BUFFER_LOCATION,
> -                     src, last_copy_size);
> -             lpc2292_copy_buffer_to_flash(info, addr);
> -     }
> -
> -     /* verify write */
> -     memmap_value = GET8(MEMMAP);
> -
> -     disable_interrupts();
> -
> -     PUT8(MEMMAP, 01);               /* we must make sure that initial 64
> -                                                        bytes are taken from 
> flash when we
> -                                                        do the compare */
> -
> -     for (i = 0; i < cnt; i++) {
> -             if (*dst_org != *src_org){
> -                     printf("Write failed. Byte %lX differs\n", i);
> -                     ret = ERR_PROG_ERROR;
> -                     break;
> -             }
> -             dst_org++;
> -             src_org++;
> -     }
> -
> -     PUT8(MEMMAP, memmap_value);
> -     enable_interrupts();
> -
> -     return ret;
> -}
> diff --git a/arch/arm/cpu/arm720t/lpc2292/iap_entry.S 
> b/arch/arm/cpu/arm720t/lpc2292/iap_entry.S
> deleted file mode 100644
> index c31d519..0000000
> --- a/arch/arm/cpu/arm720t/lpc2292/iap_entry.S
> +++ /dev/null
> @@ -1,7 +0,0 @@
> -IAP_ADDRESS: .word   0x7FFFFFF1
> -
> -.globl iap_entry
> -iap_entry:
> -     ldr     r2, IAP_ADDRESS
> -     bx      r2
> -     mov     pc, lr
> diff --git a/arch/arm/cpu/arm720t/lpc2292/mmc.c 
> b/arch/arm/cpu/arm720t/lpc2292/mmc.c
> deleted file mode 100644
> index beaffe9..0000000
> --- a/arch/arm/cpu/arm720t/lpc2292/mmc.c
> +++ /dev/null
> @@ -1,131 +0,0 @@
> -/*
> - * 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 <config.h>
> -#include <common.h>
> -#include <mmc.h>
> -#include <asm/errno.h>
> -#include <asm/arch/hardware.h>
> -#include <part.h>
> -#include <fat.h>
> -#include "mmc_hw.h"
> -#include <asm/arch/spi.h>
> -
> -#ifdef CONFIG_MMC
> -
> -#undef MMC_DEBUG
> -
> -static block_dev_desc_t mmc_dev;
> -
> -/* these are filled out by a call to mmc_hw_get_parameters */
> -static int hw_size;          /* in kbytes */
> -static int hw_nr_sects;
> -static int hw_sect_size;     /* in bytes */
> -
> -block_dev_desc_t * mmc_get_dev(int dev)
> -{
> -     return (block_dev_desc_t *)(&mmc_dev);
> -}
> -
> -unsigned long mmc_block_read(int dev,
> -                          unsigned long start,
> -                          lbaint_t blkcnt,
> -                          void *buffer)
> -{
> -     unsigned long rc = 0;
> -     unsigned char *p = (unsigned char *)buffer;
> -     unsigned long i;
> -     unsigned long addr = start;
> -
> -#ifdef MMC_DEBUG
> -     printf("mmc_block_read: start=%lu, blkcnt=%lu\n", start,
> -              (unsigned long)blkcnt);
> -#endif
> -
> -     for(i = 0; i < (unsigned long)blkcnt; i++) {
> -#ifdef MMC_DEBUG
> -             printf("mmc_read_sector: addr=%lu, buffer=%p\n", addr, p);
> -#endif
> -             (void)mmc_read_sector(addr, p);
> -             rc++;
> -             addr++;
> -             p += hw_sect_size;
> -     }
> -
> -     return rc;
> -}
> -
> -/*-----------------------------------------------------------------------------
> - * Read hardware paramterers (sector size, size, number of sectors)
> - */
> -static int mmc_hw_get_parameters(void)
> -{
> -     unsigned char csddata[16];
> -     unsigned int sizemult;
> -     unsigned int size;
> -
> -     mmc_read_csd(csddata);
> -     hw_sect_size = 1<<(csddata[5] & 0x0f);
> -     size = ((csddata[6]&0x03)<<10)+(csddata[7]<<2)+(csddata[8]&0xc0);
> -     sizemult = ((csddata[10] & 0x80)>>7)+((csddata[9] & 0x03)<<1);
> -     hw_nr_sects = (size+1)*(1<<(sizemult+2));
> -     hw_size = hw_nr_sects*hw_sect_size/1024;
> -
> -#ifdef MMC_DEBUG
> -     printf("mmc_hw_get_parameters: hw_sect_size=%d, hw_nr_sects=%d, "
> -              "hw_size=%d\n", hw_sect_size, hw_nr_sects, hw_size);
> -#endif
> -
> -     return 0;
> -}
> -
> -int mmc_legacy_init(int verbose)
> -{
> -     int ret = -ENODEV;
> -
> -     if (verbose)
> -             printf("mmc_legacy_init\n");
> -
> -     spi_init();
> -     /* this meeds to be done twice */
> -     mmc_hw_init();
> -     udelay(1000);
> -     mmc_hw_init();
> -
> -     mmc_hw_get_parameters();
> -
> -     mmc_dev.if_type = IF_TYPE_MMC;
> -     mmc_dev.part_type = PART_TYPE_DOS;
> -     mmc_dev.dev = 0;
> -     mmc_dev.lun = 0;
> -     mmc_dev.type = 0;
> -     mmc_dev.blksz = hw_sect_size;
> -     mmc_dev.lba = hw_nr_sects;
> -     sprintf((char*)mmc_dev.vendor, "Unknown vendor");
> -     sprintf((char*)mmc_dev.product, "Unknown product");
> -     sprintf((char*)mmc_dev.revision, "N/A");
> -     mmc_dev.removable = 0;  /* should be true??? */
> -     mmc_dev.block_read = mmc_block_read;
> -
> -     fat_register_device(&mmc_dev, 1);
> -
> -     ret = 0;
> -
> -     return ret;
> -}
> -
> -#endif /* CONFIG_MMC */
> diff --git a/arch/arm/cpu/arm720t/lpc2292/mmc_hw.c 
> b/arch/arm/cpu/arm720t/lpc2292/mmc_hw.c
> deleted file mode 100644
> index bd6a5b1..0000000
> --- a/arch/arm/cpu/arm720t/lpc2292/mmc_hw.c
> +++ /dev/null
> @@ -1,233 +0,0 @@
> -/*
> -    This code was original written by Ulrich Radig and modified by
> -    Embedded Artists AB (www.embeddedartists.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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
> -*/
> -
> -#include <config.h>
> -#include <common.h>
> -#include <asm/arch/hardware.h>
> -#include <asm/arch/spi.h>
> -
> -#define MMC_Enable() PUT32(IO1CLR, 1l << 22)
> -#define MMC_Disable() PUT32(IO1SET, 1l << 22)
> -#define mmc_spi_cfg() spi_set_clock(8); spi_set_cfg(0, 1, 0);
> -
> -static unsigned char Write_Command_MMC (unsigned char *CMD);
> -static void MMC_Read_Block(unsigned char *CMD, unsigned char *Buffer,
> -                 unsigned short int Bytes);
> -
> -/* initialize the hardware */
> -int mmc_hw_init(void)
> -{
> -     unsigned long a;
> -     unsigned short int Timeout = 0;
> -     unsigned char b;
> -     unsigned char CMD[] = {0x40, 0x00, 0x00, 0x00, 0x00, 0x95};
> -
> -     /* set-up GPIO and SPI */
> -     (*((volatile unsigned long *)PINSEL2)) &= ~(1l << 3); /* clear bit 3 */
> -     (*((volatile unsigned long *)IO1DIR)) |= (1l << 22); /* set bit 22 
> (output) */
> -
> -     MMC_Disable();
> -
> -     spi_lock();
> -     spi_set_clock(248);
> -     spi_set_cfg(0, 1, 0);
> -     MMC_Enable();
> -
> -     /* waste some time */
> -     for(a=0; a < 20000; a++)
> -             asm("nop");
> -
> -     /* Put the MMC/SD-card into SPI-mode */
> -     for (b = 0; b < 10; b++) /* Sends min 74+ clocks to the MMC/SD-card */
> -             spi_write(0xff);
> -
> -     /* Sends command CMD0 to MMC/SD-card */
> -     while (Write_Command_MMC(CMD) != 1) {
> -             if (Timeout++ > 200) {
> -                     MMC_Disable();
> -                     spi_unlock();
> -                     return(1); /* Abort with command 1 (return 1) */
> -             }
> -     }
> -     /* Sends Command CMD1 an MMC/SD-card */
> -     Timeout = 0;
> -     CMD[0] = 0x41;/* Command 1 */
> -     CMD[5] = 0xFF;
> -
> -     while (Write_Command_MMC(CMD) != 0) {
> -             if (Timeout++ > 200) {
> -                     MMC_Disable();
> -                     spi_unlock();
> -                     return (2); /* Abort with command 2 (return 2) */
> -             }
> -     }
> -
> -     MMC_Disable();
> -     spi_unlock();
> -
> -     return 0;
> -}
> -
> -/* 
> ############################################################################
> -   Sends a command to the MMC/SD-card
> -   ######################################################################### 
> */
> -static unsigned char Write_Command_MMC (unsigned char *CMD)
> -{
> -     unsigned char a, tmp = 0xff;
> -     unsigned short int Timeout = 0;
> -
> -     MMC_Disable();
> -     spi_write(0xFF);
> -     MMC_Enable();
> -
> -     for (a = 0; a < 0x06; a++)
> -             spi_write(*CMD++);
> -
> -     while (tmp == 0xff) {
> -             tmp = spi_read();
> -             if (Timeout++ > 5000)
> -               break;
> -     }
> -
> -     return (tmp);
> -}
> -
> -/* 
> ############################################################################
> -   Routine to read the CID register from the MMC/SD-card (16 bytes)
> -   ######################################################################### 
> */
> -void MMC_Read_Block(unsigned char *CMD, unsigned char *Buffer, unsigned short
> -     int Bytes)
> -{
> -     unsigned short int a;
> -
> -     spi_lock();
> -     mmc_spi_cfg();
> -     MMC_Enable();
> -
> -     if (Write_Command_MMC(CMD) != 0) {
> -             MMC_Disable();
> -             spi_unlock();
> -             return;
> -     }
> -
> -     while (spi_read() != 0xfe) {};
> -     for (a = 0; a < Bytes; a++)
> -             *Buffer++ = spi_read();
> -
> -     /* Read the CRC-byte */
> -     spi_read(); /* CRC - byte is discarded */
> -     spi_read(); /* CRC - byte is discarded */
> -     /* set MMC_Chip_Select to high (MMC/SD-card Inaktiv) */
> -     MMC_Disable();
> -     spi_unlock();
> -
> -     return;
> -}
> -
> -/* 
> ############################################################################
> -   Routine to read a block (512 bytes) from the MMC/SD-card
> -   ######################################################################### 
> */
> -unsigned char mmc_read_sector (unsigned long addr,unsigned char *Buffer)
> -{
> -     /* Command 16 to read aBlocks from the MMC/SD - caed */
> -     unsigned char CMD[] = {0x51,0x00,0x00,0x00,0x00,0xFF};
> -
> -     /* The address on the MMC/SD-card is in bytes,
> -     addr is transformed from blocks to bytes and the result is
> -     placed into the command */
> -
> -     addr = addr << 9; /* addr = addr * 512 */
> -
> -     CMD[1] = ((addr & 0xFF000000) >> 24);
> -     CMD[2] = ((addr & 0x00FF0000) >> 16);
> -     CMD[3] = ((addr & 0x0000FF00) >> 8 );
> -
> -     MMC_Read_Block(CMD, Buffer, 512);
> -
> -     return (0);
> -}
> -
> -/* 
> ############################################################################
> -   Routine to write a block (512 byte) to the MMC/SD-card
> -   ######################################################################### 
> */
> -unsigned char mmc_write_sector (unsigned long addr,unsigned char *Buffer)
> -{
> -     unsigned char tmp, a;
> -     unsigned short int b;
> -     /* Command 24 to write a block to the MMC/SD - card */
> -     unsigned char CMD[] = {0x58, 0x00, 0x00, 0x00, 0x00, 0xFF};
> -
> -     /* The address on the MMC/SD-card is in bytes,
> -     addr is transformed from blocks to bytes and the result is
> -     placed into the command */
> -
> -     addr = addr << 9; /* addr = addr * 512 */
> -
> -     CMD[1] = ((addr & 0xFF000000) >> 24);
> -     CMD[2] = ((addr & 0x00FF0000) >> 16);
> -     CMD[3] = ((addr & 0x0000FF00) >> 8 );
> -
> -     spi_lock();
> -     mmc_spi_cfg();
> -     MMC_Enable();
> -
> -     /* Send command CMD24 to the MMC/SD-card (Write 1 Block/512 Bytes) */
> -     tmp = Write_Command_MMC(CMD);
> -     if (tmp != 0) {
> -             MMC_Disable();
> -             spi_unlock();
> -             return(tmp);
> -     }
> -
> -     /* Do a short delay and send a clock-pulse to the MMC/SD-card */
> -     for (a = 0; a < 100; a++)
> -             spi_read();
> -
> -     /* Send a start byte to the MMC/SD-card */
> -     spi_write(0xFE);
> -
> -     /* Write the block (512 bytes) to the MMC/SD-card */
> -     for (b = 0; b < 512; b++)
> -             spi_write(*Buffer++);
> -
> -     /* write the CRC-Byte */
> -     spi_write(0xFF); /* write a dummy CRC */
> -     spi_write(0xFF); /* CRC code is not used */
> -
> -     /* Wait for MMC/SD-card busy */
> -     while (spi_read() != 0xff) {};
> -
> -     /* set MMC_Chip_Select to high (MMC/SD-card inactive) */
> -     MMC_Disable();
> -     spi_unlock();
> -     return (0);
> -}
> -
> -/* #########################################################################
> -   Routine to read the CSD register from the MMC/SD-card (16 bytes)
> -   ######################################################################### 
> */
> -unsigned char mmc_read_csd (unsigned char *Buffer)
> -{
> -     /* Command to read the CSD register */
> -     unsigned char CMD[] = {0x49, 0x00, 0x00, 0x00, 0x00, 0xFF};
> -
> -     MMC_Read_Block(CMD, Buffer, 16);
> -
> -     return (0);
> -}
> diff --git a/arch/arm/cpu/arm720t/lpc2292/mmc_hw.h 
> b/arch/arm/cpu/arm720t/lpc2292/mmc_hw.h
> deleted file mode 100644
> index 3687dbf..0000000
> --- a/arch/arm/cpu/arm720t/lpc2292/mmc_hw.h
> +++ /dev/null
> @@ -1,29 +0,0 @@
> -/*
> -    This module implements a linux character device driver for the 24c256 
> chip.
> -    Copyright (C) 2006  Embedded Artists AB (www.embeddedartists.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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
> -*/
> -
> -#ifndef _MMC_HW_
> -#define _MMC_HW_
> -
> -unsigned char mmc_read_csd(unsigned char *Buffer);
> -unsigned char mmc_read_sector (unsigned long addr,
> -                            unsigned char *Buffer);
> -unsigned char mmc_write_sector (unsigned long addr,unsigned char *Buffer);
> -int mmc_hw_init(void);
> -
> -#endif /* _MMC_HW_ */
> diff --git a/arch/arm/cpu/arm720t/lpc2292/spi.c 
> b/arch/arm/cpu/arm720t/lpc2292/spi.c
> deleted file mode 100644
> index d296bda..0000000
> --- a/arch/arm/cpu/arm720t/lpc2292/spi.c
> +++ /dev/null
> @@ -1,40 +0,0 @@
> -/*
> -    This module implements an interface to the SPI on the lpc22xx.
> -    Copyright (C) 2006  Embedded Artists AB (www.embeddedartists.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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
> -*/
> -
> -#include <config.h>
> -#include <common.h>
> -#include <asm/errno.h>
> -#include <asm/arch/hardware.h>
> -#include <asm/arch/spi.h>
> -
> -unsigned long spi_flags;
> -unsigned char spi_idle = 0x00;
> -
> -int spi_init(void)
> -{
> -     unsigned long pinsel0_value;
> -
> -     /* activate spi pins */
> -     pinsel0_value = GET32(PINSEL0);
> -     pinsel0_value &= ~(0xFFl << 8);
> -     pinsel0_value |= (0x55l << 8);
> -     PUT32(PINSEL0, pinsel0_value);
> -
> -     return 0;
> -}
> diff --git a/arch/arm/cpu/arm720t/start.S b/arch/arm/cpu/arm720t/start.S
> index 2f914e9..0daf848 100644
> --- a/arch/arm/cpu/arm720t/start.S
> +++ b/arch/arm/cpu/arm720t/start.S
> @@ -43,11 +43,7 @@ _start: b  reset
>       ldr     pc, _software_interrupt
>       ldr     pc, _prefetch_abort
>       ldr     pc, _data_abort
> -#ifdef CONFIG_LPC2292
> -     .word   0xB4405F76 /* 2's complement of the checksum of the vectors */
> -#else
>       ldr     pc, _not_used
> -#endif
>       ldr     pc, _irq
>       ldr     pc, _fiq
>  
> @@ -151,10 +147,6 @@ reset:
>       bl      cpu_init_crit
>  #endif
>  
> -#ifdef CONFIG_LPC2292
> -     bl      lowlevel_init
> -#endif
> -
>  /* Set stackpointer in internal RAM to call board_init_f */
>  call_board_init_f:
>       ldr     sp, =(CONFIG_SYS_INIT_SP_ADDR)
> @@ -291,16 +283,6 @@ _dynsym_start_ofs:
>   *************************************************************************
>   */
>  
> -#if defined(CONFIG_LPC2292)
> -PLLCFG_ADR:  .word   PLLCFG
> -PLLFEED_ADR: .word   PLLFEED
> -PLLCON_ADR:  .word   PLLCON
> -PLLSTAT_ADR: .word   PLLSTAT
> -VPBDIV_ADR:  .word   VPBDIV
> -MEMMAP_ADR:  .word   MEMMAP
> -
> -#endif
> -
>  cpu_init_crit:
>  #if defined(CONFIG_NETARM)
>       /*
> @@ -371,50 +353,6 @@ cpu_init_crit:
>  
>  #elif defined(CONFIG_INTEGRATOR) && defined(CONFIG_ARCH_INTEGRATOR)
>       /* No specific initialisation for IntegratorAP/CM720T as yet */
> -#elif defined(CONFIG_LPC2292)
> -     /* Set-up PLL */
> -     mov     r3, #0xAA
> -     mov     r4, #0x55
> -     /* First disconnect and disable the PLL */
> -     ldr     r0, PLLCON_ADR
> -     mov     r1, #0x00
> -     str     r1, [r0]
> -     ldr     r0, PLLFEED_ADR /* start feed sequence */
> -     str     r3, [r0]
> -     str     r4, [r0]        /* feed sequence done */
> -     /* Set new M and P values */
> -     ldr     r0, PLLCFG_ADR
> -     mov     r1, #0x23       /* M=4 and P=2 */
> -     str     r1, [r0]
> -     ldr     r0, PLLFEED_ADR /* start feed sequence */
> -     str     r3, [r0]
> -     str     r4, [r0]        /* feed sequence done */
> -     /* Then enable the PLL */
> -     ldr     r0, PLLCON_ADR
> -     mov     r1, #0x01       /* PLL enable bit */
> -     str     r1, [r0]
> -     ldr     r0, PLLFEED_ADR /* start feed sequence */
> -     str     r3, [r0]
> -     str     r4, [r0]        /* feed sequence done */
> -     /* Wait for the lock */
> -     ldr     r0, PLLSTAT_ADR
> -     mov     r1, #0x400      /* lock bit */
> -lock_loop:
> -     ldr     r2, [r0]
> -     and     r2, r1, r2
> -     cmp     r2, #0
> -     beq     lock_loop
> -     /* And finally connect the PLL */
> -     ldr     r0, PLLCON_ADR
> -     mov     r1, #0x03       /* PLL enable bit and connect bit */
> -     str     r1, [r0]
> -     ldr     r0, PLLFEED_ADR /* start feed sequence */
> -     str     r3, [r0]
> -     str     r4, [r0]        /* feed sequence done */
> -     /* Set-up VPBDIV register */
> -     ldr     r0, VPBDIV_ADR
> -     mov     r1, #0x01       /* VPB clock is same as process clock */
> -     str     r1, [r0]
>  #elif defined(CONFIG_TEGRA)
>       /* No cpu_init_crit for tegra as yet */
>  #else
> @@ -432,7 +370,7 @@ lock_loop:
>       str     r1, [r0]
>  #endif
>  
> -#if !defined(CONFIG_LPC2292) && !defined(CONFIG_TEGRA)
> +#if !defined(CONFIG_TEGRA)
>       mov     ip, lr
>       /*
>        * before relocating, we have to setup RAM timing
> @@ -636,11 +574,6 @@ reset_cpu:
>   * on external peripherals such as watchdog timers, etc. */
>  #elif defined(CONFIG_INTEGRATOR) && defined(CONFIG_ARCH_INTEGRATOR)
>       /* No specific reset actions for IntegratorAP/CM720T as yet */
> -#elif defined(CONFIG_LPC2292)
> -     .align  5
> -.globl reset_cpu
> -reset_cpu:
> -     mov     pc, r0
>  #elif defined(CONFIG_TEGRA)
>       /* No specific reset actions for tegra as yet */
>  #else
> diff --git a/arch/arm/include/asm/arch-lpc2292/hardware.h 
> b/arch/arm/include/asm/arch-lpc2292/hardware.h
> deleted file mode 100644
> index 5e227e3..0000000
> --- a/arch/arm/include/asm/arch-lpc2292/hardware.h
> +++ /dev/null
> @@ -1,33 +0,0 @@
> -#ifndef __ASM_ARCH_HARDWARE_H
> -#define __ASM_ARCH_HARDWARE_H
> -
> -/*
> - * Copyright (c) 2004        Cucy Systems (http://www.cucy.com)
> - * Curt Brune <c...@cucy.com>
> - *
> - * 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
> - */
> -
> -#if defined(CONFIG_LPC2292)
> -#include <asm/arch-lpc2292/lpc2292_registers.h>
> -#else
> -#error No hardware file defined for this configuration
> -#endif
> -
> -#endif /* __ASM_ARCH_HARDWARE_H */
> diff --git a/arch/arm/include/asm/arch-lpc2292/lpc2292_registers.h 
> b/arch/arm/include/asm/arch-lpc2292/lpc2292_registers.h
> deleted file mode 100644
> index 5715f3e..0000000
> --- a/arch/arm/include/asm/arch-lpc2292/lpc2292_registers.h
> +++ /dev/null
> @@ -1,225 +0,0 @@
> -#ifndef __LPC2292_REGISTERS_H
> -#define __LPC2292_REGISTERS_H
> -
> -#include <config.h>
> -
> -/* Macros for reading/writing registers */
> -#define PUT8(reg, value) (*(volatile unsigned char*)(reg) = (value))
> -#define PUT16(reg, value) (*(volatile unsigned short*)(reg) = (value))
> -#define PUT32(reg, value) (*(volatile unsigned int*)(reg) = (value))
> -#define GET8(reg) (*(volatile unsigned char*)(reg))
> -#define GET16(reg) (*(volatile unsigned short*)(reg))
> -#define GET32(reg) (*(volatile unsigned int*)(reg))
> -
> -/* External Memory Controller */
> -
> -#define BCFG0 0xFFE00000     /* 32-bits */
> -#define BCFG1 0xFFE00004     /* 32-bits */
> -#define BCFG2 0xFFE00008     /* 32-bits */
> -#define BCFG3 0xFFE0000c     /* 32-bits */
> -
> -/* System Control Block */
> -
> -#define EXTINT   0xE01FC140
> -#define EXTWAKE  0xE01FC144
> -#define EXTMODE  0xE01FC148
> -#define EXTPOLAR 0xE01FC14C
> -#define MEMMAP   0xE01FC040
> -#define PLLCON   0xE01FC080
> -#define PLLCFG   0xE01FC084
> -#define PLLSTAT  0xE01FC088
> -#define PLLFEED  0xE01FC08C
> -#define PCON     0xE01FC0C0
> -#define PCONP    0xE01FC0C4
> -#define VPBDIV   0xE01FC100
> -
> -/* Memory Acceleration Module */
> -
> -#define MAMCR  0xE01FC000
> -#define MAMTIM 0xE01FC004
> -
> -/* Vectored Interrupt Controller */
> -
> -#define VICIRQStatus    0xFFFFF000
> -#define VICFIQStatus    0xFFFFF004
> -#define VICRawIntr      0xFFFFF008
> -#define VICIntSelect    0xFFFFF00C
> -#define VICIntEnable    0xFFFFF010
> -#define VICIntEnClr     0xFFFFF014
> -#define VICSoftInt      0xFFFFF018
> -#define VICSoftIntClear 0xFFFFF01C
> -#define VICProtection   0xFFFFF020
> -#define VICVectAddr     0xFFFFF030
> -#define VICDefVectAddr  0xFFFFF034
> -#define VICVectAddr0    0xFFFFF100
> -#define VICVectAddr1    0xFFFFF104
> -#define VICVectAddr2    0xFFFFF108
> -#define VICVectAddr3    0xFFFFF10C
> -#define VICVectAddr4    0xFFFFF110
> -#define VICVectAddr5    0xFFFFF114
> -#define VICVectAddr6    0xFFFFF118
> -#define VICVectAddr7    0xFFFFF11C
> -#define VICVectAddr8    0xFFFFF120
> -#define VICVectAddr9    0xFFFFF124
> -#define VICVectAddr10   0xFFFFF128
> -#define VICVectAddr11   0xFFFFF12C
> -#define VICVectAddr12   0xFFFFF130
> -#define VICVectAddr13   0xFFFFF134
> -#define VICVectAddr14   0xFFFFF138
> -#define VICVectAddr15   0xFFFFF13C
> -#define VICVectCntl0    0xFFFFF200
> -#define VICVectCntl1 0xFFFFF204
> -#define VICVectCntl2 0xFFFFF208
> -#define VICVectCntl3 0xFFFFF20C
> -#define VICVectCntl4 0xFFFFF210
> -#define VICVectCntl5 0xFFFFF214
> -#define VICVectCntl6 0xFFFFF218
> -#define VICVectCntl7 0xFFFFF21C
> -#define VICVectCntl8 0xFFFFF220
> -#define VICVectCntl9 0xFFFFF224
> -#define VICVectCntl10        0xFFFFF228
> -#define VICVectCntl11        0xFFFFF22C
> -#define VICVectCntl12        0xFFFFF230
> -#define VICVectCntl13        0xFFFFF234
> -#define VICVectCntl14        0xFFFFF238
> -#define VICVectCntl15        0xFFFFF23C
> -
> -/* Pin connect block */
> -
> -#define PINSEL0 0xE002C000   /* 32 bits */
> -#define PINSEL1 0xE002C004   /* 32 bits */
> -#define PINSEL2 0xE002C014   /* 32 bits */
> -
> -/* GPIO */
> -
> -#define IO0PIN 0xE0028000
> -#define IO0SET 0xE0028004
> -#define IO0DIR 0xE0028008
> -#define IO0CLR 0xE002800C
> -#define IO1PIN 0xE0028010
> -#define IO1SET 0xE0028014
> -#define IO1DIR 0xE0028018
> -#define IO1CLR 0xE002801C
> -#define IO2PIN 0xE0028020
> -#define IO2SET 0xE0028024
> -#define IO2DIR 0xE0028028
> -#define IO2CLR 0xE002802C
> -#define IO3PIN 0xE0028030
> -#define IO3SET 0xE0028034
> -#define IO3DIR 0xE0028038
> -#define IO3CLR 0xE002803C
> -
> -/* Uarts */
> -
> -#define U0RBR 0xE000C000
> -#define U0THR 0xE000C000
> -#define U0IER 0xE000C004
> -#define U0IIR 0xE000C008
> -#define U0FCR 0xE000C008
> -#define U0LCR 0xE000C00C
> -#define U0LSR 0xE000C014
> -#define U0SCR 0xE000C01C
> -#define U0DLL 0xE000C000
> -#define U0DLM 0xE000C004
> -
> -#define U1RBR 0xE0010000
> -#define U1THR 0xE0010000
> -#define U1IER 0xE0010004
> -#define U1IIR 0xE0010008
> -#define U1FCR 0xE0010008
> -#define U1LCR 0xE001000C
> -#define U1MCR 0xE0010010
> -#define U1LSR 0xE0010014
> -#define U1MSR 0xE0010018
> -#define U1SCR 0xE001001C
> -#define U1DLL 0xE0010000
> -#define U1DLM 0xE0010004
> -
> -/* I2C */
> -
> -#define I2CONSET 0xE001C000
> -#define I2STAT   0xE001C004
> -#define I2DAT    0xE001C008
> -#define I2ADR    0xE001C00C
> -#define I2SCLH   0xE001C010
> -#define I2SCLL   0xE001C014
> -#define I2CONCLR 0xE001C018
> -
> -/* SPI */
> -
> -#define S0SPCR  0xE0020000
> -#define S0SPSR  0xE0020004
> -#define S0SPDR  0xE0020008
> -#define S0SPCCR 0xE002000C
> -#define S0SPINT 0xE002001C
> -
> -#define S1SPCR  0xE0030000
> -#define S1SPSR  0xE0030004
> -#define S1SPDR  0xE0030008
> -#define S1SPCCR 0xE003000C
> -#define S1SPINT 0xE003001C
> -
> -/* CAN controller */
> -
> -/* skip for now */
> -
> -/* Timers */
> -
> -#define T0IR  0xE0004000
> -#define T0TCR 0xE0004004
> -#define T0TC  0xE0004008
> -#define T0PR  0xE000400C
> -#define T0PC  0xE0004010
> -#define T0MCR 0xE0004014
> -#define T0MR0 0xE0004018
> -#define T0MR1 0xE000401C
> -#define T0MR2 0xE0004020
> -#define T0MR3 0xE0004024
> -#define T0CCR 0xE0004028
> -#define T0CR0 0xE000402C
> -#define T0CR1 0xE0004030
> -#define T0CR2 0xE0004034
> -#define T0CR3 0xE0004038
> -#define T0EMR 0xE000403C
> -
> -#define T1IR  0xE0008000
> -#define T1TCR 0xE0008004
> -#define T1TC  0xE0008008
> -#define T1PR  0xE000800C
> -#define T1PC  0xE0008010
> -#define T1MCR 0xE0008014
> -#define T1MR0 0xE0008018
> -#define T1MR1 0xE000801C
> -#define T1MR2 0xE0008020
> -#define T1MR3 0xE0008024
> -#define T1CCR 0xE0008028
> -#define T1CR0 0xE000802C
> -#define T1CR1 0xE0008030
> -#define T1CR2 0xE0008034
> -#define T1CR3 0xE0008038
> -#define T1EMR 0xE000803C
> -
> -/* PWM */
> -
> -/* skip for now */
> -
> -/* A/D converter */
> -
> -/* skip for now */
> -
> -/* Real Time Clock */
> -
> -/* skip for now */
> -
> -/* Watchdog */
> -
> -#define WDMOD  0xE0000000
> -#define WDTC   0xE0000004
> -#define WDFEED 0xE0000008
> -#define WDTV   0xE000000C
> -
> -/* EmbeddedICE LOGIC */
> -
> -/* skip for now */
> -
> -#endif
> diff --git a/arch/arm/include/asm/arch-lpc2292/spi.h 
> b/arch/arm/include/asm/arch-lpc2292/spi.h
> deleted file mode 100644
> index 6ae66e8..0000000
> --- a/arch/arm/include/asm/arch-lpc2292/spi.h
> +++ /dev/null
> @@ -1,82 +0,0 @@
> -/*
> -    This file defines the interface to the lpc22xx SPI module.
> -    Copyright (C) 2006  Embedded Artists AB (www.embeddedartists.com)
> -
> -    This file may be included in software not adhering to the GPL.
> -
> -    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
> -*/
> -
> -#ifndef SPI_H
> -#define SPI_H
> -
> -#include <config.h>
> -#include <common.h>
> -#include <asm/errno.h>
> -#include <asm/arch/hardware.h>
> -
> -#define SPIF 0x80
> -
> -#define spi_lock() disable_interrupts();
> -#define spi_unlock() enable_interrupts();
> -
> -extern unsigned long spi_flags;
> -extern unsigned char spi_idle;
> -
> -int spi_init(void);
> -
> -static inline unsigned char spi_read(void)
> -{
> -     unsigned char b;
> -
> -     PUT8(S0SPDR, spi_idle);
> -     while (!(GET8(S0SPSR) & SPIF));
> -     b = GET8(S0SPDR);
> -
> -     return b;
> -}
> -
> -static inline void spi_write(unsigned char b)
> -{
> -     PUT8(S0SPDR, b);
> -     while (!(GET8(S0SPSR) & SPIF));
> -     GET8(S0SPDR);           /* this will clear the SPIF bit */
> -}
> -
> -static inline void spi_set_clock(unsigned char clk_value)
> -{
> -     PUT8(S0SPCCR, clk_value);
> -}
> -
> -static inline void spi_set_cfg(unsigned char phase,
> -                            unsigned char polarity,
> -                            unsigned char lsbf)
> -{
> -     unsigned char v = 0x20; /* master bit set */
> -
> -     if (phase)
> -             v |= 0x08;                      /* set phase bit */
> -     if (polarity) {
> -             v |= 0x10;                      /* set polarity bit */
> -             spi_idle = 0xFF;
> -     } else {
> -             spi_idle = 0x00;
> -     }
> -     if (lsbf)
> -             v |= 0x40;                      /* set lsbf bit */
> -
> -     PUT8(S0SPCR, v);
> -}
> -#endif /* SPI_H */
> diff --git a/drivers/i2c/soft_i2c.c b/drivers/i2c/soft_i2c.c
> index 36c6114..1595c07 100644
> --- a/drivers/i2c/soft_i2c.c
> +++ b/drivers/i2c/soft_i2c.c
> @@ -41,9 +41,6 @@
>  #ifdef       CONFIG_IXP425                   /* only valid for IXP425 */
>  #include <asm/arch/ixp425.h>
>  #endif
> -#ifdef CONFIG_LPC2292
> -#include <asm/arch/hardware.h>
> -#endif
>  #if defined(CONFIG_MPC852T) || defined(CONFIG_MPC866)
>  #include <asm/io.h>
>  #endif
> diff --git a/drivers/serial/Makefile b/drivers/serial/Makefile
> index 0eaf227..8e7db26 100644
> --- a/drivers/serial/Makefile
> +++ b/drivers/serial/Makefile
> @@ -44,7 +44,6 @@ COBJS-$(CONFIG_CLPS7111_SERIAL) += serial_clps7111.o
>  COBJS-$(CONFIG_IMX_SERIAL) += serial_imx.o
>  COBJS-$(CONFIG_IXP_SERIAL) += serial_ixp.o
>  COBJS-$(CONFIG_KS8695_SERIAL) += serial_ks8695.o
> -COBJS-$(CONFIG_LPC2292_SERIAL) += serial_lpc2292.o
>  COBJS-$(CONFIG_LH7A40X_SERIAL) += serial_lh7a40x.o
>  COBJS-$(CONFIG_MAX3100_SERIAL) += serial_max3100.o
>  COBJS-$(CONFIG_MXC_UART) += serial_mxc.o
> diff --git a/drivers/serial/serial.c b/drivers/serial/serial.c
> index 9550cbd..ee7cb84 100644
> --- a/drivers/serial/serial.c
> +++ b/drivers/serial/serial.c
> @@ -84,7 +84,6 @@ serial_initfunc(imx_serial_initialize);
>  serial_initfunc(ixp_serial_initialize);
>  serial_initfunc(ks8695_serial_initialize);
>  serial_initfunc(lh7a40x_serial_initialize);
> -serial_initfunc(lpc2292_serial_initialize);
>  serial_initfunc(max3100_serial_initialize);
>  serial_initfunc(mxc_serial_initialize);
>  serial_initfunc(netarm_serial_initialize);
> @@ -162,7 +161,6 @@ void serial_initialize(void)
>       ixp_serial_initialize();
>       ks8695_serial_initialize();
>       lh7a40x_serial_initialize();
> -     lpc2292_serial_initialize();
>       max3100_serial_initialize();
>       mxc_serial_initialize();
>       netarm_serial_initialize();
> diff --git a/drivers/serial/serial_lpc2292.c b/drivers/serial/serial_lpc2292.c
> deleted file mode 100644
> index fcab202..0000000
> --- a/drivers/serial/serial_lpc2292.c
> +++ /dev/null
> @@ -1,124 +0,0 @@
> -/*
> - * (C) Copyright 2002-2004
> - * Wolfgang Denk, DENX Software Engineering, <w...@denx.de>
> - *
> - * (C) Copyright 2002
> - * Sysgo Real-Time Solutions, GmbH <www.elinos.com>
> - * Marius Groeger <mgroe...@sysgo.de>
> - *
> - * (C) Copyright 2002
> - * Sysgo Real-Time Solutions, GmbH <www.elinos.com>
> - * Alex Zuepke <a...@sysgo.de>
> - *
> - * Copyright (C) 1999 2000 2001 Erik Mouw (j.a.k.m...@its.tudelft.nl)
> - *
> - * 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 <common.h>
> -#include <asm/arch/hardware.h>
> -
> -DECLARE_GLOBAL_DATA_PTR;
> -
> -static void lpc2292_serial_setbrg(void)
> -{
> -     unsigned short divisor = 0;
> -
> -     switch (gd->baudrate) {
> -     case   1200:    divisor = 3072; break;
> -     case   9600:    divisor =  384; break;
> -     case  19200:    divisor =  192; break;
> -     case  38400:    divisor =   96; break;
> -     case  57600:    divisor =   64; break;
> -     case 115200:    divisor =   32; break;
> -     default:        hang ();        break;
> -     }
> -
> -     /* init serial UART0 */
> -     PUT8(U0LCR, 0);
> -     PUT8(U0IER, 0);
> -     PUT8(U0LCR, 0x80);      /* DLAB=1 */
> -     PUT8(U0DLL, (unsigned char)(divisor & 0x00FF));
> -     PUT8(U0DLM, (unsigned char)(divisor >> 8));
> -     PUT8(U0LCR, 0x03);      /* 8N1, DLAB=0  */
> -     PUT8(U0FCR, 1);         /* Enable RX and TX FIFOs */
> -}
> -
> -static int lpc2292_serial_init(void)
> -{
> -     unsigned long pinsel0;
> -
> -     serial_setbrg ();
> -
> -     pinsel0 = GET32(PINSEL0);
> -     pinsel0 &= ~(0x00000003);
> -     pinsel0 |= 5;
> -     PUT32(PINSEL0, pinsel0);
> -
> -     return (0);
> -}
> -
> -static void lpc2292_serial_putc(const char c)
> -{
> -     if (c == '\n')
> -     {
> -             while((GET8(U0LSR) & (1<<5)) == 0); /* Wait for empty U0THR */
> -             PUT8(U0THR, '\r');
> -     }
> -
> -     while((GET8(U0LSR) & (1<<5)) == 0); /* Wait for empty U0THR */
> -     PUT8(U0THR, c);
> -}
> -
> -static int lpc2292_serial_getc(void)
> -{
> -     while((GET8(U0LSR) & 1) == 0);
> -     return GET8(U0RBR);
> -}
> -
> -static void lpc2292_serial_puts(const char *s)
> -{
> -     while (*s) {
> -             serial_putc (*s++);
> -     }
> -}
> -
> -/* Test if there is a byte to read */
> -static int lpc2292_serial_tstc(void)
> -{
> -     return (GET8(U0LSR) & 1);
> -}
> -
> -static struct serial_device lpc2292_serial_drv = {
> -     .name   = "lpc2292_serial",
> -     .start  = lpc2292_serial_init,
> -     .stop   = NULL,
> -     .setbrg = lpc2292_serial_setbrg,
> -     .putc   = lpc2292_serial_putc,
> -     .puts   = lpc2292_serial_puts,
> -     .getc   = lpc2292_serial_getc,
> -     .tstc   = lpc2292_serial_tstc,
> -};
> -
> -void lpc2292_serial_initialize(void)
> -{
> -     serial_register(&lpc2292_serial_drv);
> -}
> -
> -__weak struct serial_device *default_serial_console(void)
> -{
> -     return &lpc2292_serial_drv;
> -}
> diff --git a/include/flash.h b/include/flash.h
> index 6d70bdd..7db599e 100644
> --- a/include/flash.h
> +++ b/include/flash.h
> @@ -348,7 +348,6 @@ extern flash_info_t *flash_get_info(ulong base);
>  
>  #define TOSH_ID_FVT160       0xC2            /* TC58FVT160 ID (16 M, top )   
>         */
>  #define TOSH_ID_FVB160       0x43            /* TC58FVT160 ID (16 M, bottom 
> )        */
> -#define PHILIPS_LPC2292 0x0401FF13  /* LPC2292 internal FLASH                
>         */
>  #define NUMONYX_256MBIT      0x8922          /* Numonyx P33/30 256MBit 65nm  
> */
>  
>  /*-----------------------------------------------------------------------

Applied the whole series to u-boot-arm/master (with trivial rebase and
update to doc/driver-model/UDM-serial.txt), thanks!

Amicalement,
-- 
Albert.
_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to