Skip to content

Commit

Permalink
Merge pull request RIOT-OS#13312 from benpicco/cpu/sam0-vendor_cleanup
Browse files Browse the repository at this point in the history
cpu/sam0_common: use vendor provided MCU header dispatch
  • Loading branch information
dylad authored Feb 7, 2020
2 parents c585535 + bd1953d commit b5bb846
Show file tree
Hide file tree
Showing 10 changed files with 147 additions and 312 deletions.
3 changes: 3 additions & 0 deletions cpu/sam0_common/Makefile.include
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
# Define the CPU family so we can differentiate between them in the code
CFLAGS += -DCPU_FAM_$(call uppercase_and_underscore,$(CPU_FAM))

# Generate ASF compatible model definition
CFLAGS += -D__$(call uppercase_and_underscore,$(CPU_MODEL))__

# Set ROM and RAM lengths according to CPU model
ifneq (,$(filter samd21g18a samd21j18a saml21j18b saml21j18a samr21e18a \
samr21g18a samr30g18a samr34j18b,$(CPU_MODEL)))
Expand Down
43 changes: 37 additions & 6 deletions cpu/sam0_common/include/cpu_conf.h
Original file line number Diff line number Diff line change
Expand Up @@ -22,12 +22,43 @@
#define CPU_CONF_H

#include "cpu_conf_common.h"
#if defined(CPU_SAML1X)
#include "vendor/sam23.h"
#elif defined(CPU_SAMD5X)
#include "vendor/samd5x.h"
#else
#include "vendor/sam0.h"

/* Workaround redefinition of LITTLE_ENDIAN macro (part1) */
#ifdef LITTLE_ENDIAN
#define __TMP_LITTLE_ENDIAN LITTLE_ENDIAN
#undef LITTLE_ENDIAN
#endif

#if defined(CPU_SAMD21A) || defined(CPU_SAMD21B) || \
defined(CPU_SAMD21C) || defined(CPU_SAMD21D)
#include "vendor/samd21/include/samd21.h"
#elif defined(CPU_SAMD51)
#include "vendor/samd51/include/samd51.h"
#elif defined(CPU_SAME54)
#include "vendor/same54/include/same54.h"
#elif defined(CPU_SAML10)
#include "vendor/saml10/include/sam.h"
#elif defined(CPU_SAML11)
#include "vendor/saml11/include/sam.h"
#elif defined(CPU_SAML21A)
#include "vendor/saml21/include/saml21.h"
#elif defined(CPU_SAML21B)
#include "vendor/saml21/include_b/saml21.h"
#elif defined(CPU_SAMR21)
#include "vendor/samr21/include/samr21.h"
#elif defined(CPU_SAMR30)
#include "vendor/samr30/include/samr30.h"
#elif defined(CPU_SAMR34)
#include "vendor/samr34/include/samr34.h"
#endif

/* Workaround redefinition of LITTLE_ENDIAN macro (part2) */
#ifdef LITTLE_ENDIAN
#undef LITTLE_ENDIAN
#endif

#ifdef __TMP_LITTLE_ENDIAN
#define LITTLE_ENDIAN __TMP_LITTLE_ENDIAN
#endif

#ifdef __cplusplus
Expand Down
149 changes: 0 additions & 149 deletions cpu/sam0_common/include/vendor/sam0.h

This file was deleted.

78 changes: 0 additions & 78 deletions cpu/sam0_common/include/vendor/sam23.h

This file was deleted.

64 changes: 64 additions & 0 deletions cpu/sam0_common/include/vendor/samd51/include/samd51.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
/**
* \file
*
* \brief Top header file for SAMD51
*
* Copyright (c) 2019 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 _SAMD51_
#define _SAMD51_

/**
* \defgroup SAMD51_definitions SAMD51 Device Definitions
* \brief SAMD51 CMSIS Definitions.
*/

#if defined(__SAMD51G18A__) || defined(__ATSAMD51G18A__)
#include "samd51g18a.h"
#elif defined(__SAMD51G19A__) || defined(__ATSAMD51G19A__)
#include "samd51g19a.h"
#elif defined(__SAMD51J18A__) || defined(__ATSAMD51J18A__)
#include "samd51j18a.h"
#elif defined(__SAMD51J19A__) || defined(__ATSAMD51J19A__)
#include "samd51j19a.h"
#elif defined(__SAMD51J19B__) || defined(__ATSAMD51J19B__)
#include "samd51j19b.h"
#elif defined(__SAMD51J20A__) || defined(__ATSAMD51J20A__)
#include "samd51j20a.h"
#elif defined(__SAMD51J20C__) || defined(__ATSAMD51J20C__)
#include "samd51j20c.h"
#elif defined(__SAMD51N19A__) || defined(__ATSAMD51N19A__)
#include "samd51n19a.h"
#elif defined(__SAMD51N20A__) || defined(__ATSAMD51N20A__)
#include "samd51n20a.h"
#elif defined(__SAMD51P19A__) || defined(__ATSAMD51P19A__)
#include "samd51p19a.h"
#elif defined(__SAMD51P20A__) || defined(__ATSAMD51P20A__)
#include "samd51p20a.h"
#else
#error Library does not support the specified device.
#endif

#endif /* _SAMD51_ */
Loading

0 comments on commit b5bb846

Please sign in to comment.