2 * Copyright (c) 2015, Olivier MATZ <zer0@droids-corp.org>
4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions are met:
7 * * Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer.
9 * * Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the
11 * documentation and/or other materials provided with the distribution.
12 * * Neither the name of the University of California, Berkeley nor the
13 * names of its contributors may be used to endorse or promote products
14 * derived from this software without specific prior written permission.
16 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY
17 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19 * DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY
20 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
23 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
28 #ifndef UGC_STM32_UART_H_
29 #define UGC_STM32_UART_H_
31 #include <stm32f4xx.h>
35 struct ucg_stm32_uart {
37 USART_TypeDef *uart; /* USART2 */
38 uint32_t rcc_uart; /* RCC_APB1Periph_USART2 */
39 uint32_t rcc_gpio; /* RCC_AHB1Periph_GPIOA */
40 GPIO_TypeDef *gpio; /* GPIOA */
41 uint8_t gpio_af; /* GPIO_AF_USART2 */
42 uint16_t gpio_pins; /* GPIO_Pin_2 | GPIO_Pin_3 */
43 uint8_t gpio_speed; /* GPIO_Speed_25MHz */
44 uint8_t irq; /* USART2_IRQn */
45 uint8_t irq_preempt_prio; /* 0 */
46 uint8_t irq_sub_prio; /* 0 */
49 const struct ucg_uart_driver_ops stm32_uart_ops;
51 #endif /* UGC_STM32_UART_H_ */