/*      $NetBSD: octeon_uartreg.h,v 1.2 2019/04/11 11:40:58 kamil Exp $ */

/*
* Copyright (c) 2007 Internet Initiative Japan, Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
*    notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
*    notice, this list of conditions and the following disclaimer in the
*    documentation and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*/

/*
* UART Registers
*/

#ifndef _OCTEON_UARTREG_H_
#define _OCTEON_UARTREG_H_

/* ---- register addresses */

#define MIO_UART0_RBR                           0x0001180000000800ULL
#define MIO_UART0_IER                           0x0001180000000808ULL
#define MIO_UART0_IIR                           0x0001180000000810ULL
#define MIO_UART0_LCR                           0x0001180000000818ULL
#define MIO_UART0_MCR                           0x0001180000000820ULL
#define MIO_UART0_LSR                           0x0001180000000828ULL
#define MIO_UART0_MSR                           0x0001180000000830ULL
#define MIO_UART0_SCR                           0x0001180000000838ULL
#define MIO_UART0_THR                           0x0001180000000840ULL
#define MIO_UART0_FCR                           0x0001180000000850ULL
#define MIO_UART0_DLL                           0x0001180000000880ULL
#define MIO_UART0_DLH                           0x0001180000000888ULL
#define MIO_UART0_FAR                           0x0001180000000920ULL
#define MIO_UART0_TFR                           0x0001180000000928ULL
#define MIO_UART0_RFW                           0x0001180000000930ULL
#define MIO_UART0_USR                           0x0001180000000938ULL
#define MIO_UART0_TFL                           0x0001180000000a00ULL
#define MIO_UART0_RFL                           0x0001180000000a08ULL
#define MIO_UART0_SRR                           0x0001180000000a10ULL
#define MIO_UART0_SRTS                          0x0001180000000a18ULL
#define MIO_UART0_SBCR                          0x0001180000000a20ULL
#define MIO_UART0_SFE                           0x0001180000000a30ULL
#define MIO_UART0_SRT                           0x0001180000000a38ULL
#define MIO_UART0_STT                           0x0001180000000b00ULL
#define MIO_UART0_HTX                           0x0001180000000b08ULL
#define MIO_UART1_RBR                           0x0001180000000c00ULL
#define MIO_UART1_IER                           0x0001180000000c08ULL
#define MIO_UART1_IIR                           0x0001180000000c10ULL
#define MIO_UART1_LCR                           0x0001180000000c18ULL
#define MIO_UART1_MCR                           0x0001180000000c20ULL
#define MIO_UART1_LSR                           0x0001180000000c28ULL
#define MIO_UART1_MSR                           0x0001180000000c30ULL
#define MIO_UART1_SCR                           0x0001180000000c38ULL
#define MIO_UART1_THR                           0x0001180000000c40ULL
#define MIO_UART1_FCR                           0x0001180000000c50ULL
#define MIO_UART1_DLL                           0x0001180000000c80ULL
#define MIO_UART1_DLH                           0x0001180000000c88ULL
#define MIO_UART1_FAR                           0x0001180000000d20ULL
#define MIO_UART1_TFR                           0x0001180000000d28ULL
#define MIO_UART1_RFW                           0x0001180000000d30ULL
#define MIO_UART1_USR                           0x0001180000000d38ULL
#define MIO_UART1_TFL                           0x0001180000000e00ULL
#define MIO_UART1_RFL                           0x0001180000000e08ULL
#define MIO_UART1_SRR                           0x0001180000000e10ULL
#define MIO_UART1_SRTS                          0x0001180000000e18ULL
#define MIO_UART1_SBCR                          0x0001180000000e20ULL
#define MIO_UART1_SFE                           0x0001180000000e30ULL
#define MIO_UART1_SRT                           0x0001180000000e38ULL
#define MIO_UART1_STT                           0x0001180000000f00ULL
#define MIO_UART1_HTX                           0x0001180000000f08ULL

/* ---- snprintb */

/* XXX */

/* ---- bus_space */

#define MIO_UART0_BASE                          0x0001180000000800ULL
#define MIO_UART1_BASE                          0x0001180000000c00ULL

#define MIO_UART_RBR_OFFSET                     0x0000
#define MIO_UART_IER_OFFSET                     0x0008
#define MIO_UART_IIR_OFFSET                     0x0010
#define MIO_UART_LCR_OFFSET                     0x0018
#define MIO_UART_MCR_OFFSET                     0x0020
#define MIO_UART_LSR_OFFSET                     0x0028
#define MIO_UART_MSR_OFFSET                     0x0030
#define MIO_UART_SCR_OFFSET                     0x0038
#define MIO_UART_THR_OFFSET                     0x0040
#define MIO_UART_FCR_OFFSET                     0x0050
#define MIO_UART_DLL_OFFSET                     0x0080
#define MIO_UART_DLH_OFFSET                     0x0088
#define MIO_UART_FAR_OFFSET                     0x0120
#define MIO_UART_TFR_OFFSET                     0x0128
#define MIO_UART_RFW_OFFSET                     0x0130
#define MIO_UART_USR_OFFSET                     0x0138
#define MIO_UART_TFL_OFFSET                     0x0200
#define MIO_UART_RFL_OFFSET                     0x0208
#define MIO_UART_SRR_OFFSET                     0x0210
#define MIO_UART_SRTS_OFFSET                    0x0218
#define MIO_UART_SBCR_OFFSET                    0x0220
#define MIO_UART_SFE_OFFSET                     0x0230
#define MIO_UART_SRT_OFFSET                     0x0238
#define MIO_UART_STT_OFFSET                     0x0300
#define MIO_UART_HTX_OFFSET                     0x0308

#endif /* _OCTEON_UARTREG_H_ */