mirror of
https://github.com/armbian/linux.git
synced 2026-01-06 10:13:00 -08:00
serial: fit blackfin uart over sport driver into common uart infrastructure
Fit blackfin uart over sport driver into common uart inftrastructure. It is based on the early platform interfaces to get the platform data early when the console is initilized. 1. Enable sport uart driver to change uart baud, data bit, stop bit at runtime. Bind the index of uart device nodes to physical index of sports. 2. Move all platform data into arch specific board files. Register and probe platform device data in both early and normal stages. 3. Console is registered in sport uart driver as well. 4. Remove 500 us block waiting in sport tx stop code by putting a dummy data into tx fifo to make sure the sport tx stops when all bytes are shifted out except for the dummy data. 5. clean up a bit and fix up coding style. Signed-off-by: Sonic Zhang <sonic.zhang@analog.com> Cc: Alan Cox <alan@lxorguk.ukuu.org.uk> Cc: Mike Frysinger <vapier@gentoo.org> Cc: Bryan Wu <cooloney@kernel.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
13dda80e48
commit
ccf68e59e9
@@ -1418,38 +1418,34 @@ config SERIAL_BFIN_SPORT
|
||||
To compile this driver as a module, choose M here: the
|
||||
module will be called bfin_sport_uart.
|
||||
|
||||
choice
|
||||
prompt "Baud rate for Blackfin SPORT UART"
|
||||
depends on SERIAL_BFIN_SPORT
|
||||
default SERIAL_SPORT_BAUD_RATE_57600
|
||||
config SERIAL_BFIN_SPORT_CONSOLE
|
||||
bool "Console on Blackfin sport emulated uart"
|
||||
depends on SERIAL_BFIN_SPORT=y
|
||||
select SERIAL_CORE_CONSOLE
|
||||
|
||||
config SERIAL_BFIN_SPORT0_UART
|
||||
bool "Enable UART over SPORT0"
|
||||
depends on SERIAL_BFIN_SPORT && !(BF542 || BF542M || BF544 || BF544M)
|
||||
help
|
||||
Choose a baud rate for the SPORT UART, other uart settings are
|
||||
8 bit, 1 stop bit, no parity, no flow control.
|
||||
Enable UART over SPORT0
|
||||
|
||||
config SERIAL_SPORT_BAUD_RATE_115200
|
||||
bool "115200"
|
||||
|
||||
config SERIAL_SPORT_BAUD_RATE_57600
|
||||
bool "57600"
|
||||
|
||||
config SERIAL_SPORT_BAUD_RATE_38400
|
||||
bool "38400"
|
||||
|
||||
config SERIAL_SPORT_BAUD_RATE_19200
|
||||
bool "19200"
|
||||
|
||||
config SERIAL_SPORT_BAUD_RATE_9600
|
||||
bool "9600"
|
||||
endchoice
|
||||
|
||||
config SPORT_BAUD_RATE
|
||||
int
|
||||
config SERIAL_BFIN_SPORT1_UART
|
||||
bool "Enable UART over SPORT1"
|
||||
depends on SERIAL_BFIN_SPORT
|
||||
default 115200 if (SERIAL_SPORT_BAUD_RATE_115200)
|
||||
default 57600 if (SERIAL_SPORT_BAUD_RATE_57600)
|
||||
default 38400 if (SERIAL_SPORT_BAUD_RATE_38400)
|
||||
default 19200 if (SERIAL_SPORT_BAUD_RATE_19200)
|
||||
default 9600 if (SERIAL_SPORT_BAUD_RATE_9600)
|
||||
help
|
||||
Enable UART over SPORT1
|
||||
|
||||
config SERIAL_BFIN_SPORT2_UART
|
||||
bool "Enable UART over SPORT2"
|
||||
depends on SERIAL_BFIN_SPORT && (BF54x || BF538 || BF539)
|
||||
help
|
||||
Enable UART over SPORT2
|
||||
|
||||
config SERIAL_BFIN_SPORT3_UART
|
||||
bool "Enable UART over SPORT3"
|
||||
depends on SERIAL_BFIN_SPORT && (BF54x || BF538 || BF539)
|
||||
help
|
||||
Enable UART over SPORT3
|
||||
|
||||
config SERIAL_TIMBERDALE
|
||||
tristate "Support for timberdale UART"
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,29 +1,23 @@
|
||||
/*
|
||||
* File: linux/drivers/serial/bfin_sport_uart.h
|
||||
* Blackfin On-Chip Sport Emulated UART Driver
|
||||
*
|
||||
* Based on: include/asm-blackfin/mach-533/bfin_serial_5xx.h
|
||||
* Author: Roy Huang <roy.huang>analog.com>
|
||||
* Copyright 2006-2008 Analog Devices Inc.
|
||||
*
|
||||
* Created: Nov 22, 2006
|
||||
* Copyright: (C) Analog Device Inc.
|
||||
* Description: this driver enable SPORTs on Blackfin emulate UART.
|
||||
* Enter bugs at http://blackfin.uclinux.org/
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, see the file COPYING, or write
|
||||
* to the Free Software Foundation, Inc.,
|
||||
* 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
* Licensed under the GPL-2 or later.
|
||||
*/
|
||||
|
||||
/*
|
||||
* This driver and the hardware supported are in term of EE-191 of ADI.
|
||||
* http://www.analog.com/UploadedFiles/Application_Notes/399447663EE191.pdf
|
||||
* This application note describe how to implement a UART on a Sharc DSP,
|
||||
* but this driver is implemented on Blackfin Processor.
|
||||
* Transmit Frame Sync is not used by this driver to transfer data out.
|
||||
*/
|
||||
|
||||
#ifndef _BFIN_SPORT_UART_H
|
||||
#define _BFIN_SPORT_UART_H
|
||||
|
||||
#define OFFSET_TCR1 0x00 /* Transmit Configuration 1 Register */
|
||||
#define OFFSET_TCR2 0x04 /* Transmit Configuration 2 Register */
|
||||
@@ -61,3 +55,7 @@
|
||||
#define SPORT_PUT_RCLKDIV(sport, v) bfin_write16(((sport)->port.membase + OFFSET_RCLKDIV), v)
|
||||
#define SPORT_PUT_RFSDIV(sport, v) bfin_write16(((sport)->port.membase + OFFSET_RFSDIV), v)
|
||||
#define SPORT_PUT_STAT(sport, v) bfin_write16(((sport)->port.membase + OFFSET_STAT), v)
|
||||
|
||||
#define SPORT_TX_FIFO_SIZE 8
|
||||
|
||||
#endif /* _BFIN_SPORT_UART_H */
|
||||
|
||||
Reference in New Issue
Block a user