1d4f4ae046d2a9cd6b7ddb39e336a73ed92b63fe8Manu Abraham/*
2d4f4ae046d2a9cd6b7ddb39e336a73ed92b63fe8Manu Abraham	Mantis PCI bridge driver
3d4f4ae046d2a9cd6b7ddb39e336a73ed92b63fe8Manu Abraham
48825a0970cef408fb2f1a44e3cb05d6ba41a18dbManu Abraham	Copyright (C) Manu Abraham (abraham.manu@gmail.com)
5d4f4ae046d2a9cd6b7ddb39e336a73ed92b63fe8Manu Abraham
6d4f4ae046d2a9cd6b7ddb39e336a73ed92b63fe8Manu Abraham	This program is free software; you can redistribute it and/or modify
7d4f4ae046d2a9cd6b7ddb39e336a73ed92b63fe8Manu Abraham	it under the terms of the GNU General Public License as published by
8d4f4ae046d2a9cd6b7ddb39e336a73ed92b63fe8Manu Abraham	the Free Software Foundation; either version 2 of the License, or
9d4f4ae046d2a9cd6b7ddb39e336a73ed92b63fe8Manu Abraham	(at your option) any later version.
10d4f4ae046d2a9cd6b7ddb39e336a73ed92b63fe8Manu Abraham
11d4f4ae046d2a9cd6b7ddb39e336a73ed92b63fe8Manu Abraham	This program is distributed in the hope that it will be useful,
12d4f4ae046d2a9cd6b7ddb39e336a73ed92b63fe8Manu Abraham	but WITHOUT ANY WARRANTY; without even the implied warranty of
13d4f4ae046d2a9cd6b7ddb39e336a73ed92b63fe8Manu Abraham	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14d4f4ae046d2a9cd6b7ddb39e336a73ed92b63fe8Manu Abraham	GNU General Public License for more details.
15d4f4ae046d2a9cd6b7ddb39e336a73ed92b63fe8Manu Abraham
16d4f4ae046d2a9cd6b7ddb39e336a73ed92b63fe8Manu Abraham	You should have received a copy of the GNU General Public License
17d4f4ae046d2a9cd6b7ddb39e336a73ed92b63fe8Manu Abraham	along with this program; if not, write to the Free Software
18d4f4ae046d2a9cd6b7ddb39e336a73ed92b63fe8Manu Abraham	Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
19d4f4ae046d2a9cd6b7ddb39e336a73ed92b63fe8Manu Abraham*/
20d4f4ae046d2a9cd6b7ddb39e336a73ed92b63fe8Manu Abraham
21cb428c3fe9667eb7521769f25f65b9dbf52a33caManu Abraham#ifndef __MANTIS_UART_H
22cb428c3fe9667eb7521769f25f65b9dbf52a33caManu Abraham#define __MANTIS_UART_H
23cb428c3fe9667eb7521769f25f65b9dbf52a33caManu Abraham
24add206368462434ba97e8fe4de98e5d47ffdb0a0Manu Abraham#define MANTIS_UART_CTL			0xe0
25add206368462434ba97e8fe4de98e5d47ffdb0a0Manu Abraham#define MANTIS_UART_RXINT		(1 << 4)
26add206368462434ba97e8fe4de98e5d47ffdb0a0Manu Abraham#define MANTIS_UART_RXFLUSH		(1 << 2)
27add206368462434ba97e8fe4de98e5d47ffdb0a0Manu Abraham
28add206368462434ba97e8fe4de98e5d47ffdb0a0Manu Abraham#define MANTIS_UART_RXD			0xe8
29add206368462434ba97e8fe4de98e5d47ffdb0a0Manu Abraham#define MANTIS_UART_BAUD		0xec
30add206368462434ba97e8fe4de98e5d47ffdb0a0Manu Abraham
31add206368462434ba97e8fe4de98e5d47ffdb0a0Manu Abraham#define MANTIS_UART_STAT		0xf0
32add206368462434ba97e8fe4de98e5d47ffdb0a0Manu Abraham#define MANTIS_UART_RXFIFO_DATA		(1 << 7)
33add206368462434ba97e8fe4de98e5d47ffdb0a0Manu Abraham#define MANTIS_UART_RXFIFO_EMPTY	(1 << 6)
34add206368462434ba97e8fe4de98e5d47ffdb0a0Manu Abraham#define MANTIS_UART_RXFIFO_FULL		(1 << 3)
35add206368462434ba97e8fe4de98e5d47ffdb0a0Manu Abraham#define MANTIS_UART_FRAME_ERR		(1 << 2)
36add206368462434ba97e8fe4de98e5d47ffdb0a0Manu Abraham#define MANTIS_UART_PARITY_ERR		(1 << 1)
37add206368462434ba97e8fe4de98e5d47ffdb0a0Manu Abraham#define MANTIS_UART_RXTHRESH_INT	(1 << 0)
38add206368462434ba97e8fe4de98e5d47ffdb0a0Manu Abraham
39cb428c3fe9667eb7521769f25f65b9dbf52a33caManu Abrahamenum mantis_baud {
40cb428c3fe9667eb7521769f25f65b9dbf52a33caManu Abraham	MANTIS_BAUD_9600	= 0,
41cb428c3fe9667eb7521769f25f65b9dbf52a33caManu Abraham	MANTIS_BAUD_19200,
42cb428c3fe9667eb7521769f25f65b9dbf52a33caManu Abraham	MANTIS_BAUD_38400,
43cb428c3fe9667eb7521769f25f65b9dbf52a33caManu Abraham	MANTIS_BAUD_57600,
44cb428c3fe9667eb7521769f25f65b9dbf52a33caManu Abraham	MANTIS_BAUD_115200
45cb428c3fe9667eb7521769f25f65b9dbf52a33caManu Abraham};
46cb428c3fe9667eb7521769f25f65b9dbf52a33caManu Abraham
47cb428c3fe9667eb7521769f25f65b9dbf52a33caManu Abrahamenum mantis_parity {
48a1497357dce240880d984f4b657b54245f739dbcManu Abraham	MANTIS_PARITY_NONE	= 0,
49cb428c3fe9667eb7521769f25f65b9dbf52a33caManu Abraham	MANTIS_PARITY_EVEN,
50add206368462434ba97e8fe4de98e5d47ffdb0a0Manu Abraham	MANTIS_PARITY_ODD,
51cb428c3fe9667eb7521769f25f65b9dbf52a33caManu Abraham};
52cb428c3fe9667eb7521769f25f65b9dbf52a33caManu Abraham
53add206368462434ba97e8fe4de98e5d47ffdb0a0Manu Abrahamstruct mantis_pci;
54add206368462434ba97e8fe4de98e5d47ffdb0a0Manu Abraham
55add206368462434ba97e8fe4de98e5d47ffdb0a0Manu Abrahamextern int mantis_uart_init(struct mantis_pci *mantis);
56add206368462434ba97e8fe4de98e5d47ffdb0a0Manu Abrahamextern void mantis_uart_exit(struct mantis_pci *mantis);
57add206368462434ba97e8fe4de98e5d47ffdb0a0Manu Abraham
58b3b961448f702339444036f94252ff2ba7a99febManu Abraham#endif /* __MANTIS_UART_H */
59