mirror of
https://github.com/espressif/esp-idf.git
synced 2024-10-05 20:47:46 -04:00
Merge branch 'feature/add_config_to_disable_uart_flow_control' into 'master'
feat: add config to disable ble hci uart flow control Closes CBLE50Y23-50 See merge request espressif/esp-idf!26155
This commit is contained in:
commit
5306b3308f
@ -205,6 +205,11 @@ menu "HCI UART(H4) Options"
|
|||||||
help
|
help
|
||||||
UART Baudrate for HCI. Please use standard baudrate.
|
UART Baudrate for HCI. Please use standard baudrate.
|
||||||
|
|
||||||
|
config BTDM_CTRL_HCI_UART_FLOW_CTRL_EN
|
||||||
|
bool "Enable UART flow control"
|
||||||
|
depends on BTDM_CTRL_HCI_MODE_UART_H4
|
||||||
|
default y
|
||||||
|
|
||||||
endmenu
|
endmenu
|
||||||
|
|
||||||
menu "MODEM SLEEP Options"
|
menu "MODEM SLEEP Options"
|
||||||
|
@ -221,6 +221,7 @@ extern void btdm_controller_scan_duplicate_list_clear(void);
|
|||||||
/* Shutdown */
|
/* Shutdown */
|
||||||
extern void esp_bt_controller_shutdown(void);
|
extern void esp_bt_controller_shutdown(void);
|
||||||
extern void sdk_config_set_bt_pll_track_enable(bool enable);
|
extern void sdk_config_set_bt_pll_track_enable(bool enable);
|
||||||
|
extern void sdk_config_set_uart_flow_ctrl_enable(bool enable);
|
||||||
|
|
||||||
extern char _bss_start_btdm;
|
extern char _bss_start_btdm;
|
||||||
extern char _bss_end_btdm;
|
extern char _bss_end_btdm;
|
||||||
@ -1527,6 +1528,12 @@ esp_err_t esp_bt_controller_init(esp_bt_controller_config_t *cfg)
|
|||||||
btdm_controller_set_sleep_mode(BTDM_MODEM_SLEEP_MODE_NONE);
|
btdm_controller_set_sleep_mode(BTDM_MODEM_SLEEP_MODE_NONE);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if CONFIG_BTDM_CTRL_HCI_UART_FLOW_CTRL_EN
|
||||||
|
sdk_config_set_uart_flow_ctrl_enable(true);
|
||||||
|
#else
|
||||||
|
sdk_config_set_uart_flow_ctrl_enable(false);
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef CONFIG_PM_ENABLE
|
#ifdef CONFIG_PM_ENABLE
|
||||||
if (!s_btdm_allow_light_sleep) {
|
if (!s_btdm_allow_light_sleep) {
|
||||||
if ((err = esp_pm_lock_create(ESP_PM_NO_LIGHT_SLEEP, 0, "btLS", &s_light_sleep_pm_lock)) != ESP_OK) {
|
if ((err = esp_pm_lock_create(ESP_PM_NO_LIGHT_SLEEP, 0, "btLS", &s_light_sleep_pm_lock)) != ESP_OK) {
|
||||||
|
@ -25,7 +25,7 @@ static void uart_gpio_reset(void)
|
|||||||
periph_module_enable(PERIPH_UHCI0_MODULE);
|
periph_module_enable(PERIPH_UHCI0_MODULE);
|
||||||
|
|
||||||
#ifdef CONFIG_BTDM_CTRL_HCI_UART_NO
|
#ifdef CONFIG_BTDM_CTRL_HCI_UART_NO
|
||||||
ESP_LOGI(tag, "HCI UART%d Pin select: TX 5, RX 18, CTS 23, RTS 19", CONFIG_BTDM_CTRL_HCI_UART_NO);
|
ESP_LOGI(tag, "HCI UART%d Pin select: TX 5, RX 18, CTS 23, RTS 19 Baudrate:%d", CONFIG_BTDM_CTRL_HCI_UART_NO, CONFIG_BTDM_CTRL_HCI_UART_BAUDRATE);
|
||||||
|
|
||||||
uart_set_pin(CONFIG_BTDM_CTRL_HCI_UART_NO, 5, 18, 19, 23);
|
uart_set_pin(CONFIG_BTDM_CTRL_HCI_UART_NO, 5, 18, 19, 23);
|
||||||
#endif
|
#endif
|
||||||
|
@ -7,4 +7,10 @@ menu "Example Configuration"
|
|||||||
help
|
help
|
||||||
UART Baudrate for HCI. Please use standard baudrate.
|
UART Baudrate for HCI. Please use standard baudrate.
|
||||||
|
|
||||||
|
config EXAMPLE_HCI_UART_FLOW_CTRL_ENABLE
|
||||||
|
bool "Enable HCI UART flow control"
|
||||||
|
default y
|
||||||
|
help
|
||||||
|
Enable/disable HCI UART flow control
|
||||||
|
|
||||||
endmenu
|
endmenu
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* SPDX-FileCopyrightText: 2021-2022 Espressif Systems (Shanghai) CO LTD
|
* SPDX-FileCopyrightText: 2021-2023 Espressif Systems (Shanghai) CO LTD
|
||||||
*
|
*
|
||||||
* SPDX-License-Identifier: Unlicense OR CC0-1.0
|
* SPDX-License-Identifier: Unlicense OR CC0-1.0
|
||||||
*/
|
*/
|
||||||
@ -29,6 +29,12 @@ static const char *tag = "UHCI";
|
|||||||
#define GPIO_OUTPUT_PIN_SEL ((1ULL<<GPIO_UART_TXD_OUT) | (1ULL<<GPIO_UART_RTS_OUT))
|
#define GPIO_OUTPUT_PIN_SEL ((1ULL<<GPIO_UART_TXD_OUT) | (1ULL<<GPIO_UART_RTS_OUT))
|
||||||
#define GPIO_INPUT_PIN_SEL ((1ULL<<GPIO_UART_RXD_IN) | (1ULL<<GPIO_UART_CTS_IN))
|
#define GPIO_INPUT_PIN_SEL ((1ULL<<GPIO_UART_RXD_IN) | (1ULL<<GPIO_UART_CTS_IN))
|
||||||
|
|
||||||
|
#ifdef CONFIG_EXAMPLE_HCI_UART_FLOW_CTRL_ENABLE
|
||||||
|
#define HCI_UART_FLOW_CTRL_ENABLE CONFIG_EXAMPLE_HCI_UART_FLOW_CTRL_ENABLE
|
||||||
|
#else
|
||||||
|
#define HCI_UART_FLOW_CTRL_ENABLE FALSE
|
||||||
|
#endif
|
||||||
|
|
||||||
// Operation functions for HCI UART Transport Layer
|
// Operation functions for HCI UART Transport Layer
|
||||||
static bool hci_uart_tl_init(void);
|
static bool hci_uart_tl_init(void);
|
||||||
static void hci_uart_tl_deinit(void);
|
static void hci_uart_tl_deinit(void);
|
||||||
@ -203,7 +209,11 @@ void uhci_uart_install(void)
|
|||||||
.data_bits = UART_DATA_8_BITS,
|
.data_bits = UART_DATA_8_BITS,
|
||||||
.parity = UART_PARITY_DISABLE,
|
.parity = UART_PARITY_DISABLE,
|
||||||
.stop_bits = UART_STOP_BITS_1,
|
.stop_bits = UART_STOP_BITS_1,
|
||||||
|
#if (HCI_UART_FLOW_CTRL_ENABLE == TRUE)
|
||||||
.flow_ctrl = UART_HW_FLOWCTRL_CTS_RTS,
|
.flow_ctrl = UART_HW_FLOWCTRL_CTS_RTS,
|
||||||
|
#else
|
||||||
|
.flow_ctrl = UART_HW_FLOWCTRL_DISABLE,
|
||||||
|
#endif
|
||||||
.rx_flow_ctrl_thresh = UART_RX_THRS,
|
.rx_flow_ctrl_thresh = UART_RX_THRS,
|
||||||
.source_clk = UART_SCLK_DEFAULT,
|
.source_clk = UART_SCLK_DEFAULT,
|
||||||
};
|
};
|
||||||
@ -284,4 +294,5 @@ void app_main(void)
|
|||||||
"--Baudrate: %d", UART_HCI_NUM,
|
"--Baudrate: %d", UART_HCI_NUM,
|
||||||
GPIO_UART_TXD_OUT, GPIO_UART_RXD_IN, GPIO_UART_RTS_OUT, GPIO_UART_CTS_IN,
|
GPIO_UART_TXD_OUT, GPIO_UART_RXD_IN, GPIO_UART_RTS_OUT, GPIO_UART_CTS_IN,
|
||||||
CONFIG_EXAMPLE_HCI_UART_BAUDRATE);
|
CONFIG_EXAMPLE_HCI_UART_BAUDRATE);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user