10000 RP2: Add support for Nina-W10 WiFi/BT module. · micropython/micropython@e8b65c2 · GitHub
[go: up one dir, main page]

Skip to content

Commit e8b65c2

Browse files
committed
RP2: Add support for Nina-W10 WiFi/BT module.
1 parent 8ec0cd7 commit e8b65c2

File tree

2 files changed

+44
-2
lines changed
< 8000 /div>

2 files changed

+44
-2
lines changed

ports/rp2/CMakeLists.txt

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -164,6 +164,7 @@ if(MICROPY_PY_BLUETOOTH)
164164
list(APPEND MICROPY_SOURCE_PORT mpbthciport.c)
165165
target_compile_definitions(${MICROPY_TARGET} PRIVATE
166166
MICROPY_PY_BLUETOOTH=1
167+
MICROPY_PY_BLUETOOTH_USE_SYNC_EVENTS=1
167168
MICROPY_PY_BLUETOOTH_ENABLE_CENTRAL_MODE=1
168169
MICROPY_PY_BLUETOOTH_ENABLE_PAIRING_BONDING=1
169170
MICROPY_PY_BLUETOOTH_ENABLE_L2CAP_CHANNELS=1
@@ -186,6 +187,31 @@ if(MICROPY_BLUETOOTH_NIMBLE)
186187
list(APPEND MICROPY_INC_CORE ${NIMBLE_INCLUDE})
187188
endif()
188189

190+
if (MICROPY_PY_NETWORK_NINAW10)
191+
target_compile_definitions(${MICROPY_TARGET} PRIVATE
192+
MICROPY_PY_NETWORK_NINAW10=1
193+
)
194+
195+
target_include_directories(${MICROPY_TARGET} PRIVATE
196+
${MICROPY_DIR}/drivers/ninaw10/
197+
)
198+
199+
# Enable NINA-W10 WiFi and Bluetooth drivers.
200+
list(APPEND MICROPY_SOURCE_DRIVERS
201+
${MICROPY_DIR}/drivers/ninaw10/nina_bt_hci.c
202+
${MICROPY_DIR}/drivers/ninaw10/nina_wifi_drv.c
203+
${MICROPY_DIR}/drivers/ninaw10/nina_wifi_bsp.c
204+
)
205+
206+
list(APPEND MICROPY_SOURCE_EXTMOD
207+
${MICROPY_DIR}/extmod/network_ninaw10.c
208+
)
209+
210+
list(APPEND MICROPY_SOURCE_QSTR
211+
${MICROPY_DIR}/extmod/network_ninaw10.c
212+
)
213+
endif()
214+
189215
# Define mpy-cross flags and frozen manifest
190216
set(MICROPY_CROSS_FLAGS -march=armv7m)
191217
if (NOT MICROPY_FROZEN_MANIFEST)

ports/rp2/mpconfigport.h

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -154,6 +154,20 @@ struct _mp_bluetooth_nimble_malloc_t;
154154
#define MICROPY_PORT_ROOT_POINTER_BLUETOOTH_NIMBLE
155155
#endif
156156

157+
#if MICROPY_PY_NETWORK_NINAW10
158+
// This Network interface requires the extended socket state.
159+
#ifndef MICROPY_PY_USOCKET_EXTENDED_STATE
160+
#define MICROPY_PY_USOCKET_EXTENDED_STATE (1)
161+
#endif
162+
// It also requires an additional root pointer for the SPI object.
163+
#define MICROPY_PORT_ROOT_POINTER_NINAW10 struct _machine_spi_obj_t *mp_wifi_spi;
164+
extern const struct _mod_network_nic_type_t mod_network_nic_type_nina;
165+
#define MICROPY_HW_NIC_NINAW10 { MP_ROM_QSTR(MP_QSTR_WLAN), MP_ROM_PTR(&mod_network_nic_type_nina) },
166+
#else
167+
#define MICROPY_HW_NIC_NINAW10
168+
#define MICROPY_PORT_ROOT_POINTER_NINAW10
169+
#endif
170+
157171
#define MICROPY_PORT_BUILTIN_MODULES \
158172
{ MP_OBJ_NEW_QSTR(MP_QSTR_machine), (mp_obj_t)&mp_module_machine }, \
159173
{ MP_OBJ_NEW_QSTR(MP_QSTR__onewire), (mp_obj_t)&mp_module_onewire }, \
@@ -163,12 +177,13 @@ struct _mp_bluetooth_nimble_malloc_t;
163177
SOCKET_BUILTIN_MODULE \
164178
NETWORK_BUILTIN_MODULE \
165179

180+
#define MICROPY_PORT_NETWORK_INTERFACES \
181+
MICROPY_HW_NIC_NINAW10 \
182+
166183
#ifndef MICROPY_BOARD_ROOT_POINTERS
167184
#define MICROPY_BOARD_ROOT_POINTERS
168185
#endif
169186

170-
#define MICROPY_PORT_NETWORK_INTERFACES \
171-
172187
#define MICROPY_PORT_ROOT_POINTERS \
173188
const char *readline_hist[8]; \
174189
void *machine_pin_irq_obj[30]; \
@@ -178,6 +193,7 @@ struct _mp_bluetooth_nimble_malloc_t;
178193
void *rp2_uart_tx_buffer[2]; \
179194
NETWORK_ROOT_POINTERS \
180195
MICROPY_BOARD_ROOT_POINTERS \
196+
MICROPY_PORT_ROOT_POINTER_NINAW10 \
181197
MICROPY_PORT_ROOT_POINTER_BLUETOOTH \
182198
MICROPY_PORT_ROOT_POINTER_BLUETOOTH_NIMBLE \
183199

0 commit comments

Comments
 (0)
0