================ Revision history ============================================
3.20.2:
 - Added Zero Gecko family header files.
 - Added MEMINFO_FLASH_PAGE_SIZE to DEVINFO structure.
 - emlib: Fixed bug regarding when MEMINFO in DEVINFO was introduced.
   The correct crossover is production revision 18.
 - emlib: Fixed bug in WDOG_Feed which does not feed the watchdog if the watchdog
   is disabled. Previously, the watchdog was broken after WDOG_Feed fed it
   when it was disabled.
 - emlib: Fixed issue in em_i2c.c, which should set the NACK bit in the I2C CMD
   register for the next to last byte received. The exception is when only
   one byte is to be received. Then the NACK bit must be set like the
   previous code was doing.
 - emlib: Added function BURTC_ClockFreqGet in order to determine clock frequency
   of BURTC.
 - emlib: Fixed bug in BURTC_Reset which made a subsequent call to BURTC_Init hang.
 - emlib: Added support for the IDAC module on the Zero Gecko family, em_idac.c/h.
 - emlib: Fixed bug in DAC_PrescaleCalc() which could return higher values than
   the maximum prescaler value. The fix makes sure to return the max prescaler
   value resulting in possible higher DAC frequency than requested.
 - emlib: Fixed I2C_BusFreqSet to use documented values for Nlow and Nhigh values,
   and do not decrement the div(isor) by one according to the formula because
   this resulted in higher I2C bus frequencies than desired.
 - usb: Increased robustness when plug/unplug-ing the USB cable rapidly.
 - usb: Changed implementation of usb string macro, wchar_t is no longer used.       3.20.0:
   GCC commandline options -fwide-exec-charset=UTF-16LE, -fshort-wchar and       - Part header files: Added EFM32 Wonder Gecko support.
   -Wl,--no-wchar-size-warning are no longer needed.                             - Part header files: FLASH_PAGE_SIZE macro added to all part files.
   Old version was used like this:                                               - emlib: LEUART: Added LEUART_TxDmaInEM2Enable and LEUART_RxDmaInEM2Enable for
     STATIC_CONST_STRING_DESC( iManufacturer, L"Energy Micro AS" );                enabling and disabling DMA LEUART RX and Tx in EM2 support.
   New version is used like this:                                                - usb: Documentation changes only.
     STATIC_CONST_STRING_DESC( iManufacturer, 'E','n','e','r','g','y',' ', \
                                              'M','i','c','r','o',' ','A','S' );3.0.3:
 - Internal release for testing Wonder Gecko support.

3.0.2:
 - Part header files: New header file em_device.h replace previous efm32.h.
   efm32.h is kept for backward compatibility.
 - Part startup files: system_efm32*.c files now handle CMU HFRCO frequencies
   correct for Production Revision 19 and higher.
   IAR startup_efm32*.c files now includes em_device.h.
 - emlib: Changes in MSC, CMU, BITBAND, DMA, BURTC and SYSTEM modules.
   Refer to emlib changes file for details.
 - usb: Bugfix, USBD_Init() may now be called when USB peripheral is in partial
   powerdown mode.
   New function USBD_EpIsBusy( int epAddr ) added to API.
   Changed USBD_AbortTransfer() from USBD_AbortTransfer( uint8_t ) to
   USBD_AbortTransfer( int ).
   Added configuration of which hw TIMER the stack will use.

3.0.1:
 - Part header files: Corrected resetvalue for CMU CTRL register
 - Part header files: Added missing DMA channel registers for Giant family
 - emlib: LFXO fix for Giant family.
 - usb: Added more flexibility for taking advantage of energymodes in USB applications.

3.0.0:
 - WARNING: This is a major update which reorganizes Energy Micro software.
   Peripheral APIs are kept intact, but you must update project-/makefiles
   and source files to use this version. PLEASE READ THE INSTRUCTIONS BELOW
   CAREFULLY.

 - Updated to CMSIS-SP-00300-r3p1-00rel0 delivery from ARM Inc, including
   DSP_Lib, RTOS abstraction layer, support for Cortex-M4, Cortex-M0+
   (Flycatcher) and more. For a detailed overview see
          CMSIS/Documentation/General/html/index.html

 - New file structure of part specific header files deployed according to
   CMSIS_V3 requirements. These are the most important changes, that must be
   changed in project files/Makefiles to update to this new release.

   Cortex-Mx Core header files
          CMSIS/CM3/CoreSupport          -> CMSIS/Include
   Gecko part specific header files
          CMSIS/CM3/DeviceSupport/EFM32/ -> Device/EnergyMicro/EFM32G/Include
   Tiny Gecko part specific header files
          CMSIS/CM3/DeviceSupport/EFM32/ -> Device/EnergyMicro/EFM32TG/Include
   Giant Gecko part specific header files
          CMSIS/CM3/DeviceSupport/EFM32/ -> Device/EnergyMicro/EFM32GG/Include
   Leopard Gecko part specific header files
          CMSIS/CM3/DeviceSupport/EFM32/ -> Device/EnergyMicro/EFM32LG/Include

 - The earlier "core_cm3.c" file is now gone and can be deleted from projects,
   the functionality has moved into "core_cm3.h" (this header file is included
   in the part specific header file)

 - Part specific header file size reduction has been implemented. The most common
   peripheral definitions have been moved into separate files, for instance a
   standard CMU implementation will be in defined in the file
        -> Device/EnergyMicro/EFM32<FAMILY>/Include/efm32<family>_cmu.h
   For devices without a full configuration of the peripheral, the definitions
   are kept in the part specific header file.

 - System files moved to family specific "Source" folder
   CMSIS/CM3/DeviceSupport/EFM32/system_efm32.c
        -> Device/EnergyMicro/EFM32<FAMILY>/Source/system_efm32<family>.c

 - Startup files moved to family specific "Source" folder
   CMSIS/CM3/DeviceSupport/EFM32/startup/iar/
          -> Device/EnergyMicro/EFM32<FAMILY>/Source/IAR
   CMSIS/CM3/DeviceSupport/EFM32/startup/arm/
          -> Device/EnergyMicro/EFM32<FAMILY>/Source/ARM
   CMSIS/CM3/DeviceSupport/EFM32/startup/cs3/
          -> Device/EnergyMicro/EFM32<FAMILY>/Source/G++

 - Additional "generic GCC" (such as https://launchpad.net/gcc-arm-embedded or
   http://www.yagarto.de) target startup/linker files
          -> Device/EnergyMicro/EFM32<FAMILY>/Source/GCC

 - Gecko startup file has got a "g" (for Gecko family) appended to filename,
   i.e. startup_efm32g.s, not startup_efm32.s as earlier. Similar for linker
   files.

 - "efm32lib" has been renamed "emlib" as it will support future Energy Micro
   devices that are not in the EFM32 families. You will need to change all
   include files starting  with
       #include "efm32_<peripheral>.h" -> #include "em_<peripheral>.h"
   in your source code. APIs within peripherals are compatible with earlier
   "efm32lib" releases.
   Also see emlib/Changes_emlib.txt file for further updates.

 - "efm32usb" folder has been renamed to just "usb" for the same reasons as
   the peripheral library, and all files are now prefixed em_usb.
   Change all header file references from
      efm32_usb<component>.h -> em_usb<component.h>
   Also see usb/Changes_usb.txt for further updates.

2.4.1:
 - New, open source friendly license for all core support files in CMSIS
   and efm32lib (efm32usb keeps original license)
 - Giant/Leopard Gecko Removed USBC_PRESENT from devices not having USB
 - Giant/Leopard Gecko EMU BOD calibration registers for Backup Domain
 - Giant/Leopard Gecko USB VBUSENCAP/DMPUAP_LOW and HIGH was inverted
 - Giant/Leopard Gecko MSC BUSSTRATEGY_DMAEM2 define corrected to DMAEM1
 - Giant/Leopard Gecko CMU, added HFXO boost constants
 - Giant/Leopard Gecko CMU changed naming of HFCLK for USBC to HFCLKNODIV
 - Updated efm32lib with fixes, see Changes file in efm32lib folder

2.4.0:
 - Removed unused OPAMP_TypeDef for Tiny Gecko
 - Added OPAMP_PRESENT/COUNT for Giant Gecko
 - efm32lib updates, see Changes file in efm32lib folder
 - efm32usb updates, see Changes filr in efm32usb folder

2.3.2:
 - Fixed IAR startup files, corrected alignment of interrupt vector table
 - Updated efm32usb library with fixes
 - Updated efm32lib with new Tiny Gecko and Giant Gecko features

2.3.0:
 - Added DEVICE_FAMILY defines to identify Gecko/Tiny/Leopard/Giant parts
 - Fixed missing EMU_IRQ definitions in Leopard Gecko startup files
 - Added USART location to Tiny Gecko parts
 - Added LEUART locations to Tiny Gecko parts
 - Updated efm32lib with new Giant Gecko features (see separate readme)
 - Updated efm32usb with USB Host stack support (see separate readme)

2.2.2:
 - Removed huge AF_PORT, AF_PIN macros from header files, only peripheral
   specific alternate function defines are included
 - Updated efm32usb library with fixes
 - Updated efm32lib library with fixes

2.2.1:
 - Added interleave to all Giant Gecko parts
 - Updated efm32lib with more Giant Gecko features
 - Added efm32usb, USB Device stack for Giant Gecko USB parts
 - Added LOCATION defines for all I2C alternate locations on Tiny Gecko

2.1.1:
 - Added header files for Giant Gecko and Leopard Gecko devices
 - Minor fix for Gecko devices, EMU_CTRL_MASK was wrong
 - Fix for linker issue alignment of .data section in codesourcery .ld files

2.0.1:
 - DAC_OPAnMUX_POSSEL_OPAnIN changed to DAC_OPAnMUX_POSSEL_OPAnINP for Tiny
   Gecko
 - Added CMU_ROUTE_LOCATION, LOC2 for Tiny Gecko
 - PRS #define fixes, remove extra IRDA fields only available on USART0

2.0.0:
 - This release based on CMSIS_2_00, includes DSP_Lib (for Keil MDKARM, IAR has
   a port included with EWARM)
 - Removed "shadow" example that used to be in CMSIS directory earlier, use
   "blink" from board examples as starting point instead
 - Restructured header files to comply with CMSIS_2_00
 - CMU_CALCTRL_REFSEL is renamed to CMU_CALCTRL_UPSEL to match reference
   manual and clearify new DOWNSEL calibrartion features for Tiny Gecko
 - Added header files for new package types for Gecko devices
 - Added header files for Tiny Gecko devices

1.3.0:
 - DMA register WAITSTATUS changed to CHWAITSTATUS for consistency
   DMA test req/sreq registers added, CHSREQSTATUS and CHREQSTATUS
 - IFS and IFC interrupt registers are now marked as readable for several
   peripherals
 - TIMER, CCC renamed to CDTI
 - TIMER, QEM has been renamed to QDM
 - AF_DBG_SWV/TCLK/TDIO renamed to more commonly used AF_DBG_SWD/SWDIO/SWDCLK
 - AF_EBI_ADDRDAT renamed to AF_EBI_AD
 - Removed bit fields for extra LCD segment registers for Gecko parts
 - Fixed LCD_SEGEN_MASK, bit width was too narrow in version 1.2.x
 - Fixed LCD_SYNCBUSY bit fields
 - CMU_PCNTCTRL reset values corrected
 - PCNT_TOP and PCNT_TOPB reset values corrected
 - ADC_LPFMODE_RCFILT and LPFMOD_DECAP definitions corrected (they were
   reversed)
 - USART_RXDATAFULLRIGHT and USART_RXDATAVRIGHT removed for Gecko parts
 - GPIO, renamed INSENSE_PRSSENSE to INSENSE_PRS, similar for INT
   to be consistent with updated documentation (Reference Manual)

1.2.1:
 - Fixed DEVINFO calibration shift and mask value for temperature sensor
   fixed in rev.C Gecko devices

1.2.0:
 - Added new subgroup "Parts" for all part definitions in doxygen format
 - Removed unused _PARAM_ type definitions, less clutter in header files
 - _CMU_PCNTCTRL_RESETVALUE corrected
 - Added C startup file for IAR, can be used as replacement for assembly file
 - Use #defines instead of "numeric values reentered" in bit field definitions
 - TIMER_PARAM_CCNUM(i) changed to TIMER_PARAM_CC_NUM(i)
 - DPI_CHAN_COUNT changed to PRS_CHAN_COUNT

1.1.4:
 - TIMER_INIT_DEFAULT fix to efm32lib

1.1.3:
 - Removed ADC ROUTE register
 - Renamed DEVINFO DACCAL  -> DAC0CAL for all 3 calibration registers and bit
   fields
 - Updated efm32lib with new peripherals

1.1.2:
 - Added support for CodeSourcery Sourcery G++ compiler and startup files
 - Device Information page (DEVINFO_TypeDef) - fixed several issues with
   endianness, and other changes to support test revision 4 and above parts.
   This has led to a small incompatibilty with test rev <= 4 and rev A parts,
   in that the flash and sram size bit fields has changed location.
 - DMA_CONTROL_TypeDef changed name to DMA_DESCRIPTOR_TypeDef to be better
   aligned with PL230 manual and code
 - DMA bit fields not supported on EFM32 was removed for the PL230 controller
 - DMA CTRL bit fields renamed to be more consistent with PL230 TRM manual
 - Added additional volatile statements to pointers in DMA Control structure
 - Fixed several registers that were readable, and was marked as __O (output
   only)

1.1.1:
 - Fixed startup code, CMSIS SystemInit cannot update global variable

1.1.0:
 - Note - some register bit field updates in this release are _not_ backward
   compatible
 - Updated register bit fields to comply with documentation updates, i.e.
   reference manual version > 0.83
 - Apply patch to CMSIS core for GCC issues
 - Added DMA_CONTROL_TypeDef control block for PrimeCell PL230 DMA controller
 - Added ROMTABLE PID / CHIP revision table and masks
 - Revised and updated Device Information page structure "DEVINFO page"
   This structure is ONLY valid for rev.B production devices
 - GPIO EXTIPSEL bit field marked "16" changed to 15 (bug correction)
 - Added more bit fields to TIMER_ROUTE registers
 - Cosmetic updates in doxygen comments and copyright statements

1.0.4:
 - ACMP INPUTSEL bit fields changed from ohm rating to res-n,
 - Added bit-band base addresses for peripherals and sram

1.0.3:
 - ADC SCANMODE and SCANCTRL bit field updates and corrections
 - Moved Readme.txt and Changes.txt to CMSIS/Readme-EFM32.txt and
   CMSIS/Changes-EFM32.txt
 - CCPEN and CDTIPEN splitted in TIMER_ROUTE
 - EMVREG in EMU_CTRL enumeration changed
 - LCD DISPCTRL volatage levels are part specific, changed settings changed to
   reflect this
 - Added "UL" (unsigned long) to some bit fields giving warnings due to sign
   conversion

1.0.2:
 - Corrected revision numbers in file headers
 - Removed example code that was moved into BSP/DVK installer package

1.0.1:
 - Updated to use official CMSIS1V30 release
 - Corrected IRQ vector table in assembly startup files, IMEM to MSC,
   UDMA to DMA
 - DMA peripheral/signal names corrected
 - Example Blinky application updated to work on all EFM32 MCU-Modules on DVK
 - Added "simple" board support package to example
 - Added "UL" (unsigned long) tag to several fields

1.0.0:
 - Initial release
 - Includes CMSIS1V30 2nd PreRelease
 - Now requires two include paths, CMSIS/CM3/DeviceSupport/EnergyMicro/EFM32 and
   CMSIS/CM3/CoreSupport
