xref: /linux/arch/mips/include/asm/mach-ath79/ar933x_uart.h (revision db13a5ba2732755cf13320f3987b77cf2a71e790)
10bd3acdfSGabor Juhos /*
20bd3acdfSGabor Juhos  *  Atheros AR933X UART defines
30bd3acdfSGabor Juhos  *
40bd3acdfSGabor Juhos  *  Copyright (C) 2011 Gabor Juhos <juhosg@openwrt.org>
50bd3acdfSGabor Juhos  *
60bd3acdfSGabor Juhos  *  This program is free software; you can redistribute it and/or modify it
70bd3acdfSGabor Juhos  *  under the terms of the GNU General Public License version 2 as published
80bd3acdfSGabor Juhos  *  by the Free Software Foundation.
90bd3acdfSGabor Juhos  */
100bd3acdfSGabor Juhos 
110bd3acdfSGabor Juhos #ifndef __AR933X_UART_H
120bd3acdfSGabor Juhos #define __AR933X_UART_H
130bd3acdfSGabor Juhos 
140bd3acdfSGabor Juhos #define AR933X_UART_REGS_SIZE		20
150bd3acdfSGabor Juhos #define AR933X_UART_FIFO_SIZE		16
160bd3acdfSGabor Juhos 
170bd3acdfSGabor Juhos #define AR933X_UART_DATA_REG		0x00
180bd3acdfSGabor Juhos #define AR933X_UART_CS_REG		0x04
190bd3acdfSGabor Juhos #define AR933X_UART_CLOCK_REG		0x08
200bd3acdfSGabor Juhos #define AR933X_UART_INT_REG		0x0c
210bd3acdfSGabor Juhos #define AR933X_UART_INT_EN_REG		0x10
220bd3acdfSGabor Juhos 
230bd3acdfSGabor Juhos #define AR933X_UART_DATA_TX_RX_MASK	0xff
240bd3acdfSGabor Juhos #define AR933X_UART_DATA_RX_CSR		BIT(8)
250bd3acdfSGabor Juhos #define AR933X_UART_DATA_TX_CSR		BIT(9)
260bd3acdfSGabor Juhos 
270bd3acdfSGabor Juhos #define AR933X_UART_CS_PARITY_S		0
280bd3acdfSGabor Juhos #define AR933X_UART_CS_PARITY_M		0x3
290bd3acdfSGabor Juhos #define	  AR933X_UART_CS_PARITY_NONE	0
30*db13a5baSStefan Hellermann #define	  AR933X_UART_CS_PARITY_ODD	2
31*db13a5baSStefan Hellermann #define	  AR933X_UART_CS_PARITY_EVEN	3
320bd3acdfSGabor Juhos #define AR933X_UART_CS_IF_MODE_S	2
330bd3acdfSGabor Juhos #define AR933X_UART_CS_IF_MODE_M	0x3
340bd3acdfSGabor Juhos #define	  AR933X_UART_CS_IF_MODE_NONE	0
350bd3acdfSGabor Juhos #define	  AR933X_UART_CS_IF_MODE_DTE	1
360bd3acdfSGabor Juhos #define	  AR933X_UART_CS_IF_MODE_DCE	2
370bd3acdfSGabor Juhos #define AR933X_UART_CS_FLOW_CTRL_S	4
380bd3acdfSGabor Juhos #define AR933X_UART_CS_FLOW_CTRL_M	0x3
390bd3acdfSGabor Juhos #define AR933X_UART_CS_DMA_EN		BIT(6)
400bd3acdfSGabor Juhos #define AR933X_UART_CS_TX_READY_ORIDE	BIT(7)
410bd3acdfSGabor Juhos #define AR933X_UART_CS_RX_READY_ORIDE	BIT(8)
420bd3acdfSGabor Juhos #define AR933X_UART_CS_TX_READY		BIT(9)
430bd3acdfSGabor Juhos #define AR933X_UART_CS_RX_BREAK		BIT(10)
440bd3acdfSGabor Juhos #define AR933X_UART_CS_TX_BREAK		BIT(11)
450bd3acdfSGabor Juhos #define AR933X_UART_CS_HOST_INT		BIT(12)
460bd3acdfSGabor Juhos #define AR933X_UART_CS_HOST_INT_EN	BIT(13)
470bd3acdfSGabor Juhos #define AR933X_UART_CS_TX_BUSY		BIT(14)
480bd3acdfSGabor Juhos #define AR933X_UART_CS_RX_BUSY		BIT(15)
490bd3acdfSGabor Juhos 
500bd3acdfSGabor Juhos #define AR933X_UART_CLOCK_STEP_M	0xffff
510bd3acdfSGabor Juhos #define AR933X_UART_CLOCK_SCALE_M	0xfff
520bd3acdfSGabor Juhos #define AR933X_UART_CLOCK_SCALE_S	16
530bd3acdfSGabor Juhos #define AR933X_UART_CLOCK_STEP_M	0xffff
540bd3acdfSGabor Juhos 
550bd3acdfSGabor Juhos #define AR933X_UART_INT_RX_VALID	BIT(0)
560bd3acdfSGabor Juhos #define AR933X_UART_INT_TX_READY	BIT(1)
570bd3acdfSGabor Juhos #define AR933X_UART_INT_RX_FRAMING_ERR	BIT(2)
580bd3acdfSGabor Juhos #define AR933X_UART_INT_RX_OFLOW_ERR	BIT(3)
590bd3acdfSGabor Juhos #define AR933X_UART_INT_TX_OFLOW_ERR	BIT(4)
600bd3acdfSGabor Juhos #define AR933X_UART_INT_RX_PARITY_ERR	BIT(5)
610bd3acdfSGabor Juhos #define AR933X_UART_INT_RX_BREAK_ON	BIT(6)
620bd3acdfSGabor Juhos #define AR933X_UART_INT_RX_BREAK_OFF	BIT(7)
630bd3acdfSGabor Juhos #define AR933X_UART_INT_RX_FULL		BIT(8)
640bd3acdfSGabor Juhos #define AR933X_UART_INT_TX_EMPTY	BIT(9)
650bd3acdfSGabor Juhos #define AR933X_UART_INT_ALLINTS		0x3ff
660bd3acdfSGabor Juhos 
670bd3acdfSGabor Juhos #endif /* __AR933X_UART_H */
68