Skip to content

Commit 5d819eb

Browse files
author
Kyle Kearney
committed
Initialize wifi SDIO during BSP init
1 parent d98fa7a commit 5d819eb

File tree

11 files changed

+302
-161
lines changed

11 files changed

+302
-161
lines changed

targets/TARGET_Cypress/TARGET_PSOC6/TARGET_CY8CKIT_062S2_43012/cybsp.c

Lines changed: 26 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -40,28 +40,42 @@ cy_rslt_t cybsp_init(void)
4040
init_cycfg_system();
4141

4242
#ifndef __MBED__
43-
/* Initialize User LEDs */
44-
result |= cybsp_led_init(CYBSP_USER_LED1);
45-
result |= cybsp_led_init(CYBSP_USER_LED2);
46-
result |= cybsp_led_init(CYBSP_USER_LED3);
47-
result |= cybsp_led_init(CYBSP_USER_LED4);
48-
result |= cybsp_led_init(CYBSP_USER_LED5);
49-
/* Initialize User Buttons */
50-
result |= cybsp_btn_init(CYBSP_USER_BTN1);
51-
result |= cybsp_btn_init(CYBSP_USER_BTN2);
43+
if (CY_RSLT_SUCCESS == result)
44+
{
45+
/* Initialize User LEDs */
46+
result |= cybsp_led_init(CYBSP_USER_LED1);
47+
result |= cybsp_led_init(CYBSP_USER_LED2);
48+
result |= cybsp_led_init(CYBSP_USER_LED3);
49+
result |= cybsp_led_init(CYBSP_USER_LED4);
50+
result |= cybsp_led_init(CYBSP_USER_LED5);
51+
/* Initialize User Buttons */
52+
result |= cybsp_btn_init(CYBSP_USER_BTN1);
53+
result |= cybsp_btn_init(CYBSP_USER_BTN2);
54+
55+
CY_ASSERT(CY_RSLT_SUCCESS == result);
5256

53-
CY_ASSERT(CY_RSLT_SUCCESS == result);
57+
/* Initialize retargetting stdio to 'DEBUG_UART' peripheral */
58+
if (CY_RSLT_SUCCESS == result)
59+
{
60+
result = cybsp_retarget_init();
61+
}
62+
}
63+
#endif
5464

55-
/* Initialize retargetting stdio to 'DEBUG_UART' peripheral */
65+
#if defined(CYBSP_WIFI_CAPABLE)
66+
/* Initialize SDIO interface.
67+
NOTE: The full WiFi interface still needs to be initialized via cybsp_wifi_init_primary(). This is typically done
68+
when starting up WiFi. */
5669
if (CY_RSLT_SUCCESS == result)
5770
{
58-
result = cybsp_retarget_init();
71+
result = cybsp_wifi_sdio_init();
5972
}
6073
#endif
6174

6275
return result;
6376
}
6477

78+
6579
#if defined(__cplusplus)
6680
}
6781
#endif

targets/TARGET_Cypress/TARGET_PSOC6/TARGET_CY8CKIT_062S2_43012/cybsp.h

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -55,9 +55,10 @@
5555
#pragma once
5656

5757
#include "cybsp_api_core.h"
58-
#ifdef __MBED__
59-
#include "cybsp_api_wifi.h"
60-
#else
58+
#if defined(CYBSP_WIFI_CAPABLE)
59+
#include "cybsp_wifi_sdio.h"
60+
#endif
61+
#ifndef __MBED__
6162
#include "cybsp_retarget.h"
6263
#include "cybsp_serial_flash.h"
6364
#endif /* __MBED__ */

targets/TARGET_Cypress/TARGET_PSOC6/TARGET_CY8CKIT_062_BLE/cybsp.c

Lines changed: 16 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -38,24 +38,25 @@ cy_rslt_t cybsp_init(void)
3838

3939
cy_rslt_t result = CY_RSLT_SUCCESS;
4040

41-
#ifndef __MBED__
42-
/* Initialize User LEDs */
43-
result |= cybsp_led_init(CYBSP_USER_LED1);
44-
result |= cybsp_led_init(CYBSP_USER_LED2);
45-
result |= cybsp_led_init(CYBSP_USER_LED3);
46-
result |= cybsp_led_init(CYBSP_USER_LED4);
47-
result |= cybsp_led_init(CYBSP_USER_LED5);
48-
/* Initialize User Buttons */
49-
result |= cybsp_btn_init(CYBSP_USER_BTN1);
50-
51-
CY_ASSERT(CY_RSLT_SUCCESS == result);
52-
#endif
5341

54-
#if defined(CYBSP_RETARGET_ENABLED)
55-
/* Initialize retargetting stdio to 'DEBUG_UART' peripheral */
42+
#ifndef __MBED__
5643
if (CY_RSLT_SUCCESS == result)
5744
{
58-
result = cybsp_retarget_init();
45+
/* Initialize User LEDs */
46+
result |= cybsp_led_init(CYBSP_USER_LED1);
47+
result |= cybsp_led_init(CYBSP_USER_LED2);
48+
result |= cybsp_led_init(CYBSP_USER_LED3);
49+
result |= cybsp_led_init(CYBSP_USER_LED4);
50+
result |= cybsp_led_init(CYBSP_USER_LED5);
51+
/* Initialize User Buttons */
52+
result |= cybsp_btn_init(CYBSP_USER_BTN1);
53+
CY_ASSERT(CY_RSLT_SUCCESS == result);
54+
55+
/* Initialize retargetting stdio to 'DEBUG_UART' peripheral */
56+
if (CY_RSLT_SUCCESS == result)
57+
{
58+
result = cybsp_retarget_init();
59+
}
5960
}
6061
#endif
6162

targets/TARGET_Cypress/TARGET_PSOC6/TARGET_CY8CKIT_062_WIFI_BT/cybsp.c

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -40,34 +40,34 @@ cy_rslt_t cybsp_init(void)
4040
cy_rslt_t result = CY_RSLT_SUCCESS;
4141

4242
#ifndef __MBED__
43-
/* Initialize User LEDs */
44-
result |= cybsp_led_init(CYBSP_USER_LED1);
45-
result |= cybsp_led_init(CYBSP_USER_LED2);
46-
result |= cybsp_led_init(CYBSP_USER_LED3);
47-
result |= cybsp_led_init(CYBSP_USER_LED4);
48-
result |= cybsp_led_init(CYBSP_USER_LED5);
49-
/* Initialize User Buttons */
50-
result |= cybsp_btn_init(CYBSP_USER_BTN1);
43+
if (CY_RSLT_SUCCESS == result)
44+
{
45+
/* Initialize User LEDs */
46+
result |= cybsp_led_init(CYBSP_USER_LED1);
47+
result |= cybsp_led_init(CYBSP_USER_LED2);
48+
result |= cybsp_led_init(CYBSP_USER_LED3);
49+
result |= cybsp_led_init(CYBSP_USER_LED4);
50+
result |= cybsp_led_init(CYBSP_USER_LED5);
51+
/* Initialize User Buttons */
52+
result |= cybsp_btn_init(CYBSP_USER_BTN1);
53+
CY_ASSERT(CY_RSLT_SUCCESS == result);
5154

52-
CY_ASSERT(CY_RSLT_SUCCESS == result);
55+
/* Initialize retargetting stdio to 'DEBUG_UART' peripheral */
56+
if (CY_RSLT_SUCCESS == result)
57+
{
58+
result = cybsp_retarget_init();
59+
}
60+
}
5361
#endif
5462

5563
#if defined(CYBSP_WIFI_CAPABLE)
5664
/* Initialize UDB SDIO interface. This must be done before any other HAL API attempts to allocate clocks or DMA
5765
instances. The UDB SDIO interface uses specific instances which are reserved as part of this call.
58-
NOTE: The full WiFi interface still needs to be initialized via cybsp_wifi_init(). This is typically done
66+
NOTE: The full WiFi interface still needs to be initialized via cybsp_wifi_init_primary(). This is typically done
5967
when starting up WiFi. */
6068
if (CY_RSLT_SUCCESS == result)
6169
{
62-
result = cybsp_sdio_init();
63-
}
64-
#endif
65-
66-
#if defined(CYBSP_RETARGET_ENABLED)
67-
/* Initialize retargetting stdio to 'DEBUG_UART' peripheral */
68-
if (CY_RSLT_SUCCESS == result)
69-
{
70-
result = cybsp_retarget_init();
70+
result = cybsp_wifi_sdio_init();
7171
}
7272
#endif
7373

targets/TARGET_Cypress/TARGET_PSOC6/TARGET_CY8CKIT_062_WIFI_BT/cybsp.h

Lines changed: 3 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -23,40 +23,12 @@
2323
* limitations under the License.
2424
*******************************************************************************/
2525

26-
/**
27-
* \addtogroup group_bsp_cy8ckit_062_wifi_bt CY8CKIT-062-WIFI-BT
28-
* \ingroup group_bsp
29-
* \{
30-
* The PSoC 6 WiFi-BT Pioneer Kit is a low-cost hardware platform
31-
* that enables design and debug of the PSoC 62 MCU (CY8C6247BZI-D54)
32-
* and the Murata LBEE5KL1DX Module (CYW4343W WiFi + Bluetooth Combo Chip).
33-
*
34-
* <div class="category">Kit Features:</div>
35-
* <ul>
36-
* <li>BLE v5.0</li>
37-
* <li>Serial memory interface</li>
38-
* <li>PDM-PCM digital microphone interface</li>
39-
* <li>Industry-leading CapSense</li>
40-
* </ul>
41-
*
42-
* <div class="category">Kit Contents:</div>
43-
* <ul>
44-
* <li>CY8CKIT-062-WIFI-BT evaluation board</li>
45-
* <li>TFT display shield with a 2.4" TFT display, light sensor, 6-axis motion sensor, and digital microphone</li>
46-
* <li>USB cable</li>
47-
* </ul>
48-
*
49-
* \defgroup group_bsp_cy8ckit_062_wifi_bt_macros Macros
50-
* \defgroup group_bsp_cy8ckit_062_wifi_bt_functions Functions
51-
* \defgroup group_bsp_cy8ckit_062_wifi_bt_enums Enumerated Types
52-
*/
53-
5426
#pragma once
5527

5628
#include "cybsp_api_core.h"
57-
#ifdef MBED
58-
#include "cybsp_api_wifi.h"
59-
#endif /* MBED */
29+
#if defined(CYBSP_WIFI_CAPABLE)
30+
#include "cybsp_wifi_sdio.h"
31+
#endif
6032

6133
#if defined(__cplusplus)
6234
extern "C" {

targets/TARGET_Cypress/TARGET_PSOC6/TARGET_CY8CMOD_062_4343W/TARGET_CY8CPROTO_062_4343W/cybsp.c

Lines changed: 19 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -39,18 +39,29 @@ cy_rslt_t cybsp_init(void)
3939
cy_rslt_t result = CY_RSLT_SUCCESS;
4040

4141
#ifndef __MBED__
42-
/* Initialize User LEDs */
43-
result |= cybsp_led_init(CYBSP_USER_LED1);
44-
/* Initialize User Buttons */
45-
result |= cybsp_btn_init(CYBSP_USER_BTN1);
46-
CY_ASSERT(CY_RSLT_SUCCESS == result);
42+
if (CY_RSLT_SUCCESS == result)
43+
{
44+
/* Initialize User LEDs */
45+
result |= cybsp_led_init(CYBSP_USER_LED1);
46+
/* Initialize User Buttons */
47+
result |= cybsp_btn_init(CYBSP_USER_BTN1);
48+
CY_ASSERT(CY_RSLT_SUCCESS == result);
49+
50+
/* Initialize retargetting stdio to 'DEBUG_UART' peripheral */
51+
if (CY_RSLT_SUCCESS == result)
52+
{
53+
result = cybsp_retarget_init();
54+
}
55+
}
4756
#endif
4857

49-
#if defined(CYBSP_RETARGET_ENABLED)
50-
/* Initialize retargetting stdio to 'DEBUG_UART' peripheral */
58+
#if defined(CYBSP_WIFI_CAPABLE)
59+
/* Initialize SDIO interface.
60+
NOTE: The full WiFi interface still needs to be initialized via cybsp_wifi_init_primary(). This is typically done
61+
when starting up WiFi. */
5162
if (CY_RSLT_SUCCESS == result)
5263
{
53-
result = cybsp_retarget_init();
64+
result = cybsp_wifi_sdio_init();
5465
}
5566
#endif
5667

targets/TARGET_Cypress/TARGET_PSOC6/TARGET_CYW943012P6EVB_01/cybsp.c

Lines changed: 18 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -39,32 +39,33 @@ cy_rslt_t cybsp_init(void)
3939
cy_rslt_t result = CY_RSLT_SUCCESS;
4040

4141
#ifndef __MBED__
42-
/* Initialize User LEDs */
43-
result |= cybsp_led_init(CYBSP_USER_LED1);
44-
result |= cybsp_led_init(CYBSP_USER_LED2);
45-
result |= cybsp_led_init(CYBSP_USER_LED3);
46-
/* Initialize User Buttons */
47-
result |= cybsp_btn_init(CYBSP_USER_BTN1);
42+
if (CY_RSLT_SUCCESS == result)
43+
{
44+
/* Initialize User LEDs */
45+
result |= cybsp_led_init(CYBSP_USER_LED1);
46+
result |= cybsp_led_init(CYBSP_USER_LED2);
47+
result |= cybsp_led_init(CYBSP_USER_LED3);
48+
/* Initialize User Buttons */
49+
result |= cybsp_btn_init(CYBSP_USER_BTN1);
50+
51+
CY_ASSERT(CY_RSLT_SUCCESS == result);
4852

49-
CY_ASSERT(CY_RSLT_SUCCESS == result);
53+
/* Initialize retargetting stdio to 'DEBUG_UART' peripheral */
54+
if (CY_RSLT_SUCCESS == result)
55+
{
56+
result = cybsp_retarget_init();
57+
}
58+
}
5059
#endif
5160

5261
#if defined(CYBSP_WIFI_CAPABLE)
5362
/* Initialize UDB SDIO interface. This must be done before any other HAL API attempts to allocate clocks or DMA
5463
instances. The UDB SDIO interface uses specific instances which are reserved as part of this call.
55-
NOTE: The full WiFi interface still needs to be initialized via cybsp_wifi_init(). This is typically done
64+
NOTE: The full WiFi interface still needs to be initialized via cybsp_wifi_init_primary(). This is typically done
5665
when starting up WiFi. */
5766
if (CY_RSLT_SUCCESS == result)
5867
{
59-
result = cybsp_sdio_init();
60-
}
61-
#endif
62-
63-
#if defined(CYBSP_RETARGET_ENABLED)
64-
/* Initialize retargetting stdio to 'DEBUG_UART' peripheral */
65-
if (CY_RSLT_SUCCESS == result)
66-
{
67-
result = cybsp_retarget_init();
68+
result = cybsp_wifi_sdio_init();
6869
}
6970
#endif
7071

targets/TARGET_Cypress/TARGET_PSOC6/common/cybsp_wifi.c

Lines changed: 14 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -21,14 +21,16 @@
2121
* See the License for the specific language governing permissions and
2222
* limitations under the License.
2323
*******************************************************************************/
24-
#if defined(TARGET_WHD)
24+
#if defined(CYBSP_WIFI_CAPABLE)
2525

26-
#include "cybsp_api_wifi.h"
26+
#include "cybsp_types.h"
27+
#include "cybsp_wifi.h"
2728
#include "cy_network_buffer.h"
2829
#include "cmsis_os2.h"
2930
#include "whd_types.h"
3031
#include "cyhal.h"
31-
#include "cyhal_implementation.h"
32+
#include "cybsp_wifi_sdio.h"
33+
#include "cycfg.h"
3234

3335
#if defined(__cplusplus)
3436
extern "C" {
@@ -239,21 +241,8 @@ static cy_rslt_t init_sdio_bus(void)
239241
return result;
240242
}
241243

242-
cy_rslt_t cybsp_sdio_init(void)
244+
cy_rslt_t cybsp_wifi_init_primary(whd_interface_t* interface)
243245
{
244-
cy_rslt_t result = cyhal_sdio_init(&sdio_obj, CYBSP_WIFI_SDIO_CMD, CYBSP_WIFI_SDIO_CLK, CYBSP_WIFI_SDIO_D0, CYBSP_WIFI_SDIO_D1, CYBSP_WIFI_SDIO_D2, CYBSP_WIFI_SDIO_D3);
245-
sdio_initialized = (result == CY_RSLT_SUCCESS);
246-
return result;
247-
}
248-
249-
cy_rslt_t cybsp_wifi_init(void)
250-
{
251-
cy_rslt_t result = init_sdio_whd();
252-
if(result != CY_RSLT_SUCCESS)
253-
{
254-
return result;
255-
}
256-
257246
whd_init_config_t whd_init_config;
258247
whd_init_config.thread_stack_size = (uint32_t) THREAD_STACK_SIZE;
259248
whd_init_config.thread_stack_start = (uint8_t *)malloc(THREAD_STACK_SIZE);
@@ -265,26 +254,21 @@ cy_rslt_t cybsp_wifi_init(void)
265254
{
266255
result = init_sdio_bus();
267256
}
268-
else
269-
{
270-
result = CYBSP_RSLT_WIFI_INIT_FAILED;
271-
}
272-
273-
if (result != CY_RSLT_SUCCESS)
274-
{
275-
deinit_sdio_whd();
276-
}
277-
278257
return result;
279258
}
280259

281-
whd_driver_t* cybsp_get_wifi_driver(void)
260+
cy_rslt_t cybsp_wifi_init_secondary(whd_interface_t* interface, whd_mac_t* mac_address)
261+
{
262+
return whd_add_secondary_interface(whd_drv, mac_address, interface);
263+
}
264+
265+
whd_driver_t cybsp_get_wifi_driver(void)
282266
{
283-
return &whd_drv;
267+
return whd_drv;
284268
}
285269

286270
#if defined(__cplusplus)
287271
}
288272
#endif
289273

290-
#endif /* defined(TARGET_WHD) */
274+
#endif /* defined(CYBSP_WIFI_CAPABLE) */

0 commit comments

Comments
 (0)