Patched version of nrf51822 FOTA compatible driver, with GPTIO disabled, as it clashed with the mbed definitions...

Fork of nRF51822 by Nordic Semiconductor

Committer:
finneyj
Date:
Thu May 21 09:35:07 2015 +0000
Revision:
177:dad139e1e3c4
Parent:
105:7404a5b1b72f
Disabled GPTIOE as it conflicts with mbed definitions.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
rgrover1 105:7404a5b1b72f 1 /* Copyright (c) 2012 Nordic Semiconductor. All Rights Reserved.
rgrover1 105:7404a5b1b72f 2 *
rgrover1 105:7404a5b1b72f 3 * The information contained herein is property of Nordic Semiconductor ASA.
rgrover1 105:7404a5b1b72f 4 * Terms and conditions of usage are described in detail in NORDIC
rgrover1 105:7404a5b1b72f 5 * SEMICONDUCTOR STANDARD SOFTWARE LICENSE AGREEMENT.
rgrover1 105:7404a5b1b72f 6 *
rgrover1 105:7404a5b1b72f 7 * Licensees are granted free, non-transferable use of the information. NO
rgrover1 105:7404a5b1b72f 8 * WARRANTY of ANY KIND is provided. This heading must NOT be removed from
rgrover1 105:7404a5b1b72f 9 * the file.
rgrover1 105:7404a5b1b72f 10 */
rgrover1 105:7404a5b1b72f 11
rgrover1 105:7404a5b1b72f 12 #include "ble_radio_notification.h"
rgrover1 105:7404a5b1b72f 13 #include <stdlib.h>
rgrover1 105:7404a5b1b72f 14
rgrover1 105:7404a5b1b72f 15
rgrover1 105:7404a5b1b72f 16 static bool m_radio_active = false; /**< Current radio state. */
rgrover1 105:7404a5b1b72f 17 static ble_radio_notification_evt_handler_t m_evt_handler = NULL; /**< Application event handler for handling Radio Notification events. */
rgrover1 105:7404a5b1b72f 18
rgrover1 105:7404a5b1b72f 19
rgrover1 105:7404a5b1b72f 20 void SWI1_IRQHandler(void)
rgrover1 105:7404a5b1b72f 21 {
rgrover1 105:7404a5b1b72f 22 m_radio_active = !m_radio_active;
rgrover1 105:7404a5b1b72f 23 if (m_evt_handler != NULL)
rgrover1 105:7404a5b1b72f 24 {
rgrover1 105:7404a5b1b72f 25 m_evt_handler(m_radio_active);
rgrover1 105:7404a5b1b72f 26 }
rgrover1 105:7404a5b1b72f 27 }
rgrover1 105:7404a5b1b72f 28
rgrover1 105:7404a5b1b72f 29
rgrover1 105:7404a5b1b72f 30 uint32_t ble_radio_notification_init(nrf_app_irq_priority_t irq_priority,
rgrover1 105:7404a5b1b72f 31 nrf_radio_notification_distance_t distance,
rgrover1 105:7404a5b1b72f 32 ble_radio_notification_evt_handler_t evt_handler)
rgrover1 105:7404a5b1b72f 33 {
rgrover1 105:7404a5b1b72f 34 uint32_t err_code;
rgrover1 105:7404a5b1b72f 35
rgrover1 105:7404a5b1b72f 36 m_evt_handler = evt_handler;
rgrover1 105:7404a5b1b72f 37
rgrover1 105:7404a5b1b72f 38 // Initialize Radio Notification software interrupt
rgrover1 105:7404a5b1b72f 39 err_code = sd_nvic_ClearPendingIRQ(SWI1_IRQn);
rgrover1 105:7404a5b1b72f 40 if (err_code != NRF_SUCCESS)
rgrover1 105:7404a5b1b72f 41 {
rgrover1 105:7404a5b1b72f 42 return err_code;
rgrover1 105:7404a5b1b72f 43 }
rgrover1 105:7404a5b1b72f 44
rgrover1 105:7404a5b1b72f 45 err_code = sd_nvic_SetPriority(SWI1_IRQn, irq_priority);
rgrover1 105:7404a5b1b72f 46 if (err_code != NRF_SUCCESS)
rgrover1 105:7404a5b1b72f 47 {
rgrover1 105:7404a5b1b72f 48 return err_code;
rgrover1 105:7404a5b1b72f 49 }
rgrover1 105:7404a5b1b72f 50
rgrover1 105:7404a5b1b72f 51 err_code = sd_nvic_EnableIRQ(SWI1_IRQn);
rgrover1 105:7404a5b1b72f 52 if (err_code != NRF_SUCCESS)
rgrover1 105:7404a5b1b72f 53 {
rgrover1 105:7404a5b1b72f 54 return err_code;
rgrover1 105:7404a5b1b72f 55 }
rgrover1 105:7404a5b1b72f 56
rgrover1 105:7404a5b1b72f 57 // Configure the event
rgrover1 105:7404a5b1b72f 58 return sd_radio_notification_cfg_set(NRF_RADIO_NOTIFICATION_TYPE_INT_ON_BOTH, distance);
rgrover1 105:7404a5b1b72f 59 }