/**
 * \file
 *
 * \brief Top header file for SAME54
 *
 * Copyright (c) 2018 Microchip Technology Inc.
 *
 * \asf_license_start
 *
 * \page License
 *
 * SPDX-License-Identifier: Apache-2.0
 *
 * Licensed under the Apache License, Version 2.0 (the "License"); you may
 * not use this file except in compliance with the License.
 * You may obtain a copy of the Licence at
 * 
 * http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an AS IS BASIS, WITHOUT
 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 *
 * \asf_license_stop
 *
 */

#ifndef _SAME54_
#define _SAME54_

/**
 * \defgroup SAME54_definitions SAME54 Device Definitions
 * \brief SAME54 CMSIS Definitions.
 */

#if   defined(__SAME54N19A__) || defined(__ATSAME54N19A__)
  #include "same54n19a.h"
#elif defined(__SAME54N20A__) || defined(__ATSAME54N20A__)
  #include "same54n20a.h"
#elif defined(__SAME54P19A__) || defined(__ATSAME54P19A__)
  #include "same54p19a.h"
#elif defined(__SAME54P20A__) || defined(__ATSAME54P20A__)
  #include "same54p20a.h"
#else
  #error Library does not support the specified device.
#endif

#endif /* _SAME54_ */
