2 * This file is part of Cleanflight and Betaflight.
4 * Cleanflight and Betaflight are free software. You can redistribute
5 * this software and/or modify this software under the terms of the
6 * GNU General Public License as published by the Free Software
7 * Foundation, either version 3 of the License, or (at your option)
10 * Cleanflight and Betaflight are distributed in the hope that they
11 * will be useful, but WITHOUT ANY WARRANTY; without even the implied
12 * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
13 * See the GNU General Public License for more details.
15 * You should have received a copy of the GNU General Public License
16 * along with this software.
18 * If not, see <http://www.gnu.org/licenses/>.
28 #include "common/utils.h"
31 #include "pg/pg_ids.h"
32 #include "pg/serial_uart.h"
34 #include "drivers/io_types.h"
35 #include "drivers/serial.h"
36 #include "drivers/serial_uart.h"
38 PG_REGISTER_ARRAY_WITH_RESET_FN(serialUartConfig_t
, UARTDEV_CONFIG_MAX
, serialUartConfig
, PG_SERIAL_UART_CONFIG
, 0);
40 typedef struct uartDmaopt_s
{
46 static uartDmaopt_t uartDmaopt
[] = {
48 { UARTDEV_1
, UART1_TX_DMA_OPT
, UART1_RX_DMA_OPT
},
51 { UARTDEV_2
, UART2_TX_DMA_OPT
, UART2_RX_DMA_OPT
},
54 { UARTDEV_3
, UART3_TX_DMA_OPT
, UART3_RX_DMA_OPT
},
57 { UARTDEV_4
, UART4_TX_DMA_OPT
, UART4_RX_DMA_OPT
},
60 { UARTDEV_5
, UART5_TX_DMA_OPT
, UART5_RX_DMA_OPT
},
63 { UARTDEV_6
, UART6_TX_DMA_OPT
, UART6_RX_DMA_OPT
},
66 { UARTDEV_7
, UART7_TX_DMA_OPT
, UART7_RX_DMA_OPT
},
69 { UARTDEV_8
, UART8_TX_DMA_OPT
, UART8_RX_DMA_OPT
},
72 { UARTDEV_9
, UART9_TX_DMA_OPT
, UART9_RX_DMA_OPT
},
75 { UARTDEV_10
, UART10_TX_DMA_OPT
, UART10_RX_DMA_OPT
},
79 void pgResetFn_serialUartConfig(serialUartConfig_t
*config
)
81 for (unsigned i
= 0; i
< UARTDEV_CONFIG_MAX
; i
++) {
82 config
[i
].txDmaopt
= -1;
83 config
[i
].rxDmaopt
= -1;
86 for (unsigned i
= 0; i
< ARRAYLEN(uartDmaopt
); i
++) {
87 UARTDevice_e device
= uartDmaopt
[i
].device
;
88 config
[device
].txDmaopt
= uartDmaopt
[i
].txDmaopt
;
89 config
[device
].rxDmaopt
= uartDmaopt
[i
].rxDmaopt
;