Skip to content

Commit 0b57f8a

Browse files
author
Zhou Xiao
committed
feat(ble): support esp ble controller spi output interface for ESP32-C2
1 parent 52106c9 commit 0b57f8a

File tree

2 files changed

+62
-0
lines changed

2 files changed

+62
-0
lines changed

components/bt/controller/esp32c2/Kconfig.in

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -308,6 +308,49 @@ config BT_LE_CONTROLLER_LOG_DUMP_ONLY
308308
help
309309
Only operate in dump mode
310310

311+
config BT_LE_CONTROLLER_LOG_SPI_OUT_ENABLED
312+
bool "Output ble controller logs to SPI bus (Experimental)"
313+
depends on BT_LE_CONTROLLER_LOG_ENABLED
314+
depends on !BT_LE_CONTROLLER_LOG_DUMP_ONLY
315+
default n
316+
help
317+
Output ble controller logs to SPI bus
318+
319+
config BT_LE_CONTROLLER_LOG_SPI_OUT_QUEUE_SIZE
320+
int "Number of ble controller log async SPI output queues"
321+
depends on BT_LE_CONTROLLER_LOG_SPI_OUT_ENABLED
322+
default 4
323+
help
324+
The number of ble controller log async SPI output queues
325+
326+
config BT_LE_CONTROLLER_LOG_SPI_OUT_TRANS_BUF_SIZE
327+
int "Size of ble controller log async SPI output transaction buffer size"
328+
depends on BT_LE_CONTROLLER_LOG_SPI_OUT_ENABLED
329+
default 512
330+
help
331+
The size of ble controller log async SPI output transaction buffer size
332+
333+
config BT_LE_CONTROLLER_LOG_SPI_OUT_MOSI_IO_NUM
334+
int "GPIO number of SPI MOSI"
335+
depends on BT_LE_CONTROLLER_LOG_SPI_OUT_ENABLED
336+
default 1
337+
help
338+
GPIO number of SPI MOSI
339+
340+
config BT_LE_CONTROLLER_LOG_SPI_OUT_SCLK_IO_NUM
341+
int "GPIO number of SPI SCLK"
342+
depends on BT_LE_CONTROLLER_LOG_SPI_OUT_ENABLED
343+
default 6
344+
help
345+
GPIO number of SPI SCLK
346+
347+
config BT_LE_CONTROLLER_LOG_SPI_OUT_CS_IO_NUM
348+
int "GPIO number of SPI CS"
349+
depends on BT_LE_CONTROLLER_LOG_SPI_OUT_ENABLED
350+
default 7
351+
help
352+
GPIO number of SPI CS
353+
311354
config BT_LE_CONTROLLER_LOG_STORAGE_ENABLE
312355
bool "Store ble controller logs to flash(Experimental)"
313356
depends on !BT_LE_CONTROLLER_LOG_DUMP_ONLY

components/bt/controller/esp32c2/bt.c

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,12 @@
6464
#include "hal/efuse_ll.h"
6565
#include "soc/rtc.h"
6666

67+
#if CONFIG_BT_LE_CONTROLLER_LOG_ENABLED
68+
#if CONFIG_BT_LE_CONTROLLER_LOG_SPI_OUT_ENABLED
69+
#include "ble_log/ble_log_spi_out.h"
70+
#endif // CONFIG_BT_LE_CONTROLLER_LOG_SPI_OUT_ENABLED
71+
#endif // CONFIG_BT_LE_CONTROLLER_LOG_ENABLED
72+
6773
/* Macro definition
6874
************************************************************************
6975
*/
@@ -210,6 +216,7 @@ enum log_out_mode {
210216
LOG_DUMP_MEMORY,
211217
LOG_ASYNC_OUT,
212218
LOG_STORAGE_TO_FLASH,
219+
LOG_SPI_OUT,
213220
};
214221

215222
bool log_is_inited = false;
@@ -218,6 +225,8 @@ uint8_t log_output_mode = LOG_DUMP_MEMORY;
218225
#else
219226
#if CONFIG_BT_LE_CONTROLLER_LOG_STORAGE_ENABLE
220227
uint8_t log_output_mode = LOG_STORAGE_TO_FLASH;
228+
#elif CONFIG_BT_LE_CONTROLLER_LOG_SPI_OUT_ENABLED
229+
uint8_t log_output_mode = LOG_SPI_OUT;
221230
#else
222231
uint8_t log_output_mode = LOG_ASYNC_OUT;
223232
#endif // CONFIG_BT_LE_CONTROLLER_LOG_STORAGE_ENABLE
@@ -265,6 +274,13 @@ esp_err_t esp_bt_controller_log_init(uint8_t log_output_mode)
265274
}
266275
#endif // CONFIG_BT_LE_CONTROLLER_LOG_STORAGE_ENABLE
267276
break;
277+
case LOG_SPI_OUT:
278+
task_create = true;
279+
#if CONFIG_BT_LE_CONTROLLER_LOG_SPI_OUT_ENABLED
280+
ble_log_spi_out_init();
281+
bt_controller_log_interface = ble_log_spi_out_write_esp;
282+
#endif // CONFIG_BT_LE_CONTROLLER_LOG_SPI_OUT_ENABLED
283+
break;
268284
default:
269285
assert(0);
270286
}
@@ -280,6 +296,9 @@ esp_err_t esp_bt_controller_log_init(uint8_t log_output_mode)
280296
void esp_bt_ontroller_log_deinit(void)
281297
{
282298
ble_log_deinit_async();
299+
#if CONFIG_BT_LE_CONTROLLER_LOG_SPI_OUT_ENABLED
300+
ble_log_spi_out_deinit();
301+
#endif
283302
log_is_inited = false;
284303
}
285304

0 commit comments

Comments
 (0)