Files
OpenCellular/board/discovery/board.c
Nicolas Boichat 7501654d20 chip/stm32/usart: Add flags to usart_config
Allows setting TXINV/RXINV bits.

BRANCH=none
BUG=b:65697962
TEST=make BOARD=wand -j

Change-Id: Ib1bb290cd9758c53b98c8fc1ca1a9369c8cff39e
Signed-off-by: Nicolas Boichat <drinkcat@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/694561
Reviewed-by: Vincent Palatin <vpalatin@chromium.org>
2017-10-18 08:30:16 -07:00

72 lines
1.7 KiB
C

/* Copyright (c) 2013 The Chromium OS Authors. All rights reserved.
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
/* STM32L-discovery board configuration */
#include "common.h"
#include "gpio.h"
#include "hooks.h"
#include "queue_policies.h"
#include "registers.h"
#include "task.h"
#include "usart-stm32f0.h"
#include "usart_rx_dma.h"
#include "usart_tx_dma.h"
#include "util.h"
void button_event(enum gpio_signal signal);
#include "gpio_list.h"
void button_event(enum gpio_signal signal)
{
static int count;
gpio_set_level(GPIO_LED_GREEN, ++count & 0x02);
}
void usb_gpio_tick(void)
{
static int count;
gpio_set_level(GPIO_LED_BLUE, ++count & 0x01);
}
DECLARE_HOOK(HOOK_TICK, usb_gpio_tick, HOOK_PRIO_DEFAULT);
/******************************************************************************
* Setup USART2 as a loopback device, it just echo's back anything sent to it.
*/
static struct usart_config const loopback_usart;
static struct queue const loopback_queue =
QUEUE_DIRECT(64, uint8_t,
loopback_usart.producer,
loopback_usart.consumer);
static struct usart_rx_dma const loopback_rx_dma =
USART_RX_DMA(STM32_DMAC_CH6, 32);
static struct usart_tx_dma const loopback_tx_dma =
USART_TX_DMA(STM32_DMAC_CH7, 16);
static struct usart_config const loopback_usart =
USART_CONFIG(usart2_hw,
loopback_rx_dma.usart_rx,
loopback_tx_dma.usart_tx,
115200,
0,
loopback_queue,
loopback_queue);
/******************************************************************************
* Initialize board.
*/
static void board_init(void)
{
gpio_enable_interrupt(GPIO_USER_BUTTON);
usart_init(&loopback_usart);
}
DECLARE_HOOK(HOOK_INIT, board_init, HOOK_PRIO_DEFAULT);