diff --git a/os/hal/ports/AVR/XMEGA/ATXMEGAxxxA4U/hal_lld.c b/os/hal/ports/AVR/XMEGA/ATXMEGAxxxA4U/hal_lld.c new file mode 100644 index 000000000..b6a466e00 --- /dev/null +++ b/os/hal/ports/AVR/XMEGA/ATXMEGAxxxA4U/hal_lld.c @@ -0,0 +1,63 @@ +/* + ChibiOS - Copyright (C) 2006..2016 Giovanni Di Sirio + + 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 License 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. +*/ + +/** + * @file ATXMEGAxxxA4U/hal_lld.c + * @brief AVR HAL subsystem low level driver code. + * + * @addtogroup HAL + * @{ + */ + +#include "hal.h" + +/*==========================================================================*/ +/* Driver exported variables. */ +/*==========================================================================*/ + +/*==========================================================================*/ +/* Driver local variables and types. */ +/*==========================================================================*/ + +/*==========================================================================*/ +/* Driver local functions. */ +/*==========================================================================*/ + +/*==========================================================================*/ +/* Driver interrupt handlers. */ +/*==========================================================================*/ + +/*==========================================================================*/ +/* Driver exported functions. */ +/*==========================================================================*/ + +/** + * @brief Low level HAL driver initialization. + * + * @notapi + */ +void hal_lld_init(void) { + + OSC_CTRL |= OSC_RC32MEN_bm; /* Setup 32Mhz crystal. */ + + while(!(OSC_STATUS & OSC_RC32MRDY_bm)); /* Wait the systeme clock to + stabilize. */ + + CCP = CCP_IOREG_gc; /* Trigger protection mechanism. */ + CLK_CTRL = CLK_SCLKSEL_RC32M_gc; /* Enable internal 32Mhz crystal.*/ +} + +/** @} */ diff --git a/os/hal/ports/AVR/XMEGA/ATXMEGAxxxA4U/hal_lld.h b/os/hal/ports/AVR/XMEGA/ATXMEGAxxxA4U/hal_lld.h new file mode 100644 index 000000000..965b3a857 --- /dev/null +++ b/os/hal/ports/AVR/XMEGA/ATXMEGAxxxA4U/hal_lld.h @@ -0,0 +1,72 @@ +/* + ChibiOS - Copyright (C) 2006..2016 Giovanni Di Sirio + + 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 License 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. +*/ + +/** + * @file ATXMEGAxxxA4U/hal_lld.h + * @brief AVR HAL subsystem low level driver header. + * + * @addtogroup HAL + * @{ + */ + +#ifndef HAL_LLD_H +#define HAL_LLD_H + +/*===========================================================================*/ +/* Driver constants. */ +/*===========================================================================*/ + +/** + * @brief Defines the support for realtime counters in the HAL. + */ +#define HAL_IMPLEMENTS_COUNTERS FALSE + +/** + * @brief Platform name. + */ +#define PLATFORM_NAME "AVR XMEGA" + +/*===========================================================================*/ +/* Driver pre-compile time settings. */ +/*===========================================================================*/ + +/*===========================================================================*/ +/* Derived constants and error checks. */ +/*===========================================================================*/ + +/*===========================================================================*/ +/* Driver data structures and types. */ +/*===========================================================================*/ + +/*===========================================================================*/ +/* Driver macros. */ +/*===========================================================================*/ + +/*===========================================================================*/ +/* External declarations. */ +/*===========================================================================*/ + +#ifdef __cplusplus +extern "C" { +#endif + void hal_lld_init(void); +#ifdef __cplusplus +} +#endif + +#endif /* HAL_LLD_H */ + +/** @} */ diff --git a/os/hal/ports/AVR/XMEGA/ATXMEGAxxxA4U/platform.mk b/os/hal/ports/AVR/XMEGA/ATXMEGAxxxA4U/platform.mk new file mode 100644 index 000000000..fec5e837c --- /dev/null +++ b/os/hal/ports/AVR/XMEGA/ATXMEGAxxxA4U/platform.mk @@ -0,0 +1,9 @@ +# List of all the AVR platform files. +PLATFORMSRC = ${CHIBIOS}/os/hal/ports/AVR/XMEGA/ATXMEGAxxxA4U/hal_lld.c \ + +# Required include directories +PLATFORMINC = ${CHIBIOS}/os/hal/ports/AVR/XMEGA/ATXMEGAxxxA4U + +# Drivers compatible with the platform. +include $(CHIBIOS)/os/hal/ports/AVR/XMEGA/LLD/GPIOv1/driver.mk +include $(CHIBIOS)/os/hal/ports/AVR/XMEGA/LLD/TIMv1/driver.mk