/*******************************************************************************
Copyright (C) Marvell International Ltd. and its affiliates

This software file (the "File") is owned and distributed by Marvell
International Ltd. and/or its affiliates ("Marvell") under the following
alternative licensing terms.  Once you have made an election to distribute the
File under one of the following license alternatives, please (i) delete this
introductory statement regarding license alternatives, (ii) delete the two
license alternatives that you have not elected to use and (iii) preserve the
Marvell copyright notice above.

********************************************************************************
Marvell Commercial License Option

If you received this File from Marvell and you have entered into a commercial
license agreement (a "Commercial License") with Marvell, the File is licensed
to you under the terms of the applicable Commercial License.

********************************************************************************
Marvell GPL License Option

If you received this File from Marvell, you may opt to use, redistribute and/or
modify this File in accordance with the terms and conditions of the General
Public License Version 2, June 1991 (the "GPL License"), a copy of which is
available along with the File in the license.txt file or by writing to the Free
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 or
on the worldwide web at http://www.gnu.org/licenses/gpl.txt.

THE FILE IS DISTRIBUTED AS-IS, WITHOUT WARRANTY OF ANY KIND, AND THE IMPLIED
WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE ARE EXPRESSLY
DISCLAIMED.  The GPL License provides additional details about this warranty
disclaimer.
********************************************************************************
Marvell BSD License Option

If you received this File from Marvell, you may opt to use, redistribute and/or
modify this File under the following licensing terms.
Redistribution and use in source and binary forms, with or without modification,
are permitted provided that the following conditions are met:

    *   Redistributions of source code must retain the above copyright notice,
	    this list of conditions and the following disclaimer.

    *   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.

    *   Neither the name of Marvell nor the names of its contributors may be
        used to endorse or promote products derived from this software without
        specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS 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 COPYRIGHT OWNER 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.

*******************************************************************************/
#ifndef __INC_MV_TSU_REGS_H__
#define __INC_MV_TSU_REGS_H__

#define TSU_MAX_DECODE_WIN		4

#define MV_TSU_MODES_REG		(MV_TSU_GLOBAL_REGS_BASE + 0x00)


#define MV_TSU_CONFIG_REG(port)			(MV_TSU_REGS_BASE(port) + 0x00)
#define MV_TSU_DMA_PARAMS_REG(port)		(MV_TSU_REGS_BASE(port) + 0x04)
#define MV_TSU_DONE_QUEUE_BASE_REG(port)	(MV_TSU_REGS_BASE(port) + 0x08)
#define MV_TSU_DESC_QUEUE_BASE_REG(port)	(MV_TSU_REGS_BASE(port) + 0x0C)
#define MV_TSU_DONE_QUEUE_WRITE_PTR_REG(port)	(MV_TSU_REGS_BASE(port) + 0x10)
#define MV_TSU_DONE_QUEUE_READ_PTR_REG(port)	(MV_TSU_REGS_BASE(port) + 0x14)
#define MV_TSU_DESC_QUEUE_WRITE_PTR_REG(port)	(MV_TSU_REGS_BASE(port) + 0x18)
#define MV_TSU_DESC_QUEUE_READ_PTR_REG(port)	(MV_TSU_REGS_BASE(port) + 0x1C)
#define MV_TSU_ENABLE_ACCESS_REG(port)		(MV_TSU_REGS_BASE(port) + 0x2C)
#define MV_TSU_TIMESTAMP_REG(port)		(MV_TSU_REGS_BASE(port) + 0x30)
#define MV_TSU_STATUS_REG(port)			(MV_TSU_REGS_BASE(port) + 0x34)
#define MV_TSU_TIMESTAMP_CTRL_REG(port)		(MV_TSU_REGS_BASE(port) + 0x38)
#define MV_TSU_TEST_REG(port)			(MV_TSU_REGS_BASE(port) + 0x3C)
#define MV_TSU_INTERRUPT_SRC_REG(port)		(MV_TSU_REGS_BASE(port) + 0x40)
#define MV_TSU_INTERRUPT_MASK_REG(port)		(MV_TSU_REGS_BASE(port) + 0x44)
#define MV_TSU_IRQ_PARAM_REG(port)		(MV_TSU_REGS_BASE(port) + 0x48)
#define MV_TSU_DEBUG_REG(port)			(MV_TSU_REGS_BASE(port) + 0x4C)
#define MV_TSU_NEXT_DESC_1_REG(port)		(MV_TSU_REGS_BASE(port) + 0x50)
#define MV_TSU_NEXT_DESC_2_REG(port)		(MV_TSU_REGS_BASE(port) + 0x54)
#define MV_TSU_SYNCBYTE_DETECT_REG(port)	(MV_TSU_REGS_BASE(port) + 0x58)
#define MV_TSU_AGGREGATION_CTRL_REG(port)	(MV_TSU_REGS_BASE(port) + 0x60)
#define MV_TSU_TIMESTAMP_INTERVAL_REG(port)	(MV_TSU_REGS_BASE(port) + 0x64)
#define MV_TSU_CONFIG_2_REG(port)		(MV_TSU_REGS_BASE(port) + 0x68)


/* TSU Modes register.				*/
#define TSU_MODES_PAR_MODE_OFFS		14
#define TSU_MODES_PAR_MODE_MASK		(0x1 << TSU_MODES_PAR_MODE_OFFS)
#define TSU_MODES_PAR_MODE_SER		(0x0 << TSU_MODES_PAR_MODE_OFFS)
#define TSU_MODES_PAR_MODE_PAR		(0x1 << TSU_MODES_PAR_MODE_OFFS)
#define TSU_MODES_TSCK_OFF		15
#define TSU_MODES_TSCK_MASK		(0x3 << TSU_MODES_TSCK_OFF)


/* TSU config register.				*/
#define TSU_CFG_RESET_OFFS		0
#define TSU_CFG_RESET_MASK		(0x3 << TSU_CFG_RESET_OFFS)
#define TSU_CFG_RESET_SET		(0x1 << TSU_CFG_RESET_OFFS)
#define TSU_CFG_RESET_CLEAR		(0x2 << TSU_CFG_RESET_OFFS)
#define TSU_CFG_OPER_OFFS		2
#define TSU_CFG_OPER_MASK		(0x3 << TSU_CFG_OPER_OFFS)
#define TSU_CFG_OPER_DISABLE		(0x1 << TSU_CFG_OPER_OFFS)
#define TSU_CFG_OPER_ENABLE		(0x2 << TSU_CFG_OPER_OFFS)
#define TSU_CFG_DATA_DIR_OFFS		8
#define TSU_CFG_DATA_DIR_MASK		(0x1 << TSU_CFG_DATA_DIR_OFFS)
#define TSU_CFG_DATA_DIR_IN		(0x0 << TSU_CFG_DATA_DIR_OFFS)
#define TSU_CFG_DATA_DIR_OUT		(0x1 << TSU_CFG_DATA_DIR_OFFS)
#define TSU_CFG_DATA_MODE_OFFS		9
#define TSU_CFG_DATA_MODE_MASK		(0x1 << TSU_CFG_DATA_MODE_OFFS)
#define TSU_CFG_DATA_MODE_SER		(0x0 << TSU_CFG_DATA_MODE_OFFS)
#define TSU_CFG_DATA_MODE_PAR		(0x1 << TSU_CFG_DATA_MODE_OFFS)
#define TSU_CFG_OUT_CLOCK_OFFS		10
#define TSU_CFG_OUT_CLOCK_MASK		(0x3 << TSU_CFG_OUT_CLOCK_OFFS)
#define TSU_CFG_OUT_CLOCK_4_32		(0x0 << TSU_CFG_OUT_CLOCK_OFFS)
#define TSU_CFG_OUT_CLOCK_2_16		(0x1 << TSU_CFG_OUT_CLOCK_OFFS)
#define TSU_CFG_OUT_CLOCK_1_8		(0x2 << TSU_CFG_OUT_CLOCK_OFFS)
#define TSU_CFG_OUT_CLOCK_EXT		(0x3 << TSU_CFG_OUT_CLOCK_OFFS)
#define TSU_CFG_CLK_MODE_OFFS		12
#define TSU_CFG_CLK_MODE_MASK		(0x1 << TSU_CFG_CLK_MODE_OFFS)
#define TSU_CFG_CLK_MODE_CONT		(0x0 << TSU_CFG_CLK_MODE_OFFS)
#define TSU_CFG_CLK_MODE_GAPPED		(0x1 << TSU_CFG_CLK_MODE_OFFS)
#define TSU_CFG_TS_SYNC_OFFS		13
#define TSU_CFG_TS_SYNC_MASK		(0x1 << TSU_CFG_TS_SYNC_OFFS)
#define TSU_CFG_TS_SYNC_8BIT		(0x0 << TSU_CFG_TS_SYNC_OFFS)
#define TSU_CFG_TS_SYNC_1BIT		(0x1 << TSU_CFG_TS_SYNC_OFFS)
#define TSU_CFG_DATA_ORD_OFFS		14
#define TSU_CFG_DATA_ORD_MASK		(0x1 << TSU_CFG_DATA_ORD_OFFS)
#define TSU_CFG_DATA_ORD_MSB		(0x0 << TSU_CFG_DATA_ORD_OFFS)
#define TSU_CFG_DATA_ORD_LSB		(0x1 << TSU_CFG_DATA_ORD_OFFS)
#define TSU_CFG_TX_EDGE_OFFS		15
#define TSU_CFG_TX_EDGE_MASK		(0x1 << TSU_CFG_TX_EDGE_OFFS)
#define TSU_CFG_FREQ_MODE_OFFS		16
#define TSU_CFG_FREQ_MODE_MASK		(0x1 << TSU_CFG_FREQ_MODE_OFFS)
#define TSU_CFG_ERR_POL_OFFS		18
#define TSU_CFG_ERR_POL_MASK		(0x1 << TSU_CFG_ERR_POL_OFFS)
#define TSU_CFG_ERR_USED_OFFS		19
#define TSU_CFG_ERR_USED_MASK		(0x1 << TSU_CFG_ERR_USED_OFFS)
#define TSU_CFG_VAL_POL_OFFS		20
#define TSU_CFG_VAL_POL_MASK		(0x1 << TSU_CFG_VAL_POL_OFFS)
#define TSU_CFG_VAL_USED_OFFS		21
#define TSU_CFG_VAL_USED_MASK		(0x1 << TSU_CFG_VAL_USED_OFFS)
#define TSU_CFG_SYNC_POL_OFFS		22
#define TSU_CFG_SYNC_POL_MASK		(0x1 << TSU_CFG_SYNC_POL_OFFS)
#define TSU_CFG_SYNC_USED_OFFS		23
#define TSU_CFG_SYNC_USED_MASK		(0x1 << TSU_CFG_SYNC_USED_OFFS)
#define TSU_CFG_RESET_SET		(0x1 << TSU_CFG_RESET_OFFS)
#define TSU_CFG_PKT_SIZE_OFFS		24
#define TSU_CFG_PKT_SIZE_MASK		(0xFF << TSU_CFG_PKT_SIZE_OFFS)

/* TSU DMA parameters register.			*/
#define TSU_DMAP_DMA_LEN_OFFS		0
#define TSU_DMAP_DMA_LEN_MASK		(0xFFFF << TSU_DMAP_DMA_LEN_OFFS)
#define TSU_DMAP_DATA_WTRMK_OFFS	16
#define TSU_DMAP_DATA_WTRMK_MASK	(0xFF << TSU_DMAP_DATA_WTRMK_OFFS)
#define TSU_DMAP_DATA_WTRMK_MAX		0xFF
#define TSU_DMAP_DESC_Q_SIZE_OFFS	24
#define TSU_DMAP_DESC_Q_SIZE_MASK	(0xF << TSU_DMAP_DESC_Q_SIZE_OFFS)
#define TSU_DMAP_DONE_Q_SIZE_OFFS	28
#define TSU_DMAP_DONE_Q_SIZE_MASK	(0xF << TSU_DMAP_DONE_Q_SIZE_OFFS)

/* TSU Done queue base register.		*/
#define TSU_DONE_PTR_BASE_OFFS		2
#define TSU_DONE_PTR_BASE_MASK		(0x3FFFFFFF << TSU_DONE_PTR_BASE_OFFS)

/* TSU Desc queue base register.		*/
#define TSU_DESC_PTR_BASE_OFFS		2
#define TSU_DESC_PTR_BASE_MASK		(0x3FFFFFFF << TSU_DESC_PTR_BASE_OFFS)

/* TSU Done queue write pointer register.	*/
#define TSU_DONE_WRITE_PTR_OFFS		0
#define TSU_DONE_WRITE_PTR_MASK		(0xFFF << TSU_DONE_WRITE_PTR_OFFS)

/* TSU Done queue read pointer register.	*/
#define TSU_DONE_READ_PTR_OFFS		0
#define TSU_DONE_READ_PTR_MASK		(0xFFF << TSU_DONE_READ_PTR_OFFS)

/* TSU Desc queue write pointer register.	*/
#define TSU_DESC_WRITE_PTR_OFFS		0
#define TSU_DESC_WRITE_PTR_MASK		(0xFFF << TSU_DESC_WRITE_PTR_OFFS)

/* TSU Desc queue read pointer register.	*/
#define TSU_DESC_READ_PTR_OFFS		0
#define TSU_DESC_READ_PTR_MASK		(0xFFF << TSU_DESC_READ_PTR_OFFS)

/* TSU access enable reg.			*/
#define TSU_ENACC_TS_READ_OFFS		0
#define TSU_ENACC_TS_WRITE_OFFS		8
#define TSU_ENACC_DESC_WRITE_OFFS	16
#define TSU_ENACC_DESC_READ_OFFS	24

/* TSU Timestamp register.			*/
#define TSU_TMSTMP_TIMESTAMP_OFFS	0
#define TSU_TMSTMP_TIMESTAMP_MASK	(0xFFFFFFF << TSU_TMSTMP_TIMESTAMP_OFFS)

/* TSU status register.				*/
#define TSU_STATUS_OFFS			0
#define TSU_STATUS_MASK			(0x7FF << TSU_STATUS_OFFS)
#define TSU_STATUS_IF_ERR		(0x100 << TSU_STATUS_OFFS)
#define TSU_STATUS_FIFO_OVFL_ERR	(0x200 << TSU_STATUS_OFFS)
#define TSU_STATUS_CONN_ERR		(0x400 << TSU_STATUS_OFFS)

/* TSU interrupt source register.		*/
#define TSU_INT_TS_IF_ERROR		(1 << 3)
#define TSU_INT_FIFO_OVFL_ERROR		(1 << 4)
#define TSU_INT_TS_CONN_ERROR		(1 << 5)
#define TSU_INT_CLOCK_SYNC_EXP		(1 << 6)

/* TSU SyncByte detect register.		*/
#define TSU_SYNC_DETECT_CNT_OFFS	0
#define TSU_SYNC_DETECT_CNT_MASK	(0xF << TSU_SYNC_DETECT_CNT_OFFS)
#define TSU_SYNC_LOSS_CNT_OFFS		4
#define TSU_SYNC_LOSS_CNT_MASK		(0xF << TSU_SYNC_LOSS_CNT_OFFS)

/* TSU Aggregation control register.		*/
#define TSU_AGGR_PCKT_NUM_OFFS		0
#define TSU_AGGR_PCKT_NUM_MASK		(0xFF << TSU_AGGR_PCKT_NUM_OFFS)
#define TSU_AGGR_TMSTMP_OFF_OFFS	8
#define TSU_AGGR_TMSTMP_OFF_MASK	(0xF << TSU_AGGR_TMSTMP_OFF_OFFS)
#define TSU_AGGR_FLUSH_ERR_OFFS		26
#define TSU_AGGR_FLUSH_ERR_MASK		(0x3 << TSU_AGGR_FLUSH_ERR_OFFS)
#define TSU_AGGR_FLUSH_ERR_DISABLE	(0x1 << TSU_AGGR_FLUSH_ERR_OFFS)
#define TSU_AGGR_FLUSH_ERR_ENABLE	(0x2 << TSU_AGGR_FLUSH_ERR_OFFS)
#define TSU_AGGR_TMSTMP_MODE_OFFS	28
#define TSU_AGGR_TMSTMP_MODE_MASK	(0x3 << TSU_AGGR_TMSTMP_MODE_OFFS)
#define TSU_AGGR_TMSTMP_TO_DONE_Q	(0x1 << TSU_AGGR_TMSTMP_MODE_OFFS)
#define TSU_AGGR_TMSTMP_TO_PCKT		(0x2 << TSU_AGGR_TMSTMP_MODE_OFFS)
#define TSU_AGGR_ENABLE_OFFS		30
#define TSU_AGGR_ENABLE_MASK		(0x3 << TSU_AGGR_ENABLE_OFFS)
#define TSU_AGGR_DISABLE		(0x1 << TSU_AGGR_ENABLE_OFFS)
#define TSU_AGGR_ENABLE			(0x2 << TSU_AGGR_ENABLE_OFFS)


/* TSU timestamp interval register.		*/
#define TSU_TMSTP_INTRVL_OFFS		0
#define TSU_TMSTP_INTRVL_MASK		(0xFFFFFFF << TSU_TMSTP_INTRVL_OFFS)

/* TSU timestamp control register.		*/
#define TSU_TMS_CTRL_TIMER_OFFS		0
#define TSU_TMS_CTRL_TIMER_MASK		(0x3 << TSU_TMS_CTRL_TIMER_OFFS)
#define TSU_TMS_CTRL_TIMER_DIS		(0x1 << TSU_TMS_CTRL_TIMER_OFFS)
#define TSU_TMS_CTRL_TIMER_EN		(0x2 << TSU_TMS_CTRL_TIMER_OFFS)
#define TSU_TMS_CTRL_AUTO_ADJ_OFFS	2
#define TSU_TMS_CTRL_AUTO_ADJ_MASK	(0x3 << TSU_TMS_CTRL_AUTO_ADJ_OFFS)
#define TSU_TMS_CTRL_AUTO_ADJ_OFF	(0x1 << TSU_TMS_CTRL_AUTO_ADJ_OFFS)
#define TSU_TMS_CTRL_AUTO_ADJ_ON	(0x2 << TSU_TMS_CTRL_AUTO_ADJ_OFFS)
#define TSU_TMS_CTRL_READ_TIMER_OFFS	4
#define TSU_TMS_CTRL_READ_TIMER_MASK	(0x1 << TSU_TMS_CTRL_READ_TIMER_OFFS)


/*******************************************/
/* TSU Windows Registers                   */
/*******************************************/
#define TSU_MAX_DECODE_WIN		4

#define MV_TSU_WIN_CTRL_REG(win)	(MV_TSU_GLOBAL_REGS_BASE + 0x30 + 0x10 * win)
#define MV_TSU_WIN_BASE_REG(win)	(MV_TSU_GLOBAL_REGS_BASE + 0x34 + 0x10 * win)

/* TSU windows control register.		*/
#define TSU_WIN_CTRL_EN_MASK		(0x1 << 0)
#define TSU_WIN_CTRL_TARGET_OFFS	4
#define TSU_WIN_CTRL_TARGET_MASK	(0xF << TSU_WIN_CTRL_TARGET_OFFS)
#define TSU_WIN_CTRL_ATTR_OFFS		8
#define TSU_WIN_CTRL_ATTR_MASK		(0xFF << TSU_WIN_CTRL_ATTR_OFFS)
#define TSU_WIN_CTRL_SIZE_OFFS		16
#define TSU_WIN_CTRL_SIZE_MASK		(0xFFFF << TSU_WIN_CTRL_SIZE_OFFS)
#define TSU_WIN_SIZE_ALIGN		_64K

/* TSU windows base register.			*/
#define TSU_WIN_BASE_OFFS		16
#define TSU_WIN_BASE_MASK		(0xFFFF << TSU_WIN_BASE_OFFS)


#endif /* __INC_MV_TSU_REGS_H__ */

