initial revision
[ucgine.git] / arch / stm32 / uart / include / ucg_stm32_uart.h
1 /*
2  * Copyright (c) 2015, Olivier MATZ <zer0@droids-corp.org>
3  * All rights reserved.
4  * Redistribution and use in source and binary forms, with or without
5  * modification, are permitted provided that the following conditions are met:
6  *
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.
15  *
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.
26  */
27
28 #ifndef UGC_STM32_UART_H_
29 #define UGC_STM32_UART_H_
30
31 #include <stm32f4xx.h>
32
33 #include <ucg_uart.h>
34
35 struct ucg_stm32_uart {
36                                                 /* Example: */
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 */
47 };
48
49 const struct ucg_uart_driver_ops stm32_uart_ops;
50
51 #endif /* UGC_STM32_UART_H_ */