wifi test

Dependencies:   X_NUCLEO_IKS01A2 mbed-http

Committer:
JMF
Date:
Wed Sep 05 14:28:24 2018 +0000
Revision:
0:24d3eb812fd4
Initial commit

Who changed what in which revision?

UserRevisionLine numberNew contents of line
JMF 0:24d3eb812fd4 1 /*!
JMF 0:24d3eb812fd4 2 * Copyright (c) 2015, Freescale Semiconductor, Inc.
JMF 0:24d3eb812fd4 3 * All rights reserved.
JMF 0:24d3eb812fd4 4 *
JMF 0:24d3eb812fd4 5 * \file MCR20Drv.c
JMF 0:24d3eb812fd4 6 *
JMF 0:24d3eb812fd4 7 * Redistribution and use in source and binary forms, with or without modification,
JMF 0:24d3eb812fd4 8 * are permitted provided that the following conditions are met:
JMF 0:24d3eb812fd4 9 *
JMF 0:24d3eb812fd4 10 * o Redistributions of source code must retain the above copyright notice, this list
JMF 0:24d3eb812fd4 11 * of conditions and the following disclaimer.
JMF 0:24d3eb812fd4 12 *
JMF 0:24d3eb812fd4 13 * o Redistributions in binary form must reproduce the above copyright notice, this
JMF 0:24d3eb812fd4 14 * list of conditions and the following disclaimer in the documentation and/or
JMF 0:24d3eb812fd4 15 * other materials provided with the distribution.
JMF 0:24d3eb812fd4 16 *
JMF 0:24d3eb812fd4 17 * o Neither the name of Freescale Semiconductor, Inc. nor the names of its
JMF 0:24d3eb812fd4 18 * contributors may be used to endorse or promote products derived from this
JMF 0:24d3eb812fd4 19 * software without specific prior written permission.
JMF 0:24d3eb812fd4 20 *
JMF 0:24d3eb812fd4 21 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
JMF 0:24d3eb812fd4 22 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
JMF 0:24d3eb812fd4 23 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
JMF 0:24d3eb812fd4 24 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
JMF 0:24d3eb812fd4 25 * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
JMF 0:24d3eb812fd4 26 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
JMF 0:24d3eb812fd4 27 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
JMF 0:24d3eb812fd4 28 * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
JMF 0:24d3eb812fd4 29 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
JMF 0:24d3eb812fd4 30 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
JMF 0:24d3eb812fd4 31 */
JMF 0:24d3eb812fd4 32
JMF 0:24d3eb812fd4 33
JMF 0:24d3eb812fd4 34 /*****************************************************************************
JMF 0:24d3eb812fd4 35 * INCLUDED HEADERS *
JMF 0:24d3eb812fd4 36 *---------------------------------------------------------------------------*
JMF 0:24d3eb812fd4 37 * Add to this section all the headers that this module needs to include. *
JMF 0:24d3eb812fd4 38 *---------------------------------------------------------------------------*
JMF 0:24d3eb812fd4 39 *****************************************************************************/
JMF 0:24d3eb812fd4 40
JMF 0:24d3eb812fd4 41 #include "MCR20Drv.h"
JMF 0:24d3eb812fd4 42 #include "MCR20Reg.h"
JMF 0:24d3eb812fd4 43 #include "XcvrSpi.h"
JMF 0:24d3eb812fd4 44
JMF 0:24d3eb812fd4 45 #ifdef MBED_CONF_NANOSTACK_CONFIGURATION
JMF 0:24d3eb812fd4 46
JMF 0:24d3eb812fd4 47 #include "platform/arm_hal_interrupt.h"
JMF 0:24d3eb812fd4 48
JMF 0:24d3eb812fd4 49 /*****************************************************************************
JMF 0:24d3eb812fd4 50 * PRIVATE VARIABLES *
JMF 0:24d3eb812fd4 51 *---------------------------------------------------------------------------*
JMF 0:24d3eb812fd4 52 * Add to this section all the variables and constants that have local *
JMF 0:24d3eb812fd4 53 * (file) scope. *
JMF 0:24d3eb812fd4 54 * Each of this declarations shall be preceded by the 'static' keyword. *
JMF 0:24d3eb812fd4 55 * These variables / constants cannot be accessed outside this module. *
JMF 0:24d3eb812fd4 56 *---------------------------------------------------------------------------*
JMF 0:24d3eb812fd4 57 *****************************************************************************/
JMF 0:24d3eb812fd4 58 uint32_t mPhyIrqDisableCnt = 1;
JMF 0:24d3eb812fd4 59
JMF 0:24d3eb812fd4 60 /*****************************************************************************
JMF 0:24d3eb812fd4 61 * PUBLIC VARIABLES *
JMF 0:24d3eb812fd4 62 *---------------------------------------------------------------------------*
JMF 0:24d3eb812fd4 63 * Add to this section all the variables and constants that have global *
JMF 0:24d3eb812fd4 64 * (project) scope. *
JMF 0:24d3eb812fd4 65 * These variables / constants can be accessed outside this module. *
JMF 0:24d3eb812fd4 66 * These variables / constants shall be preceded by the 'extern' keyword in *
JMF 0:24d3eb812fd4 67 * the interface header. *
JMF 0:24d3eb812fd4 68 *---------------------------------------------------------------------------*
JMF 0:24d3eb812fd4 69 *****************************************************************************/
JMF 0:24d3eb812fd4 70
JMF 0:24d3eb812fd4 71 /*****************************************************************************
JMF 0:24d3eb812fd4 72 * PRIVATE FUNCTIONS PROTOTYPES *
JMF 0:24d3eb812fd4 73 *---------------------------------------------------------------------------*
JMF 0:24d3eb812fd4 74 * Add to this section all the functions prototypes that have local (file) *
JMF 0:24d3eb812fd4 75 * scope. *
JMF 0:24d3eb812fd4 76 * These functions cannot be accessed outside this module. *
JMF 0:24d3eb812fd4 77 * These declarations shall be preceded by the 'static' keyword. *
JMF 0:24d3eb812fd4 78 *---------------------------------------------------------------------------*
JMF 0:24d3eb812fd4 79 *****************************************************************************/
JMF 0:24d3eb812fd4 80
JMF 0:24d3eb812fd4 81 /*****************************************************************************
JMF 0:24d3eb812fd4 82 * PRIVATE FUNCTIONS *
JMF 0:24d3eb812fd4 83 *---------------------------------------------------------------------------*
JMF 0:24d3eb812fd4 84 * Add to this section all the functions that have local (file) scope. *
JMF 0:24d3eb812fd4 85 * These functions cannot be accessed outside this module. *
JMF 0:24d3eb812fd4 86 * These definitions shall be preceded by the 'static' keyword. *
JMF 0:24d3eb812fd4 87 *---------------------------------------------------------------------------*
JMF 0:24d3eb812fd4 88 *****************************************************************************/
JMF 0:24d3eb812fd4 89
JMF 0:24d3eb812fd4 90
JMF 0:24d3eb812fd4 91 /*****************************************************************************
JMF 0:24d3eb812fd4 92 * PUBLIC FUNCTIONS *
JMF 0:24d3eb812fd4 93 *---------------------------------------------------------------------------*
JMF 0:24d3eb812fd4 94 * Add to this section all the functions that have global (project) scope. *
JMF 0:24d3eb812fd4 95 * These functions can be accessed outside this module. *
JMF 0:24d3eb812fd4 96 * These functions shall have their declarations (prototypes) within the *
JMF 0:24d3eb812fd4 97 * interface header file and shall be preceded by the 'extern' keyword. *
JMF 0:24d3eb812fd4 98 *---------------------------------------------------------------------------*
JMF 0:24d3eb812fd4 99 *****************************************************************************/
JMF 0:24d3eb812fd4 100
JMF 0:24d3eb812fd4 101 /*---------------------------------------------------------------------------
JMF 0:24d3eb812fd4 102 * Name: MCR20Drv_Init
JMF 0:24d3eb812fd4 103 * Description: -
JMF 0:24d3eb812fd4 104 * Parameters: -
JMF 0:24d3eb812fd4 105 * Return: -
JMF 0:24d3eb812fd4 106 *---------------------------------------------------------------------------*/
JMF 0:24d3eb812fd4 107 void MCR20Drv_Init
JMF 0:24d3eb812fd4 108 (
JMF 0:24d3eb812fd4 109 void
JMF 0:24d3eb812fd4 110 )
JMF 0:24d3eb812fd4 111 {
JMF 0:24d3eb812fd4 112 xcvr_spi_init(gXcvrSpiInstance_c);
JMF 0:24d3eb812fd4 113 xcvr_spi_configure_speed(gXcvrSpiInstance_c, 8000000);
JMF 0:24d3eb812fd4 114
JMF 0:24d3eb812fd4 115 gXcvrDeassertCS_d();
JMF 0:24d3eb812fd4 116 #if !defined(TARGET_KW24D)
JMF 0:24d3eb812fd4 117 MCR20Drv_RST_B_Deassert();
JMF 0:24d3eb812fd4 118 #endif
JMF 0:24d3eb812fd4 119 RF_IRQ_Init();
JMF 0:24d3eb812fd4 120 RF_IRQ_Disable();
JMF 0:24d3eb812fd4 121 mPhyIrqDisableCnt = 1;
JMF 0:24d3eb812fd4 122 }
JMF 0:24d3eb812fd4 123
JMF 0:24d3eb812fd4 124 /*---------------------------------------------------------------------------
JMF 0:24d3eb812fd4 125 * Name: MCR20Drv_DirectAccessSPIWrite
JMF 0:24d3eb812fd4 126 * Description: -
JMF 0:24d3eb812fd4 127 * Parameters: -
JMF 0:24d3eb812fd4 128 * Return: -
JMF 0:24d3eb812fd4 129 *---------------------------------------------------------------------------*/
JMF 0:24d3eb812fd4 130 void MCR20Drv_DirectAccessSPIWrite
JMF 0:24d3eb812fd4 131 (
JMF 0:24d3eb812fd4 132 uint8_t address,
JMF 0:24d3eb812fd4 133 uint8_t value
JMF 0:24d3eb812fd4 134 )
JMF 0:24d3eb812fd4 135 {
JMF 0:24d3eb812fd4 136 uint16_t txData;
JMF 0:24d3eb812fd4 137
JMF 0:24d3eb812fd4 138 ProtectFromMCR20Interrupt();
JMF 0:24d3eb812fd4 139
JMF 0:24d3eb812fd4 140 xcvr_spi_configure_speed(gXcvrSpiInstance_c, 16000000);
JMF 0:24d3eb812fd4 141
JMF 0:24d3eb812fd4 142 gXcvrAssertCS_d();
JMF 0:24d3eb812fd4 143
JMF 0:24d3eb812fd4 144 txData = (address & TransceiverSPI_DirectRegisterAddressMask);
JMF 0:24d3eb812fd4 145 txData |= value << 8;
JMF 0:24d3eb812fd4 146
JMF 0:24d3eb812fd4 147 xcvr_spi_transfer(gXcvrSpiInstance_c, (uint8_t *)&txData, 0, sizeof(txData));
JMF 0:24d3eb812fd4 148
JMF 0:24d3eb812fd4 149 gXcvrDeassertCS_d();
JMF 0:24d3eb812fd4 150 UnprotectFromMCR20Interrupt();
JMF 0:24d3eb812fd4 151 }
JMF 0:24d3eb812fd4 152
JMF 0:24d3eb812fd4 153 /*---------------------------------------------------------------------------
JMF 0:24d3eb812fd4 154 * Name: MCR20Drv_DirectAccessSPIMultiByteWrite
JMF 0:24d3eb812fd4 155 * Description: -
JMF 0:24d3eb812fd4 156 * Parameters: -
JMF 0:24d3eb812fd4 157 * Return: -
JMF 0:24d3eb812fd4 158 *---------------------------------------------------------------------------*/
JMF 0:24d3eb812fd4 159 void MCR20Drv_DirectAccessSPIMultiByteWrite
JMF 0:24d3eb812fd4 160 (
JMF 0:24d3eb812fd4 161 uint8_t startAddress,
JMF 0:24d3eb812fd4 162 uint8_t * byteArray,
JMF 0:24d3eb812fd4 163 uint8_t numOfBytes
JMF 0:24d3eb812fd4 164 )
JMF 0:24d3eb812fd4 165 {
JMF 0:24d3eb812fd4 166 uint8_t txData;
JMF 0:24d3eb812fd4 167
JMF 0:24d3eb812fd4 168 if( (numOfBytes == 0) || (byteArray == 0) )
JMF 0:24d3eb812fd4 169 {
JMF 0:24d3eb812fd4 170 return;
JMF 0:24d3eb812fd4 171 }
JMF 0:24d3eb812fd4 172
JMF 0:24d3eb812fd4 173 ProtectFromMCR20Interrupt();
JMF 0:24d3eb812fd4 174
JMF 0:24d3eb812fd4 175 xcvr_spi_configure_speed(gXcvrSpiInstance_c, 16000000);
JMF 0:24d3eb812fd4 176
JMF 0:24d3eb812fd4 177 gXcvrAssertCS_d();
JMF 0:24d3eb812fd4 178
JMF 0:24d3eb812fd4 179 txData = (startAddress & TransceiverSPI_DirectRegisterAddressMask);
JMF 0:24d3eb812fd4 180
JMF 0:24d3eb812fd4 181 xcvr_spi_transfer(gXcvrSpiInstance_c, &txData, 0, sizeof(txData));
JMF 0:24d3eb812fd4 182 xcvr_spi_transfer(gXcvrSpiInstance_c, byteArray, 0, numOfBytes);
JMF 0:24d3eb812fd4 183
JMF 0:24d3eb812fd4 184 gXcvrDeassertCS_d();
JMF 0:24d3eb812fd4 185 UnprotectFromMCR20Interrupt();
JMF 0:24d3eb812fd4 186 }
JMF 0:24d3eb812fd4 187
JMF 0:24d3eb812fd4 188 /*---------------------------------------------------------------------------
JMF 0:24d3eb812fd4 189 * Name: MCR20Drv_PB_SPIByteWrite
JMF 0:24d3eb812fd4 190 * Description: -
JMF 0:24d3eb812fd4 191 * Parameters: -
JMF 0:24d3eb812fd4 192 * Return: -
JMF 0:24d3eb812fd4 193 *---------------------------------------------------------------------------*/
JMF 0:24d3eb812fd4 194 void MCR20Drv_PB_SPIByteWrite
JMF 0:24d3eb812fd4 195 (
JMF 0:24d3eb812fd4 196 uint8_t address,
JMF 0:24d3eb812fd4 197 uint8_t value
JMF 0:24d3eb812fd4 198 )
JMF 0:24d3eb812fd4 199 {
JMF 0:24d3eb812fd4 200 uint32_t txData;
JMF 0:24d3eb812fd4 201
JMF 0:24d3eb812fd4 202 ProtectFromMCR20Interrupt();
JMF 0:24d3eb812fd4 203
JMF 0:24d3eb812fd4 204 xcvr_spi_configure_speed(gXcvrSpiInstance_c, 16000000);
JMF 0:24d3eb812fd4 205
JMF 0:24d3eb812fd4 206 gXcvrAssertCS_d();
JMF 0:24d3eb812fd4 207
JMF 0:24d3eb812fd4 208 txData = TransceiverSPI_WriteSelect |
JMF 0:24d3eb812fd4 209 TransceiverSPI_PacketBuffAccessSelect |
JMF 0:24d3eb812fd4 210 TransceiverSPI_PacketBuffByteModeSelect;
JMF 0:24d3eb812fd4 211 txData |= (address) << 8;
JMF 0:24d3eb812fd4 212 txData |= (value) << 16;
JMF 0:24d3eb812fd4 213
JMF 0:24d3eb812fd4 214 xcvr_spi_transfer(gXcvrSpiInstance_c, (uint8_t*)&txData, 0, 3);
JMF 0:24d3eb812fd4 215
JMF 0:24d3eb812fd4 216 gXcvrDeassertCS_d();
JMF 0:24d3eb812fd4 217 UnprotectFromMCR20Interrupt();
JMF 0:24d3eb812fd4 218 }
JMF 0:24d3eb812fd4 219
JMF 0:24d3eb812fd4 220 /*---------------------------------------------------------------------------
JMF 0:24d3eb812fd4 221 * Name: MCR20Drv_PB_SPIBurstWrite
JMF 0:24d3eb812fd4 222 * Description: -
JMF 0:24d3eb812fd4 223 * Parameters: -
JMF 0:24d3eb812fd4 224 * Return: -
JMF 0:24d3eb812fd4 225 *---------------------------------------------------------------------------*/
JMF 0:24d3eb812fd4 226 void MCR20Drv_PB_SPIBurstWrite
JMF 0:24d3eb812fd4 227 (
JMF 0:24d3eb812fd4 228 uint8_t * byteArray,
JMF 0:24d3eb812fd4 229 uint8_t numOfBytes
JMF 0:24d3eb812fd4 230 )
JMF 0:24d3eb812fd4 231 {
JMF 0:24d3eb812fd4 232 uint8_t txData;
JMF 0:24d3eb812fd4 233
JMF 0:24d3eb812fd4 234 if( (numOfBytes == 0) || (byteArray == 0) )
JMF 0:24d3eb812fd4 235 {
JMF 0:24d3eb812fd4 236 return;
JMF 0:24d3eb812fd4 237 }
JMF 0:24d3eb812fd4 238
JMF 0:24d3eb812fd4 239 ProtectFromMCR20Interrupt();
JMF 0:24d3eb812fd4 240
JMF 0:24d3eb812fd4 241 xcvr_spi_configure_speed(gXcvrSpiInstance_c, 16000000);
JMF 0:24d3eb812fd4 242
JMF 0:24d3eb812fd4 243 gXcvrAssertCS_d();
JMF 0:24d3eb812fd4 244
JMF 0:24d3eb812fd4 245 txData = TransceiverSPI_WriteSelect |
JMF 0:24d3eb812fd4 246 TransceiverSPI_PacketBuffAccessSelect |
JMF 0:24d3eb812fd4 247 TransceiverSPI_PacketBuffBurstModeSelect;
JMF 0:24d3eb812fd4 248
JMF 0:24d3eb812fd4 249 xcvr_spi_transfer(gXcvrSpiInstance_c, &txData, 0, 1);
JMF 0:24d3eb812fd4 250 xcvr_spi_transfer(gXcvrSpiInstance_c, byteArray, 0, numOfBytes);
JMF 0:24d3eb812fd4 251
JMF 0:24d3eb812fd4 252 gXcvrDeassertCS_d();
JMF 0:24d3eb812fd4 253 UnprotectFromMCR20Interrupt();
JMF 0:24d3eb812fd4 254 }
JMF 0:24d3eb812fd4 255
JMF 0:24d3eb812fd4 256 /*---------------------------------------------------------------------------
JMF 0:24d3eb812fd4 257 * Name: MCR20Drv_DirectAccessSPIRead
JMF 0:24d3eb812fd4 258 * Description: -
JMF 0:24d3eb812fd4 259 * Parameters: -
JMF 0:24d3eb812fd4 260 * Return: -
JMF 0:24d3eb812fd4 261 *---------------------------------------------------------------------------*/
JMF 0:24d3eb812fd4 262
JMF 0:24d3eb812fd4 263 uint8_t MCR20Drv_DirectAccessSPIRead
JMF 0:24d3eb812fd4 264 (
JMF 0:24d3eb812fd4 265 uint8_t address
JMF 0:24d3eb812fd4 266 )
JMF 0:24d3eb812fd4 267 {
JMF 0:24d3eb812fd4 268 uint8_t txData;
JMF 0:24d3eb812fd4 269 uint8_t rxData;
JMF 0:24d3eb812fd4 270
JMF 0:24d3eb812fd4 271 ProtectFromMCR20Interrupt();
JMF 0:24d3eb812fd4 272
JMF 0:24d3eb812fd4 273 xcvr_spi_configure_speed(gXcvrSpiInstance_c, 8000000);
JMF 0:24d3eb812fd4 274
JMF 0:24d3eb812fd4 275 gXcvrAssertCS_d();
JMF 0:24d3eb812fd4 276
JMF 0:24d3eb812fd4 277 txData = (address & TransceiverSPI_DirectRegisterAddressMask) |
JMF 0:24d3eb812fd4 278 TransceiverSPI_ReadSelect;
JMF 0:24d3eb812fd4 279
JMF 0:24d3eb812fd4 280 xcvr_spi_transfer(gXcvrSpiInstance_c, &txData, 0, sizeof(txData));
JMF 0:24d3eb812fd4 281 xcvr_spi_transfer(gXcvrSpiInstance_c, 0, &rxData, sizeof(rxData));
JMF 0:24d3eb812fd4 282
JMF 0:24d3eb812fd4 283 gXcvrDeassertCS_d();
JMF 0:24d3eb812fd4 284 UnprotectFromMCR20Interrupt();
JMF 0:24d3eb812fd4 285
JMF 0:24d3eb812fd4 286 return rxData;
JMF 0:24d3eb812fd4 287
JMF 0:24d3eb812fd4 288 }
JMF 0:24d3eb812fd4 289
JMF 0:24d3eb812fd4 290 /*---------------------------------------------------------------------------
JMF 0:24d3eb812fd4 291 * Name: MCR20Drv_DirectAccessSPIMultyByteRead
JMF 0:24d3eb812fd4 292 * Description: -
JMF 0:24d3eb812fd4 293 * Parameters: -
JMF 0:24d3eb812fd4 294 * Return: -
JMF 0:24d3eb812fd4 295 *---------------------------------------------------------------------------*/
JMF 0:24d3eb812fd4 296 uint8_t MCR20Drv_DirectAccessSPIMultiByteRead
JMF 0:24d3eb812fd4 297 (
JMF 0:24d3eb812fd4 298 uint8_t startAddress,
JMF 0:24d3eb812fd4 299 uint8_t * byteArray,
JMF 0:24d3eb812fd4 300 uint8_t numOfBytes
JMF 0:24d3eb812fd4 301 )
JMF 0:24d3eb812fd4 302 {
JMF 0:24d3eb812fd4 303 uint8_t txData;
JMF 0:24d3eb812fd4 304 uint8_t phyIRQSTS1;
JMF 0:24d3eb812fd4 305
JMF 0:24d3eb812fd4 306 if( (numOfBytes == 0) || (byteArray == 0) )
JMF 0:24d3eb812fd4 307 {
JMF 0:24d3eb812fd4 308 return 0;
JMF 0:24d3eb812fd4 309 }
JMF 0:24d3eb812fd4 310
JMF 0:24d3eb812fd4 311 ProtectFromMCR20Interrupt();
JMF 0:24d3eb812fd4 312
JMF 0:24d3eb812fd4 313 xcvr_spi_configure_speed(gXcvrSpiInstance_c, 8000000);
JMF 0:24d3eb812fd4 314
JMF 0:24d3eb812fd4 315 gXcvrAssertCS_d();
JMF 0:24d3eb812fd4 316
JMF 0:24d3eb812fd4 317 txData = (startAddress & TransceiverSPI_DirectRegisterAddressMask) |
JMF 0:24d3eb812fd4 318 TransceiverSPI_ReadSelect;
JMF 0:24d3eb812fd4 319
JMF 0:24d3eb812fd4 320 xcvr_spi_transfer(gXcvrSpiInstance_c, &txData, &phyIRQSTS1, sizeof(txData));
JMF 0:24d3eb812fd4 321 xcvr_spi_transfer(gXcvrSpiInstance_c, 0, byteArray, numOfBytes);
JMF 0:24d3eb812fd4 322
JMF 0:24d3eb812fd4 323 gXcvrDeassertCS_d();
JMF 0:24d3eb812fd4 324 UnprotectFromMCR20Interrupt();
JMF 0:24d3eb812fd4 325
JMF 0:24d3eb812fd4 326 return phyIRQSTS1;
JMF 0:24d3eb812fd4 327 }
JMF 0:24d3eb812fd4 328
JMF 0:24d3eb812fd4 329 /*---------------------------------------------------------------------------
JMF 0:24d3eb812fd4 330 * Name: MCR20Drv_PB_SPIBurstRead
JMF 0:24d3eb812fd4 331 * Description: -
JMF 0:24d3eb812fd4 332 * Parameters: -
JMF 0:24d3eb812fd4 333 * Return: -
JMF 0:24d3eb812fd4 334 *---------------------------------------------------------------------------*/
JMF 0:24d3eb812fd4 335 uint8_t MCR20Drv_PB_SPIBurstRead
JMF 0:24d3eb812fd4 336 (
JMF 0:24d3eb812fd4 337 uint8_t * byteArray,
JMF 0:24d3eb812fd4 338 uint8_t numOfBytes
JMF 0:24d3eb812fd4 339 )
JMF 0:24d3eb812fd4 340 {
JMF 0:24d3eb812fd4 341 uint8_t txData;
JMF 0:24d3eb812fd4 342 uint8_t phyIRQSTS1;
JMF 0:24d3eb812fd4 343
JMF 0:24d3eb812fd4 344 if( (numOfBytes == 0) || (byteArray == 0) )
JMF 0:24d3eb812fd4 345 {
JMF 0:24d3eb812fd4 346 return 0;
JMF 0:24d3eb812fd4 347 }
JMF 0:24d3eb812fd4 348
JMF 0:24d3eb812fd4 349 ProtectFromMCR20Interrupt();
JMF 0:24d3eb812fd4 350
JMF 0:24d3eb812fd4 351 xcvr_spi_configure_speed(gXcvrSpiInstance_c, 8000000);
JMF 0:24d3eb812fd4 352
JMF 0:24d3eb812fd4 353 gXcvrAssertCS_d();
JMF 0:24d3eb812fd4 354
JMF 0:24d3eb812fd4 355 txData = TransceiverSPI_ReadSelect |
JMF 0:24d3eb812fd4 356 TransceiverSPI_PacketBuffAccessSelect |
JMF 0:24d3eb812fd4 357 TransceiverSPI_PacketBuffBurstModeSelect;
JMF 0:24d3eb812fd4 358
JMF 0:24d3eb812fd4 359 xcvr_spi_transfer(gXcvrSpiInstance_c, &txData, &phyIRQSTS1, sizeof(txData));
JMF 0:24d3eb812fd4 360 xcvr_spi_transfer(gXcvrSpiInstance_c, 0, byteArray, numOfBytes);
JMF 0:24d3eb812fd4 361
JMF 0:24d3eb812fd4 362 gXcvrDeassertCS_d();
JMF 0:24d3eb812fd4 363 UnprotectFromMCR20Interrupt();
JMF 0:24d3eb812fd4 364
JMF 0:24d3eb812fd4 365 return phyIRQSTS1;
JMF 0:24d3eb812fd4 366 }
JMF 0:24d3eb812fd4 367
JMF 0:24d3eb812fd4 368 /*---------------------------------------------------------------------------
JMF 0:24d3eb812fd4 369 * Name: MCR20Drv_IndirectAccessSPIWrite
JMF 0:24d3eb812fd4 370 * Description: -
JMF 0:24d3eb812fd4 371 * Parameters: -
JMF 0:24d3eb812fd4 372 * Return: -
JMF 0:24d3eb812fd4 373 *---------------------------------------------------------------------------*/
JMF 0:24d3eb812fd4 374 void MCR20Drv_IndirectAccessSPIWrite
JMF 0:24d3eb812fd4 375 (
JMF 0:24d3eb812fd4 376 uint8_t address,
JMF 0:24d3eb812fd4 377 uint8_t value
JMF 0:24d3eb812fd4 378 )
JMF 0:24d3eb812fd4 379 {
JMF 0:24d3eb812fd4 380 uint32_t txData;
JMF 0:24d3eb812fd4 381
JMF 0:24d3eb812fd4 382 ProtectFromMCR20Interrupt();
JMF 0:24d3eb812fd4 383
JMF 0:24d3eb812fd4 384 xcvr_spi_configure_speed(gXcvrSpiInstance_c, 16000000);
JMF 0:24d3eb812fd4 385
JMF 0:24d3eb812fd4 386 gXcvrAssertCS_d();
JMF 0:24d3eb812fd4 387
JMF 0:24d3eb812fd4 388 txData = TransceiverSPI_IARIndexReg;
JMF 0:24d3eb812fd4 389 txData |= (address) << 8;
JMF 0:24d3eb812fd4 390 txData |= (value) << 16;
JMF 0:24d3eb812fd4 391
JMF 0:24d3eb812fd4 392 xcvr_spi_transfer(gXcvrSpiInstance_c, (uint8_t*)&txData, 0, 3);
JMF 0:24d3eb812fd4 393
JMF 0:24d3eb812fd4 394 gXcvrDeassertCS_d();
JMF 0:24d3eb812fd4 395 UnprotectFromMCR20Interrupt();
JMF 0:24d3eb812fd4 396 }
JMF 0:24d3eb812fd4 397
JMF 0:24d3eb812fd4 398 /*---------------------------------------------------------------------------
JMF 0:24d3eb812fd4 399 * Name: MCR20Drv_IndirectAccessSPIMultiByteWrite
JMF 0:24d3eb812fd4 400 * Description: -
JMF 0:24d3eb812fd4 401 * Parameters: -
JMF 0:24d3eb812fd4 402 * Return: -
JMF 0:24d3eb812fd4 403 *---------------------------------------------------------------------------*/
JMF 0:24d3eb812fd4 404 void MCR20Drv_IndirectAccessSPIMultiByteWrite
JMF 0:24d3eb812fd4 405 (
JMF 0:24d3eb812fd4 406 uint8_t startAddress,
JMF 0:24d3eb812fd4 407 uint8_t * byteArray,
JMF 0:24d3eb812fd4 408 uint8_t numOfBytes
JMF 0:24d3eb812fd4 409 )
JMF 0:24d3eb812fd4 410 {
JMF 0:24d3eb812fd4 411 uint16_t txData;
JMF 0:24d3eb812fd4 412
JMF 0:24d3eb812fd4 413 if( (numOfBytes == 0) || (byteArray == 0) )
JMF 0:24d3eb812fd4 414 {
JMF 0:24d3eb812fd4 415 return;
JMF 0:24d3eb812fd4 416 }
JMF 0:24d3eb812fd4 417
JMF 0:24d3eb812fd4 418 ProtectFromMCR20Interrupt();
JMF 0:24d3eb812fd4 419
JMF 0:24d3eb812fd4 420 xcvr_spi_configure_speed(gXcvrSpiInstance_c, 16000000);
JMF 0:24d3eb812fd4 421
JMF 0:24d3eb812fd4 422 gXcvrAssertCS_d();
JMF 0:24d3eb812fd4 423
JMF 0:24d3eb812fd4 424 txData = TransceiverSPI_IARIndexReg;
JMF 0:24d3eb812fd4 425 txData |= (startAddress) << 8;
JMF 0:24d3eb812fd4 426
JMF 0:24d3eb812fd4 427 xcvr_spi_transfer(gXcvrSpiInstance_c, (uint8_t*)&txData, 0, sizeof(txData));
JMF 0:24d3eb812fd4 428 xcvr_spi_transfer(gXcvrSpiInstance_c, (uint8_t*)byteArray, 0, numOfBytes);
JMF 0:24d3eb812fd4 429
JMF 0:24d3eb812fd4 430 gXcvrDeassertCS_d();
JMF 0:24d3eb812fd4 431 UnprotectFromMCR20Interrupt();
JMF 0:24d3eb812fd4 432 }
JMF 0:24d3eb812fd4 433
JMF 0:24d3eb812fd4 434 /*---------------------------------------------------------------------------
JMF 0:24d3eb812fd4 435 * Name: MCR20Drv_IndirectAccessSPIRead
JMF 0:24d3eb812fd4 436 * Description: -
JMF 0:24d3eb812fd4 437 * Parameters: -
JMF 0:24d3eb812fd4 438 * Return: -
JMF 0:24d3eb812fd4 439 *---------------------------------------------------------------------------*/
JMF 0:24d3eb812fd4 440 uint8_t MCR20Drv_IndirectAccessSPIRead
JMF 0:24d3eb812fd4 441 (
JMF 0:24d3eb812fd4 442 uint8_t address
JMF 0:24d3eb812fd4 443 )
JMF 0:24d3eb812fd4 444 {
JMF 0:24d3eb812fd4 445 uint16_t txData;
JMF 0:24d3eb812fd4 446 uint8_t rxData;
JMF 0:24d3eb812fd4 447
JMF 0:24d3eb812fd4 448 ProtectFromMCR20Interrupt();
JMF 0:24d3eb812fd4 449
JMF 0:24d3eb812fd4 450 xcvr_spi_configure_speed(gXcvrSpiInstance_c, 8000000);
JMF 0:24d3eb812fd4 451
JMF 0:24d3eb812fd4 452 gXcvrAssertCS_d();
JMF 0:24d3eb812fd4 453
JMF 0:24d3eb812fd4 454 txData = TransceiverSPI_IARIndexReg | TransceiverSPI_ReadSelect;
JMF 0:24d3eb812fd4 455 txData |= (address) << 8;
JMF 0:24d3eb812fd4 456
JMF 0:24d3eb812fd4 457 xcvr_spi_transfer(gXcvrSpiInstance_c, (uint8_t*)&txData, 0, sizeof(txData));
JMF 0:24d3eb812fd4 458 xcvr_spi_transfer(gXcvrSpiInstance_c, 0, &rxData, sizeof(rxData));
JMF 0:24d3eb812fd4 459
JMF 0:24d3eb812fd4 460 gXcvrDeassertCS_d();
JMF 0:24d3eb812fd4 461 UnprotectFromMCR20Interrupt();
JMF 0:24d3eb812fd4 462
JMF 0:24d3eb812fd4 463 return rxData;
JMF 0:24d3eb812fd4 464 }
JMF 0:24d3eb812fd4 465
JMF 0:24d3eb812fd4 466 /*---------------------------------------------------------------------------
JMF 0:24d3eb812fd4 467 * Name: MCR20Drv_IndirectAccessSPIMultiByteRead
JMF 0:24d3eb812fd4 468 * Description: -
JMF 0:24d3eb812fd4 469 * Parameters: -
JMF 0:24d3eb812fd4 470 * Return: -
JMF 0:24d3eb812fd4 471 *---------------------------------------------------------------------------*/
JMF 0:24d3eb812fd4 472 void MCR20Drv_IndirectAccessSPIMultiByteRead
JMF 0:24d3eb812fd4 473 (
JMF 0:24d3eb812fd4 474 uint8_t startAddress,
JMF 0:24d3eb812fd4 475 uint8_t * byteArray,
JMF 0:24d3eb812fd4 476 uint8_t numOfBytes
JMF 0:24d3eb812fd4 477 )
JMF 0:24d3eb812fd4 478 {
JMF 0:24d3eb812fd4 479 uint16_t txData;
JMF 0:24d3eb812fd4 480
JMF 0:24d3eb812fd4 481 if( (numOfBytes == 0) || (byteArray == 0) )
JMF 0:24d3eb812fd4 482 {
JMF 0:24d3eb812fd4 483 return;
JMF 0:24d3eb812fd4 484 }
JMF 0:24d3eb812fd4 485
JMF 0:24d3eb812fd4 486 ProtectFromMCR20Interrupt();
JMF 0:24d3eb812fd4 487
JMF 0:24d3eb812fd4 488 xcvr_spi_configure_speed(gXcvrSpiInstance_c, 8000000);
JMF 0:24d3eb812fd4 489
JMF 0:24d3eb812fd4 490 gXcvrAssertCS_d();
JMF 0:24d3eb812fd4 491
JMF 0:24d3eb812fd4 492 txData = (TransceiverSPI_IARIndexReg | TransceiverSPI_ReadSelect);
JMF 0:24d3eb812fd4 493 txData |= (startAddress) << 8;
JMF 0:24d3eb812fd4 494
JMF 0:24d3eb812fd4 495 xcvr_spi_transfer(gXcvrSpiInstance_c, (uint8_t*)&txData, 0, sizeof(txData));
JMF 0:24d3eb812fd4 496 xcvr_spi_transfer(gXcvrSpiInstance_c, 0, byteArray, numOfBytes);
JMF 0:24d3eb812fd4 497
JMF 0:24d3eb812fd4 498 gXcvrDeassertCS_d();
JMF 0:24d3eb812fd4 499 UnprotectFromMCR20Interrupt();
JMF 0:24d3eb812fd4 500 }
JMF 0:24d3eb812fd4 501
JMF 0:24d3eb812fd4 502 /*---------------------------------------------------------------------------
JMF 0:24d3eb812fd4 503 * Name: MCR20Drv_IsIrqPending
JMF 0:24d3eb812fd4 504 * Description: -
JMF 0:24d3eb812fd4 505 * Parameters: -
JMF 0:24d3eb812fd4 506 * Return: -
JMF 0:24d3eb812fd4 507 *---------------------------------------------------------------------------*/
JMF 0:24d3eb812fd4 508 uint32_t MCR20Drv_IsIrqPending
JMF 0:24d3eb812fd4 509 (
JMF 0:24d3eb812fd4 510 void
JMF 0:24d3eb812fd4 511 )
JMF 0:24d3eb812fd4 512 {
JMF 0:24d3eb812fd4 513 return RF_isIRQ_Pending();
JMF 0:24d3eb812fd4 514 }
JMF 0:24d3eb812fd4 515
JMF 0:24d3eb812fd4 516 /*---------------------------------------------------------------------------
JMF 0:24d3eb812fd4 517 * Name: MCR20Drv_IRQ_Disable
JMF 0:24d3eb812fd4 518 * Description: -
JMF 0:24d3eb812fd4 519 * Parameters: -
JMF 0:24d3eb812fd4 520 * Return: -
JMF 0:24d3eb812fd4 521 *---------------------------------------------------------------------------*/
JMF 0:24d3eb812fd4 522 void MCR20Drv_IRQ_Disable
JMF 0:24d3eb812fd4 523 (
JMF 0:24d3eb812fd4 524 void
JMF 0:24d3eb812fd4 525 )
JMF 0:24d3eb812fd4 526 {
JMF 0:24d3eb812fd4 527 platform_enter_critical();
JMF 0:24d3eb812fd4 528
JMF 0:24d3eb812fd4 529 if( mPhyIrqDisableCnt == 0 )
JMF 0:24d3eb812fd4 530 {
JMF 0:24d3eb812fd4 531 RF_IRQ_Disable();
JMF 0:24d3eb812fd4 532 }
JMF 0:24d3eb812fd4 533
JMF 0:24d3eb812fd4 534 mPhyIrqDisableCnt++;
JMF 0:24d3eb812fd4 535
JMF 0:24d3eb812fd4 536 platform_exit_critical();
JMF 0:24d3eb812fd4 537 }
JMF 0:24d3eb812fd4 538
JMF 0:24d3eb812fd4 539 /*---------------------------------------------------------------------------
JMF 0:24d3eb812fd4 540 * Name: MCR20Drv_IRQ_Enable
JMF 0:24d3eb812fd4 541 * Description: -
JMF 0:24d3eb812fd4 542 * Parameters: -
JMF 0:24d3eb812fd4 543 * Return: -
JMF 0:24d3eb812fd4 544 *---------------------------------------------------------------------------*/
JMF 0:24d3eb812fd4 545 void MCR20Drv_IRQ_Enable
JMF 0:24d3eb812fd4 546 (
JMF 0:24d3eb812fd4 547 void
JMF 0:24d3eb812fd4 548 )
JMF 0:24d3eb812fd4 549 {
JMF 0:24d3eb812fd4 550 platform_enter_critical();
JMF 0:24d3eb812fd4 551
JMF 0:24d3eb812fd4 552 if( mPhyIrqDisableCnt )
JMF 0:24d3eb812fd4 553 {
JMF 0:24d3eb812fd4 554 mPhyIrqDisableCnt--;
JMF 0:24d3eb812fd4 555
JMF 0:24d3eb812fd4 556 if( mPhyIrqDisableCnt == 0 )
JMF 0:24d3eb812fd4 557 {
JMF 0:24d3eb812fd4 558 RF_IRQ_Enable();
JMF 0:24d3eb812fd4 559 }
JMF 0:24d3eb812fd4 560 }
JMF 0:24d3eb812fd4 561
JMF 0:24d3eb812fd4 562 platform_exit_critical();
JMF 0:24d3eb812fd4 563 }
JMF 0:24d3eb812fd4 564
JMF 0:24d3eb812fd4 565 /*---------------------------------------------------------------------------
JMF 0:24d3eb812fd4 566 * Name: MCR20Drv_RST_Assert
JMF 0:24d3eb812fd4 567 * Description: -
JMF 0:24d3eb812fd4 568 * Parameters: -
JMF 0:24d3eb812fd4 569 * Return: -
JMF 0:24d3eb812fd4 570 *---------------------------------------------------------------------------*/
JMF 0:24d3eb812fd4 571 void MCR20Drv_RST_B_Assert
JMF 0:24d3eb812fd4 572 (
JMF 0:24d3eb812fd4 573 void
JMF 0:24d3eb812fd4 574 )
JMF 0:24d3eb812fd4 575 {
JMF 0:24d3eb812fd4 576 RF_RST_Set(0);
JMF 0:24d3eb812fd4 577 }
JMF 0:24d3eb812fd4 578
JMF 0:24d3eb812fd4 579 /*---------------------------------------------------------------------------
JMF 0:24d3eb812fd4 580 * Name: MCR20Drv_RST_Deassert
JMF 0:24d3eb812fd4 581 * Description: -
JMF 0:24d3eb812fd4 582 * Parameters: -
JMF 0:24d3eb812fd4 583 * Return: -
JMF 0:24d3eb812fd4 584 *---------------------------------------------------------------------------*/
JMF 0:24d3eb812fd4 585 void MCR20Drv_RST_B_Deassert
JMF 0:24d3eb812fd4 586 (
JMF 0:24d3eb812fd4 587 void
JMF 0:24d3eb812fd4 588 )
JMF 0:24d3eb812fd4 589 {
JMF 0:24d3eb812fd4 590 RF_RST_Set(1);
JMF 0:24d3eb812fd4 591 }
JMF 0:24d3eb812fd4 592
JMF 0:24d3eb812fd4 593 /*---------------------------------------------------------------------------
JMF 0:24d3eb812fd4 594 * Name: MCR20Drv_SoftRST_Assert
JMF 0:24d3eb812fd4 595 * Description: -
JMF 0:24d3eb812fd4 596 * Parameters: -
JMF 0:24d3eb812fd4 597 * Return: -
JMF 0:24d3eb812fd4 598 *---------------------------------------------------------------------------*/
JMF 0:24d3eb812fd4 599 void MCR20Drv_SoftRST_Assert
JMF 0:24d3eb812fd4 600 (
JMF 0:24d3eb812fd4 601 void
JMF 0:24d3eb812fd4 602 )
JMF 0:24d3eb812fd4 603 {
JMF 0:24d3eb812fd4 604 MCR20Drv_IndirectAccessSPIWrite(SOFT_RESET, (0x80));
JMF 0:24d3eb812fd4 605 }
JMF 0:24d3eb812fd4 606
JMF 0:24d3eb812fd4 607 /*---------------------------------------------------------------------------
JMF 0:24d3eb812fd4 608 * Name: MCR20Drv_SoftRST_Deassert
JMF 0:24d3eb812fd4 609 * Description: -
JMF 0:24d3eb812fd4 610 * Parameters: -
JMF 0:24d3eb812fd4 611 * Return: -
JMF 0:24d3eb812fd4 612 *---------------------------------------------------------------------------*/
JMF 0:24d3eb812fd4 613 void MCR20Drv_SoftRST_Deassert
JMF 0:24d3eb812fd4 614 (
JMF 0:24d3eb812fd4 615 void
JMF 0:24d3eb812fd4 616 )
JMF 0:24d3eb812fd4 617 {
JMF 0:24d3eb812fd4 618 MCR20Drv_IndirectAccessSPIWrite(SOFT_RESET, (0x00));
JMF 0:24d3eb812fd4 619 }
JMF 0:24d3eb812fd4 620
JMF 0:24d3eb812fd4 621 /*---------------------------------------------------------------------------
JMF 0:24d3eb812fd4 622 * Name: MCR20Drv_Soft_RESET
JMF 0:24d3eb812fd4 623 * Description: -
JMF 0:24d3eb812fd4 624 * Parameters: -
JMF 0:24d3eb812fd4 625 * Return: -
JMF 0:24d3eb812fd4 626 *---------------------------------------------------------------------------*/
JMF 0:24d3eb812fd4 627 void MCR20Drv_Soft_RESET
JMF 0:24d3eb812fd4 628 (
JMF 0:24d3eb812fd4 629 void
JMF 0:24d3eb812fd4 630 )
JMF 0:24d3eb812fd4 631 {
JMF 0:24d3eb812fd4 632 //assert SOG_RST
JMF 0:24d3eb812fd4 633 MCR20Drv_IndirectAccessSPIWrite(SOFT_RESET, (0x80));
JMF 0:24d3eb812fd4 634
JMF 0:24d3eb812fd4 635 //deassert SOG_RST
JMF 0:24d3eb812fd4 636 MCR20Drv_IndirectAccessSPIWrite(SOFT_RESET, (0x00));
JMF 0:24d3eb812fd4 637 }
JMF 0:24d3eb812fd4 638
JMF 0:24d3eb812fd4 639 /*---------------------------------------------------------------------------
JMF 0:24d3eb812fd4 640 * Name: MCR20Drv_RESET
JMF 0:24d3eb812fd4 641 * Description: -
JMF 0:24d3eb812fd4 642 * Parameters: -
JMF 0:24d3eb812fd4 643 * Return: -
JMF 0:24d3eb812fd4 644 *---------------------------------------------------------------------------*/
JMF 0:24d3eb812fd4 645 void MCR20Drv_RESET
JMF 0:24d3eb812fd4 646 (
JMF 0:24d3eb812fd4 647 void
JMF 0:24d3eb812fd4 648 )
JMF 0:24d3eb812fd4 649 {
JMF 0:24d3eb812fd4 650 #if !defined(TARGET_KW24D)
JMF 0:24d3eb812fd4 651 volatile uint32_t delay = 1000;
JMF 0:24d3eb812fd4 652 //assert RST_B
JMF 0:24d3eb812fd4 653 MCR20Drv_RST_B_Assert();
JMF 0:24d3eb812fd4 654
JMF 0:24d3eb812fd4 655 while(delay--);
JMF 0:24d3eb812fd4 656
JMF 0:24d3eb812fd4 657 //deassert RST_B
JMF 0:24d3eb812fd4 658 MCR20Drv_RST_B_Deassert();
JMF 0:24d3eb812fd4 659 #endif
JMF 0:24d3eb812fd4 660 }
JMF 0:24d3eb812fd4 661
JMF 0:24d3eb812fd4 662 /*---------------------------------------------------------------------------
JMF 0:24d3eb812fd4 663 * Name: MCR20Drv_Set_CLK_OUT_Freq
JMF 0:24d3eb812fd4 664 * Description: -
JMF 0:24d3eb812fd4 665 * Parameters: -
JMF 0:24d3eb812fd4 666 * Return: -
JMF 0:24d3eb812fd4 667 *---------------------------------------------------------------------------*/
JMF 0:24d3eb812fd4 668 void MCR20Drv_Set_CLK_OUT_Freq
JMF 0:24d3eb812fd4 669 (
JMF 0:24d3eb812fd4 670 uint8_t freqDiv
JMF 0:24d3eb812fd4 671 )
JMF 0:24d3eb812fd4 672 {
JMF 0:24d3eb812fd4 673 uint8_t clkOutCtrlReg = (freqDiv & cCLK_OUT_DIV_Mask) | cCLK_OUT_EN | cCLK_OUT_EXTEND;
JMF 0:24d3eb812fd4 674
JMF 0:24d3eb812fd4 675 if(freqDiv == gCLK_OUT_FREQ_DISABLE)
JMF 0:24d3eb812fd4 676 {
JMF 0:24d3eb812fd4 677 clkOutCtrlReg = (cCLK_OUT_EXTEND | gCLK_OUT_FREQ_4_MHz); //reset value with clock out disabled
JMF 0:24d3eb812fd4 678 }
JMF 0:24d3eb812fd4 679
JMF 0:24d3eb812fd4 680 MCR20Drv_DirectAccessSPIWrite((uint8_t) CLK_OUT_CTRL, clkOutCtrlReg);
JMF 0:24d3eb812fd4 681 }
JMF 0:24d3eb812fd4 682
JMF 0:24d3eb812fd4 683 #endif /* MBED_CONF_NANOSTACK_CONFIGURATION */