/**
 * \file
 *
 * \brief SAM E54 HRI top-level header file
 *
 * Copyright (c) 2016-2019 Microchip Technology Inc. and its subsidiaries.
 *
 * \asf_license_start
 *
 * \page License
 *
 * Subject to your compliance with these terms, you may use Microchip
 * software and any derivatives exclusively with Microchip products.
 * It is your responsibility to comply with third party license terms applicable
 * to your use of third party software (including open source software) that
 * may accompany Microchip software.
 *
 * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES,
 * WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE,
 * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY,
 * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE
 * LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL
 * LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE
 * SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE
 * POSSIBILITY OR THE DAMAGES ARE FORESEEABLE.  TO THE FULLEST EXTENT
 * ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY
 * RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY,
 * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE.
 *
 * \asf_license_stop
 */

#ifndef _HRI_E54_H_INCLUDED_
#define _HRI_E54_H_INCLUDED_

#include <sam.h>
#include <hri_ac_e54.h>
#include <hri_adc_e54.h>
#include <hri_aes_e54.h>
#include <hri_can_e54.h>
#include <hri_ccl_e54.h>
#include <hri_cmcc_e54.h>
#include <hri_dac_e54.h>
#include <hri_dmac_e54.h>
#include <hri_dsu_e54.h>
#include <hri_eic_e54.h>
#include <hri_evsys_e54.h>
#include <hri_freqm_e54.h>
#include <hri_gclk_e54.h>
#include <hri_gmac_e54.h>
#include <hri_hmatrixb_e54.h>
#include <hri_i2s_e54.h>
#include <hri_icm_e54.h>
#include <hri_mclk_e54.h>
#include <hri_nvmctrl_e54.h>
#include <hri_osc32kctrl_e54.h>
#include <hri_oscctrl_e54.h>
#include <hri_pac_e54.h>
#include <hri_pcc_e54.h>
#include <hri_pdec_e54.h>
#include <hri_pm_e54.h>
#include <hri_port_e54.h>
#include <hri_qspi_e54.h>
#include <hri_ramecc_e54.h>
#include <hri_rstc_e54.h>
#include <hri_rtc_e54.h>
#include <hri_sdhc_e54.h>
#include <hri_sercom_e54.h>
#include <hri_supc_e54.h>
#include <hri_tc_e54.h>
#include <hri_tcc_e54.h>
#include <hri_trng_e54.h>
#include <hri_usb_e54.h>
#include <hri_wdt_e54.h>

#endif /* _HRI_E54_H_INCLUDED_ */
