Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ccf68e59 authored by sonic zhang's avatar sonic zhang Committed by Greg Kroah-Hartman
Browse files

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: default avatarSonic 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: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
parent 13dda80e
Loading
Loading
Loading
Loading
+24 −28
Original line number Diff line number Diff line
@@ -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
	help
	  Choose a baud rate for the SPORT UART, other uart settings are
	  8 bit, 1 stop bit, no parity, no flow control.

config SERIAL_SPORT_BAUD_RATE_115200
	bool "115200"

config SERIAL_SPORT_BAUD_RATE_57600
	bool "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_SPORT_BAUD_RATE_38400
	bool "38400"
config SERIAL_BFIN_SPORT0_UART
	bool "Enable UART over SPORT0"
	depends on SERIAL_BFIN_SPORT && !(BF542 || BF542M || BF544 || BF544M)
	help
	  Enable UART over SPORT0

config SERIAL_SPORT_BAUD_RATE_19200
	bool "19200"
config SERIAL_BFIN_SPORT1_UART
	bool "Enable UART over SPORT1"
	depends on SERIAL_BFIN_SPORT
	help
	  Enable UART over SPORT1

config SERIAL_SPORT_BAUD_RATE_9600
	bool "9600"
endchoice
config SERIAL_BFIN_SPORT2_UART
	bool "Enable UART over SPORT2"
	depends on SERIAL_BFIN_SPORT && (BF54x || BF538 || BF539)
	help
	  Enable UART over SPORT2

config SPORT_BAUD_RATE
	int
	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)
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"
+469 −232

File changed.

Preview size limit exceeded, changes collapsed.

+18 −20
Original line number Diff line number Diff line
/*
 * 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 */