[U-Boot] [PATCH] Remove lh7a40x cpu and serial driver
Albert ARIBAUD
albert.u.boot at aribaud.net
Sat Oct 13 11:11:50 CEST 2012
On Mon, 8 Oct 2012 16:11:38 +0200, Albert ARIBAUD
<albert.u.boot at aribaud.net> wrote:
> Since commit 957731ed (ARM: remove broken "lpd7a40x" boards),
> lh7a40x cpu and serial driver have become unused. Remove them.
>
> Signed-off-by: Albert ARIBAUD <albert.u.boot at aribaud.net>
> ---
> A full MAKEALL -a arm shows no difference (271 boards built,
> two with yaffs warnings) between before and after removal.
>
> arch/arm/cpu/lh7a40x/Makefile | 47 ----
> arch/arm/cpu/lh7a40x/config.mk | 33 ---
> arch/arm/cpu/lh7a40x/cpu.c | 65 -----
> arch/arm/cpu/lh7a40x/speed.c | 83 ------
> arch/arm/cpu/lh7a40x/start.S | 506 -------------------------------------
> arch/arm/cpu/lh7a40x/timer.c | 182 -------------
> doc/driver-model/UDM-serial.txt | 32 +--
> drivers/serial/Makefile | 1 -
> drivers/serial/serial_lh7a40x.c | 184 --------------
> drivers/usb/gadget/gadget_chips.h | 34 +--
> include/lh7a400.h | 75 ------
> include/lh7a404.h | 83 ------
> include/lh7a40x.h | 279 --------------------
> include/lpd7a400_cpld.h | 195 --------------
> 14 files changed, 27 insertions(+), 1772 deletions(-)
> delete mode 100644 arch/arm/cpu/lh7a40x/Makefile
> delete mode 100644 arch/arm/cpu/lh7a40x/config.mk
> delete mode 100644 arch/arm/cpu/lh7a40x/cpu.c
> delete mode 100644 arch/arm/cpu/lh7a40x/speed.c
> delete mode 100644 arch/arm/cpu/lh7a40x/start.S
> delete mode 100644 arch/arm/cpu/lh7a40x/timer.c
> delete mode 100644 drivers/serial/serial_lh7a40x.c
> delete mode 100644 include/lh7a400.h
> delete mode 100644 include/lh7a404.h
> delete mode 100644 include/lh7a40x.h
> delete mode 100644 include/lpd7a400_cpld.h
>
> diff --git a/arch/arm/cpu/lh7a40x/Makefile b/arch/arm/cpu/lh7a40x/Makefile
> deleted file mode 100644
> index 01cf7f5..0000000
> --- a/arch/arm/cpu/lh7a40x/Makefile
> +++ /dev/null
> @@ -1,47 +0,0 @@
> -#
> -# (C) Copyright 2000-2006
> -# Wolfgang Denk, DENX Software Engineering, wd at 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$(CPU).o
> -
> -START = start.o
> -COBJS = cpu.o speed.o timer.o
> -
> -SRCS := $(START:.o=.S) $(SOBJS:.o=.S) $(COBJS:.o=.c)
> -OBJS := $(addprefix $(obj),$(SOBJS) $(COBJS))
> -START := $(addprefix $(obj),$(START))
> -
> -all: $(obj).depend $(START) $(LIB)
> -
> -$(LIB): $(OBJS)
> - $(call cmd_link_o_target, $(OBJS))
> -
> -#########################################################################
> -
> -# defines $(obj).depend target
> -include $(SRCTREE)/rules.mk
> -
> -sinclude $(obj).depend
> -
> -#########################################################################
> diff --git a/arch/arm/cpu/lh7a40x/config.mk b/arch/arm/cpu/lh7a40x/config.mk
> deleted file mode 100644
> index 1c4aa97..0000000
> --- a/arch/arm/cpu/lh7a40x/config.mk
> +++ /dev/null
> @@ -1,33 +0,0 @@
> -#
> -# (C) Copyright 2002
> -# Gary Jennejohn, DENX Software Engineering, <garyj at 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
> -#
> -
> -PLATFORM_RELFLAGS += -fno-common -ffixed-r8 -msoft-float
> -
> -PLATFORM_CPPFLAGS += -march=armv4
> -# =========================================================================
> -#
> -# Supply options according to compiler version
> -#
> -# ========================================================================
> -PF_RELFLAGS_SLB_AT := $(call cc-option,-mshort-load-bytes,$(call cc-option,-malignment-traps,))
> -PLATFORM_RELFLAGS += $(PF_RELFLAGS_SLB_AT)
> diff --git a/arch/arm/cpu/lh7a40x/cpu.c b/arch/arm/cpu/lh7a40x/cpu.c
> deleted file mode 100644
> index b193189..0000000
> --- a/arch/arm/cpu/lh7a40x/cpu.c
> +++ /dev/null
> @@ -1,65 +0,0 @@
> -/*
> - * (C) Copyright 2002
> - * Sysgo Real-Time Solutions, GmbH <www.elinos.com>
> - * Marius Groeger <mgroeger at sysgo.de>
> - *
> - * (C) Copyright 2002
> - * Gary Jennejohn, DENX Software Engineering, <garyj at 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
> - */
> -
> -/*
> - * CPU specific code
> - */
> -
> -#include <common.h>
> -#include <command.h>
> -#include <asm/system.h>
> -
> -static void cache_flush(void);
> -
> -int cleanup_before_linux (void)
> -{
> - /*
> - * this function is called just before we call linux
> - * it prepares the processor for linux
> - *
> - * we turn off caches etc ...
> - */
> -
> - disable_interrupts ();
> -
> - /* turn off I/D-cache */
> - icache_disable();
> - dcache_disable();
> -
> - /* flush I/D-cache */
> - cache_flush();
> -
> - return 0;
> -}
> -
> -/* flush I/D-cache */
> -static void cache_flush (void)
> -{
> - unsigned long i = 0;
> -
> - asm ("mcr p15, 0, %0, c7, c7, 0": :"r" (i));
> -}
> diff --git a/arch/arm/cpu/lh7a40x/speed.c b/arch/arm/cpu/lh7a40x/speed.c
> deleted file mode 100644
> index 333ebb5..0000000
> --- a/arch/arm/cpu/lh7a40x/speed.c
> +++ /dev/null
> @@ -1,83 +0,0 @@
> -/*
> - * (C) Copyright 2001-2004
> - * Wolfgang Denk, DENX Software Engineering, wd at denx.de.
> - *
> - * (C) Copyright 2002
> - * David Mueller, ELSOFT AG, d.mueller at elsoft.ch
> - *
> - * 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 <common.h>
> -#include <lh7a40x.h>
> -
> -
> -/* ------------------------------------------------------------------------- */
> -/* NOTE: This describes the proper use of this file.
> - *
> - * CONFIG_SYS_CLK_FREQ should be defined as the input frequency of the PLL.
> - *
> - * get_FCLK(), get_HCLK(), get_PCLK() return the clock of
> - * the specified bus in HZ.
> - */
> -/* ------------------------------------------------------------------------- */
> -
> -ulong get_PLLCLK (void)
> -{
> - return CONFIG_SYS_CLK_FREQ;
> -}
> -
> -/* return FCLK frequency */
> -ulong get_FCLK (void)
> -{
> - lh7a40x_csc_t* csc = LH7A40X_CSC_PTR;
> - ulong maindiv1, maindiv2, prediv, ps;
> -
> - /*
> - * from userguide 6.1.1.2
> - *
> - * FCLK = ((MAINDIV1 +2) * (MAINDIV2 +2) * 14.7456MHz) /
> - * ((PREDIV+2) * (2^PS))
> - */
> - maindiv2 = (csc->clkset & CLKSET_MAINDIV2) >> 11;
> - maindiv1 = (csc->clkset & CLKSET_MAINDIV1) >> 7;
> - prediv = (csc->clkset & CLKSET_PREDIV) >> 2;
> - ps = (csc->clkset & CLKSET_PS) >> 16;
> -
> - return (((maindiv2 + 2) * (maindiv1 + 2) * CONFIG_SYS_CLK_FREQ) /
> - ((prediv + 2) * (1 << ps)));
> -}
> -
> -
> -/* return HCLK frequency */
> -ulong get_HCLK (void)
> -{
> - lh7a40x_csc_t* csc = LH7A40X_CSC_PTR;
> -
> - return (get_FCLK () / ((csc->clkset & CLKSET_HCLKDIV) + 1));
> -}
> -
> -/* return PCLK frequency */
> -ulong get_PCLK (void)
> -{
> - lh7a40x_csc_t* csc = LH7A40X_CSC_PTR;
> -
> - return (get_HCLK () /
> - (1 << (((csc->clkset & CLKSET_PCLKDIV) >> 16) + 1)));
> -}
> diff --git a/arch/arm/cpu/lh7a40x/start.S b/arch/arm/cpu/lh7a40x/start.S
> deleted file mode 100644
> index 33b9269..0000000
> --- a/arch/arm/cpu/lh7a40x/start.S
> +++ /dev/null
> @@ -1,506 +0,0 @@
> -/*
> - * armboot - Startup Code for ARM920 CPU-core
> - *
> - * Copyright (c) 2001 Marius Gröger <mag at sysgo.de>
> - * Copyright (c) 2002 Alex Züpke <azu at sysgo.de>
> - * Copyright (c) 2002 Gary Jennejohn <garyj at 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 <asm-offsets.h>
> -#include <config.h>
> -#include <version.h>
> -
> -/*
> - *************************************************************************
> - *
> - * Jump vector table as in table 3.1 in [1]
> - *
> - *************************************************************************
> - */
> -
> -
> -.globl _start
> -_start: b reset
> - ldr pc, _undefined_instruction
> - ldr pc, _software_interrupt
> - ldr pc, _prefetch_abort
> - ldr pc, _data_abort
> - ldr pc, _not_used
> - ldr pc, _irq
> - ldr pc, _fiq
> -
> -_undefined_instruction: .word undefined_instruction
> -_software_interrupt: .word software_interrupt
> -_prefetch_abort: .word prefetch_abort
> -_data_abort: .word data_abort
> -_not_used: .word not_used
> -_irq: .word irq
> -_fiq: .word fiq
> -
> - .balignl 16,0xdeadbeef
> -
> -
> -/*
> - *************************************************************************
> - *
> - * Startup Code (reset vector)
> - *
> - * do important init only if we don't start from memory!
> - * relocate armboot to ram
> - * setup stack
> - * jump to second stage
> - *
> - *************************************************************************
> - */
> -
> -.globl _TEXT_BASE
> -_TEXT_BASE:
> - .word CONFIG_SYS_TEXT_BASE
> -
> -/*
> - * These are defined in the board-specific linker script.
> - * Subtracting _start from them lets the linker put their
> - * relative position in the executable instead of leaving
> - * them null.
> - */
> -.globl _bss_start_ofs
> -_bss_start_ofs:
> - .word __bss_start - _start
> -
> -.globl _bss_end_ofs
> -_bss_end_ofs:
> - .word __bss_end__ - _start
> -
> -.globl _end_ofs
> -_end_ofs:
> - .word _end - _start
> -
> -#ifdef CONFIG_USE_IRQ
> -/* IRQ stack memory (calculated at run-time) */
> -.globl IRQ_STACK_START
> -IRQ_STACK_START:
> - .word 0x0badc0de
> -
> -/* IRQ stack memory (calculated at run-time) */
> -.globl FIQ_STACK_START
> -FIQ_STACK_START:
> - .word 0x0badc0de
> -#endif
> -
> -/* IRQ stack memory (calculated at run-time) + 8 bytes */
> -.globl IRQ_STACK_START_IN
> -IRQ_STACK_START_IN:
> - .word 0x0badc0de
> -
> -/*
> - * the actual reset code
> - */
> -
> -reset:
> - /*
> - * set the cpu to SVC32 mode
> - */
> - mrs r0,cpsr
> - bic r0,r0,#0x1f
> - orr r0,r0,#0xd3
> - msr cpsr,r0
> -
> -#define pWDTCTL 0x80001400 /* Watchdog Timer control register */
> -#define pINTENC 0x8000050C /* Interrupt-Controller enable clear register */
> -#define pCLKSET 0x80000420 /* clock divisor register */
> -
> - /* disable watchdog, set watchdog control register to
> - * all zeros (default reset)
> - */
> - ldr r0, =pWDTCTL
> - mov r1, #0x0
> - str r1, [r0]
> -
> - /*
> - * mask all IRQs by setting all bits in the INTENC register (default)
> - */
> - mov r1, #0xffffffff
> - ldr r0, =pINTENC
> - str r1, [r0]
> -
> - /* FCLK:HCLK:PCLK = 1:2:2 */
> - /* default FCLK is 200 MHz, using 14.7456 MHz fin */
> - ldr r0, =pCLKSET
> - ldr r1, =0x0004ee39
> -@ ldr r1, =0x0005ee39 @ 1: 2: 4
> - str r1, [r0]
> -
> - /*
> - * we do sys-critical inits only at reboot,
> - * not when booting from ram!
> - */
> -#ifndef CONFIG_SKIP_LOWLEVEL_INIT
> - bl cpu_init_crit
> -#endif
> -
> -/* Set stackpointer in internal RAM to call board_init_f */
> -call_board_init_f:
> - ldr sp, =(CONFIG_SYS_INIT_SP_ADDR)
> - bic sp, sp, #7 /* 8-byte alignment for ABI compliance */
> - ldr r0,=0x00000000
> - bl board_init_f
> -
> -/*------------------------------------------------------------------------------*/
> -
> -/*
> - * void relocate_code (addr_sp, gd, addr_moni)
> - *
> - * This "function" does not return, instead it continues in RAM
> - * after relocating the monitor code.
> - *
> - */
> - .globl relocate_code
> -relocate_code:
> - mov r4, r0 /* save addr_sp */
> - mov r5, r1 /* save addr of gd */
> - mov r6, r2 /* save addr of destination */
> -
> - /* Set up the stack */
> -stack_setup:
> - mov sp, r4
> -
> - adr r0, _start
> - cmp r0, r6
> - moveq r9, #0 /* no relocation. relocation offset(r9) = 0 */
> - beq clear_bss /* skip relocation */
> - mov r1, r6 /* r1 <- scratch for copy_loop */
> - ldr r3, _bss_start_ofs
> - add r2, r0, r3 /* r2 <- source end address */
> -
> -copy_loop:
> - ldmia r0!, {r9-r10} /* copy from source address [r0] */
> - stmia r1!, {r9-r10} /* copy to target address [r1] */
> - cmp r0, r2 /* until source end address [r2] */
> - blo copy_loop
> -
> -#ifndef CONFIG_SPL_BUILD
> - /*
> - * fix .rel.dyn relocations
> - */
> - ldr r0, _TEXT_BASE /* r0 <- Text base */
> - sub r9, r6, r0 /* r9 <- relocation offset */
> - ldr r10, _dynsym_start_ofs /* r10 <- sym table ofs */
> - add r10, r10, r0 /* r10 <- sym table in FLASH */
> - ldr r2, _rel_dyn_start_ofs /* r2 <- rel dyn start ofs */
> - add r2, r2, r0 /* r2 <- rel dyn start in FLASH */
> - ldr r3, _rel_dyn_end_ofs /* r3 <- rel dyn end ofs */
> - add r3, r3, r0 /* r3 <- rel dyn end in FLASH */
> -fixloop:
> - ldr r0, [r2] /* r0 <- location to fix up, IN FLASH! */
> - add r0, r0, r9 /* r0 <- location to fix up in RAM */
> - ldr r1, [r2, #4]
> - and r7, r1, #0xff
> - cmp r7, #23 /* relative fixup? */
> - beq fixrel
> - cmp r7, #2 /* absolute fixup? */
> - beq fixabs
> - /* ignore unknown type of fixup */
> - b fixnext
> -fixabs:
> - /* absolute fix: set location to (offset) symbol value */
> - mov r1, r1, LSR #4 /* r1 <- symbol index in .dynsym */
> - add r1, r10, r1 /* r1 <- address of symbol in table */
> - ldr r1, [r1, #4] /* r1 <- symbol value */
> - add r1, r1, r9 /* r1 <- relocated sym addr */
> - b fixnext
> -fixrel:
> - /* relative fix: increase location by offset */
> - ldr r1, [r0]
> - add r1, r1, r9
> -fixnext:
> - str r1, [r0]
> - add r2, r2, #8 /* each rel.dyn entry is 8 bytes */
> - cmp r2, r3
> - blo fixloop
> -#endif
> -
> -clear_bss:
> -#ifndef CONFIG_SPL_BUILD
> - ldr r0, _bss_start_ofs
> - ldr r1, _bss_end_ofs
> - mov r4, r6 /* reloc addr */
> - add r0, r0, r4
> - add r1, r1, r4
> - mov r2, #0x00000000 /* clear */
> -
> -clbss_l:cmp r0, r1 /* clear loop... */
> - bhs clbss_e /* if reached end of bss, exit */
> - str r2, [r0]
> - add r0, r0, #4
> - b clbss_l
> -clbss_e:
> -#endif
> -
> -/*
> - * We are done. Do not return, instead branch to second part of board
> - * initialization, now running from RAM.
> - */
> - ldr r0, _board_init_r_ofs
> - adr r1, _start
> - add lr, r0, r1
> - add lr, lr, r9
> - /* setup parameters for board_init_r */
> - mov r0, r5 /* gd_t */
> - mov r1, r6 /* dest_addr */
> - /* jump to it ... */
> - mov pc, lr
> -
> -_board_init_r_ofs:
> - .word board_init_r - _start
> -
> -_rel_dyn_start_ofs:
> - .word __rel_dyn_start - _start
> -_rel_dyn_end_ofs:
> - .word __rel_dyn_end - _start
> -_dynsym_start_ofs:
> - .word __dynsym_start - _start
> -
> -/*
> - *************************************************************************
> - *
> - * CPU_init_critical registers
> - *
> - * setup important registers
> - * setup memory timing
> - *
> - *************************************************************************
> - */
> -
> -
> -cpu_init_crit:
> - /*
> - * flush v4 I/D caches
> - */
> - mov r0, #0
> - mcr p15, 0, r0, c7, c7, 0 /* flush v3/v4 cache */
> - mcr p15, 0, r0, c8, c7, 0 /* flush v4 TLB */
> -
> - /*
> - * disable MMU stuff and caches
> - */
> - mrc p15, 0, r0, c1, c0, 0
> - bic r0, r0, #0x00002300 @ clear bits 13, 9:8 (--V- --RS)
> - bic r0, r0, #0x00000087 @ clear bits 7, 2:0 (B--- -CAM)
> - orr r0, r0, #0x00000002 @ set bit 2 (A) Align
> - orr r0, r0, #0x00001000 @ set bit 12 (I) I-Cache
> - orr r0, r0, #0x40000000 @ set bit 30 (nF) notFastBus
> - mcr p15, 0, r0, c1, c0, 0
> -
> -
> - /*
> - * before relocating, we have to setup RAM timing
> - * because memory timing is board-dependend, you will
> - * find a lowlevel_init.S in your board directory.
> - */
> - mov ip, lr
> - bl lowlevel_init
> - mov lr, ip
> -
> - mov pc, lr
> -
> -
> -/*
> - *************************************************************************
> - *
> - * Interrupt handling
> - *
> - *************************************************************************
> - */
> -
> -@
> -@ IRQ stack frame.
> -@
> -#define S_FRAME_SIZE 72
> -
> -#define S_OLD_R0 68
> -#define S_PSR 64
> -#define S_PC 60
> -#define S_LR 56
> -#define S_SP 52
> -
> -#define S_IP 48
> -#define S_FP 44
> -#define S_R10 40
> -#define S_R9 36
> -#define S_R8 32
> -#define S_R7 28
> -#define S_R6 24
> -#define S_R5 20
> -#define S_R4 16
> -#define S_R3 12
> -#define S_R2 8
> -#define S_R1 4
> -#define S_R0 0
> -
> -#define MODE_SVC 0x13
> -#define I_BIT 0x80
> -
> -/*
> - * use bad_save_user_regs for abort/prefetch/undef/swi ...
> - * use irq_save_user_regs / irq_restore_user_regs for IRQ/FIQ handling
> - */
> -
> - .macro bad_save_user_regs
> - sub sp, sp, #S_FRAME_SIZE
> - stmia sp, {r0 - r12} @ Calling r0-r12
> - ldr r2, IRQ_STACK_START_IN
> - ldmia r2, {r2 - r3} @ get pc, cpsr
> - add r0, sp, #S_FRAME_SIZE @ restore sp_SVC
> -
> - add r5, sp, #S_SP
> - mov r1, lr
> - stmia r5, {r0 - r3} @ save sp_SVC, lr_SVC, pc, cpsr
> - mov r0, sp
> - .endm
> -
> - .macro irq_save_user_regs
> - sub sp, sp, #S_FRAME_SIZE
> - stmia sp, {r0 - r12} @ Calling r0-r12
> - add r8, sp, #S_PC
> - stmdb r8, {sp, lr}^ @ Calling SP, LR
> - str lr, [r8, #0] @ Save calling PC
> - mrs r6, spsr
> - str r6, [r8, #4] @ Save CPSR
> - str r0, [r8, #8] @ Save OLD_R0
> - mov r0, sp
> - .endm
> -
> - .macro irq_restore_user_regs
> - ldmia sp, {r0 - lr}^ @ Calling r0 - lr
> - mov r0, r0
> - ldr lr, [sp, #S_PC] @ Get PC
> - add sp, sp, #S_FRAME_SIZE
> - subs pc, lr, #4 @ return & move spsr_svc into cpsr
> - .endm
> -
> - .macro get_bad_stack
> - ldr r13, IRQ_STACK_START_IN @ setup our mode stack
> -
> - str lr, [r13] @ save caller lr / spsr
> - mrs lr, spsr
> - str lr, [r13, #4]
> -
> - mov r13, #MODE_SVC @ prepare SVC-Mode
> - @ msr spsr_c, r13
> - msr spsr, r13
> - mov lr, pc
> - movs pc, lr
> - .endm
> -
> - .macro get_irq_stack @ setup IRQ stack
> - ldr sp, IRQ_STACK_START
> - .endm
> -
> - .macro get_fiq_stack @ setup FIQ stack
> - ldr sp, FIQ_STACK_START
> - .endm
> -
> -/*
> - * exception handlers
> - */
> - .align 5
> -undefined_instruction:
> - get_bad_stack
> - bad_save_user_regs
> - bl do_undefined_instruction
> -
> - .align 5
> -software_interrupt:
> - get_bad_stack
> - bad_save_user_regs
> - bl do_software_interrupt
> -
> - .align 5
> -prefetch_abort:
> - get_bad_stack
> - bad_save_user_regs
> - bl do_prefetch_abort
> -
> - .align 5
> -data_abort:
> - get_bad_stack
> - bad_save_user_regs
> - bl do_data_abort
> -
> - .align 5
> -not_used:
> - get_bad_stack
> - bad_save_user_regs
> - bl do_not_used
> -
> -#ifdef CONFIG_USE_IRQ
> -
> - .align 5
> -irq:
> - get_irq_stack
> - irq_save_user_regs
> - bl do_irq
> - irq_restore_user_regs
> -
> - .align 5
> -fiq:
> - get_fiq_stack
> - /* someone ought to write a more effiction fiq_save_user_regs */
> - irq_save_user_regs
> - bl do_fiq
> - irq_restore_user_regs
> -
> -#else
> -
> - .align 5
> -irq:
> - get_bad_stack
> - bad_save_user_regs
> - bl do_irq
> -
> - .align 5
> -fiq:
> - get_bad_stack
> - bad_save_user_regs
> - bl do_fiq
> -
> -#endif
> -
> - .align 5
> -.globl reset_cpu
> -reset_cpu:
> - bl disable_interrupts
> -
> - /* Disable watchdog */
> - ldr r1, =pWDTCTL
> - mov r3, #0
> - str r3, [r1]
> -
> - /* reset counter */
> - ldr r3, =0x00001984
> - str r3, [r1, #4]
> -
> - /* Enable the watchdog */
> - mov r3, #1
> - str r3, [r1]
> -
> -_loop_forever:
> - b _loop_forever
> diff --git a/arch/arm/cpu/lh7a40x/timer.c b/arch/arm/cpu/lh7a40x/timer.c
> deleted file mode 100644
> index 58b35b1..0000000
> --- a/arch/arm/cpu/lh7a40x/timer.c
> +++ /dev/null
> @@ -1,182 +0,0 @@
> -/*
> - * (C) Copyright 2002
> - * Sysgo Real-Time Solutions, GmbH <www.elinos.com>
> - * Marius Groeger <mgroeger at sysgo.de>
> - *
> - * (C) Copyright 2002
> - * Sysgo Real-Time Solutions, GmbH <www.elinos.com>
> - * Alex Zuepke <azu at sysgo.de>
> - *
> - * (C) Copyright 2002
> - * Gary Jennejohn, DENX Software Engineering, <garyj at 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 <common.h>
> -#include <lh7a40x.h>
> -
> -static ulong timer_load_val = 0;
> -
> -/* macro to read the 16 bit timer */
> -static inline ulong READ_TIMER(void)
> -{
> - lh7a40x_timers_t* timers = LH7A40X_TIMERS_PTR;
> - lh7a40x_timer_t* timer = &timers->timer1;
> -
> - return (timer->value & 0x0000ffff);
> -}
> -
> -static ulong timestamp;
> -static ulong lastdec;
> -
> -int timer_init (void)
> -{
> - lh7a40x_timers_t* timers = LH7A40X_TIMERS_PTR;
> - lh7a40x_timer_t* timer = &timers->timer1;
> -
> - /* a periodic timer using the 508kHz source */
> - timer->control = (TIMER_PER | TIMER_CLK508K);
> -
> - if (timer_load_val == 0) {
> - /*
> - * 10ms period with 508.469kHz clock = 5084
> - */
> - timer_load_val = CONFIG_SYS_HZ/100;
> - }
> -
> - /* load value for 10 ms timeout */
> - lastdec = timer->load = timer_load_val;
> -
> - /* auto load, start timer */
> - timer->control = timer->control | TIMER_EN;
> - timestamp = 0;
> -
> - return (0);
> -}
> -
> -/*
> - * timer without interrupts
> - */
> -ulong get_timer (ulong base)
> -{
> - return (get_timer_masked() - base);
> -}
> -
> -void __udelay (unsigned long usec)
> -{
> - ulong tmo,tmp;
> -
> - /* normalize */
> - if (usec >= 1000) {
> - tmo = usec / 1000;
> - tmo *= CONFIG_SYS_HZ;
> - tmo /= 1000;
> - }
> - else {
> - if (usec > 1) {
> - tmo = usec * CONFIG_SYS_HZ;
> - tmo /= (1000*1000);
> - }
> - else
> - tmo = 1;
> - }
> -
> - /* check for rollover during this delay */
> - tmp = get_timer (0);
> - if ((tmp + tmo) < tmp )
> - reset_timer_masked(); /* timer would roll over */
> - else
> - tmo += tmp;
> -
> - while (get_timer_masked () < tmo);
> -}
> -
> -void reset_timer_masked (void)
> -{
> - /* reset time */
> - lastdec = READ_TIMER();
> - timestamp = 0;
> -}
> -
> -ulong get_timer_masked (void)
> -{
> - ulong now = READ_TIMER();
> -
> - if (lastdec >= now) {
> - /* normal mode */
> - timestamp += (lastdec - now);
> - } else {
> - /* we have an overflow ... */
> - timestamp += ((lastdec + timer_load_val) - now);
> - }
> - lastdec = now;
> -
> - return timestamp;
> -}
> -
> -void udelay_masked (unsigned long usec)
> -{
> - ulong tmo;
> - ulong endtime;
> - signed long diff;
> -
> - /* normalize */
> - if (usec >= 1000) {
> - tmo = usec / 1000;
> - tmo *= CONFIG_SYS_HZ;
> - tmo /= 1000;
> - } else {
> - if (usec > 1) {
> - tmo = usec * CONFIG_SYS_HZ;
> - tmo /= (1000*1000);
> - } else {
> - tmo = 1;
> - }
> - }
> -
> - endtime = get_timer_masked () + tmo;
> -
> - do {
> - ulong now = get_timer_masked ();
> - diff = endtime - now;
> - } while (diff >= 0);
> -}
> -
> -/*
> - * This function is derived from PowerPC code (read timebase as long long).
> - * On ARM it just returns the timer value.
> - */
> -unsigned long long get_ticks(void)
> -{
> - return get_timer(0);
> -}
> -
> -/*
> - * This function is derived from PowerPC code (timebase clock frequency).
> - * On ARM it returns the number of timer ticks per second.
> - */
> -ulong get_tbclk (void)
> -{
> - ulong tbclk;
> -
> - tbclk = timer_load_val * 100;
> -
> - return tbclk;
> -}
> diff --git a/doc/driver-model/UDM-serial.txt b/doc/driver-model/UDM-serial.txt
> index e9c274d..9feb2e5 100644
> --- a/doc/driver-model/UDM-serial.txt
> +++ b/doc/driver-model/UDM-serial.txt
> @@ -125,67 +125,63 @@ III) Analysis of in-tree drivers
> -------------------
> No support for CONFIG_SERIAL_MULTI. Simple conversion possible.
>
> - 17) serial_lh7a40x.c
> + 17) serial_lpc2292.c
> --------------------
> No support for CONFIG_SERIAL_MULTI. Simple conversion possible.
>
> - 18) serial_lpc2292.c
> + 18) serial_max3100.c
> --------------------
> No support for CONFIG_SERIAL_MULTI. Simple conversion possible.
>
> - 19) serial_max3100.c
> - --------------------
> - No support for CONFIG_SERIAL_MULTI. Simple conversion possible.
> -
> - 20) serial_mxc.c
> + 19) serial_mxc.c
> ----------------
> No support for CONFIG_SERIAL_MULTI. Simple conversion possible.
>
> - 21) serial_netarm.c
> + 20) serial_netarm.c
> -------------------
> No support for CONFIG_SERIAL_MULTI. Simple conversion possible.
>
> - 22) serial_pl01x.c
> + 21) serial_pl01x.c
> ------------------
> No support for CONFIG_SERIAL_MULTI. Simple conversion possible, though this
> driver in fact contains two drivers in total.
>
> - 23) serial_pxa.c
> + 22) serial_pxa.c
> ----------------
> This driver is a bit complicated, but due to clean support for
> CONFIG_SERIAL_MULTI, there are no expected obstructions throughout the
> conversion process.
>
> - 24) serial_s3c24x0.c
> + 23) serial_s3c24x0.c
> --------------------
> This driver, being quite ad-hoc might need some work to bring back to shape.
>
> - 25) serial_s3c44b0.c
> + 24) serial_s3c44b0.c
> --------------------
> No support for CONFIG_SERIAL_MULTI. Simple conversion possible.
>
> - 26) serial_s5p.c
> + 25) serial_s5p.c
> ----------------
> No support for CONFIG_SERIAL_MULTI. Simple conversion possible.
>
> - 27) serial_sa1100.c
> + 26) serial_sa1100.c
> -------------------
> No support for CONFIG_SERIAL_MULTI. Simple conversion possible.
>
> - 28) serial_sh.c
> + 27) serial_sh.c
> ---------------
> No support for CONFIG_SERIAL_MULTI. Simple conversion possible.
>
> - 29) serial_xuartlite.c
> + 28) serial_xuartlite.c
> ----------------------
> No support for CONFIG_SERIAL_MULTI. Simple conversion possible.
>
> - 30) usbtty.c
> + 29) usbtty.c
> ------------
> This driver seems very complicated and entangled with USB framework. The
> conversion might be complicated here.
>
> - 31) arch/powerpc/cpu/mpc512x/serial.c
> + 30) arch/powerpc/cpu/mpc512x/serial.c
> -------------------------------------
> This driver supports CONFIG_SERIAL_MULTI. This driver will need to be moved to
> proper place.
> diff --git a/drivers/serial/Makefile b/drivers/serial/Makefile
> index dfc22a4..341c755 100644
> --- a/drivers/serial/Makefile
> +++ b/drivers/serial/Makefile
> @@ -43,7 +43,6 @@ 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
> COBJS-$(CONFIG_NETARM_SERIAL) += serial_netarm.o
> diff --git a/drivers/serial/serial_lh7a40x.c b/drivers/serial/serial_lh7a40x.c
> deleted file mode 100644
> index 4767489..0000000
> --- a/drivers/serial/serial_lh7a40x.c
> +++ /dev/null
> @@ -1,184 +0,0 @@
> -/*
> - * (C) Copyright 2002
> - * Gary Jennejohn, DENX Software Engineering, <garyj at 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 <lh7a40x.h>
> -
> -DECLARE_GLOBAL_DATA_PTR;
> -
> -#if defined(CONFIG_CONSOLE_UART1)
> -# define UART_CONSOLE 1
> -#elif defined(CONFIG_CONSOLE_UART2)
> -# define UART_CONSOLE 2
> -#elif defined(CONFIG_CONSOLE_UART3)
> -# define UART_CONSOLE 3
> -#else
> -# error "No console configured ... "
> -#endif
> -
> -void serial_setbrg (void)
> -{
> - lh7a40x_uart_t* uart = LH7A40X_UART_PTR(UART_CONSOLE);
> - int i;
> - unsigned int reg = 0;
> -
> - /*
> - * userguide 15.1.2.4
> - *
> - * BAUDDIV is (UART_REF_FREQ/(16 X BAUD))-1
> - *
> - * UART_REF_FREQ = external system clock input / 2 (Hz)
> - * BAUD is desired baudrate (bits/s)
> - *
> - * NOTE: we add (divisor/2) to numerator to round for
> - * more precision
> - */
> - reg = (((get_PLLCLK()/2) + ((16*gd->baudrate)/2)) / (16 * gd->baudrate)) - 1;
> - uart->brcon = reg;
> -
> - for (i = 0; i < 100; i++);
> -}
> -
> -/*
> - * Initialise the serial port with the given baudrate. The settings
> - * are always 8 data bits, no parity, 1 stop bit, no start bits.
> - *
> - */
> -int serial_init (void)
> -{
> - lh7a40x_uart_t* uart = LH7A40X_UART_PTR(UART_CONSOLE);
> -
> - /* UART must be enabled before writing to any config registers */
> - uart->con |= (UART_EN);
> -
> -#ifdef CONFIG_CONSOLE_UART1
> - /* infrared disabled */
> - uart->con |= UART_SIRD;
> -#endif
> - /* loopback disabled */
> - uart->con &= ~(UART_LBE);
> -
> - /* modem lines and tx/rx polarities */
> - uart->con &= ~(UART_MXP | UART_TXP | UART_RXP);
> -
> - /* FIFO enable, N81 */
> - uart->fcon = (UART_WLEN_8 | UART_FEN | UART_STP2_1);
> -
> - /* set baudrate */
> - serial_setbrg ();
> -
> - /* enable rx interrupt */
> - uart->inten |= UART_RI;
> -
> - return (0);
> -}
> -
> -/*
> - * Read a single byte from the serial port. Returns 1 on success, 0
> - * otherwise. When the function is succesfull, the character read is
> - * written into its argument c.
> - */
> -int serial_getc (void)
> -{
> - lh7a40x_uart_t* uart = LH7A40X_UART_PTR(UART_CONSOLE);
> -
> - /* wait for character to arrive */
> - while (uart->status & UART_RXFE);
> -
> - return(uart->data & 0xff);
> -}
> -
> -#ifdef CONFIG_HWFLOW
> -static int hwflow = 0; /* turned off by default */
> -int hwflow_onoff(int on)
> -{
> - switch(on) {
> - case 0:
> - default:
> - break; /* return current */
> - case 1:
> - hwflow = 1; /* turn on */
> - break;
> - case -1:
> - hwflow = 0; /* turn off */
> - break;
> - }
> - return hwflow;
> -}
> -#endif
> -
> -#ifdef CONFIG_MODEM_SUPPORT
> -static int be_quiet = 0;
> -void disable_putc(void)
> -{
> - be_quiet = 1;
> -}
> -
> -void enable_putc(void)
> -{
> - be_quiet = 0;
> -}
> -#endif
> -
> -
> -/*
> - * Output a single byte to the serial port.
> - */
> -void serial_putc (const char c)
> -{
> - lh7a40x_uart_t* uart = LH7A40X_UART_PTR(UART_CONSOLE);
> -
> -#ifdef CONFIG_MODEM_SUPPORT
> - if (be_quiet)
> - return;
> -#endif
> -
> - /* wait for room in the tx FIFO */
> - while (!(uart->status & UART_TXFE));
> -
> -#ifdef CONFIG_HWFLOW
> - /* Wait for CTS up */
> - while(hwflow && !(uart->status & UART_CTS));
> -#endif
> -
> - uart->data = c;
> -
> - /* If \n, also do \r */
> - if (c == '\n')
> - serial_putc ('\r');
> -}
> -
> -/*
> - * Test whether a character is in the RX buffer
> - */
> -int serial_tstc (void)
> -{
> - lh7a40x_uart_t* uart = LH7A40X_UART_PTR(UART_CONSOLE);
> -
> - return(!(uart->status & UART_RXFE));
> -}
> -
> -void
> -serial_puts (const char *s)
> -{
> - while (*s) {
> - serial_putc (*s++);
> - }
> -}
> diff --git a/drivers/usb/gadget/gadget_chips.h b/drivers/usb/gadget/gadget_chips.h
> index 5d7b638..02cae0f 100644
> --- a/drivers/usb/gadget/gadget_chips.h
> +++ b/drivers/usb/gadget/gadget_chips.h
> @@ -58,12 +58,6 @@
> #define gadget_is_sa1100(g) 0
> #endif
>
> -#ifdef CONFIG_USB_GADGET_LH7A40X
> -#define gadget_is_lh7a40x(g) (!strcmp("lh7a40x_udc", (g)->name))
> -#else
> -#define gadget_is_lh7a40x(g) 0
> -#endif
> -
> /* handhelds.org tree (?) */
> #ifdef CONFIG_USB_GADGET_MQ11XX
> #define gadget_is_mq11xx(g) (!strcmp("mq11xx_udc", (g)->name))
> @@ -195,33 +189,31 @@ static inline int usb_gadget_controller_number(struct usb_gadget *gadget)
> return 0x07;
> else if (gadget_is_omap(gadget))
> return 0x08;
> - else if (gadget_is_lh7a40x(gadget))
> - return 0x09;
> else if (gadget_is_n9604(gadget))
> - return 0x10;
> + return 0x09;
> else if (gadget_is_pxa27x(gadget))
> - return 0x11;
> + return 0x10;
> else if (gadget_is_s3c2410(gadget))
> - return 0x12;
> + return 0x11;
> else if (gadget_is_at91(gadget))
> - return 0x13;
> + return 0x12;
> else if (gadget_is_imx(gadget))
> - return 0x14;
> + return 0x13;
> else if (gadget_is_musbhsfc(gadget))
> - return 0x15;
> + return 0x14;
> else if (gadget_is_musbhdrc(gadget))
> - return 0x16;
> + return 0x15;
> else if (gadget_is_mpc8272(gadget))
> - return 0x17;
> + return 0x16;
> else if (gadget_is_atmel_usba(gadget))
> - return 0x18;
> + return 0x17;
> else if (gadget_is_fsl_usb2(gadget))
> - return 0x19;
> + return 0x18;
> else if (gadget_is_amd5536udc(gadget))
> - return 0x20;
> + return 0x19;
> else if (gadget_is_m66592(gadget))
> - return 0x21;
> + return 0x20;
> else if (gadget_is_mv(gadget))
> - return 0x22;
> + return 0x21;
> return -ENOENT;
> }
> diff --git a/include/lh7a400.h b/include/lh7a400.h
> deleted file mode 100644
> index d1e70a2..0000000
> --- a/include/lh7a400.h
> +++ /dev/null
> @@ -1,75 +0,0 @@
> -/*
> - * 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
> - */
> -
> -/*
> - * lh7a400 SoC interface
> - */
> -
> -#ifndef __LH7A400_H__
> -#define __LH7A400_H__
> -
> -#include "lh7a40x.h"
> -
> -/* Interrupt Controller (userguide 8.2.1) */
> -typedef struct {
> - volatile u32 intsr;
> - volatile u32 intrsr;
> - volatile u32 intens;
> - volatile u32 intenc;
> - volatile u32 rsvd1;
> - volatile u32 rsvd2;
> - volatile u32 rsvd3;
> -} /*__attribute__((__packed__))*/ lh7a400_interrupt_t;
> -#define LH7A400_INTERRUPT_BASE (0x80000500)
> -#define LH7A400_INTERRUPT_PTR ((lh7a400_interrupt_t*) LH7A400_INTERRUPT_BASE)
> -
> -/* (DMA) Direct Memory Access Controller (userguide 9.2.1) */
> -typedef struct {
> - lh7a40x_dmachan_t chan[15];
> - volatile u32 glblint;
> - volatile u32 rsvd1;
> - volatile u32 rsvd2;
> - volatile u32 rsvd3;
> -} /*__attribute__((__packed__))*/ lh7a400_dma_t;
> -
> -#define LH7A400_DMA_BASE (0x80002800)
> -#define DMA_USBTX_OFFSET (0x000)
> -#define DMA_USBRX_OFFSET (0x040)
> -#define DMA_MMCTX_OFFSET (0x080)
> -#define DMA_MMCRX_OFFSET (0x0C0)
> -#define DMA_AC97_BASE (0x80002A00)
> -
> -#define LH7A400_DMA_PTR ((lh7a400_dma_t*) LH7A400_DMA_BASE)
> -#define LH7A400_DMA_USBTX \
> - ((lh7a400_dmachan_t*) (LH7A400_DMA_BASE + DMA_USBTX_OFFSET))
> -#define LH7A400_DMA_USBRX \
> - ((lh7a400_dmachan_t*) (LH7A400_DMA_BASE + DMA_USBRX_OFFSET))
> -#define LH7A400_DMA_MMCTX \
> - ((lh7a400_dmachan_t*) (LH7A400_DMA_BASE + DMA_MMCTX_OFFSET))
> -#define LH7A400_DMA_MMCRX \
> - ((lh7a400_dmachan_t*) (LH7A400_DMA_BASE + DMA_MMCRX_OFFSET))
> -#define LH7A400_AC97RX(n) \
> - ((lh7a400_dmachan_t*) (LH7A400_AC97_BASE + \
> - ((2*n) * sizeof(lh7a400_dmachan_t))))
> -#define LH7A400_AC97TX(n) \
> - ((lh7a400_dmachan_t*) (LH7A400_AC97_BASE + \
> - (((2*n)+1) * sizeof(lh7a400_dmachan_t))))
> -
> -#endif /* __LH7A400_H__ */
> diff --git a/include/lh7a404.h b/include/lh7a404.h
> deleted file mode 100644
> index 4098af3..0000000
> --- a/include/lh7a404.h
> +++ /dev/null
> @@ -1,83 +0,0 @@
> -/*
> - * 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
> - */
> -
> -/*
> - * lh7a404 SoC interface
> - */
> -
> -#ifndef __LH7A404_H__
> -#define __LH7A404_H__
> -
> -#include "lh7a40x.h"
> -
> -/* Interrupt Controller (userguide 8.2.1) */
> -typedef struct {
> - volatile u32 irqstatus;
> - volatile u32 fiqstatus;
> - volatile u32 rawintr;
> - volatile u32 intsel;
> - volatile u32 inten;
> - volatile u32 intenclr;
> - volatile u32 softint;
> - volatile u32 softintclr;
> - volatile u32 protect;
> - volatile u32 unused1;
> - volatile u32 unused2;
> - volatile u32 vectaddr;
> - volatile u32 nvaddr;
> - volatile u32 unused3[32];
> - volatile u32 vad[16];
> - volatile u32 unused4[44];
> - volatile u32 vectcntl[16];
> - volatile u32 unused5[44];
> - volatile u32 itcr;
> - volatile u32 itip1;
> - volatile u32 itip2;
> - volatile u32 itop1;
> - volatile u32 itop2;
> - volatile u32 unused6[333];
> - volatile u32 periphid[4];
> - volatile u32 pcellid[4];
> -} /*__attribute__((__packed__))*/ lh7a404_vic_t;
> -#define LH7A404_VIC_BASE (0x80008000)
> -#define LH7A400_VIC_PTR(x) ((lh7a404_vic_t*)(LH7A400_VIC_BASE + (x*0x2000)))
> -
> -
> -typedef struct {
> - lh7a40x_dmachan_t m2p0_tx;
> - lh7a40x_dmachan_t m2p1_rx;
> - lh7a40x_dmachan_t m2p2_tx;
> - lh7a40x_dmachan_t m2p3_rx;
> - lh7a40x_dmachan_t m2m0;
> - lh7a40x_dmachan_t m2m1;
> - lh7a40x_dmachan_t unused1;
> - lh7a40x_dmachan_t unused2;
> - lh7a40x_dmachan_t m2p5_rx;
> - lh7a40x_dmachan_t m2p4_tx;
> - lh7a40x_dmachan_t m2p7_rx;
> - lh7a40x_dmachan_t m2p6_tx;
> - lh7a40x_dmachan_t m2p9_rx;
> - lh7a40x_dmachan_t m2p8_tx;
> - volatile u32 chanarb;
> - volatile u32 glblint;
> -} /*__attribute__((__packed__))*/ lh7a400_dma_t;
> -
> -
> -#endif /* __LH7A404_H__ */
> diff --git a/include/lh7a40x.h b/include/lh7a40x.h
> deleted file mode 100644
> index 09a463c..0000000
> --- a/include/lh7a40x.h
> +++ /dev/null
> @@ -1,279 +0,0 @@
> -/*
> - * 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
> - */
> -
> -/*
> - * lh7a40x SoC series common interface
> - */
> -
> -#ifndef __LH7A40X_H__
> -#define __LH7A40X_H__
> -
> -/* (SMC) Static Memory Controller (usersguide 4.2.1) */
> -typedef struct {
> - volatile u32 attib;
> - volatile u32 com;
> - volatile u32 io;
> - volatile u32 rsvd1;
> -} /*__attribute__((__packed__))*/ lh7a40x_pccard_t;
> -
> -typedef struct {
> - volatile u32 bcr[8];
> - lh7a40x_pccard_t pccard[2];
> - volatile u32 pcmciacon;
> -} /*__attribute__((__packed__))*/ lh7a40x_smc_t;
> -#define LH7A40X_SMC_BASE (0x80002000)
> -#define LH7A40X_SMC_PTR ((lh7a40x_smc_t*) LH7A40X_SMC_BASE)
> -
> -/* (SDMC) Synchronous Dynamic Ram Controller (usersguide 5.3.1) */
> -typedef struct {
> - volatile u32 rsvd1;
> - volatile u32 gblcnfg;
> - volatile u32 rfshtmr;
> - volatile u32 bootstat;
> - volatile u32 sdcsc[4];
> -} /*__attribute__((__packed__))*/ lh7a40x_sdmc_t;
> -#define LH7A40X_SDMC_BASE (0x80002400)
> -#define LH7A40X_SDMC_PTR ((lh7a40x_sdmc_t*) LH7A40X_SDMC_BASE)
> -
> -/* (CSC) Clock and State Controller (userguide 6.2.1) */
> -typedef struct {
> - volatile u32 pwrsr;
> - volatile u32 pwrcnt;
> - volatile u32 halt;
> - volatile u32 stby;
> - volatile u32 bleoi;
> - volatile u32 mceoi;
> - volatile u32 teoi;
> - volatile u32 stfclr;
> - volatile u32 clkset;
> - volatile u32 scrreg[2];
> - volatile u32 rsvd1;
> - volatile u32 usbreset;
> -} /*__attribute__((__packed__))*/ lh7a40x_csc_t;
> -#define LH7A40X_STPWR_BASE (0x80000400)
> -#define LH7A40X_CSC_PTR ((lh7a40x_csc_t*) LH7A40X_STPWR_BASE)
> -
> -#define CLKSET_SMCROM (0x01000000)
> -#define CLKSET_PS (0x000C0000)
> -#define CLKSET_PS_0 (0x00000000)
> -#define CLKSET_PS_1 (0x00040000)
> -#define CLKSET_PS_2 (0x00080000)
> -#define CLKSET_PS_3 (0x000C0000)
> -#define CLKSET_PCLKDIV (0x00030000)
> -#define CLKSET_PCLKDIV_2 (0x00000000)
> -#define CLKSET_PCLKDIV_4 (0x00010000)
> -#define CLKSET_PCLKDIV_8 (0x00020000)
> -#define CLKSET_MAINDIV2 (0x0000f800)
> -#define CLKSET_MAINDIV1 (0x00000780)
> -#define CLKSET_PREDIV (0x0000007C)
> -#define CLKSET_HCLKDIV (0x00000003)
> -
> -/* (DMA) Direct Memory Access Controller (userguide 9.2.1) */
> -typedef struct {
> - volatile u32 maxcnt;
> - volatile u32 base;
> - volatile u32 current;
> - volatile u32 rsvd1;
> -} lh7a40x_dmabuf_t;
> -
> -typedef struct {
> - volatile u32 control;
> - volatile u32 interrupt;
> - volatile u32 rsvd1;
> - volatile u32 status;
> - volatile u32 rsvd2;
> - volatile u32 remain;
> - volatile u32 rsvd3;
> - volatile u32 rsvd4;
> - lh7a40x_dmabuf_t buf[2];
> -} /*__attribute__((__packed__))*/ lh7a40x_dmachan_t;
> -
> -
> -/* (WDT) Watchdog Timer (userguide 11.2.1) */
> -typedef struct {
> - volatile u32 ctl;
> - volatile u32 rst;
> - volatile u32 status;
> - volatile u32 count[4];
> -} /*__attribute__((__packed__))*/ lh7a40x_wdt_t;
> -#define LH7A40X_WDT_BASE (0x80001400)
> -#define LH7A40X_WDT_PTR ((lh7a40x_wdt_t*) LH7A40X_WDT_BASE)
> -
> -/* (RTC) Real Time Clock (lh7a400 userguide 12.2.1, lh7a404 userguide 13.2.1) */
> -typedef struct {
> - volatile u32 rtcdr;
> - volatile u32 rtclr;
> - volatile u32 rtcmr;
> - volatile u32 unk1;
> - volatile u32 rtcstat_eoi;
> - volatile u32 rtccr;
> - volatile u32 rsvd1[58];
> -} /*__attribute__((__packed__))*/ lh7a40x_rtc_t;
> -#define LH7A40X_RTC_BASE (0x80000D00)
> -#define LH7A40X_RTC_PTR ((lh7a40x_rtc_t*) LH7A40X_RTC_BASE)
> -
> -/* Timers (lh7a400 userguide 13.2.1, lh7a404 userguide 11.2.1) */
> -typedef struct {
> - volatile u32 load;
> - volatile u32 value;
> - volatile u32 control;
> - volatile u32 tceoi;
> -} /*__attribute__((__packed__))*/ lh7a40x_timer_t;
> -
> -typedef struct {
> - lh7a40x_timer_t timer1;
> - volatile u32 rsvd1[4];
> - lh7a40x_timer_t timer2;
> - volatile u32 unk1[4];
> - volatile u32 bzcon;
> - volatile u32 unk2[15];
> - lh7a40x_timer_t timer3;
> - /*volatile u32 rsvd2;*/
> -} /*__attribute__((__packed__))*/ lh7a40x_timers_t;
> -#define LH7A40X_TIMERS_BASE (0x80000C00)
> -#define LH7A40X_TIMERS_PTR ((lh7a40x_timers_t*) LH7A40X_TIMERS_BASE)
> -
> -#define TIMER_EN (0x00000080)
> -#define TIMER_PER (0x00000040)
> -#define TIMER_FREE (0x00000000)
> -#define TIMER_CLK508K (0x00000008)
> -#define TIMER_CLK2K (0x00000000)
> -
> -/* (SSP) Sychronous Serial Ports (lh7a400 userguide 14.2.1, lh7a404 userguide 14.2.1) */
> -typedef struct {
> - volatile u32 cr0;
> - volatile u32 cr1;
> - volatile u32 irr_roeoi;
> - volatile u32 dr;
> - volatile u32 cpr;
> - volatile u32 sr;
> - /*volatile u32 rsvd1[58];*/
> -} /*__attribute__((__packed__))*/ lh7a40x_ssp_t;
> -#define LH7A40X_SSP_BASE (0x80000B00)
> -#define LH7A40X_SSP_PTR ((lh7a40x_ssp_t*) LH7A40X_SSP_BASE)
> -
> -/* (UART) Universal Asychronous Receiver/Transmitter (lh7a400 userguide 15.2.1, lh7a404 userguide 15.2.1) */
> -typedef struct {
> - volatile u32 data;
> - volatile u32 fcon;
> - volatile u32 brcon;
> - volatile u32 con;
> - volatile u32 status;
> - volatile u32 rawisr;
> - volatile u32 inten;
> - volatile u32 isr;
> - volatile u32 rsvd1[56];
> -} /*__attribute__((__packed__))*/ lh7a40x_uart_t;
> -#define LH7A40X_UART_BASE (0x80000600)
> -#define LH7A40X_UART_PTR(n) \
> - ((lh7a40x_uart_t*) (LH7A40X_UART_BASE + ((n-1) * sizeof(lh7a40x_uart_t))))
> -
> -#define UART_BE (0x00000800) /* the rx error bits */
> -#define UART_OE (0x00000400)
> -#define UART_PE (0x00000200)
> -#define UART_FE (0x00000100)
> -
> -#define UART_WLEN (0x00000060) /* fcon bits */
> -#define UART_WLEN_8 (0x00000060)
> -#define UART_WLEN_7 (0x00000040)
> -#define UART_WLEN_6 (0x00000020)
> -#define UART_WLEN_5 (0x00000000)
> -#define UART_FEN (0x00000010)
> -#define UART_STP2 (0x00000008)
> -#define UART_STP2_2 (0x00000008)
> -#define UART_STP2_1 (0x00000000)
> -#define UART_EPS (0x00000004)
> -#define UART_EPS_EVEN (0x00000004)
> -#define UART_EPS_ODD (0x00000000)
> -#define UART_PEN (0x00000002)
> -#define UART_BRK (0x00000001)
> -
> -#define UART_BAUDDIV (0x0000ffff) /* brcon bits */
> -
> -#define UART_SIRBD (0x00000080) /* con bits */
> -#define UART_LBE (0x00000040)
> -#define UART_MXP (0x00000020)
> -#define UART_TXP (0x00000010)
> -#define UART_RXP (0x00000008)
> -#define UART_SIRLP (0x00000004)
> -#define UART_SIRD (0x00000002)
> -#define UART_EN (0x00000001)
> -
> -#define UART_TXFE (0x00000080) /* status bits */
> -#define UART_RXFF (0x00000040)
> -#define UART_TXFF (0x00000020)
> -#define UART_RXFE (0x00000010)
> -#define UART_BUSY (0x00000008)
> -#define UART_DCD (0x00000004)
> -#define UART_DSR (0x00000002)
> -#define UART_CTS (0x00000001)
> -
> -#define UART_MSEOI (0xfffffff0) /* rawisr interrupt bits */
> -
> -#define UART_RTI (0x00000008) /* generic interrupt bits */
> -#define UART_MI (0x00000004)
> -#define UART_TI (0x00000002)
> -#define UART_RI (0x00000001)
> -
> -/* (GPIO) General Purpose IO and External Interrupts (userguide 16.2.1) */
> -typedef struct {
> - volatile u32 pad;
> - volatile u32 pbd;
> - volatile u32 pcd;
> - volatile u32 pdd;
> - volatile u32 padd;
> - volatile u32 pbdd;
> - volatile u32 pcdd;
> - volatile u32 pddd;
> - volatile u32 ped;
> - volatile u32 pedd;
> - volatile u32 kbdctl;
> - volatile u32 pinmux;
> - volatile u32 pfd;
> - volatile u32 pfdd;
> - volatile u32 pgd;
> - volatile u32 pgdd;
> - volatile u32 phd;
> - volatile u32 phdd;
> - volatile u32 rsvd1;
> - volatile u32 inttype1;
> - volatile u32 inttype2;
> - volatile u32 gpiofeoi;
> - volatile u32 gpiointen;
> - volatile u32 intstatus;
> - volatile u32 rawintstatus;
> - volatile u32 gpiodb;
> - volatile u32 papd;
> - volatile u32 pbpd;
> - volatile u32 pcpd;
> - volatile u32 pdpd;
> - volatile u32 pepd;
> - volatile u32 pfpd;
> - volatile u32 pgpd;
> - volatile u32 phpd;
> -} /*__attribute__((__packed__))*/ lh7a40x_gpioint_t;
> -#define LH7A40X_GPIOINT_BASE (0x80000E00)
> -#define LH7A40X_GPIOINT_PTR ((lh7a40x_gpioint_t*) LH7A40X_GPIOINT_BASE)
> -
> -/* Embedded SRAM */
> -#define CONFIG_SYS_SRAM_BASE (0xB0000000)
> -#define CONFIG_SYS_SRAM_SIZE (80*1024) /* 80kB */
> -
> -#endif /* __LH7A40X_H__ */
> diff --git a/include/lpd7a400_cpld.h b/include/lpd7a400_cpld.h
> deleted file mode 100644
> index c70af09..0000000
> --- a/include/lpd7a400_cpld.h
> +++ /dev/null
> @@ -1,195 +0,0 @@
> -/*
> - * 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
> - */
> -
> -/*
> - * Logic lh7a400-10 Card Engine CPLD interface
> - */
> -
> -#ifndef __LPD7A400_CPLD_H_
> -#define __LPD7A400_CPLD_H_
> -
> -
> -/*
> - * IO Controller Address and Register Definitions
> - * - using LH7A400-10 Card Engine IO Controller Specification
> - * (logic PN: 70000079)
> - */
> -
> -/*------------------------------------------------------------------
> - * Slow Peripherals (nCS6)
> - */
> -#define LPD7A400_CPLD_CF (0x60200000)
> -#define LPD7A400_CPLD_ISA (0x60400000)
> -
> -/*------------------------------------------------------------------
> - * Fast Peripherals (nCS7)
> - *
> - * The CPLD directs access to 0x70000000-0x701fffff to the onboard
> - * ethernet controller
> - */
> -#define LPD7A400_CPLD_WLAN_BASE (0x70000000)
> -
> -/* All registers are 8 bit */
> -#define LPD7A400_CPLD_CECTL_REG (0x70200000)
> -#define LPD7A400_CPLD_SPIDATA_REG (0x70600000)
> -#define LPD7A400_CPLD_SPICTL_REG (0x70800000)
> -#define LPD7A400_CPLD_EEPSPI_REG (0x70a00000)
> -#define LPD7A400_CPLD_INTMASK_REG (0x70c00000)
> -#define LPD7A400_CPLD_MODE_REG (0x70e00000)
> -#define LPD7A400_CPLD_FLASH_REG (0x71000000)
> -#define LPD7A400_CPLD_PWRMG_REG (0x71200000)
> -#define LPD7A400_CPLD_REV_REG (0x71400000)
> -#define LPD7A400_CPLD_EXTGPIO_REG (0x71600000)
> -#define LPD7A400_CPLD_GPIODATA_REG (0x71800000)
> -#define LPD7A400_CPLD_GPIODIR_REG (0x71a00000)
> -
> -#define LPD7A400_CPLD_REGPTR (volatile u8*)
> -
> -/* Card Engine Control Register (section 3.1.2) */
> -#define CECTL_SWINT (0x80) /* Software settable interrupt source
> - (routed to uP PF3)
> - 0 = generate interrupt, 1 = do not */
> -#define CECTL_OCMSK (0x40) /* USB1 connection interrupt mask
> - 0 = not masked, 1 = masked */
> -#define CECTL_PDRV (0x20) /* PCC_nDRV output
> - 0 = active, 1 = inactive */
> -#define CECTL_USB1C (0x10) /* USB1 connection interrupt
> - 0 = active, 1 = inactive */
> -#define CECTL_USB1P (0x08) /* USB1 Power enable
> - 0 = enabled, 1 = disabled */
> -#define CECTL_AWKP (0x04) /* Auto-Wakeup enable
> - 0 = enabled, 1 = disabled */
> -#define CECTL_LCDV (0x02) /* LCD VEE enable
> - 0 = disabled, 1 = enabled */
> -#define CECTL_WLPE (0x01) /* Wired LAN power enable
> - 0 = enabled, 1 = disabled */
> -
> -/* SPI Control Register (section 3.1.5) */
> -#define SPICTL_SPLD (0x20) /* SPI load (R)
> - 0 = data reg. has not been loaded, shift
> - count has not been reset
> - 1 = data reg. loaded, shift count reset */
> -#define SPICTL_SPST (0x10) /* SPI start (RW)
> - 0 = don't load data reg. and reset shift count
> - 1 = ready to load data reg and reset shift count */
> -#define SPICTL_SPDN (0x08) /* SPI done (R)
> - 0 = not done
> - 1 = access done */
> -#define SPICTL_SPRW (0x04) /* SPI read/write (RW)
> - 0 = SPI write access
> - 1 = SPI read access */
> -#define SPICTL_STCS (0x02) /* SPI touch chip select (RW)
> - 0 = not selected
> - 1 = selected */
> -#define SPICTL_SCCS (0x01) /* SPI CODEC chip select (RW) {not used}
> - 0 = not selected
> - 1 = selected */
> -
> -/* EEPROM SPI Interface Register (section 3.1.6) */
> -#define EEPSPI_EECS (0x08) /* EEPROM chip select (RW)
> - 0 = not selected
> - 1 = selected */
> -#define EEPSPI_EECK (0x04) /* EEPROM SPI clock (RW) */
> -#define EEPSPI_EETX (0x02) /* EEPROM SPI tx data (RW) */
> -#define EEPSPI_EERX (0x01) /* EEPROM SPI rx data (R) */
> -
> -/* Interrupt/Mask Register (section 3.1.7) */
> -#define INTMASK_CMSK (0x80) /* CPLD_nIRQD interrupt mask (RW)
> - 0 = not masked
> - 1 = masked */
> -#define INTMASK_CIRQ (0x40) /* interrupt signal to CPLD (R)
> - 0 = interrupt active
> - 1 = no interrupt */
> -#define INTMASK_PIRQ (0x10) /* legacy, no effect */
> -#define INTMASK_TMSK (0x08) /* Touch chip interrupt mask (RW)
> - 0 = not masked
> - 1 = masked */
> -#define INTMASK_WMSK (0x04) /* Wired LAN interrupt mask (RW)
> - 0 = not masked
> - 1 = masked */
> -#define INTMASK_TIRQ (0x02) /* Touch chip interrupt request (R)
> - 0 = interrupt active
> - 1 = no interrupt */
> -#define INTMASK_WIRQ (0x01) /* Wired LAN interrupt request (R)
> - 0 = interrupt active
> - 1 = no interrupt */
> -
> -/* Mode Register (section 3.1.8) */
> -#define MODE_VS1 (0x80) /* PCMCIA Voltage Sense 1 input (PCC_VS1) (R)
> - 0 = active slot VS1 pin is low
> - 1 = active slot VS1 pin is high */
> -#define MODE_CD2 (0x40) /* PCMCIA Card Detect 2 input (PCC_nCD2) (R)
> - 0 = active slot CD2 is low
> - 1 = active slot CD2 is high */
> -#define MODE_IOIS16 (0x20) /* PCMCIA IOIS16 input (PCC_nIOIS16) (R)
> - 0 = 16 bit access area
> - 1 = 8 bit access area */
> -#define MODE_CD1 (0x10) /* PCMCIA Card Detect 1 input (PCC_nCD1) (R)
> - 0 = active slot CD1 is low
> - 1 = active slot CD1 is high */
> -#define MODE_upMODE3 (0x08) /* Mode Pin 3 (R)
> - 0 = off-board boot device
> - 1 = on-board boot device (flash) */
> -#define MODE_upMODE2 (0x04) /* Mode Pin 2 (R) (LH7A400 Little Endian only)
> - 0 = big endian
> - 1 = little endian */
> -#define MODE_upMODE1 (0x02) /* Mode Pin 1 and Mode Pin 2 (R) */
> -#define MODE_upMODE0 (0x01) /* - bus width at boot */
> -
> -
> -/* Flash Register (section 3.1.9) */
> -#define FLASH_FPOP (0x08) /* Flash populated (RW)
> - 0 = populated, 1 = not */
> -#define FLASH_FST2 (0x04) /* Flash status (R) (RY/BY# pin for upper 16 bit chip
> - 0 = busy, 1 = ready */
> -#define FLASH_FST1 (0x02) /* Flash status (R) (RY/BY# pin for lower 16 bit chip
> - 0 = busy, 1 = ready */
> -#define FLASH_FPEN (0x01) /* Flash program enable (RW)
> - 0 = flash write protected
> - 1 = programming enabled */
> -
> -/* Power Management Register (section 3.1.10)
> - * - when either of these is low an unmaskable interrupt to cpu
> - * is generated
> - */
> -#define PWRMG_STBY (0x10) /* state of nSTANDBY signal to CPLD (R)
> - 0 = low, 1 = high */
> -#define PWRMG_SPND (0x04) /* state of nSUSPEND signal to CPLD (R)
> - 0 = low, 1 = high */
> -
> -
> -/* Extended GPIO Register (section 3.1.12) */
> -#define EXTGPIO_STATUS1 (0x04) /* Status 1 output (RW) (uP_STATUS_1)
> - 0 = set pin low, 1 = set pin high */
> -#define EXTGPIO_STATUS2 (0x02) /* Status 2 output (RW) (uP_STATUS_2)
> - 0 = set pin low, 1 = set pin high */
> -#define EXTGPIO_GPIO1 (0x01) /* General purpose output (RW) (CPLD_GPIO_1)
> - 0 = set pin low, 1 = set pin high */
> -
> -/* GPIO Data Register (section 3.1.13) */
> -#define GPIODATA_GPIO2 (0x01) /* General purpose input/output (RW) (CPLD_GPIO_2)
> - 0 = set low (output) / read low (input)
> - 1 = set high (output) / read high (input) */
> -
> -/* GPIO Direction Register (section 3.1.14) */
> -#define GPIODIR_GPDR0 (0x01) /* GPIO2 direction (RW)
> - 0 = output, 1 = input */
> -
> -#endif /* __LH7A400_H__ */
Applied to arm/next.
Amicalement,
--
Albert.
More information about the U-Boot
mailing list