/*      $NetBSD: octeon_pcmreg.h,v 1.1 2015/04/29 08:32:01 hikaru 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.
*/

/*
* PCM/TDM Registers
*/

#ifndef _OCTEON_PCMREG_H_
#define _OCTEON_PCMREG_H_

/* ---- register addresses */

#define PCM_CLK0_CFG                            0x0001070000010000ULL
#define PCM_CLK0_GEN                            0x0001070000010008ULL
#define PCM0_TDM_CFG                            0x0001070000010010ULL
#define PCM0_DMA_CFG                            0x0001070000010018ULL
#define PCM0_INT_ENA                            0x0001070000010020ULL
#define PCM0_INT_SUM                            0x0001070000010028ULL
#define PCM0_TDM_DBG                            0x0001070000010030ULL
#define PCM_CLK0_DBG                            0x0001070000010038ULL
#define PCM0_TXSTART                            0x0001070000010040ULL
#define PCM0_TXCNT                              0x0001070000010048ULL
#define PCM0_TXADDR                             0x0001070000010050ULL
#define PCM0_RXSTART                            0x0001070000010058ULL
#define PCM0_RXCNT                              0x0001070000010060ULL
#define PCM0_RXADDR                             0x0001070000010068ULL
#define PCM0_TXMSK0                             0x0001070000010080ULL
#define PCM0_TXMSK1                             0x0001070000010088ULL
#define PCM0_TXMSK2                             0x0001070000010090ULL
#define PCM0_TXMSK3                             0x0001070000010098ULL
#define PCM0_TXMSK4                             0x00010700000100a0ULL
#define PCM0_TXMSK5                             0x00010700000100a8ULL
#define PCM0_TXMSK6                             0x00010700000100b0ULL
#define PCM0_TXMSK7                             0x00010700000100b8ULL
#define PCM0_RXMSK0                             0x00010700000100c0ULL
#define PCM0_RXMSK1                             0x00010700000100c8ULL
#define PCM0_RXMSK2                             0x00010700000100d0ULL
#define PCM0_RXMSK3                             0x00010700000100d8ULL
#define PCM0_RXMSK4                             0x00010700000100e0ULL
#define PCM0_RXMSK5                             0x00010700000100e8ULL
#define PCM0_RXMSK6                             0x00010700000100f0ULL
#define PCM0_RXMSK7                             0x00010700000100f8ULL

/* ---- register bits */

/* XXX */

/* ---- bus_space */

#define PCM_BASE_0                              0x0001070000010000ULL
#define PCM_BASE_1                              0x0001070000014000ULL
#define PCM_BASE_2                              0x0001070000018000ULL
#define PCM_BASE_3                              0x000107000001c000ULL
#define PCM_SIZE                                0x0100

#define PCM_CLKN_CFG_OFFSET                     0x0000
#define PCM_CLKN_GEN_OFFSET                     0x0008
#define PCMN_TDM_CFG_OFFSET                     0x0010
#define PCMN_DMA_CFG_OFFSET                     0x0018
#define PCMN_INT_ENA_OFFSET                     0x0020
#define PCMN_INT_SUM_OFFSET                     0x0028
#define PCMN_TDM_DBG_OFFSET                     0x0030
#define PCM_CLKN_DBG_OFFSET                     0x0038
#define PCMN_TXSTART_OFFSET                     0x0040
#define PCMN_TXCNT_OFFSET                       0x0048
#define PCMN_TXADDR_OFFSET                      0x0050
#define PCMN_RXSTART_OFFSET                     0x0058
#define PCMN_RXCNT_OFFSET                       0x0060
#define PCMN_RXADDR_OFFSET                      0x0068
#define PCMN_TXMSK0_OFFSET                      0x0080
#define PCMN_TXMSK1_OFFSET                      0x0088
#define PCMN_TXMSK2_OFFSET                      0x0090
#define PCMN_TXMSK3_OFFSET                      0x0098
#define PCMN_TXMSK4_OFFSET                      0x00a0
#define PCMN_TXMSK5_OFFSET                      0x00a8
#define PCMN_TXMSK6_OFFSET                      0x00b0
#define PCMN_TXMSK7_OFFSET                      0x00b8
#define PCMN_RXMSK0_OFFSET                      0x00c0
#define PCMN_RXMSK1_OFFSET                      0x00c8
#define PCMN_RXMSK2_OFFSET                      0x00d0
#define PCMN_RXMSK3_OFFSET                      0x00d8
#define PCMN_RXMSK4_OFFSET                      0x00e0
#define PCMN_RXMSK5_OFFSET                      0x00e8
#define PCMN_RXMSK6_OFFSET                      0x00f0
#define PCMN_RXMSK7_OFFSET                      0x00f8

#endif /* _OCTEON_PCMREG_H_ */