Skip to content

Commit 58b8775

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

File tree

2 files changed

+63
-0
lines changed

2 files changed

+63
-0
lines changed

components/bt/controller/esp32c6/Kconfig.in

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -342,6 +342,49 @@ config BT_LE_CONTROLLER_LOG_DUMP_ONLY
342342
help
343343
Only operate in dump mode
344344

345+
config BT_LE_CONTROLLER_LOG_SPI_OUT_ENABLED
346+
bool "Output ble controller logs to SPI bus (Experimental)"
347+
depends on BT_LE_CONTROLLER_LOG_ENABLED
348+
depends on !BT_LE_CONTROLLER_LOG_DUMP_ONLY
349+
default n
350+
help
351+
Output ble controller logs to SPI bus
352+
353+
config BT_LE_CONTROLLER_LOG_SPI_OUT_QUEUE_SIZE
354+
int "Number of ble controller log async SPI output queues"
355+
depends on BT_LE_CONTROLLER_LOG_SPI_OUT_ENABLED
356+
default 4
357+
help
358+
The number of ble controller log async SPI output queues
359+
360+
config BT_LE_CONTROLLER_LOG_SPI_OUT_TRANS_BUF_SIZE
361+
int "Size of ble controller log async SPI output transaction buffer size"
362+
depends on BT_LE_CONTROLLER_LOG_SPI_OUT_ENABLED
363+
default 512
364+
help
365+
The size of ble controller log async SPI output transaction buffer size
366+
367+
config BT_LE_CONTROLLER_LOG_SPI_OUT_MOSI_IO_NUM
368+
int "GPIO number of SPI MOSI"
369+
depends on BT_LE_CONTROLLER_LOG_SPI_OUT_ENABLED
370+
default 1
371+
help
372+
GPIO number of SPI MOSI
373+
374+
config BT_LE_CONTROLLER_LOG_SPI_OUT_SCLK_IO_NUM
375+
int "GPIO number of SPI SCLK"
376+
depends on BT_LE_CONTROLLER_LOG_SPI_OUT_ENABLED
377+
default 6
378+
help
379+
GPIO number of SPI SCLK
380+
381+
config BT_LE_CONTROLLER_LOG_SPI_OUT_CS_IO_NUM
382+
int "GPIO number of SPI CS"
383+
depends on BT_LE_CONTROLLER_LOG_SPI_OUT_ENABLED
384+
default 7
385+
help
386+
GPIO number of SPI CS
387+
345388
config BT_LE_CONTROLLER_LOG_STORAGE_ENABLE
346389
bool "Store ble controller logs to flash(Experimental)"
347390
depends on !BT_LE_CONTROLLER_LOG_DUMP_ONLY

components/bt/controller/esp32c6/bt.c

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

5757
#include "hal/efuse_hal.h"
5858
#include "soc/rtc.h"
59+
60+
#if CONFIG_BT_LE_CONTROLLER_LOG_ENABLED
61+
#if CONFIG_BT_LE_CONTROLLER_LOG_SPI_OUT_ENABLED
62+
#include "ble_log/ble_log_spi_out.h"
63+
#endif // CONFIG_BT_LE_CONTROLLER_LOG_SPI_OUT_ENABLED
64+
#endif // CONFIG_BT_LE_CONTROLLER_LOG_ENABLED
65+
5966
/* Macro definition
6067
************************************************************************
6168
*/
@@ -192,6 +199,7 @@ enum log_out_mode {
192199
LOG_DUMP_MEMORY,
193200
LOG_ASYNC_OUT,
194201
LOG_STORAGE_TO_FLASH,
202+
LOG_SPI_OUT,
195203
};
196204

197205
bool log_is_inited = false;
@@ -200,6 +208,8 @@ uint8_t log_output_mode = LOG_DUMP_MEMORY;
200208
#else
201209
#if CONFIG_BT_LE_CONTROLLER_LOG_STORAGE_ENABLE
202210
uint8_t log_output_mode = LOG_STORAGE_TO_FLASH;
211+
#elif CONFIG_BT_LE_CONTROLLER_LOG_SPI_OUT_ENABLED
212+
uint8_t log_output_mode = LOG_SPI_OUT;
203213
#else
204214
uint8_t log_output_mode = LOG_ASYNC_OUT;
205215
#endif // CONFIG_BT_LE_CONTROLLER_LOG_STORAGE_ENABLE
@@ -247,6 +257,13 @@ esp_err_t esp_bt_controller_log_init(uint8_t log_output_mode)
247257
}
248258
#endif // CONFIG_BT_LE_CONTROLLER_LOG_STORAGE_ENABLE
249259
break;
260+
case LOG_SPI_OUT:
261+
task_create = true;
262+
#if CONFIG_BT_LE_CONTROLLER_LOG_SPI_OUT_ENABLED
263+
ble_log_spi_out_init();
264+
bt_controller_log_interface = ble_log_spi_out_write_esp;
265+
#endif // CONFIG_BT_LE_CONTROLLER_LOG_SPI_OUT_ENABLED
266+
break;
250267
default:
251268
assert(0);
252269
}
@@ -262,6 +279,9 @@ esp_err_t esp_bt_controller_log_init(uint8_t log_output_mode)
262279
void esp_bt_ontroller_log_deinit(void)
263280
{
264281
r_ble_log_deinit_async();
282+
#if CONFIG_BT_LE_CONTROLLER_LOG_SPI_OUT_ENABLED
283+
ble_log_spi_out_deinit();
284+
#endif
265285
log_is_inited = false;
266286
}
267287

0 commit comments

Comments
 (0)