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/23 18:51:26 UTC
[03/70] [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/serialization/common/transport/ser_phy/ser_phy_nrf51_uart_stm_conn.c
----------------------------------------------------------------------
diff --git a/hw/mcu/nordic/src/ext/nRF5_SDK_11.0.0_89a8197/components/serialization/common/transport/ser_phy/ser_phy_nrf51_uart_stm_conn.c b/hw/mcu/nordic/src/ext/nRF5_SDK_11.0.0_89a8197/components/serialization/common/transport/ser_phy/ser_phy_nrf51_uart_stm_conn.c
deleted file mode 100644
index 9422682..0000000
--- a/hw/mcu/nordic/src/ext/nRF5_SDK_11.0.0_89a8197/components/serialization/common/transport/ser_phy/ser_phy_nrf51_uart_stm_conn.c
+++ /dev/null
@@ -1,784 +0,0 @@
-/* Copyright (c) Nordic Semiconductor ASA
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modification,
- * are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice, this
- * list of conditions and the following disclaimer in the documentation and/or
- * other materials provided with the distribution.
- *
- * 3. Neither the name of Nordic Semiconductor ASA nor the names of other
- * contributors to this software may be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * 4. This software must only be used in a processor manufactured by Nordic
- * Semiconductor ASA, or in a processor manufactured by STMicroelectronics that
- * is used in combination with a processor manufactured by Nordic Semiconductor
- * or in a processor manufactured by STMicroelectronics.
- *
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
- * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-
-#include <stdint.h>
-#include <stdlib.h>
-
-#include "nordic_common.h"
-#include "boards.h"
-#include "nrf.h"
-#include "nrf_soc.h"
-#include "nrf_error.h"
-#include "nrf_gpio.h"
-#include "nrf_delay.h"
-#include "app_util_platform.h"
-#include "app_gpiote.h"
-#include "ser_phy.h"
-#include "ser_phy_config_conn_nrf51.h"
-
-#define APP_GPIOTE_MAX_USERS 1
-#define UART_PIN_DISCONNECTED 0xFFFFFFFF /**< Value indicating that no pin is connected to this UART register. */
-
-/** @brief States for the app_uart state machine. */
-typedef enum
-{
- UART_IDLE, /**< Indicating that the current status for either RX or TX is idle. When both RX and TX is idle the UART will be disabled in order to save power. */
- UART_RX, /**< Used to indicate that a packet is currently being received on RX. */
- UART_RX_PENDING, /**< Used to indicate that byte is ready at RXD register but no buffer was available when the byte was received. The byte will be pulled when a buffer is set. */
- UART_TX_COMPLETE, /**< Used on TX to indicate that final byte has been put on TXD register. Next TXDRDY interrupt will indicate that last byte has been transmitted. */
- UART_TX_SEND, /**< Used to indicate that a packet is currently being transmitted on TX. */
- UART_TX_LAST_BYTE_WAIT, /**< Used to indicate that the last byte on a TX packet is currently waiting to be transmitted when CTS goes low. Note that flow control is off when tranmitting final byte. */
- UART_STALL, /**< Indicates that TX is stalled because final byte is being received on the UART. */
-} uart_states_t;
-
-static volatile uint32_t m_pin_cts_mask; /**< CTS pin mask for UART module. */
-static app_gpiote_user_id_t m_gpiote_uid; /**< GPIOTE module user id for the UART module. */
-
-static volatile uint8_t * mp_tx_stream; /**< Pointer to array of data packet to be transmitted. */
-static volatile uint16_t m_tx_stream_length; /**< Total length of data packet to be transmitted. */
-static volatile uint16_t m_tx_stream_index; /**< Index in data packet for next byte to be transmitted. */
-static uint8_t m_tx_length_buf[SER_PHY_HEADER_SIZE]; /**< Buffer needed in transmission of packet length */
-
-static uint8_t * mp_rx_stream; /**< Pointer to current receive buffer. */
-static volatile uint16_t m_rx_stream_length; /**< Length of receive buffer. */
-static volatile uint16_t m_rx_stream_index; /**< Index in receive buffer where the next byte will be placed. */
-static volatile bool m_rx_stream_header; /**< Indication of whether header data (true) or payload data (false) is currently being received. */
-static uint8_t m_rx_length_buf[SER_PHY_HEADER_SIZE]; /**< Buffer needed in reception of packet length */
-static uint8_t m_rx_drop_buf[1]; /**< Additional buffer, needed by packet dropping functionality. */
-
-static volatile uart_states_t m_rx_state = UART_IDLE; /**< State of the RX state machine. */
-static volatile uart_states_t m_tx_state = UART_IDLE; /**< State of the TX state machine. */
-static volatile bool m_tx_pending = false; /**< If TX state is UART_STALL and a byte is ready for tranmission the pending flag is set to true. */
-static volatile bool m_cts_high_disconnect = false; /**< If CTS was sampled low when last byte was transmitted this flag is set to true to indicate that a switch from low->high on CTS should be interpreted as transmission has completed and UART is to be disabled to save power. */
-
-static volatile ser_phy_events_handler_t m_ser_phy_event_handler;
-static volatile ser_phy_evt_t m_ser_phy_event_rx;
-static volatile ser_phy_evt_t m_ser_phy_event_tx;
-
-
-static void uart_peripheral_disconnect_flow(void)
-{
- NRF_GPIO->OUTSET = 1 << SER_PHY_UART_RTS;
- nrf_gpio_cfg_output(SER_PHY_UART_RTS);
-
- NRF_UART0->PSELCTS = UART_PIN_DISCONNECTED;
- NRF_UART0->PSELRTS = UART_PIN_DISCONNECTED;
- NRF_UART0->CONFIG &= ~(UART_CONFIG_HWFC_Enabled << UART_CONFIG_HWFC_Pos);
-}
-
-
-static void uart_peripheral_connect_flow(void)
-{
- NRF_UART0->PSELCTS = SER_PHY_UART_CTS;
- NRF_UART0->PSELRTS = SER_PHY_UART_RTS;
- NRF_UART0->CONFIG |= (UART_CONFIG_HWFC_Enabled << UART_CONFIG_HWFC_Pos);
-}
-
-
-static void uart_peripheral_enable_wo_flow(void)
-{
- if (!(NRF_UART0->ENABLE & (UART_ENABLE_ENABLE_Enabled << UART_ENABLE_ENABLE_Pos)))
- {
- NRF_UART0->PSELCTS = UART_PIN_DISCONNECTED;
- NRF_UART0->PSELRTS = UART_PIN_DISCONNECTED;
- NRF_UART0->CONFIG &= ~(UART_CONFIG_HWFC_Enabled << UART_CONFIG_HWFC_Pos);
- NRF_UART0->TASKS_STARTRX = 1;
- NRF_UART0->TASKS_STARTTX = 1;
- NRF_UART0->ENABLE = (UART_ENABLE_ENABLE_Enabled << UART_ENABLE_ENABLE_Pos);
- }
-}
-
-
-static void uart_peripheral_enable(void)
-{
- if (!(NRF_UART0->ENABLE & (UART_ENABLE_ENABLE_Enabled << UART_ENABLE_ENABLE_Pos)))
- {
- NRF_UART0->PSELCTS = SER_PHY_UART_CTS;
- NRF_UART0->PSELRTS = SER_PHY_UART_RTS;
- NRF_UART0->CONFIG |= (UART_CONFIG_HWFC_Enabled << UART_CONFIG_HWFC_Pos);
- NRF_UART0->TASKS_STARTRX = 1;
- NRF_UART0->TASKS_STARTTX = 1;
- NRF_UART0->ENABLE = (UART_ENABLE_ENABLE_Enabled << UART_ENABLE_ENABLE_Pos);
- }
-}
-
-
-static void uart_peripheral_disable(void)
-{
- if ((m_tx_state == UART_IDLE || m_tx_state == UART_STALL) &&
- (m_rx_state == UART_IDLE))
- {
- uint32_t pins;
- NRF_UART0->TASKS_STOPTX = 1;
- NRF_UART0->TASKS_STOPRX = 1;
- NRF_UART0->PSELCTS = UART_PIN_DISCONNECTED;
- NRF_UART0->PSELRTS = UART_PIN_DISCONNECTED;
- NRF_UART0->ENABLE = (UART_ENABLE_ENABLE_Disabled << UART_ENABLE_ENABLE_Pos);
-
- nrf_gpio_cfg_input(SER_PHY_UART_RTS, NRF_GPIO_PIN_NOPULL);
-
- (void) app_gpiote_user_enable(m_gpiote_uid);
- (void) app_gpiote_pins_state_get(m_gpiote_uid, &pins);
-
- if (!pins)
- {
- NRF_GPIO->OUTSET = 1 << SER_PHY_UART_RTS;
- nrf_gpio_cfg_output(SER_PHY_UART_RTS);
- uart_peripheral_enable();
- }
- }
-}
-
-
-static void uart_tx_start(void)
-{
- if (mp_tx_stream != NULL)
- {
- //If RX is already ongoing then no wakeup signal is required.
- if (m_rx_state == UART_IDLE)
- {
- (void) app_gpiote_user_disable(m_gpiote_uid);
- uart_peripheral_enable_wo_flow();
- NRF_GPIO->OUTSET = 1 << SER_PHY_UART_RTS;
- nrf_gpio_cfg_output(SER_PHY_UART_RTS);
- NRF_GPIO->OUTCLR = 1 << SER_PHY_UART_RTS;
- nrf_delay_us(4);
- NRF_GPIO->OUTSET = 1 << SER_PHY_UART_RTS;
- uart_peripheral_connect_flow();
- }
- }
-}
-
-
-static void uart_tx_send(void)
-{
- //First send 2 bytes of header then payload
- if (m_tx_stream_index < SER_PHY_HEADER_SIZE)
- {
- NRF_UART0->TXD = m_tx_length_buf[m_tx_stream_index++];
- }
- else if (m_tx_stream_index < m_tx_stream_length)
- {
- NRF_UART0->TXD = mp_tx_stream[m_tx_stream_index++ - SER_PHY_HEADER_SIZE];
- }
-}
-
-
-static void uart_tx_last_byte(void)
-{
- uint32_t pins;
-
- uart_peripheral_disconnect_flow();
- m_tx_state = UART_TX_LAST_BYTE_WAIT;
-
- (void) app_gpiote_user_enable(m_gpiote_uid);
- (void) app_gpiote_pins_state_get(m_gpiote_uid, &pins);
-
- if (!pins) //All pins are low --> last byte can be transmitted.
- {
- (void) app_gpiote_user_disable(m_gpiote_uid);
-
- //Re-check state as it might have changed due to preemption of current interrupt.
- if (m_tx_state == UART_TX_LAST_BYTE_WAIT)
- {
- m_tx_state = UART_TX_COMPLETE;
- uart_tx_send();
- }
- }
-}
-
-
-static void tx_complete_event_send(void)
-{
- mp_tx_stream = NULL;
- m_tx_stream_length = 0;
- m_tx_stream_index = 0;
-
- m_ser_phy_event_tx.evt_type = SER_PHY_EVT_TX_PKT_SENT;
- m_ser_phy_event_handler(m_ser_phy_event_tx);
-}
-
-
-static void uart_txdrdy_handle(void)
-{
- NRF_UART0->EVENTS_TXDRDY = 0;
-
- if (m_tx_state == UART_TX_SEND || m_tx_state == UART_IDLE)
- {
- if (m_tx_stream_index < (m_tx_stream_length - 1))
- {
- m_tx_state = UART_TX_SEND;
- uart_tx_send();
- //Keep same state.
- }
- else if (m_tx_stream_index == m_tx_stream_length)
- {
- m_tx_state = UART_IDLE;
- tx_complete_event_send();
- }
- else
- {
- uart_tx_last_byte();
- }
- }
- else if (m_tx_state == UART_TX_COMPLETE)
- {
- m_tx_state = UART_IDLE;
-
- if (m_rx_state == UART_IDLE)
- {
- uint32_t pins;
- (void) app_gpiote_pins_state_get(m_gpiote_uid, &pins);
-
- if (pins)
- {
- uart_peripheral_disable();
- }
- else
- {
- uart_peripheral_connect_flow();
- m_cts_high_disconnect = true;
- (void) app_gpiote_user_enable(m_gpiote_uid);
- (void) app_gpiote_pins_state_get(m_gpiote_uid, &pins);
-
- if (pins)
- {
- //If second sample show CTS high it either
- //1) happened BEFORE gpiote enable and uart should be disabled.
- //(m_cts_high_disconnect == true).
- //2) happened AFTER gpiote enable and an interrupt low->high has occured then
- //uart should NOT be disabled as the ISR has disabled the UART.
- //(m_cts_high_disconnect == false).
- if (m_cts_high_disconnect == true)
- {
- m_cts_high_disconnect = false;
- uart_peripheral_disable();
- }
- }
- }
- }
- else
- {
- uart_peripheral_connect_flow();
- }
-
- tx_complete_event_send();
- }
- else if (m_tx_state == UART_STALL)
- {
- if (m_tx_stream_index == m_tx_stream_length)
- {
- tx_complete_event_send();
- }
- else
- {
- m_tx_pending = true;
- }
- }
- else
- {
- //Do nothing.
- }
-}
-
-
-static __INLINE void on_cts_high(void)
-{
- if (m_cts_high_disconnect == true)
- {
- m_cts_high_disconnect = false;
-
- if (m_rx_state == UART_IDLE && m_tx_state == UART_IDLE)
- {
- if (m_tx_stream_index == m_tx_stream_length)
- {
- uart_peripheral_disable();
- }
- }
- }
-}
-
-
-static __INLINE void on_cts_low(void)
-{
- m_cts_high_disconnect = false;
- (void) app_gpiote_user_disable(m_gpiote_uid);
-
- if (m_tx_state == UART_STALL)
- {
- m_tx_pending = true;
- }
- else if (m_tx_state == UART_TX_LAST_BYTE_WAIT)
- {
- m_tx_state = UART_TX_COMPLETE;
- uart_tx_send();
- }
- else if (m_rx_state == UART_IDLE && m_tx_state == UART_IDLE)
- {
- NRF_GPIO->OUTSET = 1 << SER_PHY_UART_RTS;
- nrf_gpio_cfg_output(SER_PHY_UART_RTS);
- uart_peripheral_enable();
- }
-}
-
-
-static void uart_rxdrdy_handle(void)
-{
- if (m_rx_state == UART_IDLE)
- {
- m_rx_state = UART_RX;
- }
-
- //Set proper size and buff at the beginning of receiving header
- if ((m_rx_stream_header == true) && !m_rx_stream_index)
- {
- m_rx_stream_length = SER_PHY_HEADER_SIZE;
- mp_rx_stream = m_rx_length_buf;
- }
-
- if (mp_rx_stream != NULL)
- {
- bool tx_dual_end = false;
-
- NRF_UART0->EVENTS_RXDRDY = 0;
-
- //Second last byte received.
- //Disconnect CTS before pulling the byte and receiving the final byte.
- if ((m_rx_stream_header == false) && ((m_rx_stream_index) == (m_rx_stream_length - 2)))
- {
- nrf_gpio_cfg_output(SER_PHY_UART_RTS);
-
- //Last byte is waiting for tansmission. Thus dual end TX case.
- //
- if (m_tx_state == UART_TX_LAST_BYTE_WAIT)
- {
- m_tx_state = UART_STALL;
- (void) app_gpiote_user_disable(m_gpiote_uid);
-
- //Checking pending state.
- //- If pending is true then CTS have become low after we stalled the UART and final byte should be transmitted here.
- //- If pending is false we should check if final byte was tranmitted and if not, the do the transmission her.
- if ((m_tx_pending == true) || (m_tx_stream_index == (m_tx_stream_length - 1)))
- {
- tx_dual_end = true;
- NRF_GPIO->OUTSET = 1 << SER_PHY_UART_RTS;
- uart_tx_send();
- }
- }
-
- if (!tx_dual_end)
- {
- NRF_GPIO->OUTCLR = 1 << SER_PHY_UART_RTS;
- }
- m_tx_state = UART_STALL;
-
- NRF_UART0->PSELCTS = UART_PIN_DISCONNECTED;
- NRF_UART0->PSELRTS = UART_PIN_DISCONNECTED;
- NRF_UART0->CONFIG &= ~(UART_CONFIG_HWFC_Enabled << UART_CONFIG_HWFC_Pos);
- }
-
- if (m_rx_stream_index < (m_rx_stream_length - 1))
- {
- if (mp_rx_stream != m_rx_drop_buf)
- {
- mp_rx_stream[m_rx_stream_index++] = NRF_UART0->RXD;
- }
- else
- {
- mp_rx_stream[0] = NRF_UART0->RXD;
- m_rx_stream_index++;
- }
-
- if (m_tx_stream_index == (m_tx_stream_length - 1))
- {
- //Toggle CTS line to indicate ack.
- //If CTS is connected to UART this code will have no effect.
- //But on edge case on bi-directional last byte transfer this avoids lock-up.
- NRF_GPIO->OUTSET = 1 << SER_PHY_UART_RTS;
- nrf_delay_us(4);
- NRF_GPIO->OUTCLR = 1 << SER_PHY_UART_RTS;
- }
- }
- else
- {
- if (m_rx_stream_header == false)
- {
- NRF_GPIO->OUTSET = 1 << SER_PHY_UART_RTS;
-
- if (mp_rx_stream != m_rx_drop_buf)
- {
- mp_rx_stream[m_rx_stream_index++] = NRF_UART0->RXD;
- }
- else
- {
- mp_rx_stream[0] = NRF_UART0->RXD;
- m_rx_stream_index++;
- }
- m_rx_state = UART_IDLE;
-
- //Last byte of payload received - notify that next transmission will be header
- m_rx_stream_header = true;
-
- //Prepare event
- if (mp_rx_stream != m_rx_drop_buf)
- {
- m_ser_phy_event_rx.evt_type = SER_PHY_EVT_RX_PKT_RECEIVED;
- m_ser_phy_event_rx.evt_params.rx_pkt_received.num_of_bytes = m_rx_stream_index;
- m_ser_phy_event_rx.evt_params.rx_pkt_received.p_buffer = mp_rx_stream;
- }
- else
- {
- m_ser_phy_event_rx.evt_type = SER_PHY_EVT_RX_PKT_DROPPED;
- }
-
- m_rx_stream_length = 0;
- m_rx_stream_index = 0;
- }
- else
- {
- mp_rx_stream[m_rx_stream_index++] = NRF_UART0->RXD;
-
- //Last byte of header received - notify that next transmission will be payload
- m_rx_stream_header = false;
-
- mp_rx_stream = NULL;
-
- //Clear index before receiving payload
- m_rx_stream_index = 0;
-
- //Prepare event
- m_rx_stream_length = uint16_decode(m_rx_length_buf);
- m_ser_phy_event_rx.evt_type = SER_PHY_EVT_RX_BUF_REQUEST;
- m_ser_phy_event_rx.evt_params.rx_buf_request.num_of_bytes = m_rx_stream_length;
- }
-
- //Notify upwards
- m_ser_phy_event_handler(m_ser_phy_event_rx);
-
- //UART TX was stalled while receiving final byte. Restart tx.
- if (m_tx_state == UART_STALL)
- {
- if (m_tx_stream_length == m_tx_stream_index)
- {
- m_tx_state = UART_IDLE;
- }
- else if (m_tx_stream_index == (m_tx_stream_length - 1))
- {
- m_tx_state = UART_TX_LAST_BYTE_WAIT;
- }
- else
- {
- m_tx_state = UART_TX_SEND;
- }
-
- //Critical region for avoiding timing issues in 'simultaneous RX end and TX start'
- CRITICAL_REGION_ENTER();
- if (m_tx_pending == true)
- {
- m_tx_pending = false;
- uart_tx_start();
-
- if (m_tx_state == UART_TX_SEND)
- {
- uart_tx_send();
- }
- else if (m_tx_state == UART_TX_LAST_BYTE_WAIT)
- {
- uart_tx_last_byte();
- }
- }
- CRITICAL_REGION_EXIT();
-
- if (m_tx_state == UART_IDLE)
- {
- uart_peripheral_disable();
- }
- }
- }
- }
- else
- {
- m_rx_state = UART_RX_PENDING;
- }
-}
-
-
-static __INLINE void uart_error_handle(void)
-{
- uint32_t error_source;
-
- //Clear UART ERROR event flag.
- NRF_UART0->EVENTS_ERROR = 0;
-
- //Clear error source.
- error_source = NRF_UART0->ERRORSRC;
- NRF_UART0->ERRORSRC = error_source;
-
- m_ser_phy_event_rx.evt_type = SER_PHY_EVT_HW_ERROR;
- m_ser_phy_event_rx.evt_params.hw_error.error_code = error_source;
-
- m_ser_phy_event_handler(m_ser_phy_event_rx);
-}
-
-
-/**@brief Function for handling the GPIOTE event.
- *
- * @param[in] event_pins_low_to_high Mask telling which pin(s) generated an event from low->high.
- * @param[in] event_pins_high_to_low Mask telling which pin(s) generated an event from high->low.
- */
-static void gpiote_uart_event_handler(uint32_t event_pins_low_to_high,
- uint32_t event_pins_high_to_low)
-{
- if ((event_pins_high_to_low & m_pin_cts_mask) != 0)
- {
- on_cts_low();
- }
-
- if ((event_pins_low_to_high & m_pin_cts_mask) != 0)
- {
- on_cts_high();
- }
-}
-
-
-/**@brief Function for handling the UART Interrupt.
- *
- * @details UART interrupt handler to process TX Ready when TXD is available, RX Ready when a byte
- * is received, or in case of error when receiving a byte.
- */
-void UART0_IRQHandler(void)
-{
- //Handle Reception.
- if (NRF_UART0->EVENTS_RXDRDY != 0 && (NRF_UART0->INTENSET & UART_INTENSET_RXDRDY_Msk))
- {
- uart_rxdrdy_handle();
- }
-
- //Handle transmission.
- if (NRF_UART0->EVENTS_TXDRDY != 0 && (NRF_UART0->INTENSET & UART_INTENSET_TXDRDY_Msk))
- {
- uart_txdrdy_handle();
- }
-
- //Handle errors.
- if (NRF_UART0->EVENTS_ERROR != 0 && (NRF_UART0->INTENSET & UART_INTENSET_ERROR_Msk))
- {
- uart_error_handle();
- }
-}
-
-
-uint32_t ser_phy_open(ser_phy_events_handler_t events_handler)
-{
- uint32_t gpiote_pin_low_high_mask = 0;
- uint32_t gpiote_pin_high_low_mask = 0;
-
- if (events_handler == NULL)
- {
- return NRF_ERROR_NULL;
- }
-
- //Check if function was not called before
- if (m_ser_phy_event_handler != NULL)
- {
- return NRF_ERROR_INVALID_STATE;
- }
-
- //Configure GPIOTE with one user for the UART flow control feature.
- APP_GPIOTE_INIT(APP_GPIOTE_MAX_USERS);
-
- //GPIO Setup
- nrf_gpio_cfg_input(SER_PHY_UART_RTS, NRF_GPIO_PIN_NOPULL);
-
- NRF_GPIO->OUTSET = 1 << SER_PHY_UART_TX;
- nrf_gpio_cfg_output(SER_PHY_UART_TX);
-
- //Setup the gpiote to handle pin events on cts-pin.
- //For the UART we want to detect both low->high and high->low transitions in order to
- //know when to activate/de-activate the TX/RX in the UART.
- //Configure pin.
- m_pin_cts_mask = (1 << SER_PHY_UART_CTS);
- nrf_gpio_cfg_sense_input(SER_PHY_UART_CTS,
- NRF_GPIO_PIN_PULLUP,
- NRF_GPIO_PIN_SENSE_LOW);
-
- nrf_gpio_cfg_sense_input(SER_PHY_UART_RX,
- NRF_GPIO_PIN_PULLUP,
- NRF_GPIO_PIN_NOSENSE);
-
- gpiote_pin_low_high_mask = (1 << SER_PHY_UART_CTS);
- gpiote_pin_high_low_mask = (1 << SER_PHY_UART_CTS);
-
- (void)app_gpiote_user_register(&m_gpiote_uid,
- gpiote_pin_low_high_mask,
- gpiote_pin_high_low_mask,
- gpiote_uart_event_handler);
-
- (void)app_gpiote_user_enable(m_gpiote_uid);
-
- m_rx_state = UART_IDLE;
- m_tx_state = UART_IDLE;
-
- //Set header flag
- m_rx_stream_header = true;
-
- //UART setup
- NRF_UART0->PSELRXD = SER_PHY_UART_RX;
- NRF_UART0->PSELTXD = SER_PHY_UART_TX;
- NRF_UART0->PSELCTS = UART_PIN_DISCONNECTED;
- NRF_UART0->PSELRTS = UART_PIN_DISCONNECTED;
- NRF_UART0->BAUDRATE = SER_PHY_UART_BAUDRATE;
- NRF_UART0->CONFIG = (UART_CONFIG_HWFC_Enabled << UART_CONFIG_HWFC_Pos);
- NRF_UART0->ENABLE = (UART_ENABLE_ENABLE_Disabled << UART_ENABLE_ENABLE_Pos);
-
- //Enable UART interrupt
- NRF_UART0->INTENCLR = 0xFFFFFFFF;
- NRF_UART0->INTENSET = (UART_INTENSET_TXDRDY_Set << UART_INTENSET_TXDRDY_Pos) |
- (UART_INTENSET_RXDRDY_Set << UART_INTENSET_RXDRDY_Pos) |
- (UART_INTENSET_ERROR_Set << UART_INTENSET_ERROR_Pos);
-
- NVIC_ClearPendingIRQ(UART0_IRQn);
- NVIC_SetPriority(UART0_IRQn, APP_IRQ_PRIORITY_LOW);
- NVIC_EnableIRQ(UART0_IRQn);
-
- m_ser_phy_event_handler = events_handler;
-
- return NRF_SUCCESS;
-}
-
-
-void ser_phy_close(void)
-{
- //Disable UART interrupt.
- NRF_UART0->INTENCLR = 0xFFFFFFFF;
-
- //Unregister callback.
- m_ser_phy_event_handler = NULL;
-
- //Will not check err_code here as we will still continue with closure of UART despite errors.
- //Note that any error will still be reported back in the system.
- (void)app_gpiote_user_disable(m_gpiote_uid);
-
- uart_peripheral_disable();
-
- //Clear internal UART states
- m_rx_state = UART_IDLE;
- m_tx_state = UART_IDLE;
-
- mp_tx_stream = NULL;
- m_tx_stream_length = 0;
- m_tx_stream_index = 0;
-
- mp_rx_stream = NULL;
- m_rx_stream_length = 0;
- m_rx_stream_index = 0;
-}
-
-
-uint32_t ser_phy_tx_pkt_send(const uint8_t * p_buffer, uint16_t num_of_bytes)
-{
- if (p_buffer == NULL)
- {
- return NRF_ERROR_NULL;
- }
-
- if (num_of_bytes == 0)
- {
- return NRF_ERROR_INVALID_PARAM;
- }
-
- if (mp_tx_stream != NULL)
- {
- return NRF_ERROR_BUSY;
- }
-
- m_tx_pending = true;
-
- (void) uint16_encode(num_of_bytes, m_tx_length_buf);
- mp_tx_stream = (uint8_t *)p_buffer;
- m_tx_stream_length = num_of_bytes + SER_PHY_HEADER_SIZE;
-
- //Critical region for avoiding timing issues in 'simultaneous RX end and TX start'
- CRITICAL_REGION_ENTER();
- if ((!m_rx_stream_length) || (m_rx_stream_index < (m_rx_stream_length - 2)))
- {
- if (m_tx_state != UART_STALL)
- {
- if (m_tx_pending == true)
- {
- m_tx_pending = false;
- uart_tx_start();
- //As no tx can be ongoing, then it is safe to call tx_send here.
- uart_tx_send();
- }
- }
- }
- CRITICAL_REGION_EXIT();
-
- return NRF_SUCCESS;
-}
-
-
-uint32_t ser_phy_rx_buf_set(uint8_t * p_buffer)
-{
- if (m_ser_phy_event_rx.evt_type != SER_PHY_EVT_RX_BUF_REQUEST)
- {
- return NRF_ERROR_INVALID_STATE;
- }
-
- if (p_buffer != NULL)
- {
- mp_rx_stream = p_buffer;
- }
- else
- {
- mp_rx_stream = m_rx_drop_buf;
- }
-
- return NRF_SUCCESS;
-}
-
-
-void ser_phy_interrupts_enable(void)
-{
- NVIC_EnableIRQ(UART0_IRQn);
-}
-
-
-void ser_phy_interrupts_disable(void)
-{
- NVIC_DisableIRQ(UART0_IRQn);
-}
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/serialization/common/transport/ser_phy/spi_5W_master.c
----------------------------------------------------------------------
diff --git a/hw/mcu/nordic/src/ext/nRF5_SDK_11.0.0_89a8197/components/serialization/common/transport/ser_phy/spi_5W_master.c b/hw/mcu/nordic/src/ext/nRF5_SDK_11.0.0_89a8197/components/serialization/common/transport/ser_phy/spi_5W_master.c
deleted file mode 100644
index f8276ab..0000000
--- a/hw/mcu/nordic/src/ext/nRF5_SDK_11.0.0_89a8197/components/serialization/common/transport/ser_phy/spi_5W_master.c
+++ /dev/null
@@ -1,603 +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.
- *
- */
-
-/**@file
- *
- * @defgroup ser_phy_spi_5W_hw_driver_master spi_5W_master.c
- * @{
- * @ingroup ser_phy_spi_5W_hw_driver_master
- *
- * @brief SPI_5W_RAW hardware driver.
- */
-
-#include "app_error.h"
-#include "app_util_platform.h"
-#include "nrf_gpio.h"
-#include "nrf.h"
-#include "spi_5W_master.h"
-#include "ser_config_5W_app.h"
-#include "ser_phy_debug_app.h"
-
-
-#define _static
-
-#define DOUBLE_BUFFERED /**< A flag for enabling double buffering. */
-
-#define SPI_PIN_DISCONNECTED 0xFFFFFFFF /**< A value used to the PIN deinitialization. */
-#define SPI_DEFAULT_TX_BYTE 0x00 /**< Default byte (used to clock transmission
- from slave to the master) */
-
-typedef struct
-{
- NRF_SPI_Type * p_nrf_spi; /**< A pointer to the NRF SPI master */
- IRQn_Type irq_type; /**< A type of NVIC IRQn */
-
- uint8_t * p_tx_buffer; /**< A pointer to TX buffer. */
- uint16_t tx_length; /**< A length of TX buffer. */
- uint16_t tx_index; /**< A index of the current element in the TX buffer. */
-
- uint8_t * p_rx_buffer; /**< A pointer to RX buffer. */
- uint16_t rx_length; /**< A length RX buffer. */
- uint16_t rx_index; /**< A index of the current element in the RX buffer. */
-
- uint16_t max_length; /**< Max length (Max of the TX and RX length). */
- uint16_t bytes_count;
- uint8_t pin_slave_select; /**< A pin for Slave Select. */
-
- spi_master_event_handler_t callback_event_handler; /**< A handler for event callback function. */
- spi_master_state_t state; /**< A state of an instance of SPI master. */
- bool start_flag;
- bool abort_flag;
-
-} spi_master_instance_t;
-
-#ifdef _SPI_5W_
-typedef enum
-{
- HOOK_STATE_DISABLED,
- HOOK_STATE_IDLE,
- HOOK_STATE_GUARDED,
- HOOK_STATE_ABORTED,
- HOOK_STATE_RESTARTED,
- HOOK_STATE_PASSING
-} spi_hook_state_t;
-
-
-_static spi_master_event_handler_t m_ser_phy_event_handler;
-_static spi_master_hw_instance_t m_spi_master_hw_instance;
-_static spi_hook_state_t m_hook_state = HOOK_STATE_DISABLED;
-#endif
-
-#ifdef SER_PHY_DEBUG_APP_ENABLE
-_static spi_master_raw_callback_t m_debug_callback;
-#endif
-
-_static spi_master_instance_t m_spi_master_instances[SPI_MASTER_HW_ENABLED_COUNT];
-
-static __INLINE spi_master_instance_t * spi_master_get_instance(
- const spi_master_hw_instance_t spi_master_hw_instance);
-static __INLINE void spi_master_send_recv_irq(spi_master_instance_t * const p_spi_instance);
-static __INLINE void spi_master_signal_evt(spi_master_instance_t * const p_spi_instance,
- spi_master_evt_type_t event_type,
- const uint16_t data);
-
-#ifdef SPI_MASTER_0_ENABLE
-/**
- * @brief SPI0 interrupt handler.
- */
-void SPI0_TWI0_IRQHandler(void)
-{
- if (NRF_SPI0->EVENTS_READY != 0)
- {
- NRF_SPI0->EVENTS_READY = 0;
-
- spi_master_instance_t * p_spi_instance = spi_master_get_instance(SPI_MASTER_0);
-
- spi_master_send_recv_irq(p_spi_instance);
- }
-}
-#endif //SPI_MASTER_0_ENABLE
-
-#ifdef SPI_MASTER_1_ENABLE
-/**
- * @brief SPI0 interrupt handler.
- */
-void SPI1_TWI1_IRQHandler(void)
-{
- if (NRF_SPI1->EVENTS_READY != 0)
- {
- NRF_SPI1->EVENTS_READY = 0;
-
- spi_master_instance_t * p_spi_instance = spi_master_get_instance(SPI_MASTER_1);
-
- spi_master_send_recv_irq(p_spi_instance);
- }
-}
-#endif //SPI_MASTER_1_ENABLE
-
-#if defined(SPI_MASTER_0_ENABLE) || defined(SPI_MASTER_1_ENABLE)
-
-/**@brief Function for getting an instance of SPI master. */
-static __INLINE spi_master_instance_t * spi_master_get_instance(
- const spi_master_hw_instance_t spi_master_hw_instance)
-{
- return &(m_spi_master_instances[(uint8_t)spi_master_hw_instance]);
-}
-
-/** @brief Function for initializing instance of SPI master by default values. */
-static __INLINE void spi_master_init_hw_instance(NRF_SPI_Type * p_nrf_spi,
- IRQn_Type irq_type,
- spi_master_instance_t * p_spi_instance)
-{
- APP_ERROR_CHECK_BOOL(p_spi_instance != NULL);
-
- p_spi_instance->p_nrf_spi = p_nrf_spi;
- p_spi_instance->irq_type = irq_type;
-
- p_spi_instance->p_tx_buffer = NULL;
- p_spi_instance->tx_length = 0;
- p_spi_instance->tx_index = 0;
-
- p_spi_instance->p_rx_buffer = NULL;
- p_spi_instance->rx_length = 0;
- p_spi_instance->rx_index = 0;
-
- p_spi_instance->bytes_count = 0;
- p_spi_instance->max_length = 0;
- p_spi_instance->pin_slave_select = 0;
-
- p_spi_instance->callback_event_handler = NULL;
-
- p_spi_instance->state = SPI_MASTER_STATE_DISABLED;
- p_spi_instance->abort_flag = false;
- p_spi_instance->start_flag = false;
-}
-
-/**@brief Function for initializing TX or RX buffer. */
-static __INLINE void spi_master_buffer_init(uint8_t * const p_buf,
- const uint16_t buf_len,
- uint8_t * * pp_buf,
- uint16_t * const p_buf_len,
- uint16_t * const p_index)
-{
- APP_ERROR_CHECK_BOOL(pp_buf != NULL);
- APP_ERROR_CHECK_BOOL(p_buf_len != NULL);
- APP_ERROR_CHECK_BOOL(p_index != NULL);
-
- *pp_buf = p_buf;
- *p_buf_len = (p_buf != NULL) ? buf_len : 0;
- *p_index = 0;
-}
-
-/**@brief Function for releasing TX or RX buffer. */
-static __INLINE void spi_master_buffer_release(uint8_t * * const pp_buf, uint16_t * const p_buf_len)
-{
- APP_ERROR_CHECK_BOOL(pp_buf != NULL);
- APP_ERROR_CHECK_BOOL(p_buf_len != NULL);
-
- *pp_buf = NULL;
- *p_buf_len = 0;
-}
-
-/**@brief Function for sending events by callback. */
-static __INLINE void spi_master_signal_evt(spi_master_instance_t * const p_spi_instance,
- spi_master_evt_type_t event_type,
- const uint16_t data)
-{
- APP_ERROR_CHECK_BOOL(p_spi_instance != NULL);
-
- if (p_spi_instance->callback_event_handler != NULL)
- {
- spi_master_evt_t event = {SPI_MASTER_EVT_TYPE_MAX, 0};
- event.type = event_type;
- event.data = data;
- p_spi_instance->callback_event_handler(event);
- }
-}
-
-/**@brief Function insert to a TX buffer another byte or two bytes (depends on flag @ref DOUBLE_BUFFERED). */
-static __INLINE void spi_master_send_initial_bytes(spi_master_instance_t * const p_spi_instance)
-{
- APP_ERROR_CHECK_BOOL(p_spi_instance != NULL);
-
- p_spi_instance->p_nrf_spi->TXD = ((p_spi_instance->p_tx_buffer != NULL) &&
- (p_spi_instance->tx_index < p_spi_instance->tx_length)) ?
- p_spi_instance->p_tx_buffer[p_spi_instance->tx_index] :
- SPI_DEFAULT_TX_BYTE;
- (p_spi_instance->tx_index)++;
-
- #ifdef DOUBLE_BUFFERED
-
- if (p_spi_instance->tx_index < p_spi_instance->max_length)
- {
- p_spi_instance->p_nrf_spi->TXD = ((p_spi_instance->p_tx_buffer != NULL) &&
- (p_spi_instance->tx_index < p_spi_instance->tx_length)) ?
- p_spi_instance->p_tx_buffer[p_spi_instance->tx_index] :
- SPI_DEFAULT_TX_BYTE;
- (p_spi_instance->tx_index)++;
- }
- #endif
-}
-
-/**@brief Function for receiving and sending data from IRQ. (The same for both IRQs). */
-static __INLINE void spi_master_send_recv_irq(spi_master_instance_t * const p_spi_instance)
-{
-
- uint8_t rx_byte;
-
- APP_ERROR_CHECK_BOOL(p_spi_instance != NULL);
- APP_ERROR_CHECK_BOOL(p_spi_instance->state == SPI_MASTER_STATE_BUSY);
-
- p_spi_instance->bytes_count++;
- rx_byte = p_spi_instance->p_nrf_spi->RXD;
-
- if (p_spi_instance->start_flag)
- {
- p_spi_instance->start_flag = false;
- spi_master_signal_evt(p_spi_instance, SPI_MASTER_EVT_FIRST_BYTE_RECEIVED, (uint16_t)rx_byte);
- }
- else if (p_spi_instance->abort_flag ) //this is tricky, but callback for SPI_MASTER_EVT_FIRST_BYTE_RECEIVED will set this flag for a first byte, which is bad because there is still byte in a buffer
- { //and for a single byte transaction you will get XFERDONE event to restart
- p_spi_instance->abort_flag = false;
- p_spi_instance->state = SPI_MASTER_STATE_ABORTED;
- nrf_gpio_pin_set(p_spi_instance->pin_slave_select);
- spi_master_signal_evt(p_spi_instance, SPI_MASTER_EVT_TRANSFER_ABORTED, 0);
- return;
- }
-
- if ((p_spi_instance->p_rx_buffer != NULL) &&
- (p_spi_instance->rx_index < p_spi_instance->rx_length))
- {
- p_spi_instance->p_rx_buffer[p_spi_instance->rx_index++] = rx_byte;
- }
-
- if ((p_spi_instance->tx_index < p_spi_instance->max_length) && (!(p_spi_instance->abort_flag))) //do not TX if you know that there is an abort to be done - this should work for a DOUBLE BUFFERING ???
- {
- p_spi_instance->p_nrf_spi->TXD = ((p_spi_instance->p_tx_buffer != NULL) &&
- (p_spi_instance->tx_index < p_spi_instance->tx_length)) ?
- p_spi_instance->p_tx_buffer[p_spi_instance->tx_index] :
- SPI_DEFAULT_TX_BYTE;
- (p_spi_instance->tx_index)++;
- }
-
- if (p_spi_instance->bytes_count >= p_spi_instance->max_length)
- {
- APP_ERROR_CHECK_BOOL(p_spi_instance->bytes_count == p_spi_instance->max_length);
- nrf_gpio_pin_set(p_spi_instance->pin_slave_select);
- p_spi_instance->state = SPI_MASTER_STATE_IDLE;
- spi_master_signal_evt(p_spi_instance,
- SPI_MASTER_EVT_TRANSFER_COMPLETED,
- p_spi_instance->tx_index);
- }
- return;
-}
-#endif //defined(SPI_MASTER_0_ENABLE) || defined(SPI_MASTER_1_ENABLE)
-
-
-/**
- * @brief Function for opening and initializing a SPI master driver. */
-uint32_t spi_master_open(const spi_master_hw_instance_t spi_master_hw_instance,
- spi_master_config_t const * const p_spi_master_config)
-{
- #if defined(SPI_MASTER_0_ENABLE) || defined(SPI_MASTER_1_ENABLE)
-
-
- if (p_spi_master_config == NULL)
- {
- return NRF_ERROR_NULL;
- }
-
- spi_master_instance_t * p_spi_instance = spi_master_get_instance(spi_master_hw_instance);
-
- switch (spi_master_hw_instance)
- {
- #ifdef SPI_MASTER_0_ENABLE
- case SPI_MASTER_0:
- spi_master_init_hw_instance(NRF_SPI0, SPI0_TWI0_IRQn, p_spi_instance);
- break;
- #endif //SPI_MASTER_0_ENABLE
-
- #ifdef SPI_MASTER_1_ENABLE
- case SPI_MASTER_1:
- spi_master_init_hw_instance(NRF_SPI1, SPI1_TWI1_IRQn, p_spi_instance);
- break;
- #endif //SPI_MASTER_1_ENABLE
-
- default:
- break;
- }
-
- //A Slave select must be set as high before setting it as output,
- //because during connect it to the pin it causes glitches.
- nrf_gpio_pin_set(p_spi_master_config->SPI_Pin_SS);
- nrf_gpio_cfg_output(p_spi_master_config->SPI_Pin_SS);
- nrf_gpio_pin_set(p_spi_master_config->SPI_Pin_SS);
-
- //Configure GPIO
- nrf_gpio_cfg_output(p_spi_master_config->SPI_Pin_SCK);
- nrf_gpio_cfg_output(p_spi_master_config->SPI_Pin_MOSI);
- nrf_gpio_cfg_input(p_spi_master_config->SPI_Pin_MISO, NRF_GPIO_PIN_NOPULL);
- p_spi_instance->pin_slave_select = p_spi_master_config->SPI_Pin_SS;
-
- /* Configure SPI hardware */
- p_spi_instance->p_nrf_spi->PSELSCK = p_spi_master_config->SPI_Pin_SCK;
- p_spi_instance->p_nrf_spi->PSELMOSI = p_spi_master_config->SPI_Pin_MOSI;
- p_spi_instance->p_nrf_spi->PSELMISO = p_spi_master_config->SPI_Pin_MISO;
-
- p_spi_instance->p_nrf_spi->FREQUENCY = p_spi_master_config->SPI_Freq;
-
- p_spi_instance->p_nrf_spi->CONFIG =
- (uint32_t)(p_spi_master_config->SPI_CPHA << SPI_CONFIG_CPHA_Pos) |
- (p_spi_master_config->SPI_CPOL << SPI_CONFIG_CPOL_Pos) |
- (p_spi_master_config->SPI_ORDER << SPI_CONFIG_ORDER_Pos);
-
-
- /* Clear waiting interrupts and events */
- p_spi_instance->p_nrf_spi->EVENTS_READY = 0;
-
- NVIC_ClearPendingIRQ(p_spi_instance->irq_type);
- NVIC_SetPriority(p_spi_instance->irq_type, APP_IRQ_PRIORITY_MID);
-
- /* Clear event handler */
- p_spi_instance->callback_event_handler = NULL;
-
- /* Enable interrupt */
- p_spi_instance->p_nrf_spi->INTENSET = (SPI_INTENSET_READY_Set << SPI_INTENCLR_READY_Pos);
- NVIC_EnableIRQ(p_spi_instance->irq_type);
-
- /* Enable SPI hardware */
- p_spi_instance->p_nrf_spi->ENABLE = (SPI_ENABLE_ENABLE_Enabled << SPI_ENABLE_ENABLE_Pos);
-
- /* Change state to IDLE */
- p_spi_instance->state = SPI_MASTER_STATE_IDLE;
-
- return NRF_SUCCESS;
- #else
- return NRF_ERROR_NOT_SUPPORTED;
- #endif
-}
-
-/**
- * @brief Function for closing a SPI master driver.
- */
-void spi_master_close(const spi_master_hw_instance_t spi_master_hw_instance)
-{
- #if defined(SPI_MASTER_0_ENABLE) || defined(SPI_MASTER_1_ENABLE)
- spi_master_instance_t * p_spi_instance = spi_master_get_instance(spi_master_hw_instance);
-
- /* Disable interrupt */
- NVIC_ClearPendingIRQ(p_spi_instance->irq_type);
- NVIC_DisableIRQ(p_spi_instance->irq_type);
-
- p_spi_instance->p_nrf_spi->ENABLE = (SPI_ENABLE_ENABLE_Disabled << SPI_ENABLE_ENABLE_Pos);
-
- /* Disconnect pin slave select */
- nrf_gpio_pin_clear(p_spi_instance->pin_slave_select);
- p_spi_instance->pin_slave_select = (uint8_t)0xFF;
-
- /* Disconnect pins from SPI hardware */
- p_spi_instance->p_nrf_spi->PSELSCK = (uint32_t)SPI_PIN_DISCONNECTED;
- p_spi_instance->p_nrf_spi->PSELMOSI = (uint32_t)SPI_PIN_DISCONNECTED;
- p_spi_instance->p_nrf_spi->PSELMISO = (uint32_t)SPI_PIN_DISCONNECTED;
-
- /* Reset to default values */
- spi_master_init_hw_instance(NULL, (IRQn_Type)0, p_spi_instance);
- #else
- return;
- #endif
-}
-
-/**
- * @brief Function for getting current state of the SPI master driver.
- */
-__INLINE spi_master_state_t spi_master_get_state(
- const spi_master_hw_instance_t spi_master_hw_instance)
-{
- #if defined(SPI_MASTER_0_ENABLE) || defined(SPI_MASTER_1_ENABLE)
- spi_master_instance_t * spi_instance = spi_master_get_instance(spi_master_hw_instance);
- return spi_instance->state;
- #else
- return SPI_MASTER_STATE_DISABLED;
- #endif
-}
-
-/**
- * @brief Function for event handler registration.
- */
-__INLINE void spi_master_evt_handler_reg(const spi_master_hw_instance_t spi_master_hw_instance,
- spi_master_event_handler_t event_handler)
-{
- #if defined(SPI_MASTER_0_ENABLE) || defined(SPI_MASTER_1_ENABLE)
- spi_master_instance_t * spi_instance = spi_master_get_instance(spi_master_hw_instance);
- spi_instance->callback_event_handler = event_handler;
- #else
- return;
- #endif
-}
-
-/**
- * @brief Function for transmitting data between SPI master and SPI slave.
- */
-uint32_t spi_master_send_recv(const spi_master_hw_instance_t spi_master_hw_instance,
- uint8_t * const p_tx_buf, const uint16_t tx_buf_len,
- uint8_t * const p_rx_buf, const uint16_t rx_buf_len)
-{
- #if defined(SPI_MASTER_0_ENABLE) || defined(SPI_MASTER_1_ENABLE)
- spi_master_instance_t * p_spi_instance = spi_master_get_instance(spi_master_hw_instance);
-
- uint32_t err_code = NRF_SUCCESS;
- uint16_t max_length = 0;
-
- if (p_spi_instance->state == SPI_MASTER_STATE_IDLE)
- {
- NVIC_DisableIRQ(p_spi_instance->irq_type);
-
- max_length = (rx_buf_len > tx_buf_len) ? rx_buf_len : tx_buf_len;
-
- if (max_length > 0)
- {
- p_spi_instance->state = SPI_MASTER_STATE_BUSY;
- p_spi_instance->start_flag = true; //abort_flag should set by abort and cleared only by restart
- p_spi_instance->bytes_count = 0;
- p_spi_instance->max_length = max_length;
- spi_master_buffer_release(&(p_spi_instance->p_tx_buffer), &(p_spi_instance->tx_length));
- spi_master_buffer_release(&(p_spi_instance->p_rx_buffer), &(p_spi_instance->rx_length));
- /* Initialize buffers */
- spi_master_buffer_init(p_tx_buf, tx_buf_len, &(p_spi_instance->p_tx_buffer),
- &(p_spi_instance->tx_length), &(p_spi_instance->tx_index));
- spi_master_buffer_init(p_rx_buf, rx_buf_len, &(p_spi_instance->p_rx_buffer),
- &(p_spi_instance->rx_length), &(p_spi_instance->rx_index));
- nrf_gpio_pin_clear(p_spi_instance->pin_slave_select);
- spi_master_send_initial_bytes(p_spi_instance);
- spi_master_signal_evt(p_spi_instance, SPI_MASTER_EVT_TRANSFER_STARTED, max_length);
- }
- else
- {
- err_code = NRF_ERROR_INVALID_PARAM;
- }
-
- NVIC_EnableIRQ(p_spi_instance->irq_type);
- }
- else
- {
- err_code = NRF_ERROR_BUSY;
- }
-
- return err_code;
- #else
- return NRF_ERROR_NOT_SUPPORTED;
- #endif
-}
-
-#ifdef _SPI_5W_
-
-/**
- * @brief Function for aborting transfer
- */
-uint32_t spi_master_abort(const spi_master_hw_instance_t spi_master_hw_instance)
-{
- spi_master_instance_t * p_spi_instance = spi_master_get_instance(spi_master_hw_instance);
-
- NVIC_DisableIRQ(p_spi_instance->irq_type);
-
- if (p_spi_instance->state == SPI_MASTER_STATE_BUSY)
- {
- //set_flag - but only when there are events pending
- //ignore when in IDLE - must be able to restart a completed transfer
- p_spi_instance->abort_flag = true;
- }
- NVIC_EnableIRQ(p_spi_instance->irq_type);
- return NRF_SUCCESS;
-}
-
-/**
- * @brief Function for restarting transfer
- */
-uint32_t spi_master_restart(const spi_master_hw_instance_t spi_master_hw_instance)
-{
- spi_master_instance_t * p_spi_instance = spi_master_get_instance(spi_master_hw_instance);
-
- NVIC_DisableIRQ(p_spi_instance->irq_type);
- spi_master_signal_evt(p_spi_instance, SPI_MASTER_EVT_TRANSFER_RESTARTED, 0);
- p_spi_instance->state = SPI_MASTER_STATE_BUSY;
- p_spi_instance->bytes_count = 0;
- p_spi_instance->tx_index = 0;
- p_spi_instance->rx_index = 0;
- p_spi_instance->start_flag = true;
- p_spi_instance->abort_flag = false; //you should force clearing abort flag - no other way for 1 byte transfer
- nrf_gpio_pin_clear(p_spi_instance->pin_slave_select);
- spi_master_send_initial_bytes(p_spi_instance);
- NVIC_EnableIRQ(p_spi_instance->irq_type);
-
- return NRF_SUCCESS;
-}
-
-static void spi_5W_master_event_handler(spi_master_evt_t evt)
-{
-
- switch (m_hook_state)
- {
- case HOOK_STATE_IDLE:
-
- if (evt.type == SPI_MASTER_EVT_TRANSFER_STARTED)
- {
- DEBUG_EVT_SPI_MASTER_RAW_XFER_GUARDED(0);
- m_hook_state = HOOK_STATE_GUARDED;
- m_ser_phy_event_handler(evt);
- }
- break;
-
- case HOOK_STATE_GUARDED:
-
- if (evt.type == SPI_MASTER_EVT_FIRST_BYTE_RECEIVED)
- {
- if (evt.data == 0)
- {
- DEBUG_EVT_SPI_MASTER_RAW_XFER_PASSED(0);
- m_hook_state = HOOK_STATE_PASSING;
- }
- else
- {
- DEBUG_EVT_SPI_MASTER_RAW_XFER_ABORTED(0);
- m_hook_state = HOOK_STATE_ABORTED;
- (void)spi_master_abort(m_spi_master_hw_instance);
- }
- }
- break;
-
- case HOOK_STATE_ABORTED:
-
- if ((evt.type == SPI_MASTER_EVT_TRANSFER_ABORTED) ||
- (evt.type == SPI_MASTER_EVT_TRANSFER_COMPLETED))
- {
- DEBUG_EVT_SPI_MASTER_RAW_XFER_RESTARTED(0);
- m_hook_state = HOOK_STATE_RESTARTED;
- (void)spi_master_restart(m_spi_master_hw_instance);
- }
- break;
-
- case HOOK_STATE_RESTARTED:
-
- if (evt.type == SPI_MASTER_EVT_TRANSFER_RESTARTED)
- {
- DEBUG_EVT_SPI_MASTER_RAW_XFER_GUARDED(0);
- m_hook_state = HOOK_STATE_GUARDED;
- }
- break;
-
- case HOOK_STATE_PASSING:
-
- if (evt.type == SPI_MASTER_EVT_TRANSFER_COMPLETED)
- {
- m_hook_state = HOOK_STATE_IDLE;
- m_ser_phy_event_handler(evt); //this is the only way to get a signal from complete transaction
- }
- break;
-
- default:
- break;
- }
-}
-
-void spi_5W_master_evt_handler_reg(const spi_master_hw_instance_t spi_master_hw_instance,
- spi_master_event_handler_t event_handler)
-{
- m_ser_phy_event_handler = event_handler;
- m_spi_master_hw_instance = spi_master_hw_instance;
- m_hook_state = HOOK_STATE_IDLE;
- spi_master_evt_handler_reg(spi_master_hw_instance, spi_5W_master_event_handler);
- return;
-}
-
-#endif
-
-/** @} */
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/serialization/common/transport/ser_phy/spi_5W_master.h
----------------------------------------------------------------------
diff --git a/hw/mcu/nordic/src/ext/nRF5_SDK_11.0.0_89a8197/components/serialization/common/transport/ser_phy/spi_5W_master.h b/hw/mcu/nordic/src/ext/nRF5_SDK_11.0.0_89a8197/components/serialization/common/transport/ser_phy/spi_5W_master.h
deleted file mode 100644
index 501eeff..0000000
--- a/hw/mcu/nordic/src/ext/nRF5_SDK_11.0.0_89a8197/components/serialization/common/transport/ser_phy/spi_5W_master.h
+++ /dev/null
@@ -1,178 +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 APP_SPI_MASTER_H
-#define APP_SPI_MASTER_H
-
-#include <stdint.h>
-#include <stdlib.h>
-#include "boards.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#define _SPI_5W_
-
-/**@brief Struct containing configuration parameters of the SPI master. */
-typedef struct
-{
- uint32_t SPI_Freq; /**< SPI frequency. */
- uint32_t SPI_Pin_SCK; /**< SCK pin number. */
- uint32_t SPI_Pin_MISO; /**< MISO pin number. */
- uint32_t SPI_Pin_MOSI; /**< MOSI pin number .*/
- uint32_t SPI_Pin_SS; /**< Slave select pin number. */
- uint8_t SPI_ORDER; /**< Bytes order MSBFIRST or LSBFIRST. */
- uint8_t SPI_CPOL; /**< Serial clock polarity ACTIVEHIGH or ACTIVELOW. */
- uint8_t SPI_CPHA; /**< Serial clock phase LEADING or TRAILING. */
- } spi_master_config_t;
-
-/**@brief SPI master driver events types. */
-typedef enum
-{
- SPI_MASTER_EVT_TRANSFER_STARTED = 0, /**< An event indicating that transfer has been started */
- SPI_MASTER_EVT_TRANSFER_COMPLETED, /**< An event indicating that transfer has been completed */
- SPI_MASTER_EVT_TRANSFER_ABORTED, /**< An event indicating that transfer has been aborted */
- SPI_MASTER_EVT_TRANSFER_RESTARTED, /**< An event indicating that transfer has been resumed */
- SPI_MASTER_EVT_FIRST_BYTE_RECEIVED, /**< An event indicating end of one byte transfer */
- SPI_MASTER_EVT_TYPE_MAX /**< Enumeration upper bound. */
-} spi_master_evt_type_t;
-
-/**@brief Struct containing parameters of the SPI MASTER event */
- typedef struct
- {
- spi_master_evt_type_t type; /**< Type of an event */
- uint16_t data; /**< event data - context dependent */
- } spi_master_evt_t;
-
- /**@brief SPI MASTER internal states types. */
- typedef enum
- {
- SPI_MASTER_STATE_DISABLED, /**< A state indicating that SPI master is disabled. */
- SPI_MASTER_STATE_BUSY, /**< A state indicating that SPI master is sending now. */
- SPI_MASTER_STATE_ABORTED,
- SPI_MASTER_STATE_IDLE /**< A state indicating that SPI master is idle now. */
- } spi_master_state_t;
-
- /**@brief Instances of SPI master module. */
- typedef enum
- {
- #ifdef SPI_MASTER_0_ENABLE
- SPI_MASTER_0, /**< A instance of SPI master 0. */
- #endif
-
- #ifdef SPI_MASTER_1_ENABLE
- SPI_MASTER_1, /**< A instance of SPI master 1. */
- #endif
-
- SPI_MASTER_HW_ENABLED_COUNT /**< A number of enabled instances of SPI master. */
- } spi_master_hw_instance_t;
-
-/**@brief Type of generic callback function handler to be used by all SPI MASTER driver events.
- *
- * @param[in] spi_master_evt SPI MASTER driver event.
- */
-typedef void (*spi_master_event_handler_t) (spi_master_evt_t spi_master_evt);
-
-
-/**@brief Function for opening and initializing a SPI master driver.
- *
- * @note Function initializes SPI master hardware and internal module states, unregister events callback.
- *
- * @warning If the function has been already called, the function @ref spi_master_close has to be
- * called before spi_master_open can be called again.
- *
- * @param[in] spi_master_hw_instance Instance of SPI master module.
- * @param[in] p_spi_master_config Pointer to configuration structure which will be used
- * to initialize SPI MASTER hardware.
- *
- * @retval NRF_SUCCESS Operation success.
- * @retval NRF_ERROR_INVALID_STATE Operation failure. The function has been already called.
- * To call it again the function @ref spi_master_close
- * has to be called previously.
- * @retval NRF_ERROR_NULL Operation failure. NULL pointer supplied.
- */
-uint32_t spi_master_open(const spi_master_hw_instance_t spi_master_hw_instance,
- spi_master_config_t const * const p_spi_master_config);
-
-
-/**@brief Function for closing a SPI MASTER driver.
- *
- * @note Function disable hardware, reset internal module states and unregister events callback
- * function.
- *
- * @param[in] spi_master_hw_instance A instance of SPI master.
- */
-void spi_master_close(const spi_master_hw_instance_t spi_master_hw_instance);
-
-
-/**@brief Function for transferring data between SPI master and SPI slave
- *
- * @note Function registers buffers pointed by p_tx_buf and p_rx_buf parameters, after that starts transmission.
- * Function generates an event of type @ref SPI_MASTER_EVT_TRANSFER_STARTED when transfer has been started
- * and @ref SPI_MASTER_EVT_TRANSFER_COMPLETED when transfer has been completed.
- *
- * @param[in] spi_master_hw_instance Instance of SPI master module.
- * @param[in] p_tx_buf Pointer to a transmit buffer.
- * @param[in] tx_buf_len Number of octets to the transfer.
- * @param[out] p_rx_buf Pointer to a receive buffer.
- * @param[in] rx_buf_len Number of octets to be received.
- *
- * @retval NRF_SUCCESS Operation success. Packet was registered to the transmission
- * and event will be send upon transmission completion.
- * @retval NRF_ERROR_BUSY Operation failure. Transmitting of a data is in progress.
- */
- uint32_t spi_master_send_recv(const spi_master_hw_instance_t spi_master_hw_instance,
- uint8_t * const p_tx_buf, const uint16_t tx_buf_len,
- uint8_t * const p_rx_buf, const uint16_t rx_buf_len);
-
-
-/**@brief Function for registration event handler.
-*
-* @note Function registers a event handler to be used by SPI MASTER driver for sending events.
-* @ref SPI_MASTER_EVT_TRANSFER_STARTED and @ref SPI_MASTER_EVT_TRANSFER_COMPLETED.
-*
-* @param[in] spi_master_hw_instance Instance of SPI master module.
-* @param[in] event_handler Generic callback function handler to be used
-* by all SPI master driver events.
-*/
-void spi_master_evt_handler_reg(const spi_master_hw_instance_t spi_master_hw_instance,
- spi_master_event_handler_t event_handler);
-
-
-/**@brief Function for getting current state of the SPI master driver.
- *
- * @note Function gets current state of the SPI master driver.
- *
- * @param[in] spi_master_hw_instance Instance of SPI master module.
- *
- * @retval SPI_MASTER_STATE_DISABLED SPI MASTER is disabled.
- * @retval SPI_MASTER_STATE_BUSY SPI_MASTER is sending now.
- * @retval SPI_MASTER_STATE_IDLE SPI_MASTER is idle now.
- */
-spi_master_state_t spi_master_get_state(const spi_master_hw_instance_t spi_master_hw_instance);
-
-#ifdef _SPI_5W_
-
-uint32_t spi_master_abort(const spi_master_hw_instance_t spi_master_hw_instance);
-
-uint32_t spi_master_restart(const spi_master_hw_instance_t spi_master_hw_instance);
-
-void spi_5W_master_evt_handler_reg(const spi_master_hw_instance_t spi_master_hw_instance,
- spi_master_event_handler_t event_handler);
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
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/serialization/common/transport/ser_phy_debug_comm.h
----------------------------------------------------------------------
diff --git a/hw/mcu/nordic/src/ext/nRF5_SDK_11.0.0_89a8197/components/serialization/common/transport/ser_phy_debug_comm.h b/hw/mcu/nordic/src/ext/nRF5_SDK_11.0.0_89a8197/components/serialization/common/transport/ser_phy_debug_comm.h
deleted file mode 100644
index 5cd6c1e..0000000
--- a/hw/mcu/nordic/src/ext/nRF5_SDK_11.0.0_89a8197/components/serialization/common/transport/ser_phy_debug_comm.h
+++ /dev/null
@@ -1,175 +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 SER_PHY_DEBUG_COMM_H__
-#define SER_PHY_DEBUG_COMM_H__
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#ifndef SER_PHY_HCI_DEBUG_ENABLE
-
-// empty definitions here
-#define DEBUG_EVT_HCI_PHY_EVT_TX_PKT_SENT(data)
-#define DEBUG_EVT_HCI_PHY_EVT_BUF_REQUEST(data)
-#define DEBUG_EVT_HCI_PHY_EVT_RX_PKT_RECEIVED(data)
-#define DEBUG_EVT_HCI_PHY_EVT_RX_PKT_DROPPED(data)
-#define DEBUG_EVT_HCI_PHY_EVT_TX_ERROR(data)
-#define DEBUG_EVT_SLIP_PACKET_TX(data)
-#define DEBUG_EVT_SLIP_ACK_TX(data)
-#define DEBUG_EVT_SLIP_PACKET_TXED(data)
-#define DEBUG_EVT_SLIP_ACK_TXED(data)
-#define DEBUG_EVT_SLIP_PACKET_RXED(data)
-#define DEBUG_EVT_SLIP_ACK_RXED(data)
-#define DEBUG_EVT_SLIP_ERR_RXED(data)
-#define DEBUG_EVT_TIMEOUT(data)
-#define DEBUG_HCI_RETX(data)
-#define DEBUG_EVT_MAIN_BUSY(data)
-#define DEBUG_EVT_TX_REQ(data)
-
-#else
-#include <stdint.h>
-
-//Low level hardware events
-typedef enum
-{
- HCI_PHY_EVT_TX_PKT_SENT,
- HCI_PHY_EVT_BUF_REQUEST,
- HCI_PHY_EVT_RX_PKT_RECEIVED,
- HCI_PHY_EVT_RX_PKT_DROPPED,
- HCI_PHY_EVT_TX_ERROR,
- HCI_SLIP_EVT_PACKET_TX,
- HCI_SLIP_EVT_ACK_TX,
- HCI_SLIP_EVT_PACKET_TXED,
- HCI_SLIP_EVT_ACK_TXED,
- HCI_SLIP_EVT_PACKET_RXED,
- HCI_SLIP_EVT_ACK_RXED,
- HCI_SLIP_EVT_ERR_RXED,
- HCI_TIMER_EVT_TIMEOUT,
- HCI_RETX,
- HCI_MAIN_BUSY,
- HCI_TX_REQ,
- HCI_PHY_EVT_MAX
-} hci_dbg_evt_type_t;
-
-
-//Low level hardware event definition
-typedef struct
-{
- hci_dbg_evt_type_t evt;
- uint32_t data;
-} hci_dbg_evt_t;
-
-typedef void (*hci_dbg_event_handler_t)(hci_dbg_evt_t event);
-
-void debug_init(hci_dbg_event_handler_t evt_callback);
-
-void debug_evt(hci_dbg_evt_type_t evt, uint32_t data);
-
-
-#define DEBUG_EVT(event_type, data) \
-do { \
- debug_evt(event_type, data); \
-} while(0);
-
-
-#define DEBUG_EVT_HCI_PHY_EVT_TX_PKT_SENT(data) \
-do { \
- DEBUG_EVT(HCI_PHY_EVT_TX_PKT_SENT, data); \
-} while (0);
-
-
-#define DEBUG_EVT_HCI_PHY_EVT_BUF_REQUEST(data) \
-do { \
- DEBUG_EVT(HCI_PHY_EVT_BUF_REQUEST, data); \
-} while (0);
-
-
-#define DEBUG_EVT_HCI_PHY_EVT_RX_PKT_RECEIVED(data) \
-do { \
- DEBUG_EVT(HCI_PHY_EVT_RX_PKT_RECEIVED, data); \
-} while (0);
-
-
-#define DEBUG_EVT_HCI_PHY_EVT_RX_PKT_DROPPED(data) \
-do { \
- DEBUG_EVT(HCI_PHY_EVT_RX_PKT_DROPPED, data); \
-} while (0);
-
-#define DEBUG_EVT_HCI_PHY_EVT_TX_ERROR(data) \
-do { \
- DEBUG_EVT(HCI_PHY_EVT_TX_ERROR, data); \
-} while (0);
-
-#define DEBUG_EVT_SLIP_PACKET_TX(data) \
-do { \
- DEBUG_EVT(HCI_SLIP_EVT_PACKET_TX, data); \
-} while (0);
-
-#define DEBUG_EVT_SLIP_ACK_TX(data) \
-do { \
- DEBUG_EVT(HCI_SLIP_EVT_ACK_TX, data); \
-} while (0);
-
-#define DEBUG_EVT_SLIP_PACKET_TXED(data) \
-do { \
- DEBUG_EVT(HCI_SLIP_EVT_PACKET_TXED, data); \
-} while (0);
-
-#define DEBUG_EVT_SLIP_ACK_TXED(data) \
-do { \
- DEBUG_EVT(HCI_SLIP_EVT_ACK_TXED, data); \
-} while (0);
-
-#define DEBUG_EVT_SLIP_PACKET_RXED(data) \
-do { \
- DEBUG_EVT(HCI_SLIP_EVT_PACKET_RXED, data); \
-} while (0);
-
-#define DEBUG_EVT_SLIP_ACK_RXED(data) \
-do { \
- DEBUG_EVT(HCI_SLIP_EVT_ACK_RXED, data); \
-} while (0);
-
-#define DEBUG_EVT_SLIP_ERR_RXED(data) \
-do { \
- DEBUG_EVT(HCI_SLIP_EVT_ERR_RXED, data); \
-} while (0);
-
-#define DEBUG_EVT_TIMEOUT(data) \
-do { \
- DEBUG_EVT(HCI_TIMER_EVT_TIMEOUT, data); \
-} while (0);
-
-#define DEBUG_HCI_RETX(data) \
-do { \
- DEBUG_EVT(HCI_RETX, data); \
-} while (0);
-
-#define DEBUG_EVT_MAIN_BUSY(data) \
-do { \
- DEBUG_EVT(HCI_MAIN_BUSY, data); \
-} while (0);
-
-#define DEBUG_EVT_TX_REQ(data) \
-do { \
- DEBUG_EVT(HCI_TX_REQ, data); \
-} while (0);
-
-#endif // SER_PHY_HCI_DEBUG_ENABLE
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif // SER_PHY_DEBUG_COMM_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/serialization/connectivity/codecs/common/ble_dtm_conn.h
----------------------------------------------------------------------
diff --git a/hw/mcu/nordic/src/ext/nRF5_SDK_11.0.0_89a8197/components/serialization/connectivity/codecs/common/ble_dtm_conn.h b/hw/mcu/nordic/src/ext/nRF5_SDK_11.0.0_89a8197/components/serialization/connectivity/codecs/common/ble_dtm_conn.h
deleted file mode 100644
index 0ea2677..0000000
--- a/hw/mcu/nordic/src/ext/nRF5_SDK_11.0.0_89a8197/components/serialization/connectivity/codecs/common/ble_dtm_conn.h
+++ /dev/null
@@ -1,85 +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 BLE_DTM_CONN_H__
-#define BLE_DTM_CONN_H__
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * @addtogroup ser_codecs Serialization codecs
- * @ingroup ble_sdk_lib_serialization
- */
-
-/**
- * @addtogroup ser_conn_common_codecs Connectivity common codecs
- * @ingroup ser_codecs
- */
-
-/**@file
- *
- * @defgroup ble_dtm_conn DTM Connectivity command request decoder and command response encoder
- * @{
- * @ingroup ser_conn_common_codecs
- *
- * @brief DTM Connectivity command request decoder and command response encoder
- */
-
-#include "dtm_uart.h"
-
-/**@brief Decodes @ref ble_dtm_init command request.
- *
- * @sa @ref nrf51_dtm_init_encoding_sec for packet format,
- * @ref ble_dtm_init_rsp_enc for response encoding.
- *
- * @param[in] p_buf Pointer to beginning of command request packet.
- * @param[in] packet_len Length (in bytes) of request packet.
- * @param[in] p_comm_params Pointer to the structure with DTM Uart configuration.
-
- *
- * @retval NRF_SUCCESS Decoding success.
- * @retval NRF_ERROR_NULL Decoding failure. NULL pointer supplied.
- * @retval NRF_ERROR_INVALID_LENGTH Decoding failure. Incorrect buffer length.
- */
-uint32_t ble_dtm_init_req_dec(uint8_t const * const p_buf,
- uint16_t packet_len,
- app_uart_stream_comm_params_t * p_comm_params);
-
-
-/**@brief Encodes @ref ble_dtm_init command response.
- *
- * @sa @ref nrf51_dtm_init_encoding_sec for packet format.
- * @ref ble_dtm_init_req_dec for request decoding.
- *
- * @param[in] return_code Return code indicating if command was successful or not.
- * @param[out] p_buf Pointer to buffer where encoded data command response will be
- * returned.
- * @param[in,out] p_buf_len \c in: size of \p p_buf buffer.
- * \c out: Length of encoded command response packet.
- *
- * @retval NRF_SUCCESS Encoding success.
- * @retval NRF_ERROR_NULL Encoding failure. NULL pointer supplied.
- * @retval NRF_ERROR_INVALID_LENGTH Encoding failure. Incorrect buffer length.
- */
-uint32_t ble_dtm_init_rsp_enc(uint32_t return_code,
- uint8_t * const p_buf,
- uint32_t * const p_buf_len);
-
-/** @} */
-#ifdef __cplusplus
-}
-#endif
-
-#endif // BLE_DTM_CONN_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/serialization/connectivity/codecs/common/ble_dtm_init.c
----------------------------------------------------------------------
diff --git a/hw/mcu/nordic/src/ext/nRF5_SDK_11.0.0_89a8197/components/serialization/connectivity/codecs/common/ble_dtm_init.c b/hw/mcu/nordic/src/ext/nRF5_SDK_11.0.0_89a8197/components/serialization/connectivity/codecs/common/ble_dtm_init.c
deleted file mode 100644
index 2c46424..0000000
--- a/hw/mcu/nordic/src/ext/nRF5_SDK_11.0.0_89a8197/components/serialization/connectivity/codecs/common/ble_dtm_init.c
+++ /dev/null
@@ -1,56 +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 "ble_dtm_conn.h"
-#include "dtm_uart.h"
-#include "nrf_error.h"
-#include "ble_serialization.h"
-
-uint32_t ble_dtm_init_req_dec(uint8_t const * const p_buf, uint16_t packet_len,
- app_uart_stream_comm_params_t * p_comm_params)
-{
- SER_ASSERT_NOT_NULL(p_buf);
- SER_ASSERT_NOT_NULL(p_comm_params);
-
- uint32_t index = 0;
- uint32_t err_code = NRF_SUCCESS;
-
- err_code = uint8_t_dec(p_buf, packet_len, &index, &p_comm_params->tx_pin_no);
- SER_ASSERT(err_code == NRF_SUCCESS, err_code);
-
- err_code = uint8_t_dec(p_buf, packet_len, &index, &p_comm_params->rx_pin_no);
- SER_ASSERT(err_code == NRF_SUCCESS, err_code);
-
- err_code = uint8_t_dec(p_buf, packet_len, &index, &p_comm_params->baud_rate);
- SER_ASSERT(err_code == NRF_SUCCESS, err_code);
-
- SER_ASSERT(index == packet_len, NRF_ERROR_INVALID_LENGTH);
-
- return err_code;
-}
-
-uint32_t ble_dtm_init_rsp_enc(uint32_t return_code, uint8_t * const p_buf,
- uint32_t * const p_buf_len)
-{
- SER_ASSERT_NOT_NULL(p_buf);
- SER_ASSERT_NOT_NULL(p_buf_len);
-
- uint32_t index = 0;
- uint32_t err_code = NRF_SUCCESS;
-
- err_code = uint32_t_enc(&return_code, p_buf, *p_buf_len, &index);
- SER_ASSERT(err_code == NRF_SUCCESS, err_code);
-
- *p_buf_len = index;
-
- return err_code;
-}
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/serialization/connectivity/codecs/common/conn_mw.c
----------------------------------------------------------------------
diff --git a/hw/mcu/nordic/src/ext/nRF5_SDK_11.0.0_89a8197/components/serialization/connectivity/codecs/common/conn_mw.c b/hw/mcu/nordic/src/ext/nRF5_SDK_11.0.0_89a8197/components/serialization/connectivity/codecs/common/conn_mw.c
deleted file mode 100644
index 36660c4..0000000
--- a/hw/mcu/nordic/src/ext/nRF5_SDK_11.0.0_89a8197/components/serialization/connectivity/codecs/common/conn_mw.c
+++ /dev/null
@@ -1,84 +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 <stddef.h>
-
-#include "ble_serialization.h"
-#include "nrf_soc.h"
-#include "ble.h"
-#include "ble_l2cap.h"
-#include "ble_gap.h"
-#include "ble_gattc.h"
-#include "ble_gatts.h"
-
-/**@brief Connectivity middleware handler type. */
-typedef uint32_t (*conn_mw_handler_t)(uint8_t const * const p_rx_buf,
- uint32_t rx_buf_len,
- uint8_t * const p_tx_buf,
- uint32_t * const p_tx_buf_len);
-
-/**@brief Connectivity middleware item. */
-typedef struct
-{
- uint8_t opcode; /**< Opcode by which specific codec is identified */
- conn_mw_handler_t fp_handler; /**< Function pointer to handler associated with given opcode */
-} conn_mw_item_t;
-
-/* Include handlers for given softdevice */
-#include "conn_mw_items.c"
-
-/**@brief Number of registered connectivity middleware handlers. */
-static const uint32_t conn_mw_item_len = sizeof (conn_mw_item) / sizeof (conn_mw_item[0]);
-
-/**@brief Local function for finding connectivity middleware handler in the table.. */
-static conn_mw_handler_t conn_mw_handler_get(uint8_t opcode)
-{
- conn_mw_handler_t fp_handler = NULL;
- uint32_t i;
-
- for (i = 0; i < conn_mw_item_len; i++)
- {
- if (opcode == conn_mw_item[i].opcode)
- {
- fp_handler = conn_mw_item[i].fp_handler;
- break;
- }
- }
-
- return fp_handler;
-}
-
-uint32_t conn_mw_handler(uint8_t const * const p_rx_buf,
- uint32_t rx_buf_len,
- uint8_t * const p_tx_buf,
- uint32_t * const p_tx_buf_len)
-{
- SER_ASSERT_NOT_NULL(p_rx_buf);
- SER_ASSERT_NOT_NULL(p_tx_buf);
- SER_ASSERT_NOT_NULL(p_tx_buf_len);
-
- conn_mw_handler_t fp_handler;
- uint32_t err_code = NRF_SUCCESS;
- uint8_t opcode = p_rx_buf[SER_CMD_OP_CODE_POS];
-
- fp_handler = conn_mw_handler_get(opcode);
-
- if (fp_handler)
- {
- err_code = fp_handler(p_rx_buf, rx_buf_len, p_tx_buf, p_tx_buf_len);
- }
- else
- {
- err_code = NRF_ERROR_NOT_SUPPORTED;
- }
-
- return err_code;
-}
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/serialization/connectivity/codecs/common/conn_mw.h
----------------------------------------------------------------------
diff --git a/hw/mcu/nordic/src/ext/nRF5_SDK_11.0.0_89a8197/components/serialization/connectivity/codecs/common/conn_mw.h b/hw/mcu/nordic/src/ext/nRF5_SDK_11.0.0_89a8197/components/serialization/connectivity/codecs/common/conn_mw.h
deleted file mode 100644
index 047dddf..0000000
--- a/hw/mcu/nordic/src/ext/nRF5_SDK_11.0.0_89a8197/components/serialization/connectivity/codecs/common/conn_mw.h
+++ /dev/null
@@ -1,46 +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 _CONN_MW_H
-#define _CONN_MW_H
-
-#include <stdint.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**@brief Connectivity Middleware dispatcher function
- *
- * @details It will handle decode the opcode from RX buffer and based on the opcode it will search
- * for registered handler. Handler is called once it is found.
- *
- * @param[in] p_rx_buf Pointer to input buffer.
- * @param[in] rx_buf_len Size of p_rx_buf.
- * @param[out] p_tx_buf Pointer to output buffer.
- * @param[in,out] p_tx_buf_len \c in: size of \p p_tx_buf buffer.
- * \c out: Length of valid data in \p p_tx_buf.
- *
- * @retval NRF_SUCCESS Handler success.
- * @retval NRF_ERROR_NULL Handler failure. NULL pointer supplied.
- * @retval NRF_ERROR_INVALID_LENGTH Handler failure. Incorrect buffer length.
- * @retval NRF_ERROR_INVALID_PARAM Handler failure. Invalid operation type.
- * @retval NRF_ERROR_NOT_SUPPORTED Handler failure. Opcode not supported.
- */
-uint32_t conn_mw_handler (uint8_t const * const p_rx_buf,
- uint32_t rx_buf_len,
- uint8_t * const p_tx_buf,
- uint32_t * const p_tx_buf_len);
-#ifdef __cplusplus
-}
-#endif
-
-#endif //_CONN_MW_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/serialization/connectivity/codecs/s130/middleware/conn_mw.h
----------------------------------------------------------------------
diff --git a/hw/mcu/nordic/src/ext/nRF5_SDK_11.0.0_89a8197/components/serialization/connectivity/codecs/s130/middleware/conn_mw.h b/hw/mcu/nordic/src/ext/nRF5_SDK_11.0.0_89a8197/components/serialization/connectivity/codecs/s130/middleware/conn_mw.h
deleted file mode 100644
index 047dddf..0000000
--- a/hw/mcu/nordic/src/ext/nRF5_SDK_11.0.0_89a8197/components/serialization/connectivity/codecs/s130/middleware/conn_mw.h
+++ /dev/null
@@ -1,46 +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 _CONN_MW_H
-#define _CONN_MW_H
-
-#include <stdint.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**@brief Connectivity Middleware dispatcher function
- *
- * @details It will handle decode the opcode from RX buffer and based on the opcode it will search
- * for registered handler. Handler is called once it is found.
- *
- * @param[in] p_rx_buf Pointer to input buffer.
- * @param[in] rx_buf_len Size of p_rx_buf.
- * @param[out] p_tx_buf Pointer to output buffer.
- * @param[in,out] p_tx_buf_len \c in: size of \p p_tx_buf buffer.
- * \c out: Length of valid data in \p p_tx_buf.
- *
- * @retval NRF_SUCCESS Handler success.
- * @retval NRF_ERROR_NULL Handler failure. NULL pointer supplied.
- * @retval NRF_ERROR_INVALID_LENGTH Handler failure. Incorrect buffer length.
- * @retval NRF_ERROR_INVALID_PARAM Handler failure. Invalid operation type.
- * @retval NRF_ERROR_NOT_SUPPORTED Handler failure. Opcode not supported.
- */
-uint32_t conn_mw_handler (uint8_t const * const p_rx_buf,
- uint32_t rx_buf_len,
- uint8_t * const p_tx_buf,
- uint32_t * const p_tx_buf_len);
-#ifdef __cplusplus
-}
-#endif
-
-#endif //_CONN_MW_H