1297669Ssgalabov/*- 2297669Ssgalabov * Copyright (c) 2010 Aleksandr Rybalko. 3297669Ssgalabov * All rights reserved. 4297669Ssgalabov * 5297669Ssgalabov * Redistribution and use in source and binary forms, with or 6297669Ssgalabov * without modification, are permitted provided that the following 7297669Ssgalabov * conditions are met: 8297669Ssgalabov * 1. Redistributions of source code must retain the above copyright 9297669Ssgalabov * notice, this list of conditions and the following disclaimer. 10297669Ssgalabov * 2. Redistributions in binary form must reproduce the above 11297669Ssgalabov * copyright notice, this list of conditions and the following 12297669Ssgalabov * disclaimer in the documentation and/or other materials provided 13297669Ssgalabov * with the distribution. 14297669Ssgalabov * 3. The names of the authors may not be used to endorse or promote 15297669Ssgalabov * products derived from this software without specific prior 16297669Ssgalabov * written permission. 17297669Ssgalabov * 18297669Ssgalabov * THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY 19297669Ssgalabov * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, 20297669Ssgalabov * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A 21297669Ssgalabov * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS 22297669Ssgalabov * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, 23297669Ssgalabov * OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 24297669Ssgalabov * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, 25297669Ssgalabov * OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 26297669Ssgalabov * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR 27297669Ssgalabov * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT 28297669Ssgalabov * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY 29297669Ssgalabov * OF SUCH DAMAGE. 30297669Ssgalabov * 31297669Ssgalabov * $FreeBSD: releng/11.0/sys/mips/mediatek/uart_dev_mtk.h 297669 2016-04-07 11:16:32Z sgalabov $ 32297669Ssgalabov */ 33297669Ssgalabov#ifndef _MTKUART_H 34297669Ssgalabov#define _MTKUART_H 35297669Ssgalabov 36297669Ssgalabov#undef uart_getreg 37297669Ssgalabov#undef uart_setreg 38297669Ssgalabov#define uart_getreg(bas, reg) \ 39297669Ssgalabov bus_space_read_4((bas)->bst, (bas)->bsh, reg) 40297669Ssgalabov#define uart_setreg(bas, reg, value) \ 41297669Ssgalabov bus_space_write_4((bas)->bst, (bas)->bsh, reg, value) 42297669Ssgalabov 43297669Ssgalabov/* UART registers */ 44297669Ssgalabov#define UART_RX_REG 0x00 45297669Ssgalabov#define UART_TX_REG 0x04 46297669Ssgalabov 47297669Ssgalabov#define UART_IER_REG 0x08 48297669Ssgalabov#define UART_IER_EDSSI (1<<3) /* Only full UART */ 49297669Ssgalabov#define UART_IER_ELSI (1<<2) 50297669Ssgalabov#define UART_IER_ETBEI (1<<1) 51297669Ssgalabov#define UART_IER_ERBFI (1<<0) 52297669Ssgalabov 53297669Ssgalabov#define UART_IIR_REG 0x0c 54297669Ssgalabov#define UART_IIR_RXFIFO (1<<7) 55297669Ssgalabov#define UART_IIR_TXFIFO (1<<6) 56297669Ssgalabov#define UART_IIR_ID_MST 0 57297669Ssgalabov#define UART_IIR_ID_THRE 1 58297669Ssgalabov#define UART_IIR_ID_DR 2 59297669Ssgalabov#define UART_IIR_ID_LINESTATUS 3 60297669Ssgalabov#define UART_IIR_ID_DR2 6 61297669Ssgalabov#define UART_IIR_ID_SHIFT 1 62297669Ssgalabov#define UART_IIR_ID_MASK 0x0000000e 63297669Ssgalabov#define UART_IIR_INTP (1<<0) 64297669Ssgalabov 65297669Ssgalabov#define UART_FCR_REG 0x10 66297669Ssgalabov#define UART_FCR_RXTGR_1 (0<<6) 67297669Ssgalabov#define UART_FCR_RXTGR_4 (1<<6) 68297669Ssgalabov#define UART_FCR_RXTGR_8 (2<<6) 69297669Ssgalabov#define UART_FCR_RXTGR_12 (3<<6) 70297669Ssgalabov#define UART_FCR_TXTGR_1 (0<<4) 71297669Ssgalabov#define UART_FCR_TXTGR_4 (1<<4) 72297669Ssgalabov#define UART_FCR_TXTGR_8 (2<<4) 73297669Ssgalabov#define UART_FCR_TXTGR_12 (3<<4) 74297669Ssgalabov#define UART_FCR_DMA (1<<3) 75297669Ssgalabov#define UART_FCR_TXRST (1<<2) 76297669Ssgalabov#define UART_FCR_RXRST (1<<1) 77297669Ssgalabov#define UART_FCR_FIFOEN (1<<0) 78297669Ssgalabov 79297669Ssgalabov#define UART_LCR_REG 0x14 80297669Ssgalabov#define UART_LCR_DLAB (1<<7) 81297669Ssgalabov#define UART_LCR_BRK (1<<6) 82297669Ssgalabov#define UART_LCR_FPAR (1<<5) 83297669Ssgalabov#define UART_LCR_EVEN (1<<4) 84297669Ssgalabov#define UART_LCR_PEN (1<<3) 85297669Ssgalabov#define UART_LCR_STB_15 (1<<2) 86297669Ssgalabov#define UART_LCR_5B 0 87297669Ssgalabov#define UART_LCR_6B 1 88297669Ssgalabov#define UART_LCR_7B 2 89297669Ssgalabov#define UART_LCR_8B 3 90297669Ssgalabov 91297669Ssgalabov#define UART_MCR_REG 0x18 92297669Ssgalabov#define UART_MCR_LOOP (1<<4) 93297669Ssgalabov#define UART_MCR_OUT2_L (1<<3) /* Only full UART */ 94297669Ssgalabov#define UART_MCR_OUT1_L (1<<2) /* Only full UART */ 95297669Ssgalabov#define UART_MCR_RTS_L (1<<1) /* Only full UART */ 96297669Ssgalabov#define UART_MCR_DTR_L (1<<0) /* Only full UART */ 97297669Ssgalabov 98297669Ssgalabov#define UART_LSR_REG 0x1c 99297669Ssgalabov#define UART_LSR_ERINF (1<<7) 100297669Ssgalabov#define UART_LSR_TEMT (1<<6) 101297669Ssgalabov#define UART_LSR_THRE (1<<5) 102297669Ssgalabov#define UART_LSR_BI (1<<4) 103297669Ssgalabov#define UART_LSR_FE (1<<3) 104297669Ssgalabov#define UART_LSR_PE (1<<2) 105297669Ssgalabov#define UART_LSR_OE (1<<1) 106297669Ssgalabov#define UART_LSR_DR (1<<0) 107297669Ssgalabov 108297669Ssgalabov#define UART_MSR_REG 0x20 /* Only full UART */ 109297669Ssgalabov#define UART_MSR_DCD (1<<7) /* Only full UART */ 110297669Ssgalabov#define UART_MSR_RI (1<<6) /* Only full UART */ 111297669Ssgalabov#define UART_MSR_DSR (1<<5) /* Only full UART */ 112297669Ssgalabov#define UART_MSR_CTS (1<<4) /* Only full UART */ 113297669Ssgalabov#define UART_MSR_DDCD (1<<3) /* Only full UART */ 114297669Ssgalabov#define UART_MSR_TERI (1<<2) /* Only full UART */ 115297669Ssgalabov#define UART_MSR_DDSR (1<<1) /* Only full UART */ 116297669Ssgalabov#define UART_MSR_DCTS (1<<0) /* Only full UART */ 117297669Ssgalabov 118297669Ssgalabov#define UART_CDDL_REG 0x28 119297669Ssgalabov#define UART_CDDLL_REG 0x2c 120297669Ssgalabov#define UART_CDDLH_REG 0x30 121297669Ssgalabov 122297669Ssgalabov#define UART_IFCTL_REG 0x34 123297669Ssgalabov#define UART_IFCTL_IFCTL (1<<0) 124297669Ssgalabov 125297669Ssgalabovint uart_cnattach(void); 126297669Ssgalabov#endif /* _MTKUART_H */ 127