mirror of
https://github.com/espressif/esp-idf.git
synced 2026-10-01 18:50:34 +03:00
refactor(bt/ble_log): share SPI master pin config with IOMUX fallback
Move the SPI2 bus, transfer-size and DMA-alignment constants shared by the full-duplex DMA and half-duplex HD transports into ble_log_prph_spi_common.h. Pin numbers stay Kconfig-driven but fall back to the target's native SPI2 IOMUX pins when configured negative, and default to -1 so both transports use the native pins out of the box; any GPIO number still overrides.
This commit is contained in:
@@ -219,22 +219,25 @@ if BLE_LOG_ENABLED
|
||||
|
||||
if BLE_LOG_PRPH_SPI_MASTER_DMA || BLE_LOG_PRPH_SPI_MASTER_HD
|
||||
config BLE_LOG_PRPH_SPI_MASTER_DMA_MOSI_IO_NUM
|
||||
int "GPIO number of MOSI port for SPI master transport"
|
||||
default 0
|
||||
int "GPIO number of MOSI port for SPI master transport (-1: native SPI2 IOMUX)"
|
||||
default -1
|
||||
help
|
||||
GPIO number of MOSI port for SPI master transport
|
||||
GPIO number of MOSI port for SPI master transport. Set to -1
|
||||
to use the target's native SPI2 IOMUX pin.
|
||||
|
||||
config BLE_LOG_PRPH_SPI_MASTER_DMA_SCLK_IO_NUM
|
||||
int "GPIO number of SCLK port for SPI master transport"
|
||||
default 0
|
||||
int "GPIO number of SCLK port for SPI master transport (-1: native SPI2 IOMUX)"
|
||||
default -1
|
||||
help
|
||||
GPIO number of SCLK port for SPI master transport
|
||||
GPIO number of SCLK port for SPI master transport. Set to -1
|
||||
to use the target's native SPI2 IOMUX pin.
|
||||
|
||||
config BLE_LOG_PRPH_SPI_MASTER_DMA_CS_IO_NUM
|
||||
int "GPIO number of CS port for SPI master transport"
|
||||
default 0
|
||||
int "GPIO number of CS port for SPI master transport (-1: native SPI2 IOMUX)"
|
||||
default -1
|
||||
help
|
||||
GPIO number of CS port for SPI master transport
|
||||
GPIO number of CS port for SPI master transport. Set to -1 to
|
||||
use the target's native SPI2 IOMUX pin.
|
||||
endif
|
||||
|
||||
if BLE_LOG_PRPH_UART_DMA
|
||||
|
||||
@@ -0,0 +1,34 @@
|
||||
/*
|
||||
* SPDX-FileCopyrightText: 2026 Espressif Systems (Shanghai) CO LTD
|
||||
*
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
#ifndef __BLE_LOG_PRPH_SPI_COMMON_H__
|
||||
#define __BLE_LOG_PRPH_SPI_COMMON_H__
|
||||
|
||||
/* ------------------------------------------------------ */
|
||||
/* BLE Log - Peripheral Interface - SPI Master Common IO */
|
||||
/* ------------------------------------------------------ */
|
||||
|
||||
/* INCLUDE */
|
||||
#include "hal/spi_types.h"
|
||||
#include "soc/spi_pins.h"
|
||||
|
||||
/* MACRO */
|
||||
#define BLE_LOG_SPI_BUS SPI2_HOST
|
||||
#define BLE_LOG_SPI_MAX_TRANSFER_SIZE (10240)
|
||||
#define BLE_LOG_SPI_DMA_ALIGN_BYTES (4U)
|
||||
|
||||
/* Fall back to the target's native SPI2 IOMUX pin when the configured
|
||||
* GPIO number is negative. */
|
||||
#define BLE_LOG_SPI_MOSI_IO_NUM \
|
||||
(CONFIG_BLE_LOG_PRPH_SPI_MASTER_DMA_MOSI_IO_NUM < 0 ? \
|
||||
SPI2_IOMUX_PIN_NUM_MOSI : CONFIG_BLE_LOG_PRPH_SPI_MASTER_DMA_MOSI_IO_NUM)
|
||||
#define BLE_LOG_SPI_SCLK_IO_NUM \
|
||||
(CONFIG_BLE_LOG_PRPH_SPI_MASTER_DMA_SCLK_IO_NUM < 0 ? \
|
||||
SPI2_IOMUX_PIN_NUM_CLK : CONFIG_BLE_LOG_PRPH_SPI_MASTER_DMA_SCLK_IO_NUM)
|
||||
#define BLE_LOG_SPI_CS_IO_NUM \
|
||||
(CONFIG_BLE_LOG_PRPH_SPI_MASTER_DMA_CS_IO_NUM < 0 ? \
|
||||
SPI2_IOMUX_PIN_NUM_CS : CONFIG_BLE_LOG_PRPH_SPI_MASTER_DMA_CS_IO_NUM)
|
||||
|
||||
#endif /* __BLE_LOG_PRPH_SPI_COMMON_H__ */
|
||||
@@ -9,15 +9,13 @@
|
||||
|
||||
/* INCLUDE */
|
||||
#include "ble_log_prph_spi_master_dma.h"
|
||||
#include "ble_log_prph_spi_common.h"
|
||||
#include "ble_log_lbm.h"
|
||||
|
||||
#include "esp_timer.h"
|
||||
|
||||
/* MACRO */
|
||||
#define BLE_LOG_SPI_BUS SPI2_HOST
|
||||
#define BLE_LOG_SPI_MAX_TRANSFER_SIZE (10240)
|
||||
#define BLE_LOG_SPI_TRANS_ITVL_MIN_US (30)
|
||||
#define BLE_LOG_SPI_DMA_ALIGN_BYTES (4U)
|
||||
#define BLE_LOG_SPI_ALIGN_LOG_PERIOD (256U)
|
||||
|
||||
#if CONFIG_SPI_MASTER_ISR_IN_IRAM
|
||||
@@ -64,8 +62,8 @@ bool ble_log_prph_init(size_t trans_cnt)
|
||||
/* SPI master initialization */
|
||||
spi_bus_config_t bus_config = {
|
||||
.miso_io_num = -1,
|
||||
.mosi_io_num = CONFIG_BLE_LOG_PRPH_SPI_MASTER_DMA_MOSI_IO_NUM,
|
||||
.sclk_io_num = CONFIG_BLE_LOG_PRPH_SPI_MASTER_DMA_SCLK_IO_NUM,
|
||||
.mosi_io_num = BLE_LOG_SPI_MOSI_IO_NUM,
|
||||
.sclk_io_num = BLE_LOG_SPI_SCLK_IO_NUM,
|
||||
.quadwp_io_num = -1,
|
||||
.quadhd_io_num = -1,
|
||||
.max_transfer_sz = BLE_LOG_SPI_MAX_TRANSFER_SIZE,
|
||||
@@ -80,7 +78,7 @@ bool ble_log_prph_init(size_t trans_cnt)
|
||||
spi_device_interface_config_t dev_config = {
|
||||
.clock_speed_hz = SPI_MASTER_FREQ_20M,
|
||||
.mode = 0,
|
||||
.spics_io_num = CONFIG_BLE_LOG_PRPH_SPI_MASTER_DMA_CS_IO_NUM,
|
||||
.spics_io_num = BLE_LOG_SPI_CS_IO_NUM,
|
||||
.queue_size = trans_cnt,
|
||||
.post_cb = spi_master_dma_tx_done_cb,
|
||||
.pre_cb = spi_master_dma_pre_tx_cb,
|
||||
|
||||
@@ -9,15 +9,13 @@
|
||||
|
||||
/* INCLUDE */
|
||||
#include "ble_log_prph_spi_master_hd.h"
|
||||
#include "ble_log_prph_spi_common.h"
|
||||
#include "ble_log_lbm.h"
|
||||
|
||||
#include "hal/spi_ll.h"
|
||||
#include "hal/spi_types.h"
|
||||
|
||||
/* MACRO */
|
||||
#define BLE_LOG_SPI_BUS SPI2_HOST
|
||||
#define BLE_LOG_SPI_MAX_TRANSFER_SIZE (10240)
|
||||
#define BLE_LOG_SPI_DMA_ALIGN_BYTES (4U)
|
||||
#define BLE_LOG_SPI_HD_DATA_DONE BIT(0)
|
||||
#define BLE_LOG_SPI_HD_END_QUEUE_FAILED BIT(1)
|
||||
|
||||
@@ -61,8 +59,8 @@ bool ble_log_prph_init(size_t trans_cnt)
|
||||
/* SPI master initialization */
|
||||
spi_bus_config_t bus_config = {
|
||||
.miso_io_num = -1,
|
||||
.mosi_io_num = CONFIG_BLE_LOG_PRPH_SPI_MASTER_DMA_MOSI_IO_NUM,
|
||||
.sclk_io_num = CONFIG_BLE_LOG_PRPH_SPI_MASTER_DMA_SCLK_IO_NUM,
|
||||
.mosi_io_num = BLE_LOG_SPI_MOSI_IO_NUM,
|
||||
.sclk_io_num = BLE_LOG_SPI_SCLK_IO_NUM,
|
||||
.quadwp_io_num = -1,
|
||||
.quadhd_io_num = -1,
|
||||
.max_transfer_sz = BLE_LOG_SPI_MAX_TRANSFER_SIZE,
|
||||
@@ -78,7 +76,7 @@ bool ble_log_prph_init(size_t trans_cnt)
|
||||
spi_device_interface_config_t dev_config = {
|
||||
.clock_speed_hz = SPI_MASTER_FREQ_20M,
|
||||
.mode = 0,
|
||||
.spics_io_num = CONFIG_BLE_LOG_PRPH_SPI_MASTER_DMA_CS_IO_NUM,
|
||||
.spics_io_num = BLE_LOG_SPI_CS_IO_NUM,
|
||||
.queue_size = (int)(trans_cnt * 2),
|
||||
.command_bits = 8,
|
||||
.address_bits = 8,
|
||||
|
||||
Reference in New Issue
Block a user