You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mynewt.apache.org by cc...@apache.org on 2016/11/22 03:25:57 UTC
[42/51] [abbrv] [partial] incubator-mynewt-core git commit: Remove
non-Apache-compatible Nordic SDK files.
http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/a1481cb2/hw/mcu/nordic/src/ext/nRF5_SDK_11.0.0_89a8197/components/drivers_nrf/i2s/nrf_drv_i2s.c
----------------------------------------------------------------------
diff --git a/hw/mcu/nordic/src/ext/nRF5_SDK_11.0.0_89a8197/components/drivers_nrf/i2s/nrf_drv_i2s.c b/hw/mcu/nordic/src/ext/nRF5_SDK_11.0.0_89a8197/components/drivers_nrf/i2s/nrf_drv_i2s.c
deleted file mode 100644
index 7d978e9..0000000
--- a/hw/mcu/nordic/src/ext/nRF5_SDK_11.0.0_89a8197/components/drivers_nrf/i2s/nrf_drv_i2s.c
+++ /dev/null
@@ -1,355 +0,0 @@
-/* Copyright (c) 2015 Nordic Semiconductor. All Rights Reserved.
- *
- * The information contained herein is property of Nordic Semiconductor ASA.
- * Terms and conditions of usage are described in detail in NORDIC
- * SEMICONDUCTOR STANDARD SOFTWARE LICENSE AGREEMENT.
- *
- * Licensees are granted free, non-transferable use of the information. NO
- * WARRANTY of ANY KIND is provided. This heading must NOT be removed from
- * the file.
- *
- */
-
-#include "nrf_drv_i2s.h"
-#include "nrf_drv_common.h"
-#include "nrf_gpio.h"
-#include "nrf_assert.h"
-#include "app_util_platform.h"
-#include "sdk_common.h"
-
-#if (I2S_ENABLED == 0)
- #error "I2S not enabled in driver configuration file."
-#endif
-
-// Control block - driver instance local data.
-typedef struct
-{
- nrf_drv_i2s_data_handler_t handler;
- nrf_drv_state_t state;
-
- bool synchronized_mode : 1;
- bool rx_ready : 1;
- bool tx_ready : 1;
- bool just_started : 1;
- uint16_t buffer_half_size;
- uint32_t * p_rx_buffer;
- uint32_t * p_tx_buffer;
-} i2s_control_block_t;
-static i2s_control_block_t m_cb;
-
-#define MODULE_INITIALIZED (m_cb.state == NRF_DRV_STATE_INITIALIZED)
-#include "sdk_macros.h"
-
-static nrf_drv_i2s_config_t const m_default_config = NRF_DRV_I2S_DEFAULT_CONFIG;
-
-
-static void configure_pins(nrf_drv_i2s_config_t const * p_config)
-{
- uint32_t mck_pin, sdout_pin, sdin_pin;
-
- // Configure pins used by the peripheral:
-
- // - SCK and LRCK (required) - depending on the mode of operation these
- // pins are configured as outputs (in Master mode) or inputs (in Slave
- // mode).
- if (p_config->mode == NRF_I2S_MODE_MASTER)
- {
- nrf_gpio_cfg_output(p_config->sck_pin);
- nrf_gpio_cfg_output(p_config->lrck_pin);
- }
- else
- {
- nrf_gpio_cfg_input(p_config->sck_pin, NRF_GPIO_PIN_NOPULL);
- nrf_gpio_cfg_input(p_config->lrck_pin, NRF_GPIO_PIN_NOPULL);
- }
-
- // - MCK (optional) - always output,
- if (p_config->mck_pin != NRF_DRV_I2S_PIN_NOT_USED)
- {
- mck_pin = p_config->mck_pin;
- nrf_gpio_cfg_output(mck_pin);
- }
- else
- {
- mck_pin = NRF_I2S_PIN_NOT_CONNECTED;
- }
-
- // - SDOUT (optional) - always output,
- if (p_config->sdout_pin != NRF_DRV_I2S_PIN_NOT_USED)
- {
- sdout_pin = p_config->sdout_pin;
- nrf_gpio_cfg_output(sdout_pin);
- }
- else
- {
- sdout_pin = NRF_I2S_PIN_NOT_CONNECTED;
- }
-
- // - SDIN (optional) - always input.
- if (p_config->sdin_pin != NRF_DRV_I2S_PIN_NOT_USED)
- {
- sdin_pin = p_config->sdin_pin;
- nrf_gpio_cfg_input(sdin_pin, NRF_GPIO_PIN_NOPULL);
- }
- else
- {
- sdin_pin = NRF_I2S_PIN_NOT_CONNECTED;
- }
-
- nrf_i2s_pins_set(NRF_I2S, p_config->sck_pin, p_config->lrck_pin,
- mck_pin, sdout_pin, sdin_pin);
-}
-
-
-ret_code_t nrf_drv_i2s_init(nrf_drv_i2s_config_t const * p_config,
- nrf_drv_i2s_data_handler_t handler)
-{
- ASSERT(handler);
- if (m_cb.state != NRF_DRV_STATE_UNINITIALIZED)
- {
- return NRF_ERROR_INVALID_STATE;
- }
-
- if (p_config == NULL)
- {
- p_config = &m_default_config;
- }
-
- if (!nrf_i2s_configure(NRF_I2S, p_config->mode,
- p_config->format,
- p_config->alignment,
- p_config->sample_width,
- p_config->channels,
- p_config->mck_setup,
- p_config->ratio))
- {
- return NRF_ERROR_INVALID_PARAM;
- }
- configure_pins(p_config);
-
- m_cb.handler = handler;
-
- nrf_drv_common_irq_enable(I2S_IRQn, p_config->irq_priority);
-
- m_cb.state = NRF_DRV_STATE_INITIALIZED;
-
- return NRF_SUCCESS;
-}
-
-
-void nrf_drv_i2s_uninit(void)
-{
- ASSERT(m_cb.state != NRF_DRV_STATE_UNINITIALIZED);
-
- nrf_drv_i2s_stop();
-
- nrf_drv_common_irq_disable(I2S_IRQn);
-
- m_cb.state = NRF_DRV_STATE_UNINITIALIZED;
-}
-
-
-ret_code_t nrf_drv_i2s_start(uint32_t * p_rx_buffer,
- uint32_t * p_tx_buffer,
- uint16_t buffer_size,
- uint8_t flags)
-{
- ASSERT((p_rx_buffer != NULL) || (p_tx_buffer != NULL));
-
- uint16_t buffer_half_size = buffer_size / 2;
- ASSERT(buffer_half_size != 0);
-
- VERIFY_MODULE_INITIALIZED();
-
- if ((p_rx_buffer != NULL) && !nrf_drv_is_in_RAM(p_rx_buffer))
- {
- return NRF_ERROR_INVALID_ADDR;
- }
-
- if ((p_tx_buffer != NULL) && !nrf_drv_is_in_RAM(p_tx_buffer))
- {
- return NRF_ERROR_INVALID_ADDR;
- }
-
- // Initially we set up the peripheral to use the first half of each buffer,
- // then in 'I2S_IRQHandler' we will switch to the second half.
- nrf_i2s_transfer_set(NRF_I2S, buffer_half_size, p_rx_buffer, p_tx_buffer);
-
- m_cb.p_rx_buffer = p_rx_buffer;
- m_cb.p_tx_buffer = p_tx_buffer;
- m_cb.buffer_half_size = buffer_half_size;
- m_cb.just_started = true;
-
- if ((flags & NRF_DRV_I2S_FLAG_SYNCHRONIZED_MODE) &&
- // [synchronized mode makes sense only when both RX and TX are enabled]
- (m_cb.p_rx_buffer != NULL) && (m_cb.p_tx_buffer != NULL))
- {
- m_cb.synchronized_mode = true;
- m_cb.rx_ready = false;
- m_cb.tx_ready = false;
- }
- else
- {
- m_cb.synchronized_mode = false;
- }
-
- nrf_i2s_enable(NRF_I2S);
-
- m_cb.state = NRF_DRV_STATE_POWERED_ON;
-
- if (m_cb.p_tx_buffer != NULL)
- {
- // Get from the application the first portion of data to be sent - we
- // need to have it in the transmit buffer before we start the transfer.
- // Unless the synchronized mode is active. In this mode we must wait
- // with this until the first portion of data is received, so here we
- // just make sure that there will be silence on the SDOUT line prior
- // to that moment.
- if (m_cb.synchronized_mode)
- {
- memset(m_cb.p_tx_buffer, 0, buffer_size);
- }
- else
- {
- m_cb.handler(NULL, m_cb.p_tx_buffer, m_cb.buffer_half_size);
- }
- }
-
- nrf_i2s_event_clear(NRF_I2S, NRF_I2S_EVENT_RXPTRUPD);
- nrf_i2s_event_clear(NRF_I2S, NRF_I2S_EVENT_TXPTRUPD);
- nrf_i2s_int_enable(NRF_I2S,
- NRF_I2S_INT_RXPTRUPD_MASK | NRF_I2S_INT_TXPTRUPD_MASK);
- nrf_i2s_task_trigger(NRF_I2S, NRF_I2S_TASK_START);
-
- return NRF_SUCCESS;
-}
-
-
-void nrf_drv_i2s_stop(void)
-{
- ASSERT(m_cb.state != NRF_DRV_STATE_UNINITIALIZED);
-
- // First disable interrupts, then trigger the STOP task, so no spurious
- // RXPTRUPD and TXPTRUPD events (see FTPAN-55) will be processed.
- nrf_i2s_int_disable(NRF_I2S,
- NRF_I2S_INT_RXPTRUPD_MASK | NRF_I2S_INT_TXPTRUPD_MASK);
-
- nrf_i2s_task_trigger(NRF_I2S, NRF_I2S_TASK_STOP);
-
- nrf_i2s_disable(NRF_I2S);
-
- m_cb.state = NRF_DRV_STATE_INITIALIZED;
-}
-
-
-void I2S_IRQHandler(void)
-{
- uint32_t * p_data_received = NULL;
- uint32_t * p_data_to_send = NULL;
-
- if (nrf_i2s_event_check(NRF_I2S, NRF_I2S_EVENT_TXPTRUPD))
- {
- nrf_i2s_event_clear(NRF_I2S, NRF_I2S_EVENT_TXPTRUPD);
-
- // If transmission is not enabled, but for some reason the TXPTRUPD
- // event has been generated, just ignore it.
- if (m_cb.p_tx_buffer != NULL)
- {
- uint32_t * p_tx_buffer_next;
- if (nrf_i2s_tx_buffer_get(NRF_I2S) == m_cb.p_tx_buffer)
- {
- p_tx_buffer_next = m_cb.p_tx_buffer + m_cb.buffer_half_size;
- }
- else
- {
- p_tx_buffer_next = m_cb.p_tx_buffer;
- }
- nrf_i2s_tx_buffer_set(NRF_I2S, p_tx_buffer_next);
-
- m_cb.tx_ready = true;
-
- // Now the part of the buffer that we've configured as "next" should
- // be filled by the application with proper data to be sent;
- // the peripheral is sending data from the other part of the buffer
- // (but it will finish soon...).
- p_data_to_send = p_tx_buffer_next;
- }
- }
-
- if (nrf_i2s_event_check(NRF_I2S, NRF_I2S_EVENT_RXPTRUPD))
- {
- nrf_i2s_event_clear(NRF_I2S, NRF_I2S_EVENT_RXPTRUPD);
-
- // If reception is not enabled, but for some reason the RXPTRUPD event
- // has been generated, just ignore it.
- if (m_cb.p_rx_buffer != NULL)
- {
- uint32_t * p_rx_buffer_next;
- if (nrf_i2s_rx_buffer_get(NRF_I2S) == m_cb.p_rx_buffer)
- {
- p_rx_buffer_next = m_cb.p_rx_buffer + m_cb.buffer_half_size;
- }
- else
- {
- p_rx_buffer_next = m_cb.p_rx_buffer;
- }
- nrf_i2s_rx_buffer_set(NRF_I2S, p_rx_buffer_next);
-
- m_cb.rx_ready = true;
-
- // The RXPTRUPD event is generated for the first time right after
- // the transfer is started. Since there is no data received yet at
- // this point we only update the buffer pointer (it is done above),
- // there is no callback to the application.
- // [for synchronized mode this has to be handled differently -
- // see below]
- if (m_cb.just_started && !m_cb.synchronized_mode)
- {
- m_cb.just_started = false;
- }
- else
- {
- // The RXPTRUPD event indicates that from now on the peripheral
- // will be filling the part of the buffer that was pointed at
- // the time the event has been generated, hence now we can let
- // the application process the data stored in the other part of
- // the buffer - the one that we've just set to be filled next.
- p_data_received = p_rx_buffer_next;
- }
- }
- }
-
- // Call the data handler passing received data to the application and/or
- // requesting data to be sent.
- if (!m_cb.synchronized_mode)
- {
- if ((p_data_received != NULL) || (p_data_to_send != NULL))
- {
- m_cb.handler(p_data_received, p_data_to_send,
- m_cb.buffer_half_size);
- }
- }
- // In the synchronized mode wait until the events for both RX and TX occur.
- // And ignore the initial occurrences of these events, since they only
- // indicate that the transfer has started - no data is received yet at
- // that moment, so we have got nothing to pass to the application.
- else
- {
- if (m_cb.rx_ready && m_cb.tx_ready)
- {
- m_cb.rx_ready = false;
- m_cb.tx_ready = false;
-
- if (m_cb.just_started)
- {
- m_cb.just_started = false;
- }
- else
- {
- m_cb.handler(nrf_i2s_rx_buffer_get(NRF_I2S),
- nrf_i2s_tx_buffer_get(NRF_I2S),
- m_cb.buffer_half_size);
- }
- }
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/a1481cb2/hw/mcu/nordic/src/ext/nRF5_SDK_11.0.0_89a8197/components/drivers_nrf/i2s/nrf_drv_i2s.h
----------------------------------------------------------------------
diff --git a/hw/mcu/nordic/src/ext/nRF5_SDK_11.0.0_89a8197/components/drivers_nrf/i2s/nrf_drv_i2s.h b/hw/mcu/nordic/src/ext/nRF5_SDK_11.0.0_89a8197/components/drivers_nrf/i2s/nrf_drv_i2s.h
deleted file mode 100644
index b732f64..0000000
--- a/hw/mcu/nordic/src/ext/nRF5_SDK_11.0.0_89a8197/components/drivers_nrf/i2s/nrf_drv_i2s.h
+++ /dev/null
@@ -1,227 +0,0 @@
-/* Copyright (c) 2015 Nordic Semiconductor. All Rights Reserved.
- *
- * The information contained herein is property of Nordic Semiconductor ASA.
- * Terms and conditions of usage are described in detail in NORDIC
- * SEMICONDUCTOR STANDARD SOFTWARE LICENSE AGREEMENT.
- *
- * Licensees are granted free, non-transferable use of the information. NO
- * WARRANTY of ANY KIND is provided. This heading must NOT be removed from
- * the file.
- *
- */
-
-/**@file
- * @addtogroup nrf_i2s I2S HAL and driver
- * @ingroup nrf_drivers
- * @brief @tagAPI52 Inter-IC Sound (I2S) interface APIs.
- *
- * @defgroup nrf_drv_i2s I2S driver
- * @{
- * @ingroup nrf_i2s
- * @brief @tagAPI52 Inter-IC Sound (I2S) interface driver.
- */
-
-
-#ifndef NRF_DRV_I2S_H__
-#define NRF_DRV_I2S_H__
-
-#include "nordic_common.h"
-#include "nrf_drv_config.h"
-#include "nrf_i2s.h"
-#include "sdk_errors.h"
-
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * @brief This value can be provided instead of a pin number for the signals
- * SDOUT, SDIN, and MCK to specify that a given signal is not used
- * and therefore does not need to be connected to a pin.
- */
-#define NRF_DRV_I2S_PIN_NOT_USED 0xFF
-
-/**
- * @brief Flag indicating that calls to the data handler for RX and TX should
- * be synchronized, thus always combined into one call.
- *
- * Use this flag when calling @ref nrf_drv_i2s_start to force a common call
- * to the @ref nrf_drv_i2s_data_handler_t "data handler" for RX and TX data.
- * This is useful, for example, when received data should be processed and
- * then be sent back. Obviously, this flag is only applicable when both
- * directions (RX and TX) are enabled.
- */
-#define NRF_DRV_I2S_FLAG_SYNCHRONIZED_MODE 0x01
-
-/**
- * @brief I2S driver configuration structure.
- */
-typedef struct
-{
- uint8_t sck_pin; ///< SCK pin number.
- uint8_t lrck_pin; ///< LRCK pin number.
- uint8_t mck_pin; ///< MCK pin number.
- /**< Optional. Use @ref NRF_DRV_I2S_PIN_NOT_USED
- * if this signal is not needed. */
- uint8_t sdout_pin; ///< SDOUT pin number.
- /**< Optional. Use @ref NRF_DRV_I2S_PIN_NOT_USED
- * if this signal is not needed. */
- uint8_t sdin_pin; ///< SDIN pin number.
- /**< Optional. Use @ref NRF_DRV_I2S_PIN_NOT_USED
- * if this signal is not needed. */
- uint8_t irq_priority; ///< Interrupt priority.
-
- nrf_i2s_mode_t mode; ///< Mode of operation.
- nrf_i2s_format_t format; ///< Frame format.
- nrf_i2s_align_t alignment; ///< Alignment of sample within a frame.
- nrf_i2s_swidth_t sample_width; ///< Sample width.
- nrf_i2s_channels_t channels; ///< Enabled channels.
- nrf_i2s_mck_t mck_setup; ///< Master clock setup.
- nrf_i2s_ratio_t ratio; ///< MCK/LRCK ratio.
-} nrf_drv_i2s_config_t;
-
-/**
- * @brief I2S driver default configuration.
- */
-#define NRF_DRV_I2S_DEFAULT_CONFIG \
-{ \
- .sck_pin = I2S_CONFIG_SCK_PIN, \
- .lrck_pin = I2S_CONFIG_LRCK_PIN, \
- .mck_pin = I2S_CONFIG_MCK_PIN, \
- .sdout_pin = I2S_CONFIG_SDOUT_PIN, \
- .sdin_pin = I2S_CONFIG_SDIN_PIN, \
- .irq_priority = I2S_CONFIG_IRQ_PRIORITY, \
- .mode = I2S_CONFIG_MASTER, \
- .format = I2S_CONFIG_FORMAT, \
- .alignment = I2S_CONFIG_ALIGN, \
- .sample_width = I2S_CONFIG_SWIDTH, \
- .channels = I2S_CONFIG_CHANNELS, \
- .mck_setup = I2S_CONFIG_MCK_SETUP, \
- .ratio = I2S_CONFIG_RATIO, \
-}
-
-/**
- * @brief I2S driver data handler type.
- *
- * A data handling function of this type must be specified during initialization
- * of the driver. The driver will call this function when a new portion of data
- * is received or a new portion of data should be prepared for transmission.
- * The first case is indicated by a non-NULL value in the @p p_data_received
- * parameter (which points to the memory containing the received data).
- * Similarly, the second case is indicated by a non-NULL value in the
- * @p p_data_to_send parameter (which points to where the data to be transmitted
- * should be placed).
- *
- * @note The two cases mentioned above may be indicated separately or combined
- * into one call (depending on the environment in which the driver is
- * used). Therefore, both parameters should be checked and handled
- * properly in every call. @ref NRF_DRV_I2S_FLAG_SYNCHRONIZED_MODE
- * "Synchronized mode" can be used to always combine these indications.
- *
- * @param[in] p_data_received Pointer to the buffer with received data,
- * or NULL if the handler is called to prepare
- * transmission only.
- * @param[out] p_data_to_send Pointer to the buffer where data to be sent
- * should be written, or NULL if the handler is
- * called for received data only.
- * @param[in] number_of_words Length of data received and/or to be written
- * (in 32-bit words). This value is always equal to
- * half the size of the buffers set by the call
- * to the @ref nrf_drv_i2s_start function.
- */
-typedef void (* nrf_drv_i2s_data_handler_t)(uint32_t const * p_data_received,
- uint32_t * p_data_to_send,
- uint16_t number_of_words);
-
-
-/**
- * @brief Function for initializing the I2S driver.
- *
- * @param[in] p_config Pointer to the structure with initial configuration.
- * If NULL, the default configuration is used.
- * @param[in] handler Data handler provided by the user. Must not be NULL.
- *
- * @retval NRF_SUCCESS If initialization was successful.
- * @retval NRF_ERROR_INVALID_STATE If the driver was already initialized.
- * @retval NRF_ERROR_INVALID_PARAM If the requested combination of configuration
- * options is not allowed by the I2S peripheral.
- */
-ret_code_t nrf_drv_i2s_init(nrf_drv_i2s_config_t const * p_config,
- nrf_drv_i2s_data_handler_t handler);
-
-/**
- * @brief Function for uninitializing the I2S driver.
- */
-void nrf_drv_i2s_uninit(void);
-
-/**
- * @brief Function for starting the continuous I2S transfer.
- *
- * The I2S data transfer can be performed in one of three modes: RX (reception)
- * only, TX (transmission) only, or in both directions simultaneously.
- * The mode is selected by specifying a proper buffer for a given direction
- * in the call to this function or by passing NULL instead if this direction
- * should be disabled.
- *
- * The length of the buffer (which is a common value for RX and TX if both
- * directions are enabled) is specified in 32-bit words. One 32-bit memory
- * word can either contain four 8-bit samples, two 16-bit samples, or one
- * right-aligned 24-bit sample sign-extended to a 32-bit value.
- * For a detailed memory mapping for different supported configurations,
- * see the @linkProductSpecification52.
- *
- * The provided buffers are logically divided into two parts of equal size.
- * One of them is in use by the peripheral (for storing received data or for
- * getting data to be transmitted, respectively). The other part is provided
- * to the application via a call to the defined @ref nrf_drv_i2s_data_handler_t
- * "data handling function", so that the application can process the received
- * data or prepare the next portion of data to be sent. The two parts are
- * swapped every time @p buffer_size/2 data words are received or transmitted.
- *
- * Additional options are provided using the @p flags parameter:
- * - @ref NRF_DRV_I2S_FLAG_SYNCHRONIZED_MODE - the calls to data handler should
- * be done in a synchronized manner (one common call for TX and RX).
- * Applicable only when both RX and TX are enabled.
- *
- * @attention All data exchange is done in the data handler only. In particular,
- * no data should be written to the transmit buffer before calling
- * this function (a proper call to the data handler to get the first
- * portion of data to be sent will be done before the actual transfer
- * starts).
- *
- * @note Peripherals using EasyDMA (like I2S) require the transfer buffers
- * to be placed in the Data RAM region. If this condition is not met,
- * this function will fail with the error code NRF_ERROR_INVALID_ADDR.
- *
- * @param[in] p_rx_buffer Pointer to the receive buffer.
- * Pass NULL if reception is not required.
- * @param[in] p_tx_buffer Pointer to the transmit buffer.
- * Pass NULL if transmission is not required.
- * @param[in] buffer_size Size of the buffers (in 32-bit words).
- * The size must be an even number greater than 0.
- * @param[in] flags Transfer options (0 for default settings).
- *
- * @retval NRF_SUCCESS If the operation was successful.
- * @retval NRF_ERROR_INVALID_STATE If a transfer was already started or
- * the driver has not been initialized.
- * @retval NRF_ERROR_INVALID_ADDR If the provided buffers are not placed
- * in the Data RAM region.
- */
-ret_code_t nrf_drv_i2s_start(uint32_t * p_rx_buffer,
- uint32_t * p_tx_buffer,
- uint16_t buffer_size,
- uint8_t flags);
-
-/**
- * @brief Function for stopping the I2S transfer.
- */
-void nrf_drv_i2s_stop(void);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif // NRF_DRV_I2S_H__
-
-/** @} */
http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/a1481cb2/hw/mcu/nordic/src/ext/nRF5_SDK_11.0.0_89a8197/components/drivers_nrf/lpcomp/nrf_drv_lpcomp.c
----------------------------------------------------------------------
diff --git a/hw/mcu/nordic/src/ext/nRF5_SDK_11.0.0_89a8197/components/drivers_nrf/lpcomp/nrf_drv_lpcomp.c b/hw/mcu/nordic/src/ext/nRF5_SDK_11.0.0_89a8197/components/drivers_nrf/lpcomp/nrf_drv_lpcomp.c
deleted file mode 100644
index b1ea6c1..0000000
--- a/hw/mcu/nordic/src/ext/nRF5_SDK_11.0.0_89a8197/components/drivers_nrf/lpcomp/nrf_drv_lpcomp.c
+++ /dev/null
@@ -1,151 +0,0 @@
-/* Copyright (c) 2015 Nordic Semiconductor. All Rights Reserved.
- *
- * The information contained herein is property of Nordic Semiconductor ASA.
- * Terms and conditions of usage are described in detail in NORDIC
- * SEMICONDUCTOR STANDARD SOFTWARE LICENSE AGREEMENT.
- *
- * Licensees are granted free, non-transferable use of the information. NO
- * WARRANTY of ANY KIND is provided. This heading must NOT be removed from
- * the file.
- *
- */
-
-#include "nrf_drv_lpcomp.h"
-
-#include "nrf_assert.h"
-#include "nrf_error.h"
-#include "nrf_soc.h"
-#include "nrf_drv_common.h"
-#include "app_util_platform.h"
-#include <stdbool.h>
-#include <stddef.h>
-#include <stdint.h>
-
-#define LPCOMP_IRQ LPCOMP_IRQn
-#define LPCOMP_IRQ_HANDLER LPCOMP_IRQHandler
-
-static lpcomp_events_handler_t m_lpcomp_events_handler = NULL;
-static nrf_drv_state_t m_state = NRF_DRV_STATE_UNINITIALIZED;
-
-static const nrf_drv_lpcomp_config_t m_default_config = NRF_DRV_LPCONF_DEFAULT_CONFIG;
-
-#if PERIPHERAL_RESOURCE_SHARING_ENABLED
- #define IRQ_HANDLER_NAME irq_handler_for_lpcomp
- #define IRQ_HANDLER static void IRQ_HANDLER_NAME(void)
-
- IRQ_HANDLER;
-#else
- #define IRQ_HANDLER void LPCOMP_IRQ_HANDLER(void)
-#endif // PERIPHERAL_RESOURCE_SHARING_ENABLED
-
-static void lpcomp_execute_handler(nrf_lpcomp_event_t event, uint32_t event_mask)
-{
- if ( nrf_lpcomp_event_check(event) && nrf_lpcomp_int_enable_check(event_mask) )
- {
- nrf_lpcomp_event_clear(event);
-
- m_lpcomp_events_handler(event);
- }
-}
-
-
-IRQ_HANDLER
-{
- lpcomp_execute_handler(NRF_LPCOMP_EVENT_READY, LPCOMP_INTENSET_READY_Msk);
- lpcomp_execute_handler(NRF_LPCOMP_EVENT_DOWN, LPCOMP_INTENSET_DOWN_Msk);
- lpcomp_execute_handler(NRF_LPCOMP_EVENT_UP, LPCOMP_INTENSET_UP_Msk);
- lpcomp_execute_handler(NRF_LPCOMP_EVENT_CROSS, LPCOMP_INTENSET_CROSS_Msk);
-}
-
-
-ret_code_t nrf_drv_lpcomp_init(const nrf_drv_lpcomp_config_t * p_config,
- lpcomp_events_handler_t events_handler)
-{
- if (m_state != NRF_DRV_STATE_UNINITIALIZED)
- { // LPCOMP driver is already initialized
- return NRF_ERROR_INVALID_STATE;
- }
-
- if (p_config == NULL)
- {
- p_config = &m_default_config;
- }
-
-#if PERIPHERAL_RESOURCE_SHARING_ENABLED
- if (nrf_drv_common_per_res_acquire(NRF_LPCOMP, IRQ_HANDLER_NAME) != NRF_SUCCESS)
- {
- return NRF_ERROR_BUSY;
- }
-#endif
-
- nrf_lpcomp_configure(&(p_config->hal) );
-
- if (events_handler)
- {
- m_lpcomp_events_handler = events_handler;
- }
- else
- {
- return NRF_ERROR_INVALID_PARAM;
- }
-
- nrf_lpcomp_input_select(p_config->input);
-
- switch (p_config->hal.detection)
- {
- case NRF_LPCOMP_DETECT_UP:
- nrf_lpcomp_int_enable(LPCOMP_INTENSET_UP_Msk);
- break;
-
- case NRF_LPCOMP_DETECT_DOWN:
- nrf_lpcomp_int_enable(LPCOMP_INTENSET_DOWN_Msk);
- break;
-
- case NRF_LPCOMP_DETECT_CROSS:
- nrf_lpcomp_int_enable(LPCOMP_INTENSET_CROSS_Msk);
- break;
-
- default:
- break;
- }
- nrf_lpcomp_shorts_enable(NRF_LPCOMP_SHORT_READY_SAMPLE_MASK);
-
- nrf_drv_common_irq_enable(LPCOMP_IRQn, p_config->interrupt_priority);
-
- m_state = NRF_DRV_STATE_INITIALIZED;
-
- return NRF_SUCCESS;
-}
-
-
-void nrf_drv_lpcomp_uninit(void)
-{
- ASSERT(m_state != NRF_DRV_STATE_UNINITIALIZED);
- nrf_drv_common_irq_disable(LPCOMP_IRQn);
- nrf_drv_lpcomp_disable();
- m_state = NRF_DRV_STATE_UNINITIALIZED;
- m_lpcomp_events_handler = NULL;
-}
-
-void nrf_drv_lpcomp_enable(void)
-{
- ASSERT(m_state == NRF_DRV_STATE_INITIALIZED);
- nrf_lpcomp_enable();
- nrf_lpcomp_task_trigger(NRF_LPCOMP_TASK_START);
- m_state = NRF_DRV_STATE_POWERED_ON;
-}
-
-void nrf_drv_lpcomp_disable(void)
-{
- ASSERT(m_state == NRF_DRV_STATE_POWERED_ON);
- nrf_lpcomp_disable();
- nrf_lpcomp_task_trigger(NRF_LPCOMP_TASK_STOP);
- m_state = NRF_DRV_STATE_POWERED_ON;
-}
-
-void nrf_drv_lpcomp_event_handler_register(lpcomp_events_handler_t lpcomp_events_handler)
-{
- m_lpcomp_events_handler = lpcomp_events_handler;
-}
-
-
http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/a1481cb2/hw/mcu/nordic/src/ext/nRF5_SDK_11.0.0_89a8197/components/drivers_nrf/lpcomp/nrf_drv_lpcomp.h
----------------------------------------------------------------------
diff --git a/hw/mcu/nordic/src/ext/nRF5_SDK_11.0.0_89a8197/components/drivers_nrf/lpcomp/nrf_drv_lpcomp.h b/hw/mcu/nordic/src/ext/nRF5_SDK_11.0.0_89a8197/components/drivers_nrf/lpcomp/nrf_drv_lpcomp.h
deleted file mode 100644
index eed52d5..0000000
--- a/hw/mcu/nordic/src/ext/nRF5_SDK_11.0.0_89a8197/components/drivers_nrf/lpcomp/nrf_drv_lpcomp.h
+++ /dev/null
@@ -1,115 +0,0 @@
-/* Copyright (c) 2014 Nordic Semiconductor. All Rights Reserved.
- *
- * The information contained herein is property of Nordic Semiconductor ASA.
- * Terms and conditions of usage are described in detail in NORDIC
- * SEMICONDUCTOR STANDARD SOFTWARE LICENSE AGREEMENT.
- *
- * Licensees are granted free, non-transferable use of the information. NO
- * WARRANTY of ANY KIND is provided. This heading must NOT be removed from
- * the file.
- *
- */
-
-#ifndef NRF_DRV_LPCOMP_H__
-#define NRF_DRV_LPCOMP_H__
-
-#include "nrf_lpcomp.h"
-#include "sdk_errors.h"
-#include "nrf_drv_common.h"
-#include "nrf_drv_config.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * @addtogroup nrf_lpcomp LPCOMP HAL and driver
- * @ingroup nrf_drivers
- * @brief Low Power Comparator (LPCOMP) APIs.
- * @details The LPCOMP HAL provides basic APIs for accessing the registers of Low Power Comparator.
- * The LPCOMP driver provides APIs on a higher level.
- *
- * @defgroup nrf_drivers_lpcomp LPCOMP driver
- * @{
- * @ingroup nrf_lpcomp
- * @brief Low Power Comparator (LPCOMP) driver.
- */
-
-/**@brief LPCOMP event handler function type.
- * @param[in] event LPCOMP event.
- */
-typedef void (* lpcomp_events_handler_t)(nrf_lpcomp_event_t event);
-
-/**@brief LPCOMP configuration.
- */
-typedef struct
-{
- nrf_lpcomp_config_t hal; /**< LPCOMP HAL configuration. */
- nrf_lpcomp_input_t input; /**< Input to be monitored. */
- uint8_t interrupt_priority; /**< LPCOMP interrupt priority. */
-} nrf_drv_lpcomp_config_t;
-
-/** @brief LPCOMP driver default configuration including the LPCOMP HAL configuration. */
-#define NRF_DRV_LPCONF_DEFAULT_CONFIG \
- { \
- .hal = {LPCOMP_CONFIG_REFERENCE , LPCOMP_CONFIG_DETECTION}, \
- .input = LPCOMP_CONFIG_INPUT, \
- .interrupt_priority = LPCOMP_CONFIG_IRQ_PRIORITY \
- }
-
-/**
- * @brief Function for initializing the LPCOMP driver.
- *
- * This function initializes the LPCOMP driver, but does not enable the peripheral or any interrupts.
- * To start the driver, call the function nrf_drv_lpcomp_enable() after initialization.
- *
- * If no configuration structure is provided, the driver is initialized with the default settings.
- *
- * @param[in] p_config Initial configuration. If NULL, the default configuration is used.
- * @param[in] events_handler Handler function.
- * @retval NRF_ERROR_INVALID_PARAM If the configuration is invalid.
- * @retval NRF_ERROR_INVALID_STATE If the driver has already been initialized.
- */
-ret_code_t nrf_drv_lpcomp_init(const nrf_drv_lpcomp_config_t * p_config,
- lpcomp_events_handler_t events_handler);
-
-
-/**
- * @brief Function for uninitializing the LCOMP driver.
- *
- * This function uninitializes the LPCOMP driver. The LPCOMP peripheral and
- * its interrupts are disabled, and local variables are cleaned. After this call, you must
- * initialize the driver again by calling nrf_drv_lpcomp_init() if you want to use it.
- *
- * @sa nrf_drv_lpcomp_disable()
- * @sa nrf_drv_lpcomp_init()
- */
-void nrf_drv_lpcomp_uninit(void);
-
-/**@brief Function for enabling the LPCOMP peripheral and interrupts.
- *
- * Before calling this function, the driver must be initialized. This function
- * enables the LPCOMP peripheral and its interrupts.
- *
- * @sa nrf_drv_lpcomp_disable()
- */
-void nrf_drv_lpcomp_enable(void);
-
-/**@brief Function for disabling the LPCOMP peripheral.
- *
- * Before calling this function, the driver must be initialized. This function disables the LPCOMP
- * peripheral and its interrupts.
- *
- * @sa nrf_drv_lpcomp_enable()
- */
-void nrf_drv_lpcomp_disable(void);
-
-/**
- *@}
- **/
-
-#ifdef __cplusplus
-}
-#endif
-
- #endif /* NRF_DRV_LPCOMP_H__ */
http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/a1481cb2/hw/mcu/nordic/src/ext/nRF5_SDK_11.0.0_89a8197/components/drivers_nrf/nrf_soc_nosd/nrf_error.h
----------------------------------------------------------------------
diff --git a/hw/mcu/nordic/src/ext/nRF5_SDK_11.0.0_89a8197/components/drivers_nrf/nrf_soc_nosd/nrf_error.h b/hw/mcu/nordic/src/ext/nRF5_SDK_11.0.0_89a8197/components/drivers_nrf/nrf_soc_nosd/nrf_error.h
deleted file mode 100644
index bff2053..0000000
--- a/hw/mcu/nordic/src/ext/nRF5_SDK_11.0.0_89a8197/components/drivers_nrf/nrf_soc_nosd/nrf_error.h
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- * Copyright (c) 2012 Nordic Semiconductor. All Rights Reserved.
- *
- * The information contained herein is confidential property of Nordic Semiconductor. The use,
- * copying, transfer or disclosure of such information is prohibited except by express written
- * agreement with Nordic Semiconductor.
- *
- */
-
-/* Header guard */
-#ifndef NRF_ERROR_H__
-#define NRF_ERROR_H__
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/// @cond Make doxygen skip this file
-
-/** @defgroup NRF_ERRORS_BASE Error Codes Base number definitions
- * @{ */
-#define NRF_ERROR_BASE_NUM (0x0) ///< Global error base
-#define NRF_ERROR_SDM_BASE_NUM (0x1000) ///< SDM error base
-#define NRF_ERROR_SOC_BASE_NUM (0x2000) ///< SoC error base
-#define NRF_ERROR_STK_BASE_NUM (0x3000) ///< STK error base
-/** @} */
-
-#define NRF_SUCCESS (NRF_ERROR_BASE_NUM + 0) ///< Successful command
-#define NRF_ERROR_SVC_HANDLER_MISSING (NRF_ERROR_BASE_NUM + 1) ///< SVC handler is missing
-#define NRF_ERROR_SOFTDEVICE_NOT_ENABLED (NRF_ERROR_BASE_NUM + 2) ///< SoftDevice has not been enabled
-#define NRF_ERROR_INTERNAL (NRF_ERROR_BASE_NUM + 3) ///< Internal Error
-#define NRF_ERROR_NO_MEM (NRF_ERROR_BASE_NUM + 4) ///< No Memory for operation
-#define NRF_ERROR_NOT_FOUND (NRF_ERROR_BASE_NUM + 5) ///< Not found
-#define NRF_ERROR_NOT_SUPPORTED (NRF_ERROR_BASE_NUM + 6) ///< Not supported
-#define NRF_ERROR_INVALID_PARAM (NRF_ERROR_BASE_NUM + 7) ///< Invalid Parameter
-#define NRF_ERROR_INVALID_STATE (NRF_ERROR_BASE_NUM + 8) ///< Invalid state, operation disallowed in this state
-#define NRF_ERROR_INVALID_LENGTH (NRF_ERROR_BASE_NUM + 9) ///< Invalid Length
-#define NRF_ERROR_INVALID_FLAGS (NRF_ERROR_BASE_NUM + 10) ///< Invalid Flags
-#define NRF_ERROR_INVALID_DATA (NRF_ERROR_BASE_NUM + 11) ///< Invalid Data
-#define NRF_ERROR_DATA_SIZE (NRF_ERROR_BASE_NUM + 12) ///< Data size exceeds limit
-#define NRF_ERROR_TIMEOUT (NRF_ERROR_BASE_NUM + 13) ///< Operation timed out
-#define NRF_ERROR_NULL (NRF_ERROR_BASE_NUM + 14) ///< Null Pointer
-#define NRF_ERROR_FORBIDDEN (NRF_ERROR_BASE_NUM + 15) ///< Forbidden Operation
-#define NRF_ERROR_INVALID_ADDR (NRF_ERROR_BASE_NUM + 16) ///< Bad Memory Address
-#define NRF_ERROR_BUSY (NRF_ERROR_BASE_NUM + 17) ///< Busy
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif // NRF_ERROR_H__
-
-/// @endcond
-/**
- @}
-*/
http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/a1481cb2/hw/mcu/nordic/src/ext/nRF5_SDK_11.0.0_89a8197/components/drivers_nrf/nrf_soc_nosd/nrf_nvic.c
----------------------------------------------------------------------
diff --git a/hw/mcu/nordic/src/ext/nRF5_SDK_11.0.0_89a8197/components/drivers_nrf/nrf_soc_nosd/nrf_nvic.c b/hw/mcu/nordic/src/ext/nRF5_SDK_11.0.0_89a8197/components/drivers_nrf/nrf_soc_nosd/nrf_nvic.c
deleted file mode 100644
index 3c9657a..0000000
--- a/hw/mcu/nordic/src/ext/nRF5_SDK_11.0.0_89a8197/components/drivers_nrf/nrf_soc_nosd/nrf_nvic.c
+++ /dev/null
@@ -1,96 +0,0 @@
- /* Copyright (c) 2016 Nordic Semiconductor. All Rights Reserved.
- *
- * The information contained herein is property of Nordic Semiconductor ASA.
- * Terms and conditions of usage are described in detail in NORDIC
- * SEMICONDUCTOR STANDARD SOFTWARE LICENSE AGREEMENT.
- *
- * Licensees are granted free, non-transferable use of the information. NO
- * WARRANTY of ANY KIND is provided. This heading must NOT be removed from
- * the file.
- *
- */
-
-#include <stdlib.h>
-#include "nrf_soc.h"
-#include "nrf_error.h"
-
-static uint8_t m_in_critical_region = 0;
-
-uint32_t sd_nvic_EnableIRQ(IRQn_Type IRQn)
-{
- NVIC_EnableIRQ(IRQn);
- return NRF_SUCCESS;
-}
-
-uint32_t sd_nvic_DisableIRQ(IRQn_Type IRQn)
-{
- NVIC_DisableIRQ(IRQn);
- return NRF_SUCCESS;
-}
-
-uint32_t sd_nvic_GetPendingIRQ(IRQn_Type IRQn, uint32_t * p_pending_irq)
-{
- if (p_pending_irq != NULL)
- {
- *p_pending_irq = NVIC_GetPendingIRQ(IRQn);
- return NRF_SUCCESS;
- }
- return NRF_ERROR_NULL;
-}
-
-uint32_t sd_nvic_SetPendingIRQ(IRQn_Type IRQn)
-{
- NVIC_SetPendingIRQ(IRQn);
- return NRF_SUCCESS;
-}
-
-uint32_t sd_nvic_ClearPendingIRQ(IRQn_Type IRQn)
-{
- NVIC_ClearPendingIRQ(IRQn);
- return NRF_SUCCESS;
-}
-
-uint32_t sd_nvic_SetPriority(IRQn_Type IRQn, uint32_t priority)
-{
- NVIC_SetPriority(IRQn, priority);
- return NRF_SUCCESS;
-}
-
-uint32_t sd_nvic_GetPriority(IRQn_Type IRQn, uint32_t * p_priority)
-{
- if (p_priority != NULL)
- {
- *p_priority = NVIC_GetPriority(IRQn);
- return NRF_SUCCESS;
- }
-
- return NRF_ERROR_NULL;
-}
-
-uint32_t sd_nvic_SystemReset(void)
-{
- NVIC_SystemReset();
- return NRF_SUCCESS;
-}
-
-uint32_t sd_nvic_critical_region_enter(uint8_t * p_is_nested_critical_region)
-{
- __disable_irq();
-
- *p_is_nested_critical_region = (m_in_critical_region != 0);
- m_in_critical_region++;
-
- return NRF_SUCCESS;
-}
-
-uint32_t sd_nvic_critical_region_exit(uint8_t is_nested_critical_region)
-{
- m_in_critical_region--;
-
- if (is_nested_critical_region == 0)
- {
- m_in_critical_region = 0;
- __enable_irq();
- }
- return NRF_SUCCESS;
-}
http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/a1481cb2/hw/mcu/nordic/src/ext/nRF5_SDK_11.0.0_89a8197/components/drivers_nrf/nrf_soc_nosd/nrf_nvic.h
----------------------------------------------------------------------
diff --git a/hw/mcu/nordic/src/ext/nRF5_SDK_11.0.0_89a8197/components/drivers_nrf/nrf_soc_nosd/nrf_nvic.h b/hw/mcu/nordic/src/ext/nRF5_SDK_11.0.0_89a8197/components/drivers_nrf/nrf_soc_nosd/nrf_nvic.h
deleted file mode 100644
index f429d9f..0000000
--- a/hw/mcu/nordic/src/ext/nRF5_SDK_11.0.0_89a8197/components/drivers_nrf/nrf_soc_nosd/nrf_nvic.h
+++ /dev/null
@@ -1,138 +0,0 @@
-/* Copyright (c) 2014 Nordic Semiconductor. All Rights Reserved.
- *
- * The information contained herein is property of Nordic Semiconductor ASA.
- * Terms and conditions of usage are described in detail in NORDIC
- * SEMICONDUCTOR STANDARD SOFTWARE LICENSE AGREEMENT.
- *
- * Licensees are granted free, non-transferable use of the information. NO
- * WARRANTY of ANY KIND is provided. This heading must NOT be removed from
- * the file.
- *
- */
-
-#ifndef NRF_SOC_H__
-#define NRF_SOC_H__
-
-#include <stdint.h>
-#include "nrf.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**@brief Enable External Interrupt.
- * @note Corresponds to NVIC_EnableIRQ in CMSIS.
- *
- * @pre{IRQn is valid and not reserved by the stack}
- *
- * @param[in] IRQn See the NVIC_EnableIRQ documentation in CMSIS.
- *
- * @retval ::NRF_SUCCESS The interrupt was enabled.
- */
-uint32_t sd_nvic_EnableIRQ(IRQn_Type IRQn);
-
-/**@brief Disable External Interrupt.
- * @note Corresponds to NVIC_DisableIRQ in CMSIS.
- *
- * @pre{IRQn is valid and not reserved by the stack}
- *
- * @param[in] IRQn See the NVIC_DisableIRQ documentation in CMSIS
- *
- * @retval ::NRF_SUCCESS The interrupt was disabled.
- */
-uint32_t sd_nvic_DisableIRQ(IRQn_Type IRQn);
-
-/**@brief Get Pending Interrupt.
- * @note Corresponds to NVIC_GetPendingIRQ in CMSIS.
- *
- * @pre{IRQn is valid and not reserved by the stack}
- *
- * @param[in] IRQn See the NVIC_GetPendingIRQ documentation in CMSIS.
- * @param[out] p_pending_irq Return value from NVIC_GetPendingIRQ.
- *
- * @retval ::NRF_SUCCESS The interrupt is available for the application.
- */
-uint32_t sd_nvic_GetPendingIRQ(IRQn_Type IRQn, uint32_t * p_pending_irq);
-
-/**@brief Set Pending Interrupt.
- * @note Corresponds to NVIC_SetPendingIRQ in CMSIS.
- *
- * @pre{IRQn is valid and not reserved by the stack}
- *
- * @param[in] IRQn See the NVIC_SetPendingIRQ documentation in CMSIS.
- *
- * @retval ::NRF_SUCCESS The interrupt is set pending.
- */
-uint32_t sd_nvic_SetPendingIRQ(IRQn_Type IRQn);
-
-/**@brief Clear Pending Interrupt.
- * @note Corresponds to NVIC_ClearPendingIRQ in CMSIS.
- *
- * @pre{IRQn is valid and not reserved by the stack}
- *
- * @param[in] IRQn See the NVIC_ClearPendingIRQ documentation in CMSIS.
- *
- * @retval ::NRF_SUCCESS The interrupt pending flag is cleared.
- */
-uint32_t sd_nvic_ClearPendingIRQ(IRQn_Type IRQn);
-
-/**@brief Set Interrupt Priority.
- * @note Corresponds to NVIC_SetPriority in CMSIS.
- *
- * @pre{IRQn is valid and not reserved by the stack}
- * @pre{priority is valid and not reserved by the stack}
- *
- * @param[in] IRQn See the NVIC_SetPriority documentation in CMSIS.
- * @param[in] priority A valid IRQ priority for use by the application.
- *
- * @retval ::NRF_SUCCESS The interrupt and priority level is available for the application.
- */
-uint32_t sd_nvic_SetPriority(IRQn_Type IRQn, uint32_t priority);
-
-/**@brief Get Interrupt Priority.
- * @note Corresponds to NVIC_GetPriority in CMSIS.
- *
- * @pre{IRQn is valid and not reserved by the stack}
- *
- * @param[in] IRQn See the NVIC_GetPriority documentation in CMSIS.
- * @param[out] p_priority Return value from NVIC_GetPriority.
- *
- * @retval ::NRF_SUCCESS The interrupt priority is returned in p_priority.
- */
-uint32_t sd_nvic_GetPriority(IRQn_Type IRQn, uint32_t * p_priority);
-
-/**@brief System Reset.
- * @note Corresponds to NVIC_SystemReset in CMSIS.
- *
- * @retval ::NRF_ERROR_SOC_NVIC_SHOULD_NOT_RETURN
- */
-uint32_t sd_nvic_SystemReset(void);
-
-/**@brief Enters critical region.
- *
- * @post Application interrupts will be disabled.
- * @sa sd_nvic_critical_region_exit
- *
- * @param[out] p_is_nested_critical_region 1: If in a nested critical region.
- * 0: Otherwise.
- *
- * @retval ::NRF_SUCCESS
- */
-uint32_t sd_nvic_critical_region_enter(uint8_t * p_is_nested_critical_region);
-
-/**@brief Exit critical region.
- *
- * @pre Application has entered a critical region using ::sd_nvic_critical_region_enter.
- * @post If not in a nested critical region, the application interrupts will restored to the state before ::sd_nvic_critical_region_enter was called.
- *
- * @param[in] is_nested_critical_region If this is set to 1, the critical region won't be exited. @sa sd_nvic_critical_region_enter.
- *
- * @retval ::NRF_SUCCESS
- */
-uint32_t sd_nvic_critical_region_exit(uint8_t is_nested_critical_region);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* NRF_SOC_H__ */
http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/a1481cb2/hw/mcu/nordic/src/ext/nRF5_SDK_11.0.0_89a8197/components/drivers_nrf/nrf_soc_nosd/nrf_soc.c
----------------------------------------------------------------------
diff --git a/hw/mcu/nordic/src/ext/nRF5_SDK_11.0.0_89a8197/components/drivers_nrf/nrf_soc_nosd/nrf_soc.c b/hw/mcu/nordic/src/ext/nRF5_SDK_11.0.0_89a8197/components/drivers_nrf/nrf_soc_nosd/nrf_soc.c
deleted file mode 100644
index 063b7b9..0000000
--- a/hw/mcu/nordic/src/ext/nRF5_SDK_11.0.0_89a8197/components/drivers_nrf/nrf_soc_nosd/nrf_soc.c
+++ /dev/null
@@ -1,21 +0,0 @@
- /* Copyright (c) 2014 Nordic Semiconductor. All Rights Reserved.
- *
- * The information contained herein is property of Nordic Semiconductor ASA.
- * Terms and conditions of usage are described in detail in NORDIC
- * SEMICONDUCTOR STANDARD SOFTWARE LICENSE AGREEMENT.
- *
- * Licensees are granted free, non-transferable use of the information. NO
- * WARRANTY of ANY KIND is provided. This heading must NOT be removed from
- * the file.
- *
- */
-
-#include <stdlib.h>
-#include "nrf_soc.h"
-#include "nrf_error.h"
-
-uint32_t sd_app_evt_wait(void)
-{
- __WFE();
- return NRF_SUCCESS;
-}
http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/a1481cb2/hw/mcu/nordic/src/ext/nRF5_SDK_11.0.0_89a8197/components/drivers_nrf/nrf_soc_nosd/nrf_soc.h
----------------------------------------------------------------------
diff --git a/hw/mcu/nordic/src/ext/nRF5_SDK_11.0.0_89a8197/components/drivers_nrf/nrf_soc_nosd/nrf_soc.h b/hw/mcu/nordic/src/ext/nRF5_SDK_11.0.0_89a8197/components/drivers_nrf/nrf_soc_nosd/nrf_soc.h
deleted file mode 100644
index b64326d..0000000
--- a/hw/mcu/nordic/src/ext/nRF5_SDK_11.0.0_89a8197/components/drivers_nrf/nrf_soc_nosd/nrf_soc.h
+++ /dev/null
@@ -1,52 +0,0 @@
-/* Copyright (c) 2014 Nordic Semiconductor. All Rights Reserved.
- *
- * The information contained herein is property of Nordic Semiconductor ASA.
- * Terms and conditions of usage are described in detail in NORDIC
- * SEMICONDUCTOR STANDARD SOFTWARE LICENSE AGREEMENT.
- *
- * Licensees are granted free, non-transferable use of the information. NO
- * WARRANTY of ANY KIND is provided. This heading must NOT be removed from
- * the file.
- *
- */
-
-#ifndef NRF_SOC_H__
-#define NRF_SOC_H__
-
-#include <stdint.h>
-#include "nrf.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**@brief Waits for an application event.
- *
- * An application event is either an application interrupt or a pended interrupt when the
- * interrupt is disabled. When the interrupt is enabled it will be taken immediately since
- * this function will wait in thread mode, then the execution will return in the application's
- * main thread. When an interrupt is disabled and gets pended it will return to the application's
- * thread main. The application must ensure that the pended flag is cleared using
- * ::sd_nvic_ClearPendingIRQ in order to sleep using this function. This is only necessary for
- * disabled interrupts, as the interrupt handler will clear the pending flag automatically for
- * enabled interrupts.
- *
- * In order to wake up from disabled interrupts, the SEVONPEND flag has to be set in the Cortex-M0
- * System Control Register (SCR). @sa CMSIS_SCB
- *
- * @note If an application interrupt has happened since the last time sd_app_evt_wait was
- * called this function will return immediately and not go to sleep. This is to avoid race
- * conditions that can occur when a flag is updated in the interrupt handler and processed
- * in the main loop.
- *
- * @post An application interrupt has happened or a interrupt pending flag is set.
- *
- * @retval ::NRF_SUCCESS
- */
-uint32_t sd_app_evt_wait(void);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* NRF_SOC_H__ */
http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/a1481cb2/hw/mcu/nordic/src/ext/nRF5_SDK_11.0.0_89a8197/components/drivers_nrf/pdm/nrf_drv_pdm.c
----------------------------------------------------------------------
diff --git a/hw/mcu/nordic/src/ext/nRF5_SDK_11.0.0_89a8197/components/drivers_nrf/pdm/nrf_drv_pdm.c b/hw/mcu/nordic/src/ext/nRF5_SDK_11.0.0_89a8197/components/drivers_nrf/pdm/nrf_drv_pdm.c
deleted file mode 100644
index 71b7a7a..0000000
--- a/hw/mcu/nordic/src/ext/nRF5_SDK_11.0.0_89a8197/components/drivers_nrf/pdm/nrf_drv_pdm.c
+++ /dev/null
@@ -1,170 +0,0 @@
-/* Copyright (c) 2015 Nordic Semiconductor. All Rights Reserved.
- *
- * The information contained herein is property of Nordic Semiconductor ASA.
- * Terms and conditions of usage are described in detail in NORDIC
- * SEMICONDUCTOR STANDARD SOFTWARE LICENSE AGREEMENT.
- *
- * Licensees are granted free, non-transferable use of the information. NO
- * WARRANTY of ANY KIND is provided. This heading must NOT be removed from
- * the file.
- *
- */
-
-#include "nrf_drv_pdm.h"
-#include "nrf_assert.h"
-#include "nrf_drv_common.h"
-#include "nrf_gpio.h"
-
-
-/** @brief PDM interface status. */
-typedef enum
-{
- NRF_PDM_STATE_IDLE,
- NRF_PDM_STATE_RUNNING,
- NRF_PDM_STATE_TRANSITION
-} nrf_drv_pdm_state_t;
-
-
-/** @brief PDM interface control block.*/
-typedef struct
-{
- nrf_drv_state_t drv_state; ///< Driver state.
- nrf_drv_pdm_state_t status; ///< Sampling state.
- nrf_drv_pdm_event_handler_t event_handler; ///< Event handler function pointer.
- uint16_t buffer_length; ///< Length of a single buffer in 16-bit words.
- uint32_t * buffers[2]; ///< Sample buffers.
-} nrf_drv_pdm_cb_t;
-
-static nrf_drv_pdm_cb_t m_cb;
-
-
-void PDM_IRQHandler(void)
-{
- if (nrf_pdm_event_check(NRF_PDM_EVENT_END))
- {
- nrf_pdm_event_clear(NRF_PDM_EVENT_END);
-
- //Buffer is ready to process.
- if (nrf_pdm_buffer_get() == m_cb.buffers[0])
- {
- m_cb.event_handler(m_cb.buffers[1], m_cb.buffer_length);
- }
- else
- {
- m_cb.event_handler(m_cb.buffers[0], m_cb.buffer_length);
- }
- }
- else if (nrf_pdm_event_check(NRF_PDM_EVENT_STARTED))
- {
- nrf_pdm_event_clear(NRF_PDM_EVENT_STARTED);
- m_cb.status = NRF_PDM_STATE_RUNNING;
-
- //Swap buffer.
- if (nrf_pdm_buffer_get() == m_cb.buffers[0])
- {
- nrf_pdm_buffer_set(m_cb.buffers[1],m_cb.buffer_length);
- }
- else
- {
- nrf_pdm_buffer_set(m_cb.buffers[0],m_cb.buffer_length);
- }
- }
- else if (nrf_pdm_event_check(NRF_PDM_EVENT_STOPPED))
- {
- nrf_pdm_event_clear(NRF_PDM_EVENT_STOPPED);
- nrf_pdm_disable();
- m_cb.status = NRF_PDM_STATE_IDLE;
- }
-}
-
-
-ret_code_t nrf_drv_pdm_init(nrf_drv_pdm_config_t const * p_config,
- nrf_drv_pdm_event_handler_t event_handler)
-{
- if (m_cb.drv_state != NRF_DRV_STATE_UNINITIALIZED)
- {
- return NRF_ERROR_INVALID_STATE;
- }
- if ((p_config == NULL)
- || (event_handler == NULL))
- {
- return NRF_ERROR_INVALID_PARAM;
- }
- if (p_config->gain_l > NRF_PDM_GAIN_MAXIMUM
- || p_config->gain_r > NRF_PDM_GAIN_MAXIMUM
- || p_config->buffer_length > NRF_PDM_MAX_BUFFER_SIZE)
- {
- return NRF_ERROR_INVALID_PARAM;
- }
-
- m_cb.buffers[0] = (uint32_t*)p_config->buffer_a;
- m_cb.buffers[1] = (uint32_t*)p_config->buffer_b;
- m_cb.buffer_length = p_config->buffer_length;
- m_cb.event_handler = event_handler;
- m_cb.status = NRF_PDM_STATE_IDLE;
-
- nrf_pdm_buffer_set(m_cb.buffers[0],m_cb.buffer_length);
- nrf_pdm_clock_set(p_config->clock_freq);
- nrf_pdm_mode_set(p_config->mode, p_config->edge);
- nrf_pdm_gain_set(p_config->gain_l, p_config->gain_r);
-
- nrf_gpio_cfg_output(p_config->pin_clk);
- nrf_gpio_pin_clear(p_config->pin_clk);
- nrf_gpio_cfg_input(p_config->pin_din, NRF_GPIO_PIN_NOPULL);
- nrf_pdm_psel_connect(p_config->pin_clk, p_config->pin_din);
-
- m_cb.drv_state = NRF_DRV_STATE_INITIALIZED;
- nrf_pdm_int_enable(NRF_PDM_INT_STARTED | NRF_PDM_INT_END | NRF_PDM_INT_STOPPED);
- nrf_drv_common_irq_enable(PDM_IRQn, p_config->interrupt_priority);
-
- return NRF_SUCCESS;
-}
-
-
-void nrf_drv_pdm_uninit(void)
-{
- nrf_pdm_disable();
- nrf_pdm_psel_disconnect();
- m_cb.drv_state = NRF_DRV_STATE_UNINITIALIZED;
-}
-
-
-
-
-ret_code_t nrf_drv_pdm_start(void)
-{
- ASSERT(m_cb.drv_state != NRF_DRV_STATE_UNINITIALIZED);
- if (m_cb.status != NRF_PDM_STATE_IDLE)
- {
- if (m_cb.status == NRF_PDM_STATE_RUNNING)
- {
- return NRF_SUCCESS;
- }
- return NRF_ERROR_BUSY;
- }
- m_cb.status = NRF_PDM_STATE_TRANSITION;
- m_cb.drv_state = NRF_DRV_STATE_POWERED_ON;
- nrf_pdm_enable();
- nrf_pdm_event_clear(NRF_PDM_EVENT_STARTED);
- nrf_pdm_task_trigger(NRF_PDM_TASK_START);
- return NRF_SUCCESS;
-}
-
-
-ret_code_t nrf_drv_pdm_stop(void)
-{
- ASSERT(m_cb.drv_state != NRF_DRV_STATE_UNINITIALIZED);
- if (m_cb.status != NRF_PDM_STATE_RUNNING)
- {
- if (m_cb.status == NRF_PDM_STATE_IDLE)
- {
- nrf_pdm_disable();
- return NRF_SUCCESS;
- }
- return NRF_ERROR_BUSY;
- }
- m_cb.status = NRF_PDM_STATE_TRANSITION;
- m_cb.drv_state = NRF_DRV_STATE_INITIALIZED;
- nrf_pdm_task_trigger(NRF_PDM_TASK_STOP);
- return NRF_SUCCESS;
-}
http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/a1481cb2/hw/mcu/nordic/src/ext/nRF5_SDK_11.0.0_89a8197/components/drivers_nrf/pdm/nrf_drv_pdm.h
----------------------------------------------------------------------
diff --git a/hw/mcu/nordic/src/ext/nRF5_SDK_11.0.0_89a8197/components/drivers_nrf/pdm/nrf_drv_pdm.h b/hw/mcu/nordic/src/ext/nRF5_SDK_11.0.0_89a8197/components/drivers_nrf/pdm/nrf_drv_pdm.h
deleted file mode 100644
index 623785e..0000000
--- a/hw/mcu/nordic/src/ext/nRF5_SDK_11.0.0_89a8197/components/drivers_nrf/pdm/nrf_drv_pdm.h
+++ /dev/null
@@ -1,175 +0,0 @@
-/* Copyright (c) 2015 Nordic Semiconductor. All Rights Reserved.
- *
- * The information contained herein is property of Nordic Semiconductor ASA.
- * Terms and conditions of usage are described in detail in NORDIC
- * SEMICONDUCTOR STANDARD SOFTWARE LICENSE AGREEMENT.
- *
- * Licensees are granted free, non-transferable use of the information. NO
- * WARRANTY of ANY KIND is provided. This heading must NOT be removed from
- * the file.
- *
- */
-
-/**
- * @addtogroup nrf_pdm PDM HAL and driver
- * @ingroup nrf_drivers
- * @brief @tagAPI52 Pulse density modulation (PDM) interface APIs.
- *
- * The PDM HAL provides basic APIs for accessing the registers of the PDM interface peripheral.
- * The PDM driver provides APIs on a higher level.
- *
- * @defgroup nrf_drv_pdm PDM driver
- * @{
- * @ingroup nrf_pdm
- *
- * @brief @tagAPI52 Pulse density modulation (PDM) interface driver.
- */
-
-
-#ifndef NRF_DRV_PDM_H__
-#define NRF_DRV_PDM_H__
-
-#include "nrf_drv_config.h"
-#include "nrf_pdm.h"
-#include "sdk_errors.h"
-
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#define NRF_PDM_MAX_BUFFER_SIZE 32768
-
-
-/**
- * @brief PDM interface driver configuration structure.
- */
-typedef struct
-{
- nrf_pdm_mode_t mode; ///< Interface operation mode.
- nrf_pdm_edge_t edge; ///< Sampling mode.
- uint8_t pin_clk; ///< CLK pin.
- uint8_t pin_din; ///< DIN pin.
- nrf_pdm_freq_t clock_freq; ///< Clock frequency.
- nrf_pdm_gain_t gain_l; ///< Left channel gain.
- nrf_pdm_gain_t gain_r; ///< Right channel gain.
- uint8_t interrupt_priority; ///< Interrupt priority.
- uint16_t buffer_length; ///< Length of a single buffer (in 16-bit words).
- int16_t * buffer_a; ///< Sample buffer A (filled first).
- int16_t * buffer_b; ///< Sample buffer B (filled after buffer A).
-} nrf_drv_pdm_config_t;
-
-
-/**
- * @brief Macro for setting @ref nrf_drv_pdm_config_t to default settings
- * in single ended mode.
- *
- * @param PIN_CLK CLK output pin.
- * @param PIN_DIN DIN input pin.
- * @param BUFF_A Sample buffer A (filled first).
- * @param BUFF_B Sample buffer B (filled after buffer A).
- * @param BUFF_LEN Length of a single buffer (in 16-bit words).
- */
-#define NRF_DRV_PDM_DEFAULT_CONFIG(PIN_CLK, PIN_DIN, BUFF_A, BUFF_B, BUFF_LEN) \
-{ \
- .mode = PDM_CONFIG_MODE, \
- .edge = PDM_CONFIG_EDGE, \
- .pin_clk = PIN_CLK, \
- .pin_din = PIN_DIN, \
- .clock_freq = PDM_CONFIG_CLOCK_FREQ, \
- .gain_l = NRF_PDM_GAIN_DEFAULT, \
- .gain_r = NRF_PDM_GAIN_DEFAULT, \
- .interrupt_priority = PDM_CONFIG_IRQ_PRIORITY, \
- .buffer_length = BUFF_LEN, \
- .buffer_a = BUFF_A, \
- .buffer_b = BUFF_B \
-}
-
-
-/**
- * @brief Handler for PDM interface ready events.
- *
- * This event handler is called when a buffer is full and ready to be processed.
- *
- * @param[in] p_buffer Sample buffer pointer.
- * @param[in] length Buffer length in 16-bit words.
- */
-typedef void (*nrf_drv_pdm_event_handler_t)(uint32_t * buffer, uint16_t length);
-
-
-/**
- * @brief Function for initializing the PDM interface.
- *
- * @param[in] p_config Pointer to a configuration structure. If NULL, the default one is used.
- * @param[in] event_handler Event handler provided by the user.
- *
- * @retval NRF_SUCCESS If initialization was successful.
- * @retval NRF_ERROR_INVALID_STATE If the driver is already initialized.
- * @retval NRF_ERROR_INVALID_PARAM If invalid parameters were specified.
- */
-ret_code_t nrf_drv_pdm_init(nrf_drv_pdm_config_t const * p_config,
- nrf_drv_pdm_event_handler_t event_handler);
-
-
-/**
- * @brief Function for uninitializing the PDM interface.
- *
- * This function stops PDM sampling, if it is in progress.
- */
-void nrf_drv_pdm_uninit(void);
-
-
-/**
- * @brief Function for getting the address of a PDM interface task.
- *
- * @param[in] task Task.
- *
- * @return Task address.
- */
-__STATIC_INLINE uint32_t nrf_drv_pdm_task_address_get(nrf_pdm_task_t task)
-{
- return nrf_pdm_task_address_get(task);
-}
-
-
-/**
- * @brief Function for getting the state of the PDM interface.
- *
- * @retval TRUE If the PDM interface is enabled.
- * @retval FALSE If the PDM interface is disabled.
- */
-__STATIC_INLINE bool nrf_drv_pdm_enable_check()
-{
- return nrf_pdm_enable_check();
-}
-
-
-/**
- * @brief Function for starting PDM sampling.
- *
- * @retval NRF_SUCCESS If sampling was started successfully or was already in progress.
- * @retval NRF_ERROR_BUSY If a previous start/stop operation is in progress.
- */
-ret_code_t nrf_drv_pdm_start(void);
-
-
-/**
- * @brief Function for stopping PDM sampling.
- *
- * When this function is called, the PDM interface is stopped after finishing
- * the current frame.
- * The event handler function might be called once more after calling this function.
- *
- * @retval NRF_SUCCESS If sampling was stopped successfully or was already stopped before.
- * @retval NRF_ERROR_BUSY If a previous start/stop operation is in progress.
- */
-ret_code_t nrf_drv_pdm_stop(void);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif // NRF_DRV_PDM_H__
-
-/** @} */
http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/a1481cb2/hw/mcu/nordic/src/ext/nRF5_SDK_11.0.0_89a8197/components/drivers_nrf/ppi/nrf_drv_ppi.c
----------------------------------------------------------------------
diff --git a/hw/mcu/nordic/src/ext/nRF5_SDK_11.0.0_89a8197/components/drivers_nrf/ppi/nrf_drv_ppi.c b/hw/mcu/nordic/src/ext/nRF5_SDK_11.0.0_89a8197/components/drivers_nrf/ppi/nrf_drv_ppi.c
deleted file mode 100644
index 706824d..0000000
--- a/hw/mcu/nordic/src/ext/nRF5_SDK_11.0.0_89a8197/components/drivers_nrf/ppi/nrf_drv_ppi.c
+++ /dev/null
@@ -1,427 +0,0 @@
-/* Copyright (c) 2015 Nordic Semiconductor. All Rights Reserved.
- *
- * The information contained herein is property of Nordic Semiconductor ASA.
- * Terms and conditions of usage are described in detail in NORDIC
- * SEMICONDUCTOR STANDARD SOFTWARE LICENSE AGREEMENT.
- *
- * Licensees are granted free, non-transferable use of the information. NO
- * WARRANTY of ANY KIND is provided. This heading must NOT be removed from
- * the file.
- *
- */
-
-#include <stdlib.h>
-
-#include "nrf.h"
-#include "nrf_drv_ppi.h"
-#include "nrf_drv_common.h"
-#include "nrf_ppi.h"
-#include "app_util_platform.h"
-#include "sdk_common.h"
-
-
-static nrf_drv_state_t m_drv_state; /**< Driver state */
-static uint32_t m_channels_allocated; /**< Bitmap representing channels availability. 1 when a channel is allocated, 0 otherwise. */
-static uint8_t m_groups_allocated; /**< Bitmap representing groups availability. 1 when a group is allocated, 0 otherwise.*/
-
-
-/**@brief Compute a group mask (needed for driver internals, not used for NRF_PPI registers).
- * @param[in] group Group number to transform to a mask.
- * @retval Group mask.
- */
-__STATIC_INLINE uint32_t group_to_mask(nrf_ppi_channel_group_t group)
-{
- return (1uL << (uint32_t) group);
-}
-
-
-/**@brief Check whether a channel is a programmable channel and can be used by an application.
- * @param[in] channel Channel to check.
- * @retval true The channel is a programmable application channel.
- * false The channel is used by a SoftDevice or is preprogrammed.
- */
-__STATIC_INLINE bool is_programmable_app_channel(nrf_ppi_channel_t channel)
-{
- return ((NRF_PPI_PROG_APP_CHANNELS_MASK & nrf_drv_ppi_channel_to_mask(channel)) != 0);
-}
-
-
-/**@brief Check whether a channels can be used by an application.
- * @param[in] channel Channel mask to check.
- * @retval true All specified channels can be used by an application.
- * false At least one specified channel is used by a SoftDevice.
- */
-__STATIC_INLINE bool are_app_channels(uint32_t channel_mask)
-{
- //lint -e(587)
- return ((~(NRF_PPI_ALL_APP_CHANNELS_MASK) & channel_mask) == 0);
-}
-
-
-/**@brief Check whether a channel can be used by an application.
- * @param[in] channel Channel to check.
- * @retval true The channel can be used by an application.
- * false The channel is used by a SoftDevice.
- */
-__STATIC_INLINE bool is_app_channel(nrf_ppi_channel_t channel)
-{
- return are_app_channels(nrf_drv_ppi_channel_to_mask(channel));
-}
-
-
-/**@brief Check whether a channel group can be used by an application.
- * @param[in] group Group to check.
- * @retval true The group is an application group.
- * false The group is not an application group (this group either does not exist or
- * it is used by a SoftDevice).
- */
-__STATIC_INLINE bool is_app_group(nrf_ppi_channel_group_t group)
-{
- return ((NRF_PPI_ALL_APP_GROUPS_MASK & group_to_mask(group)) != 0);
-}
-
-
-/**@brief Check whether a channel is allocated.
- * @param[in] channel_num Channel number to check.
- * @retval true The channel is allocated.
- * false The channel is not allocated.
- */
-__STATIC_INLINE bool is_allocated_channel(nrf_ppi_channel_t channel)
-{
- return ((m_channels_allocated & nrf_drv_ppi_channel_to_mask(channel)) != 0);
-}
-
-
-/**@brief Set channel allocated indication.
- * @param[in] channel_num Specifies the channel to set the "allocated" indication.
- */
-__STATIC_INLINE void channel_allocated_set(nrf_ppi_channel_t channel)
-{
- m_channels_allocated |= nrf_drv_ppi_channel_to_mask(channel);
-}
-
-
-/**@brief Clear channel allocated indication.
- * @param[in] channel_num Specifies the channel to clear the "allocated" indication.
- */
-__STATIC_INLINE void channel_allocated_clr(nrf_ppi_channel_t channel)
-{
- m_channels_allocated &= ~nrf_drv_ppi_channel_to_mask(channel);
-}
-
-
-/**@brief Clear all allocated channels.
- */
-__STATIC_INLINE void channel_allocated_clr_all(void)
-{
- m_channels_allocated &= ~NRF_PPI_ALL_APP_CHANNELS_MASK;
-}
-
-
-/**@brief Check whether a group is allocated.
- * @param[in] group_num Group number to check.
- * @retval true The group is allocated.
- * false The group is not allocated.
- */
-__STATIC_INLINE bool is_allocated_group(nrf_ppi_channel_group_t group)
-{
- return ((m_groups_allocated & group_to_mask(group)) != 0);
-}
-
-
-/**@brief Set group allocated indication.
- * @param[in] group_num Specifies the group to set the "allocated" indication.
- */
-__STATIC_INLINE void group_allocated_set(nrf_ppi_channel_group_t group)
-{
- m_groups_allocated |= group_to_mask(group);
-}
-
-
-/**@brief Clear group allocated indication.
- * @param[in] group_num Specifies the group to clear the "allocated" indication.
- */
-__STATIC_INLINE void group_allocated_clr(nrf_ppi_channel_group_t group)
-{
- m_groups_allocated &= ~group_to_mask(group);
-}
-
-
-/**@brief Clear all allocated groups.
- */
-__STATIC_INLINE void group_allocated_clr_all()
-{
- m_groups_allocated &= ~NRF_PPI_ALL_APP_GROUPS_MASK;
-}
-
-
-uint32_t nrf_drv_ppi_init(void)
-{
- uint32_t err_code;
-
- if (m_drv_state == NRF_DRV_STATE_UNINITIALIZED)
- {
- m_drv_state = NRF_DRV_STATE_INITIALIZED;
- err_code = NRF_SUCCESS;
- }
- else
- {
- err_code = MODULE_ALREADY_INITIALIZED;
- }
-
- return err_code;
-}
-
-
-uint32_t nrf_drv_ppi_uninit(void)
-{
- uint32_t mask = NRF_PPI_ALL_APP_GROUPS_MASK;
- nrf_ppi_channel_group_t group;
-
- if (m_drv_state == NRF_DRV_STATE_UNINITIALIZED)
- {
- return NRF_ERROR_INVALID_STATE;
- }
-
- m_drv_state = NRF_DRV_STATE_UNINITIALIZED;
-
- // Disable all channels and groups
- nrf_ppi_channels_disable(NRF_PPI_ALL_APP_CHANNELS_MASK);
-
- for (group = NRF_PPI_CHANNEL_GROUP0; mask != 0; mask &= ~group_to_mask(group), group++)
- {
- if(mask & group_to_mask(group))
- {
- nrf_ppi_channel_group_clear(group);
- }
- }
- channel_allocated_clr_all();
- group_allocated_clr_all();
- return NRF_SUCCESS;
-}
-
-
-uint32_t nrf_drv_ppi_channel_alloc(nrf_ppi_channel_t * p_channel)
-{
- uint32_t err_code;
- nrf_ppi_channel_t channel;
- uint32_t mask = 0;
-
- err_code = NRF_ERROR_NO_MEM;
-
- mask = NRF_PPI_PROG_APP_CHANNELS_MASK;
- for (channel = NRF_PPI_CHANNEL0; mask != 0; mask &= ~nrf_drv_ppi_channel_to_mask(channel), channel++)
- {
- CRITICAL_REGION_ENTER();
- if ((mask & nrf_drv_ppi_channel_to_mask(channel)) && (!is_allocated_channel(channel)))
- {
- channel_allocated_set(channel);
- *p_channel = channel;
- err_code = NRF_SUCCESS;
- }
- CRITICAL_REGION_EXIT();
- if (err_code == NRF_SUCCESS)
- {
- break;
- }
- }
-
- return err_code;
-}
-
-
-uint32_t nrf_drv_ppi_channel_free(nrf_ppi_channel_t channel)
-{
- if (!is_programmable_app_channel(channel))
- {
- return NRF_ERROR_INVALID_PARAM;
- }
- // First disable this channel
- nrf_ppi_channel_disable(channel);
- CRITICAL_REGION_ENTER();
- channel_allocated_clr(channel);
- CRITICAL_REGION_EXIT();
- return NRF_SUCCESS;
-}
-
-
-uint32_t nrf_drv_ppi_channel_assign(nrf_ppi_channel_t channel, uint32_t eep, uint32_t tep)
-{
- VERIFY_PARAM_NOT_NULL((uint32_t *)eep);
- VERIFY_PARAM_NOT_NULL((uint32_t *)tep);
-
- if (!is_programmable_app_channel(channel))
- {
- return NRF_ERROR_INVALID_PARAM;
- }
- if (!is_allocated_channel(channel))
- {
- return NRF_ERROR_INVALID_STATE;
- }
-
- nrf_ppi_channel_endpoint_setup(channel, eep, tep);
- return NRF_SUCCESS;
-}
-
-uint32_t nrf_drv_ppi_channel_fork_assign(nrf_ppi_channel_t channel, uint32_t fork_tep)
-{
-#ifdef NRF51
- return NRF_ERROR_NOT_SUPPORTED;
-#else
- if (!is_programmable_app_channel(channel))
- {
- return NRF_ERROR_INVALID_PARAM;
- }
- if (!is_allocated_channel(channel))
- {
- return NRF_ERROR_INVALID_STATE;
- }
- nrf_ppi_fork_endpoint_setup(channel, fork_tep);
- return NRF_SUCCESS;
-#endif
-}
-
-uint32_t nrf_drv_ppi_channel_enable(nrf_ppi_channel_t channel)
-{
- if (!is_app_channel(channel))
- {
- return NRF_ERROR_INVALID_PARAM;
- }
- if (is_programmable_app_channel(channel) && !is_allocated_channel(channel))
- {
- return NRF_ERROR_INVALID_STATE;
- }
- nrf_ppi_channel_enable(channel);
- return NRF_SUCCESS;
-}
-
-
-uint32_t nrf_drv_ppi_channel_disable(nrf_ppi_channel_t channel)
-{
- if (!is_app_channel(channel))
- {
- return NRF_ERROR_INVALID_PARAM;
- }
- if (is_programmable_app_channel(channel) && !is_allocated_channel(channel))
- {
- return NRF_ERROR_INVALID_STATE;
- }
- nrf_ppi_channel_disable(channel);
- return NRF_SUCCESS;
-}
-
-
-uint32_t nrf_drv_ppi_group_alloc(nrf_ppi_channel_group_t * p_group)
-{
- uint32_t err_code;
- uint32_t mask = 0;
- nrf_ppi_channel_group_t group;
-
- err_code = NRF_ERROR_NO_MEM;
-
- mask = NRF_PPI_ALL_APP_GROUPS_MASK;
- for (group = NRF_PPI_CHANNEL_GROUP0; mask != 0; mask &= ~group_to_mask(group), group++)
- {
- CRITICAL_REGION_ENTER();
- if ((mask & group_to_mask(group)) && (!is_allocated_group(group)))
- {
- group_allocated_set(group);
- *p_group = group;
- err_code = NRF_SUCCESS;
- }
- CRITICAL_REGION_EXIT();
- if (err_code == NRF_SUCCESS)
- {
- break;
- }
- }
-
- return err_code;
-}
-
-
-uint32_t nrf_drv_ppi_group_free(nrf_ppi_channel_group_t group)
-{
- if (!is_app_group(group))
- {
- return NRF_ERROR_INVALID_PARAM;
- }
- if (!is_allocated_group(group))
- {
- return NRF_ERROR_INVALID_STATE;
- }
- else
- nrf_ppi_group_disable(group);
- CRITICAL_REGION_ENTER();
- group_allocated_clr(group);
- CRITICAL_REGION_EXIT();
- return NRF_SUCCESS;
-}
-
-
-uint32_t nrf_drv_ppi_group_enable(nrf_ppi_channel_group_t group)
-{
- if (!is_app_group(group))
- {
- return NRF_ERROR_INVALID_PARAM;
- }
- if (!is_allocated_group(group))
- {
- return NRF_ERROR_INVALID_STATE;
- }
- nrf_ppi_group_enable(group);
- return NRF_SUCCESS;
-}
-
-
-uint32_t nrf_drv_ppi_group_disable(nrf_ppi_channel_group_t group)
-{
- if (!is_app_group(group))
- {
- return NRF_ERROR_INVALID_PARAM;
- }
- nrf_ppi_group_disable(group);
- return NRF_SUCCESS;
-}
-
-uint32_t nrf_drv_ppi_channels_remove_from_group(uint32_t channel_mask,
- nrf_ppi_channel_group_t group)
-{
- if (!is_app_group(group))
- {
- return NRF_ERROR_INVALID_PARAM;
- }
- if (!is_allocated_group(group))
- {
- return NRF_ERROR_INVALID_STATE;
- }
- if (!are_app_channels(channel_mask))
- {
- return NRF_ERROR_INVALID_PARAM;
- }
- CRITICAL_REGION_ENTER();
- nrf_ppi_channels_remove_from_group(channel_mask, group);
- CRITICAL_REGION_EXIT();
- return NRF_SUCCESS;
-}
-
-uint32_t nrf_drv_ppi_channels_include_in_group(uint32_t channel_mask,
- nrf_ppi_channel_group_t group)
-{
- if (!is_app_group(group))
- {
- return NRF_ERROR_INVALID_PARAM;
- }
- if (!is_allocated_group(group))
- {
- return NRF_ERROR_INVALID_STATE;
- }
- if (!are_app_channels(channel_mask))
- {
- return NRF_ERROR_INVALID_PARAM;
- }
- CRITICAL_REGION_ENTER();
- nrf_ppi_channels_include_in_group(channel_mask, group);
- CRITICAL_REGION_EXIT();
- return NRF_SUCCESS;
-}
http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/a1481cb2/hw/mcu/nordic/src/ext/nRF5_SDK_11.0.0_89a8197/components/drivers_nrf/ppi/nrf_drv_ppi.h
----------------------------------------------------------------------
diff --git a/hw/mcu/nordic/src/ext/nRF5_SDK_11.0.0_89a8197/components/drivers_nrf/ppi/nrf_drv_ppi.h b/hw/mcu/nordic/src/ext/nRF5_SDK_11.0.0_89a8197/components/drivers_nrf/ppi/nrf_drv_ppi.h
deleted file mode 100644
index 27cea57..0000000
--- a/hw/mcu/nordic/src/ext/nRF5_SDK_11.0.0_89a8197/components/drivers_nrf/ppi/nrf_drv_ppi.h
+++ /dev/null
@@ -1,292 +0,0 @@
-/* Copyright (c) 2015 Nordic Semiconductor. All Rights Reserved.
- *
- * The information contained herein is property of Nordic Semiconductor ASA.
- * Terms and conditions of usage are described in detail in NORDIC
- * SEMICONDUCTOR STANDARD SOFTWARE LICENSE AGREEMENT.
- *
- * Licensees are granted free, non-transferable use of the information. NO
- * WARRANTY of ANY KIND is provided. This heading must NOT be removed from
- * the file.
- *
- */
-
-#ifndef NRF_DRV_PPI_H
-#define NRF_DRV_PPI_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/*lint ++flb "Enter library region" */
-#include "sdk_errors.h"
-#include "nrf_ppi.h"
-#include <stdbool.h>
-#include <stdint.h>
-
-/** @file
- *
- * @addtogroup nrf_ppi PPI HAL and driver
- * @ingroup nrf_drivers
- * @brief Programmable Peripheral Interconnect (PPI) APIs.
- *
- * @details The PPI HAL provides basic APIs for accessing the registers of the PPI.
- * The PPI driver provides APIs on a higher level.
- *
- * @defgroup lib_driver_ppi PPI driver
- * @{
- * @ingroup nrf_ppi
- *
- * @brief Programmable Peripheral Interconnect (PPI) driver.
- */
-
-#include "sdk_resources.h"
-
-#ifdef NRF52
-
- #define NRF_PPI_ALL_APP_CHANNELS_MASK ((uint32_t)0xFFFFFFFFuL & ~(NRF_PPI_CHANNELS_USED)) /**< All PPI channels available to the application. */
- #define NRF_PPI_PROG_APP_CHANNELS_MASK ((uint32_t)0x000FFFFFuL & ~(NRF_PPI_CHANNELS_USED)) /**< Programmable PPI channels available to the application. */
- #define NRF_PPI_ALL_APP_GROUPS_MASK ((uint32_t)0x0000003FuL & ~(NRF_PPI_GROUPS_USED)) /**< All PPI groups available to the application. */
-
-#else
-
- #define NRF_PPI_ALL_APP_CHANNELS_MASK ((uint32_t)0xFFF0FFFFuL & ~(NRF_PPI_CHANNELS_USED)) /**< All PPI channels available to the application. */
- #define NRF_PPI_PROG_APP_CHANNELS_MASK ((uint32_t)0x0000FFFFuL & ~(NRF_PPI_CHANNELS_USED)) /**< Programmable PPI channels available to the application. */
- #define NRF_PPI_ALL_APP_GROUPS_MASK ((uint32_t)0x0000000FuL & ~(NRF_PPI_GROUPS_USED)) /**< All PPI groups available to the application. */
-
-#endif
-
-
-/**@brief Function for initializing PPI module.
- *
- * @retval NRF_SUCCESS If the module was successfully initialized.
- * @retval MODULE_ALREADY_INITIALIZED If the module has already been initialized.
- */
-uint32_t nrf_drv_ppi_init(void);
-
-/**@brief Function for uninitializing the PPI module.
- *
- * This function also disables all channels and clears the channel groups.
- *
- * @retval NRF_SUCCESS If the module was successfully uninitialized.
- * @retval NRF_ERROR_INVALID_STATE If the module has not been initialized yet.
- * @retval NRF_ERROR_INTERNAL If the channels or groups could not be disabled.
- */
-uint32_t nrf_drv_ppi_uninit(void);
-
-/**@brief Function for allocating a PPI channel.
- * @details This function allocates the first unused PPI channel.
- *
- * @param[out] p_channel Pointer to the PPI channel that has been allocated.
- *
- * @retval NRF_SUCCESS If the channel was successfully allocated.
- * @retval NRF_ERROR_NO_MEM If there is no available channel to be used.
- */
-uint32_t nrf_drv_ppi_channel_alloc(nrf_ppi_channel_t * p_channel);
-
-/**@brief Function for freeing a PPI channel.
- * @details This function also disables the chosen channel.
- *
- * @param[in] channel PPI channel to be freed.
- *
- * @retval NRF_SUCCESS If the channel was successfully freed.
- * @retval NRF_ERROR_INVALID_PARAM If the channel is not user-configurable.
- */
-uint32_t nrf_drv_ppi_channel_free(nrf_ppi_channel_t channel);
-
-/**@brief Function for assigning task and event endpoints to the PPI channel.
- *
- * @param[in] channel PPI channel to be assigned endpoints.
- *
- * @param[in] eep Event endpoint address.
- *
- * @param[in] tep Task endpoint address.
- *
- * @retval NRF_SUCCESS If the channel was successfully assigned.
- * @retval NRF_ERROR_INVALID_STATE If the channel is not allocated for the user.
- * @retval NRF_ERROR_INVALID_PARAM If the channel is not user-configurable.
- */
-uint32_t nrf_drv_ppi_channel_assign(nrf_ppi_channel_t channel, uint32_t eep, uint32_t tep);
-
-/**@brief Function for assigning or clearing fork endpoint to the PPI channel.
- *
- * @param[in] channel PPI channel to be assigned endpoints.
- *
- * @param[in] fork_tep Fork task endpoint address or 0 to clear.
- *
- * @retval NRF_SUCCESS If the channel was successfully assigned.
- * @retval NRF_ERROR_INVALID_STATE If the channel is not allocated for the user.
- * @retval NRF_ERROR_INVALID_PARAM If the channel is not user-configurable.
- * @retval NRF_ERROR_NOT_SUPPORTED If function is not supported.
- */
-uint32_t nrf_drv_ppi_channel_fork_assign(nrf_ppi_channel_t channel, uint32_t fork_tep);
-
-/**@brief Function for enabling a PPI channel.
- *
- * @param[in] channel PPI channel to be enabled.
- *
- * @retval NRF_SUCCESS If the channel was successfully enabled.
- * @retval NRF_ERROR_INVALID_STATE If the user-configurable channel is not allocated.
- * @retval NRF_ERROR_INVALID_PARAM If the channel cannot be enabled by the user.
- */
-uint32_t nrf_drv_ppi_channel_enable(nrf_ppi_channel_t channel);
-
-/**@brief Function for disabling a PPI channel.
- *
- * @param[in] channel PPI channel to be disabled.
- *
- * @retval NRF_SUCCESS If the channel was successfully disabled.
- * @retval NRF_ERROR_INVALID_STATE If the user-configurable channel is not allocated.
- * @retval NRF_ERROR_INVALID_PARAM If the channel cannot be disabled by the user.
- */
-uint32_t nrf_drv_ppi_channel_disable(nrf_ppi_channel_t channel);
-
-/**@brief Function for allocating a PPI channel group.
- * @details This function allocates the first unused PPI group.
- *
- * @param[out] p_group Pointer to the PPI channel group that has been allocated.
- *
- * @retval NRF_SUCCESS If the channel group was successfully allocated.
- * @retval NRF_ERROR_NO_MEM If there is no available channel group to be used.
- */
-uint32_t nrf_drv_ppi_group_alloc(nrf_ppi_channel_group_t * p_group);
-
-/**@brief Function for freeing a PPI channel group.
- * @details This function also disables the chosen group.
- *
- * @param[in] group PPI channel group to be freed.
- *
- * @retval NRF_SUCCESS If the channel group was successfully freed.
- * @retval NRF_ERROR_INVALID_PARAM If the channel group is not user-configurable.
- */
-uint32_t nrf_drv_ppi_group_free(nrf_ppi_channel_group_t group);
-
-/**@brief Compute a channel mask for NRF_PPI registers.
- *
- * @param[in] channel Channel number to transform to a mask.
- *
- * @retval Channel mask.
- */
-__STATIC_INLINE uint32_t nrf_drv_ppi_channel_to_mask(nrf_ppi_channel_t channel)
-{
- return (1uL << (uint32_t) channel);
-}
-
-/**@brief Function for including multiple PPI channels in a channel group.
- *
- * @param[in] channel_mask PPI channels to be added.
- * @param[in] group Channel group in which to include the channels.
- *
- * @retval NRF_SUCCESS If the channels was successfully included.
- */
-uint32_t nrf_drv_ppi_channels_include_in_group(uint32_t channel_mask,
- nrf_ppi_channel_group_t group);
-
-/**@brief Function for including a PPI channel in a channel group.
- *
- * @param[in] channel PPI channel to be added.
- * @param[in] group Channel group in which to include the channel.
- *
- * @retval NRF_SUCCESS If the channel was successfully included.
- */
-__STATIC_INLINE uint32_t nrf_drv_ppi_channel_include_in_group(nrf_ppi_channel_t channel,
- nrf_ppi_channel_group_t group)
-{
- return nrf_drv_ppi_channels_include_in_group(nrf_drv_ppi_channel_to_mask(channel), group);
-}
-
-/**@brief Function for removing multiple PPI channels from a channel group.
- *
- * @param[in] channel_mask PPI channels to be removed.
- * @param[in] group Channel group from which to remove the channels.
- *
- * @retval NRF_SUCCESS If the channel was successfully removed.
- */
-uint32_t nrf_drv_ppi_channels_remove_from_group(uint32_t channel_mask,
- nrf_ppi_channel_group_t group);
-
-/**@brief Function for removing a PPI channel from a channel group.
- *
- * @param[in] channel PPI channel to be removed.
- * @param[in] group Channel group from which to remove the channel.
- *
- * @retval NRF_SUCCESS If the channel was successfully removed.
- */
-__STATIC_INLINE uint32_t nrf_drv_ppi_channel_remove_from_group(nrf_ppi_channel_t channel,
- nrf_ppi_channel_group_t group)
-{
- return nrf_drv_ppi_channels_remove_from_group(nrf_drv_ppi_channel_to_mask(channel), group);
-}
-
-/**@brief Function for clearing a PPI channel group.
- *
- * @param[in] group Channel group to be cleared.
- *
- * @retval NRF_SUCCESS If the group was successfully cleared.
- */
-__STATIC_INLINE uint32_t nrf_drv_ppi_group_clear(nrf_ppi_channel_group_t group)
-{
- return nrf_drv_ppi_channels_remove_from_group(NRF_PPI_ALL_APP_CHANNELS_MASK, group);
-}
-
-/**@brief Function for enabling a PPI channel group.
- *
- * @param[in] group Channel group to be enabled.
- *
- * @retval NRF_SUCCESS If the group was successfully enabled.
- */
-uint32_t nrf_drv_ppi_group_enable(nrf_ppi_channel_group_t group);
-
-/**@brief Function for disabling a PPI channel group.
- *
- * @param[in] group Channel group to be disabled.
- *
- * @retval NRF_SUCCESS If the group was successfully disabled.
- */
-uint32_t nrf_drv_ppi_group_disable(nrf_ppi_channel_group_t group);
-
-/**
- * @brief Function for getting the address of a PPI task.
- *
- * @param[in] task Task.
- *
- * @retval Task address.
- */
-__STATIC_INLINE uint32_t nrf_drv_ppi_task_addr_get(nrf_ppi_task_t task)
-{
- return (uint32_t) nrf_ppi_task_address_get(task);
-}
-
-/**
- * @brief Function for getting the address of a PPI group enable task.
- *
- * @param[in] group PPI channel group
- *
- * @retval Task address.
- */
-__STATIC_INLINE uint32_t nrf_drv_ppi_task_addr_group_enable_get(nrf_ppi_channel_group_t group)
-{
- return (uint32_t) nrf_ppi_task_group_enable_address_get(group);
-}
-
-/**
- * @brief Function for getting the address of a PPI group enable task.
- *
- * @param[in] group PPI channel group
- *
- * @retval Task address.
- */
-__STATIC_INLINE uint32_t nrf_drv_ppi_task_addr_group_disable_get(nrf_ppi_channel_group_t group)
-{
- return (uint32_t) nrf_ppi_task_group_disable_address_get(group);
-}
-
-/**
- *@}
- **/
-
-/*lint --flb "Leave library region" */
-#ifdef __cplusplus
-}
-#endif
-
-#endif // NRF_DRV_PPI_H