1 /*
2  * SPDX-FileCopyrightText: 2022-2024 Espressif Systems (Shanghai) CO LTD
3  *
4  * SPDX-License-Identifier: Apache-2.0
5  */
6 
7 #include <stdio.h>
8 #include <string.h>
9 #include "esp_log.h"
10 #include "driver/uart.h"
11 #include "hci_driver_uart.h"
12 
13 
14 static const char *TAG = "hci_uart_config";
15 static uart_config_t s_uart_cfg;
16 
hci_driver_uart_config(hci_driver_uart_params_config_t * uart_config)17 int hci_driver_uart_config(hci_driver_uart_params_config_t *uart_config)
18 {
19     uart_config_t *uart_cfg;
20     uart_cfg = &s_uart_cfg;
21     uart_cfg->baud_rate = uart_config->hci_uart_baud;
22     uart_cfg->data_bits = uart_config->hci_uart_data_bits;
23     uart_cfg->stop_bits = uart_config->hci_uart_stop_bits;
24     uart_cfg->parity    = uart_config->hci_uart_parity;
25     uart_cfg->flow_ctrl = uart_config->hci_uart_flow_ctrl;
26     uart_cfg->source_clk= UART_SCLK_DEFAULT;
27     uart_cfg->rx_flow_ctrl_thresh = UART_FIFO_LEN - 1;
28 
29     ESP_LOGI(TAG,"set uart pin tx:%d, rx:%d.\n", uart_config->hci_uart_tx_pin, uart_config->hci_uart_rx_pin);
30     ESP_LOGI(TAG,"set rts:%d, cts:%d.\n", uart_config->hci_uart_rts_pin, uart_config->hci_uart_cts_pin);
31     ESP_LOGI(TAG,"set baud_rate:%d.\n", uart_config->hci_uart_baud);
32     ESP_LOGI(TAG,"set flow_ctrl:%d.\n", uart_config->hci_uart_flow_ctrl);
33 
34     ESP_ERROR_CHECK(uart_driver_delete(uart_config->hci_uart_port));
35     ESP_ERROR_CHECK(uart_param_config(uart_config->hci_uart_port, uart_cfg));
36     ESP_ERROR_CHECK(uart_set_pin(uart_config->hci_uart_port, uart_config->hci_uart_tx_pin, uart_config->hci_uart_rx_pin,
37                                  uart_config->hci_uart_rts_pin, uart_config->hci_uart_cts_pin));
38     return 0;
39 }
40