Skip to content

Commit 7283b16

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

File tree

2 files changed

+63
-0
lines changed

2 files changed

+63
-0
lines changed

components/bt/controller/esp32c5/Kconfig.in

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

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

components/bt/controller/esp32c5/bt.c

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,13 @@
5353

5454
#include "hal/efuse_hal.h"
5555
#include "soc/rtc.h"
56+
57+
#if CONFIG_BT_LE_CONTROLLER_LOG_ENABLED
58+
#if CONFIG_BT_LE_CONTROLLER_LOG_SPI_OUT_ENABLED
59+
#include "ble_log/ble_log_spi_out.h"
60+
#endif // CONFIG_BT_LE_CONTROLLER_LOG_SPI_OUT_ENABLED
61+
#endif // CONFIG_BT_LE_CONTROLLER_LOG_ENABLED
62+
5663
/* Macro definition
5764
************************************************************************
5865
*/
@@ -189,6 +196,7 @@ enum log_out_mode {
189196
LOG_DUMP_MEMORY,
190197
LOG_ASYNC_OUT,
191198
LOG_STORAGE_TO_FLASH,
199+
LOG_SPI_OUT,
192200
};
193201

194202
bool log_is_inited = false;
@@ -197,6 +205,8 @@ uint8_t log_output_mode = LOG_DUMP_MEMORY;
197205
#else
198206
#if CONFIG_BT_LE_CONTROLLER_LOG_STORAGE_ENABLE
199207
uint8_t log_output_mode = LOG_STORAGE_TO_FLASH;
208+
#elif CONFIG_BT_LE_CONTROLLER_LOG_SPI_OUT_ENABLED
209+
uint8_t log_output_mode = LOG_SPI_OUT;
200210
#else
201211
uint8_t log_output_mode = LOG_ASYNC_OUT;
202212
#endif // CONFIG_BT_LE_CONTROLLER_LOG_STORAGE_ENABLE
@@ -244,6 +254,13 @@ esp_err_t esp_bt_controller_log_init(uint8_t log_output_mode)
244254
}
245255
#endif // CONFIG_BT_LE_CONTROLLER_LOG_STORAGE_ENABLE
246256
break;
257+
case LOG_SPI_OUT:
258+
task_create = true;
259+
#if CONFIG_BT_LE_CONTROLLER_LOG_SPI_OUT_ENABLED
260+
ble_log_spi_out_init();
261+
bt_controller_log_interface = ble_log_spi_out_write_esp;
262+
#endif // CONFIG_BT_LE_CONTROLLER_LOG_SPI_OUT_ENABLED
263+
break;
247264
default:
248265
assert(0);
249266
}
@@ -259,6 +276,9 @@ esp_err_t esp_bt_controller_log_init(uint8_t log_output_mode)
259276
void esp_bt_ontroller_log_deinit(void)
260277
{
261278
r_ble_log_deinit_async();
279+
#if CONFIG_BT_LE_CONTROLLER_LOG_SPI_OUT_ENABLED
280+
ble_log_spi_out_deinit();
281+
#endif
262282
log_is_inited = false;
263283
}
264284

0 commit comments

Comments
 (0)