================ Revision history ============================================
4.0.0:
 - Use ARM CMSIS version 4.2.0.
 - emlib:  New style version macros in em_version.h.
 - usb:    Added support for isochronous endpoint transfers.

3.20.14:
 - EFR32 header release.
 - USB release.

3.20.13:
 - CMSIS:  No changes.
 - Device: Added device header files for new Happy Gecko family.
 - Device: Corrected RF_GPIO0_PORT macro in EZRLG/WG part header files.
 - emlib:  Added new style family #defines in em_system.h, including EZR32 families.
 - emlib:  Fixed I2C_FREQ_STANDARD_MAX macros.
 - emlib:  Fixed bug in MSC_WriteWord which called internal functions that were
           linked to flash for armgcc. All subsequent calls of MSC_WriteWord
           should now be linked to RAM for all supported compilers. The
           internals of MSC_WriteWord will check the global variable
           SystemCoreClock in order to make sure the frequency is high enough
           for flash operations. If the core clock frequency is changed,
           software is responsible for calling MSC_Init or SystemCoreClockGet in
           order to set the SystemCoreClock variable to the correct value.
 - emlib:  Added errata fix IDAC_101.
 - usb:    No changes.

3.20.12:
 - emlib: Added errata fix EMU_108.
 - emlib: #ifdef's now use register defines instead of a mix of register and family defines.
 - emlib: Added a case for when there are only 4 DMA channels available:
          Alignment was (correctly) defined at 7 bit, but got asserted for 8 bit, leading
          to unpredicatable tripped asserts.
 - emlib: Added USART_INITPRSTRIGGER_DEFAULT defined structure to support HWCONF.
 - emlib: Added support for LFC clock tree.
 - emlib: Added CMU_USHFRCOBandSet() and CMU_USHFRCOBandGet().
 - usb:   Replaced USB_EP0_SIZE and USB_MAX_EP_SIZE macros with new versions which
          have correct values for low speed/full speed/endpoint types.

3.20.11:
 - Device header release only. Added part headers for EZR families EZR32LG
   and EZR32WG.

3.20.10:
 - CMSIS/Device/emlib: No changes.
 - usb: Added support for Happy Gecko USB LEM (Low Energy Modes).
 - usb: Fixed bug in suspend powersave mode implementation.

3.20.9:
 - New and updated headers for the Happy Gecko family.
 - emlib: Added support for Happy Gecko including support for the new oscillator USHFRCO.
 - emlib: Added MSC_WriteWordFast() function. This flash write function has a similar
          performance as the old  MSC_WriteWord(), but it disables interrupts and
          requires a core clock frequency of at least 14MHz. The new MSC_WriteWord()
          is slower, but it does not disable interrupts and may be called with core
          clock frequencies down to 1MHz.
 - emlib: Fixed a bug in EMU_EnterEM4() that set other EM4 configuration bits to 0
          on EM4 entry.
 - emlib: Added EMU_EM23Init().
 - emlib: Fixed a bug in CMU_FlashWaitStateControl() where it failed to set the
          required wait-state configuration if the MSC is locked.
 - emlib: Added EMU interrupt handling functions.
 - emlib: BURTC_Reset() changed to use async reset RMU_CTRL_BURSTEN instead of
          reset value writeback. This makes the function independent of a selected
          and enabled clock.
 - emlib: BURTC_Sync() now returns without waiting for BURTC->SYNCBUSY to clear
          when no clock is selected in BURTC_CTRL_CLKSEL.
 - emlib: Fixed assertion bug in ACMP_ChannelSet() that checked the negSel parameter
          against the wrong upper bound.
 - usb: Added support for Happy Gecko USB peripheral.
 - usb: Improved USB cable plug/unplug robustness.

3.20.8:
 - This release contains headers etc. for the Happy Gecko family.

3.20.7:
 - Support for new part numbers EFM32GG900F1024, EFM32GG900F512,
   EFM32LG360F256 and EFM32WG360F256.
 - Header files for Leopard device family are according to Product Revision E.
   Ref. PCN #1406131.
 - emlib: Fixed CMU_MAX_FREQ_HFLE macro for Wonder family.
 - emlib: Fixed MSC_WriteWord() bug.
 - emlib: Added syncbusy wait in RTC_Reset() for Gecko family.
 - usb: Fixed bug in device stack when resuming from partial powerdown mode.
 - usb: Disable PHY pins and stop USB clocks in USBD_Stop() and USBH_Stop() functions.
 - usb: Fixed max FIFO size limit for device mode.
 - usb: Fixed possible deadlock in USBD_Init() and USBH_WaitForDeviceConnectionB().
 - usb: Added configurable VBUSEN pin usage to support hw without VBUS switch.

3.20.6:
 - emlib: Corrected fix for Errata EMU_E107.

3.20.5:
 - New part header file folder structure.
   Header files are now in this path:
     Device/SiliconLabs/EFM32<FAMILY>/Include/efm32<family><partno>.h
   Old folder structure is still present for backward compatibility reasons.
     Device/EnergyMicro/EFM32<FAMILY>/Include/efm32<family>_cmu.h
   The same change of path applies to all startup and linker files:
     Device/SiliconLabs/EFM32<FAMILY>/Source/...
 - emlib: Updated license texts.
 - emlib: Removed unnecessary fix for Wonder Gecko.
 - emlib: Updated LFXO temperature compensation in CHIP_Init().
 - emlib: Changed LESENSE_ScanStart, LESENSE_ScanStop, LESENSE_DecoderStart,
          LESENSE_ResultBufferClear and LESENSE_Reset functions to wait until
          CMD register writes complete in order to make sure CMD register writes do
          not break each other, and for register values to be consistent when
          returning from functions that write to the CMD register.
 - emlib: Added fix for Errata EMU_E107.
 - emlib: Added family to SYSTEM_ChipRevision_TypeDef.
 - emlib: Fixed bug in function AES_OFB128 which failed on Zero Gecko.
 - emlib: Fixed RMU_ResetCauseGet to return correct reset causes.
 - emlib: Fixed bug in RTC_CounterReset which failed to reset counter immediately
          after return on Gecko devices.
 - emlib: Added static inline non-blocking USART receive functions (USART_Rx...).
 - emlib: Added function SYSTEM_GetFamily.
 - emlib: Added function DAC_ChannelOutputSet.
 - emlib: Fixed MSC_WriteWord to not use WDOUBLE if LPWRITE is set.
 - usb: Fixed bug which could cause malfunctioning when prescaling core clock.
 - usb: Updated license terms.
 - usb: Fixed potential EP sram partitioning problems.
 - usb: Allow 64 and 32 byte EP0 max packetsize.
 - usb: Fixed bug in USBTIMER_Start(), added check on timeout value of 0.
 - usb: Fixed setting USB device state on USB reset from suspend.
 - usb: Added support for composite devices in the device stack.
 - usb: Made special provisions for passing USB-IF "Powered Suspend" test.

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.
   GCC commandline options -fwide-exec-charset=UTF-16LE, -fshort-wchar and
   -Wl,--no-wchar-size-warning are no longer needed.
   Old version was used like this:
     STATIC_CONST_STRING_DESC( iManufacturer, L"Energy Micro AS" );
   New version is used like this:
     STATIC_CONST_STRING_DESC( iManufacturer, 'E','n','e','r','g','y',' ', \
                                              'M','i','c','r','o',' ','A','S' );

3.20.0:
 - Part header files: Added EFM32 Wonder Gecko support.
 - Part header files: FLASH_PAGE_SIZE macro added to all part files.
 - emlib: LEUART: Added LEUART_TxDmaInEM2Enable and LEUART_RxDmaInEM2Enable for
   enabling and disabling DMA LEUART RX and Tx in EM2 support.
 - usb: Documentation changes only.

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
