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