2009-01-12  Nick Garnett  <nickg@ecoscentric.com>

	* include/var_io.h: Or OSCEN bit into SCS register rather than
	just assign it.

	* src/lpc2xxx_i2c.c: Replace current I2C driver with version from
	anoncvs, adapted and bugfixed to suit eCosPro.

2008-12-17  Nick Garnett  <nickg@ecoscentric.com>

	* cdl/hal_arm_lpc2xxx.cdl: Add LPC23XX parts to variant list. Add
	CYGHWR_HAL_ARM_LPC2XXX_LPC24XX and CYGHWR_HAL_ARM_LPC2XXX_LPC23XX
	to indicate general family membership for parts.

	* src/lpc2xxx_clock.c (hal_delay_us): Switch to use readings from
	Timer0 without reprogramming it. In kernel configurations that
	don't have virtual vectors, reprogramming Timer 0 for causes mayhem
	with the system clock.

	* include/var_io.h: Add support for LPC23XX variants.

	* include/var_intr.h: Add LPC23XX interrupt vector support.

2008-10-29  Jonathan Larmour  <jifl@eCosCentric.com>

	* src/lpc2xxx_i2c.c (lpc2xxx_i2c_bus_doit): Take an extra arg
	of the conset to write, so that it can be written only when the
	scheduler is locked, otherwise the DSR may signal the CV before
	we're ready.

2008-05-08  Jonathan Larmour  <jifl@eCosCentric.com>

	* src/lpc2xxx_mci.c (cyg_hal_lpc2xxx_primecell_mci_prepare_dma):
	Enable GPDMA here, and set endian-ness from config.

2008-04-24  John Dallaway  <jld@ecoscentric.com>

	* src/lpc2xxx_misc.c (hal_hardware_init): Fix compilation error
	when CYGHWR_HAL_ARM_LPC2XXX_LPC24[67]8 defined.

2008-04-24  Jonathan Larmour  <jifl@eCosCentric.com>

	* src/lpc2xxx_mci.c: New file. Provides MCI support functions
	common to LPC2xxx MCI implementations. Currently provides
	support to ARM Primecell MCI driver (which is the MCI on LPC2xxx)
	for DMA setup using the GPDMA.
	* cdl/hal_arm_lpc2xxx.cdl: Build lpc2xxx_mci.c.
	* include/var_io.h: Provide GPDMA and a few MCI definitions,
	the remaining MCI definitions coming from the Primecell MCI
	driver. Provide macro definitions common to LPC2xxx CPUs using
	the Primecell MCI, primarily for GPDMA control.

2008-04-18  Jonathan Larmour  <jifl@eCosCentric.com>

	* src/lpc2xxx_misc.c (hal_hardware_init): Silence warnings.

2008-04-09  Nick Garnett  <nickg@ecoscentric.com>

	* doc/lpc2xxx.sgml: Separate timer documentation from interrupt
	controller and mention profiling timer.

2008-04-08  John Dallaway  <jld@ecoscentric.com>

	* cdl/hal_arm_lpc2xxx.cdl: Fix minor typographical error in CDL
	display string.

2008-04-04  Nick Garnett  <nickg@ecoscentric.com>

	* src/lpc2xxx_misc.c (hal_hardware_init): Fix compiler warning.

2008-03-18  Nick Garnett  <nickg@ecoscentric.com>

	* cdl/hal_arm_lpc2xxx.cdl: 
	* src/lpc2xxx_clock.c (hal_enable_profile_timer, profile_isr)
	(profile_dsr): Add profile timer.

	* include/var_io.h (CYGARC_HAL_LPC2XXX_REG_TIMER2_BASE)
	(CYGARC_HAL_LPC2XXX_REG_TIMER3_BASE): Add additional timers for
	LPC24xx variants.

2008-03-13  Nick Garnett  <nickg@ecoscentric.com>

	* doc/lpc2xxx.sgml: Add I2C and SPI configuration definitions.

2008-03-10  Nick Garnett  <nickg@ecoscentric.com>

	* include/var_io.h (CYGARC_HAL_LPC2XXX_REG_WDCLKSEL): Add
	definition of this register.
	(CYGARC_HAL_LPC2XXX_REG_RTC_CCR_CLKSRC_PCLK): Add clock source
	selctor definitions.

2008-03-07  Nick Garnett  <nickg@ecoscentric.com>

	* include/var_io.h: Add SSP register definitions.
	(__LPC2XXX_PINMODE): Add support for setting PINMODE for IO pins
	using similar mechanism to GPIO and PINSEL macros.

2008-02-27  Nick Garnett  <nickg@ecoscentric.com>

	* include/var_io.h (__LPC2XXX_PIN): Redefine so that it will also
	serve for PINSEL descriptions.
	(__LPC2XXX_PINSEL_FUNCTION): Add this macro and support for
	generating and using packaged definitions of pinselect functions.

	* cdl/hal_arm_lpc2xxx.cdl: 
	* src/lpc2xxx_i2c.c: Add I2C driver.

2008-02-21  Nick Garnett  <nickg@ecoscentric.com>

	* include/var_io.h: Some changes to ethernet definitions.

2008-02-21  Jonathan Larmour  <jifl@eCosCentric.com>

	* include/var_intr.h (HAL_CLOCK_LATENCY): Override default
	ARM architecture version of this so we can handle wrapping.

2008-02-18  Jonathan Larmour  <jifl@eCosCentric.com>

	* cdl/hal_arm_lpc2xxx.cdl: Rename Philips->NXP.
	* doc/lpc2xxx.sgml: Ditto.
	Update to mention flash driver. Many misc other updates.
	Doc MAM mode CDL, Virtual vec CDL.

2008-02-15  Jonathan Larmour  <jifl@eCosCentric.com>

	* include/var_intr.h: Include int numbers valid for LPC2148.
	* cdl/hal_arm_lpc2xxx.cdl: Make the use of idle mode be optional
	with new CYGIMP_HAL_ARM_LPC2XXX_IDLE_THREAD_USES_IDLE option.
	* include/var_arch.h: Act on that option.

2008-02-12  Nick Garnett  <nickg@ecoscentric.com>

	* cdl/hal_arm_lpc2xxx.cdl: Tidy up a little.

	* src/lpc2xxx_misc.c (hal_hardware_init): 
	* src/lpc2xxx_intr.c: Add LPC24XX variant support.

	* include/var_io.h: Add LPC24XX variant support. Add ethernet
	definitions.

	* include/var_intr.h: Add extra vectors for LPC24xx variants.

2008-02-09  Jonathan Larmour  <jifl@eCosCentric.com>

	* include/var_io.h (lpc2xxx_remap): Do not copy vectors from
	flash to SRAM for JTAG/RAM/SRAM startups.
	Fix off-by-one error.

2008-02-07  Jonathan Larmour  <jifl@eCosCentric.com>

	* src/hal_diag.c: Don't bother providing multiple channel instances
	if only one is to be used.

2008-02-05  Jonathan Larmour  <jifl@eCosCentric.com>

	* cdl/hal_arm_lpc2xxx.cdl: Add LPC2148 variant.
	CCLK does *not* depend on PLL_DIVIDER, so remove the dependency.
	Add CYGHWR_HAL_ARM_LPC2XXX_MAM_MODE so users can select which
	errata they wish to ignore.
	Make virtual vector support configurable and default off for
	all startups except RAM, or if it's a ROM monitor.

	* include/hal_diag.h: Provide non-virtual vector alternative
	HAL_DIAG_* macros.
	* src/hal_diag.c: Provide non-virtual vector versions of diag
	support.
	* src/lpc2xxx_intr.c (hal_default_isr): New function, needed
	for non-virtual vector configs.
	* src/lpc2xxx_misc.c (hal_hardware_init): Don't call hal_if_init
	for non-virtual vector configs.

	* include/var_io.h: Add option to use fast GPIO registers.
	Provide an interface which allows either to be selected. More
	work could be done here to add pin names for different variants.
	Add functions to allow control from C, irrespective of choice of
	fast/slow GPIO register selection.
	(lpc2xxx_init_pinsel2_masked): Add to allow update of PINSEL2 in
	a read-modify-write cycle.
	(lpc2xxx_init_mam): Implement CYGHWR_HAL_ARM_LPC2XXX_MAM_MODE
	choice.

2008-01-29  Nick Garnett  <nickg@ecoscentric.com>

	* cdl/hal_arm_lpc2xxx.cdl: Update variant list and clock
	calculations to support LPC24xx variants.

2006-06-30  John Dallaway  <jld@ecoscentric.com>

	* cdl/hal_arm_lpc2xxx.cdl: Reference per-package documentation.

2005-07-06  Nick Garnett  <nickg@ecoscentric.com>

	* src/lpc2xxx_intr.c: Removed local hal_lsbit_index().
	
	* include/var_io.h: 
	* include/var_intr.h:
	Added support for CAN devices.

2005-05-12  John Dallaway  <jld@ecoscentric.com>

	* host/lpc21isp.c, host/makefile, host/README.txt: Add unsupported
	ISP tool with permission.

2005-05-10  John Dallaway  <jld@ecoscentric.com>

	* cdl/hal_arm_lpc2xxx.cdl: Default to the LPC2294 processor.

2005-02-07  Jonathan Larmour  <jifl@eCosCentric.com>

	* src/hal_diag.c (cyg_hal_lpc2xxx_uart_divisor): Check in an alternate
	more accurate version of determining divisor for safe-keeping, but
	don't use it.

2005-01-21  Nick Garnett  <nickg@ecoscentric.com>

	* src/lpc2xxx_misc.c (hal_hardware_init): Added call to
	hal_platform_init().

	* src/lpc2xxx_intr.c (hal_interrupt_configure): Added workaround
	for bugs in some LPC22xx variants. These changes should be benign
	for all other variants.

2005-01-19  Nick Garnett  <nickg@ecoscentric.com>

	* include/var_io.h: Fixed typo in ifdefs around EMC macro.

2005-01-14  Nick Garnett  <nickg@ecoscentric.com>

	* cdl/hal_arm_lpc2xxx.cdl: Changed calculation for
	CYGNUM_HAL_RTC_PERIOD to divide value by 100. The original value
	could cause overflows in some test programs.

	* src/lpc2xxx_clock.c: Adjusted clock handling in line with change
	to period value.

	* include/var_io.h: Some minor reorganization of ifdefs
	controlling PLL and other clocks.

2004-11-08  Nick Garnett  <nickg@ecoscentric.com>

	* include/var_io.h: Removed various ifdefs around some register
	definitions. Added a set of assembler-only macros to initialize
	the standard LPC2XXX devices.

	* cdl/hal_arm_lpc2xxx.cdl: Extended and completed list of LPC2XXX
	sub-variants.

2004-10-07  Nick Garnett  <nickg@ecoscentric.com>

	* cdl/hal_arm_lpc2xxx.cdl: Added lpc2xxx_intr.c and
	lpc2xxx_clock.c to compile line.

2004-10-06  Jonathan Larmour  <jifl@eCosCentric.com>

	* include/var_io.h: Include variant configuration so that
	ifdefs work.
	* src/lpc2xxx_misc.c: Restructure to break out large related
	functionality: clocks and interrupts.
	* src/lpc2xxx_clock.c: New file. As above.
	* src/lpc2xxx_intr.c: New file. As above.

2004-10-05  Nick Garnett  <nickg@ecoscentric.com>

	* include/var_io.h: Various small changes for LPC210x variant.

	* cdl/hal_arm_lpc2xxx.cdl: Added LPC210x variant. Added
	CYGNUM_HAL_BREAKPOINT_LIST_SIZE to enable use of on-target
	breakpoints -- set to 8 for small memory targets.

2004-09-01  John Dallaway  <jld@ecoscentric.com>

	* doc/lpc2xxx.sgml: Minor tidy up.

2004-08-28  Jonathan Larmour  <jifl@eCosCentric.com>

	* doc/lpc2xxx.sgml: Check in docs.

2004-08-27  Jonathan Larmour  <jifl@eCosCentric.com>

	* src/hal_diag.c (cyg_hal_plf_serial_init): Use
	CYGNUM_HAL_VIRTUAL_VECTOR_DEBUG_CHANNEL_BAUD when needed.

2004-08-26  Jonathan Larmour  <jifl@eCosCentric.com>

	* src/hal_diag.c (cyg_hal_plf_serial_isr): If we have a serial
	interrupt, always claim to handle it.
	Add some debug tracing.

2004-08-19  Jonathan Larmour  <jifl@eCosCentric.com>

	* src/lpc2xxx_misc.c (hal_clock_initialize): Try and fix clock skew
	by using PC instead of TC to count PCLKs.
	(hal_clock_reset): Adjust accordingly.
	(hal_clock_read): Ditto.
	(hal_delay_us): Try and fix clock skew.
	(hal_hardware_init): Initialize hal_if after intr setup.
	* cdl/hal_arm_lpc2xxx.cdl: Tidy.
	* include/hal_diag.h: Tidy and correct reset prototype.
	* src/hal_diag.c: Add debug to catch unexpected serial ints.

2004-08-16  Jonathan Larmour  <jifl@eCosCentric.com>

	* src/lpc2xxx_misc.c (hal_lpc2xxx_reset_cpu): Reset using watchdog.
	(hal_interrupt_configure): remove unused var "mode".
	* include/var_intr.h: Declare hal_lpc2xxx_reset_cpu.
	* include/var_io.h: Merge in more values from elsewhere.
	* include/var_arch.h: Can do idle thread action.

2004-07-23  Jonathan Larmour  <jifl@eCosCentric.com>

	* New package. Support for Philips LPC2xxx family of microcontrollers.

//===========================================================================
// ####GPLCOPYRIGHTBEGIN####                                                
// -------------------------------------------                              
// This file is part of eCos, the Embedded Configurable Operating System.   
// Copyright (C) 2004, 2005, 2006, 2008 Free Software Foundation, Inc.      
// Copyright (C) 2004, 2005, 2006, 2008 eCosCentric Limited                 
//
// 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 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., 51 Franklin Street,                      
// Fifth Floor, Boston, MA  02110-1301, USA.                                
// -------------------------------------------                              
// ####GPLCOPYRIGHTEND####                                                  
//===========================================================================
