/*
 * (C) Copyright 2010 Quantenna Communications Inc.
 *
 * See file CREDITS for list of people who contributed to this
 * project.
 *
 * This program is free software; you can redistribute it and/or
 * modify it under the terms of the GNU General Public License as
 * published by the Free Software Foundation; either version 2 of
 * the License, or (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
 * MA 02111-1307 USA
 */

/*
 * Header file which describes Topaz platform.
 * Has to be used by both kernel and bootloader.
 */

#ifndef __TOPAZ_PLATFORM_H
#define __TOPAZ_PLATFORM_H

#include "ruby_platform.h"

#ifndef MS
#define MS(_v, _f)		(((_v) & _f) >> _f##_S)
#endif
#ifndef SM
#define SM(_v, _f)		(((_v) << _f##_S) & _f)
#endif

/*
 * The following macro couldn't be defined via SM because of issues with nesting ##
 * i.e. the following define does not work
 * do{ where = (where) & (~(bitmask)) | SM(new_value, bitmask); }while(0)
 */
#define UPDATE_BITSET(where, bitmask, new_value) \
	do{ where = ((where) & (~(bitmask))) | (((new_value) << bitmask##_S) & bitmask); }while(0)

/* Extra reset bits */
#define TOPAZ_SYS_CTL_RESET_AUC		(RUBY_BIT(10))
#define TOPAZ_SYS_CTL_ALIAS_MAP		(RUBY_BIT(29))
#define TOPAZ_SYS_CTL_UNIFIED_MAP	(RUBY_BIT(30))

/* Extra system controller bits */
#define TOPAZ_SYS_CTL_DDRCLK_S		22
#define TOPAZ_SYS_CTL_DDRCLK		(0x7 << TOPAZ_SYS_CTL_DDRCLK_S)
#define TOPAZ_SYS_CTL_DDRCLK_400MHZ	SM(0, TOPAZ_SYS_CTL_DDRCLK)
#define TOPAZ_SYS_CTL_DDRCLK_320MHZ	SM(1, TOPAZ_SYS_CTL_DDRCLK)
#define TOPAZ_SYS_CTL_DDRCLK_250MHZ	SM(2, TOPAZ_SYS_CTL_DDRCLK)
#define TOPAZ_SYS_CTL_DDRCLK_200MHZ	SM(3, TOPAZ_SYS_CTL_DDRCLK)
#define TOPAZ_SYS_CTL_DDRCLK_160MHZ	SM(4, TOPAZ_SYS_CTL_DDRCLK)

/* Extra system controller registers */
#define TOPAZ_SYS_CTL_M2D_2_INT		(RUBY_SYS_CTL_BASE_ADDR + 0x0184)
#define TOPAZ_SYS_CTL_M2D_2_INT_MASK	(RUBY_SYS_CTL_BASE_ADDR + 0x0188)
#define TOPAZ_SYS_CTL_M2D_3_INT		(RUBY_SYS_CTL_BASE_ADDR + 0x018C)
#define TOPAZ_SYS_CTL_M2D_3_INT_MASK	(RUBY_SYS_CTL_BASE_ADDR + 0x0190)

/* Temperature control registers */
#define TOPAZ_SYS_CTL_TEMPSENS_CTL	(RUBY_SYS_CTL_BASE_ADDR + 0x0108)
#define TOPAZ_SYS_CTL_TEMPSENS_CTL_START_CONV		0x00000001
#define TOPAZ_SYS_CTL_TEMPSENS_CTL_SHUTDWN		0x00000002

#define TOPAZ_SYS_CTL_TEMP_SENS_TEST_CTL		(RUBY_SYS_CTL_BASE_ADDR + 0x010C)

#define TOPAZ_SYS_CTL_TEMP_SENS_DATA			(RUBY_SYS_CTL_BASE_ADDR + 0x0110)
#define TOPAZ_SYS_CTL_TEMP_SENS_DATA_TEMP		0x00000FFF
#define TOPAZ_SYS_CTL_TEMP_SENS_DATA_END_CONV		0x00001000
#define TOPAZ_SYS_CTL_TEMP_SENS_DATA_END_CONV_S		11

/* AuC SoC interrupt controller registers */
#define TOPAZ_AUC_INT_MASK		(RUBY_SYS_CTL_BASE_ADDR + 0x0174)
#define TOPAZ_AUC_IPC_INT		(RUBY_SYS_CTL_BASE_ADDR + 0x0178)
#define TOPAZ_AUC_IPC_INT_MASK(val)	((val & 0xFFFF) << 16)
#define TOPAZ_AUC_INT_STATUS		(RUBY_SYS_CTL_BASE_ADDR + 0x00D0)

/* Linux Host interrupt controller registers */
#define TOPAZ_LH_IPC3_INT		(RUBY_SYS_CTL_BASE_ADDR + 0x14C)
#define TOPAZ_LH_IPC3_INT_MASK		(RUBY_SYS_CTL_BASE_ADDR + 0x150)
#define TOPAZ_IPC4_INT(base)	((base) + 0x13C)
#define TOPAZ_IPC4_INT_MASK(base)	((base) + 0x140)
#define TOPAZ_LH_IPC4_INT		(TOPAZ_IPC4_INT(RUBY_SYS_CTL_BASE_ADDR))
#define TOPAZ_LH_IPC4_INT_MASK		(TOPAZ_IPC4_INT_MASK(RUBY_SYS_CTL_BASE_ADDR))

/* Multi-processor hardware semahpore */
#define TOPAZ_MPROC_SEMA		(RUBY_SYS_CTL_BASE_ADDR + 0x0170)

/* MuC SoC Interrupt controller registers */
#define TOPAZ_SYS_CTL_A2M_INT		(RUBY_SYS_CTL_BASE_ADDR + 0x0144)
#define TOPAZ_SYS_CTL_A2M_INT_MASK	(RUBY_SYS_CTL_BASE_ADDR + 0x0148)

/* PCIE SoC Interrupt controller registers */
#define TOPAZ_SYS_CTL_PCIE_INT_STATUS	(RUBY_SYS_CTL_BASE_ADDR + 0x017c)
#define TOPAZ_SYS_CTL_TQE_INT_STATS_BIT	(RUBY_BIT(10))

#define TOPAZ_SWITCH_BASE_ADDR		0xE1000000
#define TOPAZ_SWITCH_OUT_NODE_BITS	7		/* Up to 128 output nodes */
#define TOPAZ_SWITCH_OUT_NODE_MAX	(1 << TOPAZ_SWITCH_OUT_NODE_BITS)
#define TOPAZ_SWITCH_OUT_NODE_MASK	((1 << TOPAZ_SWITCH_OUT_NODE_BITS) - 1)
#define TOPAZ_SWITCH_OUT_PORT_BITS	4		/* Up to 16 output ports. 8 are used */
#define TOPAZ_SWITCH_OUT_PORT_MAX	(1 << TOPAZ_SWITCH_OUT_PORT_BITS)
#define TOPAZ_SWITCH_OUT_PORT_MASK	((1 << TOPAZ_SWITCH_OUT_PORT_BITS) - 1)

/* TQE */
#define TOPAZ_TQE_BASE_ADDR		(TOPAZ_SWITCH_BASE_ADDR + 0x30000)
#define TOPAZ_TQE_EMAC_TDES_1_CNTL	(TOPAZ_TQE_BASE_ADDR + 0x0000)
#define TOPAZ_TQE_EMAC_TDES_1_CNTL_VAL				0x000000FF
#define TOPAZ_TQE_EMAC_TDES_1_CNTL_VAL_S			0
#define TOPAZ_TQE_EMAC_TDES_1_CNTL_SHIFT			24	/* reg bits [7:0] become emac ctrl [31:24] */
#define TOPAZ_TQE_EMAC_TDES_1_CNTL_MCAST_APPEND_CNTR_EN_S	16
#define TOPAZ_TQE_EMAC_TDES_1_CNTL_MCAST_APPEND_CNTR_EN		0x00010000
#define TOPAZ_TQE_EMAC_TDES_1_CNTL_PRI_MODE			0x0F000000
#define TOPAZ_TQE_EMAC_TDES_1_CNTL_PRI_MODE_S			24
#define TOPAZ_TQE_MISC			(TOPAZ_TQE_BASE_ADDR + 0x0004)
#define TOPAZ_TQE_MISC_CLR_DONE_DLY_CYCLE_NUM		0x000003FF	/* q_avail_clr_done delay cycles */
#define TOPAZ_TQE_MISC_CLR_DONE_DLY_CYCLE_NUM_S		0
#define TOPAZ_TQE_MISC_RFLCT_OUT_PORT			0x000F0000	/* dest port for reflected pkts */
#define TOPAZ_TQE_MISC_RFLCT_OUT_PORT_S			16
#define TOPAZ_TQE_MISC_RFLCT_OUT_PORT_ENABLE		0x00100000	/* redirect emac0<->emac0 or emac1<->emac1 reflected pkts */
#define TOPAZ_TQE_MISC_RFLCT_OUT_PORT_ENABLE_S		20
#define TOPAZ_TQE_MISC_RFLCT_2_OUT_PORT_ENABLE		0x00200000	/* redirect emac0<->emac0/emac1 or emac1<->emac0/emac1 reflected pkts */
#define TOPAZ_TQE_MISC_RFLCT_2_OUT_PORT_ENABLE_S	21
#define TOPAZ_TQE_MISC_CLR_DONE_DLY_ENABLE		0x80000000	/* enable q_avail_clr_done delay */
#define TOPAZ_TQE_MISC_CLR_DONE_DLY_ENABLE_S		31
#define TOPAZ_TQE_WMAC_Q_STATUS_PTR	(TOPAZ_TQE_BASE_ADDR + 0x0008)
#define TOPAZ_TQE_CPU_SEM		(TOPAZ_TQE_BASE_ADDR + 0x000c)
#define TOPAZ_TQE_OUTPORT_EMAC0_CNT	(TOPAZ_TQE_BASE_ADDR + 0x0010)
#define TOPAZ_TQE_OUTPORT_EMAC1_CNT	(TOPAZ_TQE_BASE_ADDR + 0x0014)
#define TOPAZ_TQE_OUTPORT_WMAC_CNT	(TOPAZ_TQE_BASE_ADDR + 0x0018)
#define TOPAZ_TQE_OUTPORT_LHOST_CNT	(TOPAZ_TQE_BASE_ADDR + 0x001c)
#define TOPAZ_TQE_OUTPORT_MUC_CNT	(TOPAZ_TQE_BASE_ADDR + 0x0020)
#define TOPAZ_TQE_OUTPORT_DSP_CNT	(TOPAZ_TQE_BASE_ADDR + 0x0024)
#define TOPAZ_TQE_OUTPORT_AUC_CNT	(TOPAZ_TQE_BASE_ADDR + 0x0028)
#define TOPAZ_TQE_OUTPORT_PCIE_CNT	(TOPAZ_TQE_BASE_ADDR + 0x002c)
#define TOPAZ_TQE_Q_AVAIL_CLR_CNTL	(TOPAZ_TQE_BASE_ADDR + 0x0030)
#define TOPAZ_TQE_Q_AVAIL_CLR_CNTL_TID		0xF
#define TOPAZ_TQE_Q_AVAIL_CLR_CNTL_TID_S	0
#define TOPAZ_TQE_Q_AVAIL_CLR_CNTL_NODE		0x7F00
#define TOPAZ_TQE_Q_AVAIL_CLR_CNTL_NODE_S	8
#define TOPAZ_TQE_Q_AVAIL_CLR_CNTL_CLEAR	RUBY_BIT(30)
#define TOPAZ_TQE_Q_AVAIL_CLR_CNTL_CLEAR_DONE	RUBY_BIT(31)
#define TOPAZ_TQE_DROP_CNT		(TOPAZ_TQE_BASE_ADDR + 0x0034)
#define TOPAZ_TQE_DROP_EMAC0_CNT	(TOPAZ_TQE_BASE_ADDR + 0x0040)
#define TOPAZ_TQE_DROP_EMAC1_CNT	(TOPAZ_TQE_BASE_ADDR + 0x0044)
#define TOPAZ_TQE_DROP_WMAC_CNT		(TOPAZ_TQE_BASE_ADDR + 0x0048)
#define TOPAZ_TQE_DROP_LHOST_CNT	(TOPAZ_TQE_BASE_ADDR + 0x004c)
#define TOPAZ_TQE_DROP_MUC_CNT		(TOPAZ_TQE_BASE_ADDR + 0x0050)
#define TOPAZ_TQE_DROP_DSP_CNT		(TOPAZ_TQE_BASE_ADDR + 0x0054)
#define TOPAZ_TQE_DROP_AUC_CNT		(TOPAZ_TQE_BASE_ADDR + 0x0058)
#define TOPAZ_TQE_DROP_PCIE_CNT		(TOPAZ_TQE_BASE_ADDR + 0x005c)

/* TQE-CPU interface */
#define TOPAZ_TQE_CPUIF_BASE(num)		(TOPAZ_TQE_BASE_ADDR + 0x4000 + 0x1000 * (num))	// For FPGA build 72 and earlier need to use (0xE1040000 + 0x10000 * (num))
#define TOPAZ_TQE_CPUIF_CSR(num)		(TOPAZ_TQE_CPUIF_BASE(num) + 0x0000)
#define TOPAZ_TQE_CPUIF_RX_RING_SIZE(num)	(TOPAZ_TQE_CPUIF_BASE(num) + 0x0004)
#define TOPAZ_TQE_CPUIF_RX_RING(num)		(TOPAZ_TQE_CPUIF_BASE(num) + 0x0008)
#define TOPAZ_TQE_CPUIF_RX_CURPTR(num)		(TOPAZ_TQE_CPUIF_BASE(num) + 0x000c)
#define TOPAZ_TQE_CPUIF_PKT_FINISH(num)		(TOPAZ_TQE_CPUIF_BASE(num) + 0x0010)
#define TOPAZ_TQE_CPUIF_Q_PTR_STATUS(num)	(TOPAZ_TQE_CPUIF_BASE(num) + 0x0014)
#define TOPAZ_TQE_CPUIF_PPCTL0(num)		(TOPAZ_TQE_CPUIF_BASE(num) + 0x0020)
#define TOPAZ_TQE_CPUIF_PPCTL1(num)		(TOPAZ_TQE_CPUIF_BASE(num) + 0x0024)
#define TOPAZ_TQE_CPUIF_PPCTL2(num)		(TOPAZ_TQE_CPUIF_BASE(num) + 0x0028)
#define TOPAZ_TQE_CPUIF_PPCTL3(num)		(TOPAZ_TQE_CPUIF_BASE(num) + 0x002c)
#define TOPAZ_TQE_CPUIF_PPCTL4(num)		(TOPAZ_TQE_CPUIF_BASE(num) + 0x0030)
#define TOPAZ_TQE_CPUIF_PPCTL5(num)		(TOPAZ_TQE_CPUIF_BASE(num) + 0x0034)
#define TOPAZ_TQE_CPUIF_TXSTART(num)		(TOPAZ_TQE_CPUIF_BASE(num) + 0x0038)
#define TOPAZ_TQE_CPUIF_STATUS(num)		(TOPAZ_TQE_CPUIF_BASE(num) + 0x003C)
/* Some bits definitions */
#define TOPAZ_TQE_CPUIF_CSR_IRQ_EN		RUBY_BIT(0)
#define TOPAZ_TQE_CPUIF_CSR_IRQ_THRESHOLD(num)	(((num) & 0x7F) << 8)
#define TOPAZ_TQE_CPUIF_CSR_IRQ_THRESHOLD_EN	RUBY_BIT(15)
#define TOPAZ_TQE_CPUIF_CSR_RESET		RUBY_BIT(31)
/* Aux definitions */
#define TOPAZ_TQE_CPUIF_RXDESC_ALIGN		8	/* TQE CPU rx descriptors must be 64 bit aligned */

/**
 * Hardware Buffer Manager
 */
#define TOPAZ_HBM_BASE_ADDR		(TOPAZ_SWITCH_BASE_ADDR + 0x20000)
#define TOPAZ_HBM_CSR_REG		(TOPAZ_HBM_BASE_ADDR + 0x0000)
#define TOPAZ_HBM_CSR_Q_EN(x)		(BIT(0 + (x)))
#define TOPAZ_HBM_CSR_INT_EN		(BIT(7))
#define TOPAZ_HBM_CSR_OFLOW_INT_MASK(x)	(BIT(8 + (x)))
#define TOPAZ_HBM_CSR_UFLOW_INT_MASK(x)	(BIT(12 + (x)))
#define TOPAZ_HBM_CSR_OFLOW_INT_RAW(x)	(BIT(16 + (x)))
#define TOPAZ_HBM_CSR_UFLOW_INT_RAW(x)	(BIT(20 + (x)))
#define TOPAZ_HBM_CSR_INT_MSK_RAW	(0xff << 16)
#define TOPAZ_HBM_CSR_OFLOW_INT_STATUS(x) (BIT(24 + (x)))
#define TOPAZ_HBM_CSR_UFLOW_INT_STATUS(x) (BIT(28 + (x)))

#define TOPAZ_HBM_BASE_REG(x)		(TOPAZ_HBM_BASE_ADDR + 0x0004 + ((x) * 0x10))
#define TOPAZ_HBM_LIMIT_REG(x)		(TOPAZ_HBM_BASE_ADDR + 0x0008 + ((x) * 0x10))
#define TOPAZ_HBM_WR_PTR(x)		(TOPAZ_HBM_BASE_ADDR + 0x000c + ((x) * 0x10))
#define TOPAZ_HBM_RD_PTR(x)		(TOPAZ_HBM_BASE_ADDR + 0x0010 + ((x) * 0x10))

#define TOPAZ_HBM_POOL(x)		(TOPAZ_HBM_BASE_ADDR + 0x0100 + ((x) * 0x4))
#define TOPAZ_HBM_POOL_REQ(x)		(TOPAZ_HBM_BASE_ADDR + 0x0110 + ((x) * 0x4))
#define TOPAZ_HBM_POOL_DATA(x)		(TOPAZ_HBM_BASE_ADDR + 0x0140 + ((x) * 0x4))

#define TOPAZ_HBM_OVERFLOW_CNT		(TOPAZ_HBM_BASE_ADDR + 0x0190)
#define TOPAZ_HBM_UNDERFLOW_CNT		(TOPAZ_HBM_BASE_ADDR + 0x0194)

#define TOPAZ_HBM_MASTER_COUNT				9
#define TOPAZ_HBM_POOL_COUNT				4
#define TOPAZ_HBM_POOL_REQUEST_CNT(master, pool)	(TOPAZ_HBM_BASE_ADDR + 0x0200 + (master) * 0x20 + (pool) * 0x4)
#define TOPAZ_HBM_POOL_RELEASE_CNT(master, pool)	(TOPAZ_HBM_BASE_ADDR + 0x0210 + (master) * 0x20 + (pool) * 0x4)

#define TOPAZ_HBM_RELEASE_BUF		(BIT(0))
#define TOPAZ_HBM_REQUEST_BUF		(BIT(1))
#define TOPAZ_HBM_POOL_NUM(x)		((x) << 2)
#define TOPAZ_HBM_DONE			(BIT(31))

/* SoC interrupts */
#define TOPAZ_SYS_CTL_M2L_HI_INT	PLATFORM_REG_SWITCH(RUBY_SYS_CTL_M2L_INT, (RUBY_SYS_CTL_BASE_ADDR + 0xFC))

/**
 * Forwarding Table
 */
#define TOPAZ_FWT_BASE_ADDR		(TOPAZ_SWITCH_BASE_ADDR + 0x0)
#define TOPAZ_FWT_SIZE			(BIT(12))

#define TOPAZ_FWT_TABLE_BASE		(TOPAZ_FWT_BASE_ADDR)

#define TOPAZ_FWT_VLAN_TABLE_BASE	(TOPAZ_FWT_BASE_ADDR + 0x10000)
#define TOPAZ_FWT_VLAN_TABLE_LIMIT	(TOPAZ_FWT_BASE_ADDR + 0x14000)

#define TOPAZ_FWT_CTRL_BASE_ADDR	(TOPAZ_FWT_BASE_ADDR + 0xA000)

#define TOPAZ_FWT_CPU_ACCESS		(TOPAZ_FWT_CTRL_BASE_ADDR + 0x0000)
#define TOPAZ_FWT_CPU_ACCESS_STATE	0x0000000F
#define TOPAZ_FWT_CPU_ACCESS_STATE_S	0
#define TOPAZ_FWT_CPU_ACCESS_STATE_GRANTED	0x3
#define TOPAZ_FWT_CPU_ACCESS_REQ	BIT(31)
#define TOPAZ_FWT_TIME_STAMP_CTRL	(TOPAZ_FWT_CTRL_BASE_ADDR + 0x0004)
#define TOPAZ_FWT_TIME_STAMP_CTRL_UNIT		0x0000001F
#define TOPAZ_FWT_TIME_STAMP_CTRL_UNIT_S	0
#define TOPAZ_FWT_TIME_STAMP_CTRL_SCALE		0x000003e0
#define TOPAZ_FWT_TIME_STAMP_CTRL_SCALE_S	5
#define TOPAZ_FWT_TIME_STAMP_DIS_AUTO_UPDATE_S	(16)
#define TOPAZ_FWT_TIME_STAMP_CTRL_CLEAR		BIT(31)
#define TOPAZ_FWT_TIME_STAMP_CNT	(TOPAZ_FWT_CTRL_BASE_ADDR + 0x0008)
#define TOPAZ_FWT_HASH_CTRL		(TOPAZ_FWT_CTRL_BASE_ADDR + 0x000c)
#define TOPAZ_FWT_HASH_CTRL_ENABLE	BIT(15)

#define TOPAZ_FWT_LOOKUP_LHOST		0
#define TOPAZ_FWT_LOOKUP_MUC		1
#define TOPAZ_FWT_LOOKUP_DSP		2
#define TOPAZ_FWT_LOOKUP_AUC		3

#define	__TOPAZ_FWT_LOOKUP_REG(x)	(TOPAZ_FWT_CTRL_BASE_ADDR + 0x0010 + ((x) * 0x10))
#define	__TOPAZ_FWT_LOOKUP_MAC_LO(x)	(TOPAZ_FWT_CTRL_BASE_ADDR + 0x0014 + ((x) * 0x10))
#define	__TOPAZ_FWT_LOOKUP_MAC_HI(x)	(TOPAZ_FWT_CTRL_BASE_ADDR + 0x0018 + ((x) * 0x10))

#define TOPAZ_FWT_LOOKUP_TRIG		0x00000001
#define TOPAZ_FWT_LOOKUP_TRIG_S		0
#define TOPAZ_FWT_LOOKUP_ENTRY_ADDR	0x7FF00000
#define TOPAZ_FWT_LOOKUP_ENTRY_ADDR_S	20
#define TOPAZ_FWT_LOOKUP_HASH_ADDR	0x0003FF00
#define TOPAZ_FWT_LOOKUP_HASH_ADDR_S	8
#define TOPAZ_FWT_LOOKUP_VALID		0x80000000
#define TOPAZ_FWT_LOOKUP_VALID_S	31

#define TOPAZ_FWT_PORT_EMAC0		(0)
#define TOPAZ_FWT_PORT_EMAC1		(1)
#define TOPAZ_FWT_PORT_WMAC		(2)
#define TOPAZ_FWT_PORT_PCIE		(3)
#define TOPAZ_FWT_PORT_LH		(4)
#define TOPAZ_FWT_PORT_MUC		(5)
#define TOPAZ_FWT_PORT_DSP		(6)
#define TOPAZ_FWT_PORT_AUC		(7)

#define TOPAZ_FWT_ENTRY_NXT_ENTRY	0x0FFE0000
#define TOPAZ_FWT_ENTRY_NXT_ENTRY_S	17
#define TOPAZ_FWT_ENTRY_VALID		0x80000000
#define TOPAZ_FWT_ENTRY_VALID_S		31
#define TOPAZ_FWT_ENTRY_PORTAL		0x40000000
#define TOPAZ_FWT_ENTRY_PORTAL_S	30

#define TOPAZ_FWT_ENTRY_OUT_NODE_0		0x0000007F
#define TOPAZ_FWT_ENTRY_OUT_NODE_0_S		0
#define TOPAZ_FWT_ENTRY_OUT_NODE_VLD_0		0x00000080
#define TOPAZ_FWT_ENTRY_OUT_NODE_VLD_0_S	7
#define TOPAZ_FWT_ENTRY_OUT_NODE_1		0x00007F00
#define TOPAZ_FWT_ENTRY_OUT_NODE_1_S		8
#define TOPAZ_FWT_ENTRY_OUT_NODE_VLD_1		0x00008000
#define TOPAZ_FWT_ENTRY_OUT_NODE_VLD_1_S	15
#define TOPAZ_FWT_ENTRY_OUT_NODE_2		0x007F0000
#define TOPAZ_FWT_ENTRY_OUT_NODE_2_S		16
#define TOPAZ_FWT_ENTRY_OUT_NODE_VLD_2		0x00800000
#define TOPAZ_FWT_ENTRY_OUT_NODE_VLD_2_S	23
#define TOPAZ_FWT_ENTRY_OUT_NODE_3		0x7F000000
#define TOPAZ_FWT_ENTRY_OUT_NODE_3_S		24
#define TOPAZ_FWT_ENTRY_OUT_NODE_VLD_3		0x80000000
#define TOPAZ_FWT_ENTRY_OUT_NODE_VLD_3_S	31
#define TOPAZ_FWT_ENTRY_OUT_NODE_4		0x007F0000
#define TOPAZ_FWT_ENTRY_OUT_NODE_4_S		16
#define TOPAZ_FWT_ENTRY_OUT_NODE_VLD_4		0x00800000
#define TOPAZ_FWT_ENTRY_OUT_NODE_VLD_4_S	23
#define TOPAZ_FWT_ENTRY_OUT_NODE_5		0x7F000000
#define TOPAZ_FWT_ENTRY_OUT_NODE_5_S		24
#define TOPAZ_FWT_ENTRY_OUT_NODE_VLD_5		0x80000000
#define TOPAZ_FWT_ENTRY_OUT_NODE_VLD_5_S	31

#define TOPAZ_FWT_ENTRY_OUT_PORT	0x00003C00
#define TOPAZ_FWT_ENTRY_OUT_PORT_S	10

#define TOPAZ_FWT_ENTRY_TIMESTAMP	0x000003FF
#define TOPAZ_FWT_ENTRY_TIMESTAMP_S	0

#define TOPAZ_FWT_HW_HASH_SHIFT		10
#define TOPAZ_FWT_HW_HASH_MASK		((1 << TOPAZ_FWT_HW_HASH_SHIFT) - 1)
#define TOPAZ_FWT_HW_LEVEL1_ENTRIES	(1 << TOPAZ_FWT_HW_HASH_SHIFT)
#define TOPAZ_FWT_HW_LEVEL2_ENTRIES	1024
#define TOPAZ_FWT_HW_TOTAL_ENTRIES	(TOPAZ_FWT_HW_LEVEL1_ENTRIES + TOPAZ_FWT_HW_LEVEL2_ENTRIES)

/*
 * VLAN table
 */
#define TOPAZ_VLAN_BASE_ADDR		(TOPAZ_SWITCH_BASE_ADDR + 0x10000)
#define TOPAZ_VLAN_ENTRIES		(1 << 12)	/* 802.1Q VLAN ID */
#define TOPAZ_VLAN_ENTRY_ADDR(x)	(TOPAZ_VLAN_BASE_ADDR + 4 * (x))
#define TOPAZ_VLAN_OUT_NODE		0x0000007F
#define TOPAZ_VLAN_OUT_NODE_S		0
#define TOPAZ_VLAN_OUT_PORT		0x00000380
#define TOPAZ_VLAN_OUT_PORT_S		7
#define TOPAZ_VLAN_VALID		0x00000400
#define TOPAZ_VLAN_VALID_S		10
#define TOPAZ_VLAN_HW_BITMASK		0x000007ff

/* TX AGG */
#define TOPAZ_TX_AGG_BASE_ADDR				0xE5090000
#define TOPAZ_TX_AGG_NODE_N_TID_Q_AVAIL(node)		(TOPAZ_TX_AGG_BASE_ADDR + 0x000 + 4 * (node))
#define TOPAZ_TX_AGG_NODE_N_TID_Q_AVAIL_MASK(val)	((val & 0xFFFF) << 16)
#define TOPAZ_TX_AGG_NODE_N_TID_Q_AVAIL_SUP(node)	(TOPAZ_TX_AGG_BASE_ADDR + 0x200 + 4 * (node))
#define TOPAZ_TX_AGG_NODE_N_TID_Q_AVAIL_SUP_MASK(val)	((val & 0xFFFF) << 16)
#define TOPAZ_TX_AGG_CSR				(TOPAZ_TX_AGG_BASE_ADDR + 0x460)
#define TOPAZ_TX_AGG_TAC_MAP_MODE_64			0
#define TOPAZ_TX_AGG_TAC_MAP_MODE_128			1
#define TOPAZ_TX_AGG_AC					0xF0000000
#define TOPAZ_TX_AGG_AC_S				28
#define TOPAZ_TX_AGG_CPU_Q_ACCESS_SEM			(TOPAZ_TX_AGG_BASE_ADDR + 0x464)
#define TOPAZ_TX_AGG_UC_Q_ACCESS_SEM			(TOPAZ_TX_AGG_BASE_ADDR + 0x468)
#define TOPAZ_TX_AGG_TAC_CNTL				(TOPAZ_TX_AGG_BASE_ADDR + 0x46C)
#ifdef TOPAZ_128_NODE_MODE
#define TOPAZ_TX_AGG_TAC_CNTL_NODE(node)		((node) & 0x7F)
#else
#define TOPAZ_TX_AGG_TAC_CNTL_NODE(node)		((node) & 0x3F)
#endif
#define TOPAZ_TX_AGG_TAC_CNTL_TID(tid)			(((tid) & 0xF) << 8)
#define TOPAZ_TX_AGG_TAC_CNTL_READ_CMD(cmd)		(((cmd) & 0x3) << 12)
#define TOPAZ_TX_AGG_TAC_CNTL_READ_DATA_VLD		RUBY_BIT(29)
#define TOPAZ_TX_AGG_TAC_CNTL_READ			RUBY_BIT(30)
#define TOPAZ_TX_AGG_TAC_CNTL_WRITE			RUBY_BIT(31)
#define TOPAZ_TX_AGG_TAC_DATA				(TOPAZ_TX_AGG_BASE_ADDR + 0x470)
#define TOPAZ_TX_AGG_TAC_DATA_AC(__ac)			((__ac) & 0x3)
#define TOPAZ_TX_AGG_TAC_DATA_PRIORITY(__pri)		(((__pri) & 0xFF) << 2)
#ifdef TOPAZ_128_NODE_MODE
#define TOPAZ_TX_AGG_TAC_DATA_AC_LO			0x00000003
#define TOPAZ_TX_AGG_TAC_DATA_AC_LO_S			0
#define TOPAZ_TX_AGG_TAC_DATA_PRIORITY_LO		0x0000001c
#define TOPAZ_TX_AGG_TAC_DATA_PRIORITY_LO_S		2
#define TOPAZ_TX_AGG_TAC_DATA_AC_HI			0x00000060
#define TOPAZ_TX_AGG_TAC_DATA_AC_HI_S			5
#define TOPAZ_TX_AGG_TAC_DATA_PRIORITY_HI		0x00000380
#define TOPAZ_TX_AGG_TAC_DATA_PRIORITY_HI_S		7
#endif
#define TOPAZ_TX_AGG_AC_N_NODE_TID(ac)			(TOPAZ_TX_AGG_BASE_ADDR + 0x478 + 4 * (ac))
#define TOPAZ_TX_AGG_AC_N_STAT_PTR(ac)			(TOPAZ_TX_AGG_BASE_ADDR + 0x488 + 4 * (ac))
#define TOPAZ_TX_AGG_Q_FULL_THRESH			(TOPAZ_TX_AGG_BASE_ADDR + 0x498)
#define TOPAZ_TX_AGG_Q_FULL_THRESH_VAL(q0, q1, q2, q3)	(((q0) & 0xF) | (((q1) & 0xF) << 4) | (((q2) & 0xF) << 8) | (((q3) & 0xF) << 12))
#define TOPAZ_TX_AGG_CPU_IRQ_CSR			(TOPAZ_TX_AGG_BASE_ADDR + 0x49C)
#define TOPAZ_TX_AGG_STATUS_IRQ				(TOPAZ_TX_AGG_BASE_ADDR + 0x4A0)
#define TOPAZ_TX_AGG_AC_N_NODE_TID_NO_SEL(ac)		(TOPAZ_TX_AGG_BASE_ADDR + 0x4A4 + 4 * (ac))
#define TOPAZ_TX_AGG_TAC_CNTL_READ_CMD_NODE_TAB		0
#define TOPAZ_TX_AGG_TAC_CNTL_READ_CMD_AVAIL_LO		1
#define TOPAZ_TX_AGG_TAC_CNTL_READ_CMD_AVAIL_HI		3
#define TOPAZ_TX_AGG_MAX_NODE_NUM			128
#define TOPAZ_TX_AGG_HALF_MAX_NODE_NUM			(TOPAZ_TX_AGG_MAX_NODE_NUM >> 1)

/*
 * MuC/Lhost new interrupts.
 * Old interrupts (even changed number) are in ruby_platform, RUBY_IRQ_*
 */
#define	TOPAZ_IRQ_TQE					(5)
#define TOPAZ_IRQ_HDMA0					(RUBY_IRQ_DMA0)
#define TOPAZ_IRQ_HBM					(RUBY_IRQ_DMA1)
#define TOPAZ_IRQ_HDMA1					(RUBY_IRQ_DMA3)
#define TOPAZ_IRQ_PCIE					(28)
#define TOPAZ_IRQ_IPC_A2M				(18)
#define TOPAZ_IQR_TQE_DSP				(19)
#define	TOPAZ_IRQ_PCIE_DMA				(RUBY_IRQ_DMA2)
#define	TOPAZ_IRQ_IPC4					(29)
#define	TOPAZ_MUC_IRQ_BB_PER_PKT			(31)
#define TOPAZ_HBM_INT_EN				RUBY_BIT(31)
#define TOPAZ_PCIE_INTX_CLR_MASK			RUBY_BIT(11)
#define	TOPAZ_PCIE_INT_MASK				RUBY_PCIE_INT_MASK
#define	TOPAZ_PCIE_MSI_MASK				RUBY_PCIE_MSI_MASK
#define TOPAZ_PCIE_MSI_EN				RUBY_BIT(0)
#define TOPAZ_PCIE_MSI_BASE				0xE9000050
#define TOPAZ_PCIE_MSI_CAP				(TOPAZ_PCIE_MSI_BASE + 0x0)

#define TOPAZ_PCIE_EXP_DEVCTL				(0xE9000078)

/* MSI defines to be used in Topaz PCIe host driver */
#define	TOPAZ_PCIE_MSI_REGION				RUBY_PCIE_MSI_REGION
#define	TOPAZ_MSI_ADDR_LOWER				RUBY_MSI_ADDR_LOWER
#define	TOPAZ_MSI_ADDR_UPPER				RUBY_MSI_ADDR_UPPER
#define	TOPAZ_MSI_INT_ENABLE				RUBY_MSI_INT_ENABLE

/* AHB Bus monitors */
#define TOPAZ_BUSMON_INTR_STATUS			(RUBY_SYS_CTL_BASE_ADDR + 0x015c)
#define TOPAZ_BUSMON_INTR_MASK				(RUBY_SYS_CTL_BASE_ADDR + 0x0160)
#define TOPAZ_BUSMON_INTR_MASK_TIMEOUT_EN(master)	BIT((master) * 2 + 0)
#define TOPAZ_BUSMON_INTR_MASK_RANGE_CHECK_EN(master)	BIT((master) * 2 + 1)
#define TOPAZ_BUSMON_DEBUG_VIEW				(RUBY_SYS_CTL_BASE_ADDR + 0x0164)
#define TOPAZ_BUSMON_DEBUG_VIEW_MASTER(x)		(((x) & 0x3) << 0)
#define TOPAZ_BUSMON_DEBUG_VIEW_DATA_SEL(x)		(((x) & 0x7) << 2)
#define TOPAZ_BUSMON_DEBUG_STATUS			(RUBY_SYS_CTL_BASE_ADDR + 0x0168)
#define TOPAZ_BUSMON_CTL_BASE_ADDR			(RUBY_SYS_CTL_BASE_ADDR + 0x0200)
#define TOPAZ_BUSMON_CTL(core)				(TOPAZ_BUSMON_CTL_BASE_ADDR + ((core) * 0x40))
#define __TOPAZ_BUSMON_CTL_RANGE(core, range)		(TOPAZ_BUSMON_CTL(core) + 0x8 + ((range) * 0x8))
#define TOPAZ_BUSMON_CTL_RANGE_LOW(core, range)		(__TOPAZ_BUSMON_CTL_RANGE((core), (range)) + 0x0)
#define TOPAZ_BUSMON_CTL_RANGE_HIGH(core, range)	(__TOPAZ_BUSMON_CTL_RANGE((core), (range)) + 0x4)
#define TOPAZ_BUSMON_HREADY_EN				BIT(0)
#define TOPAZ_BUSMON_TIMER_INT_EN			BIT(1)
#define TOPAZ_BUSMON_TIMER_ERROR_EN			BIT(2)
#define TOPAZ_BUSMON_ADDR_CHECK_EN			BIT(3)
#define TOPAZ_BUSMON_REGION_VALID(x)			(((x) & 0xF) << 4)
#define TOPAZ_BUSMON_TIMEOUT(cycles)			(((cycles) & 0x3FF) << 8)
#define TOPAZ_BUSMON_BLOCK_TRANS_EN			BIT(18)
#define TOPAZ_BUSMON_OUTSIDE_ADDR_CHECK			BIT(19)

/* AHB Bus monitor masters */
#define TOPAZ_BUSMON_LHOST				0
#define TOPAZ_BUSMON_MUC				1
#define TOPAZ_BUSMON_DSP				2
#define TOPAZ_BUSMON_AUC				3
#define TOPAZ_BUSMON_WMAC				4
#define TOPAZ_BUSMON_PCIE				5
#define TOPAZ_BUSMON_SWE				6
#define TOPAZ_BUSMON_EMAC				7

#define TOPAZ_BUSMON_MASTER_NAMES	{ "lhost", "muc", "dsp", "auc", "wmac", "pcie", "swe", "emac" }

/* AHB Bus monitor debug data select */
#define TOPAZ_BUSMON_ADDR				0
#define TOPAZ_BUSMON_WR_L32				1
#define TOPAZ_BUSMON_WR_H32				2
#define TOPAZ_BUSMON_RD_L32				3
#define TOPAZ_BUSMON_RD_H32				4
#define TOPAZ_BUSMON_CTRL0				5
#define TOPAZ_BUSMON_CTRL1				6
#define TOPAZ_BUSMON_CTRL2				7
#define TOPAZ_BUSMON_DEBUG_MAX				8

/* GPIO Registers */
#define RUBY_GPIO3_PWM1					(RUBY_GPIO1_PWM0 + 4)
#define RUBY_GPIO12_PWM3				(RUBY_GPIO1_PWM0 + 12)
#define RUBY_GPIO13_PWM4				(RUBY_GPIO1_PWM0 + 16)
#define RUBY_GPIO15_PWM5				(RUBY_GPIO1_PWM0 + 20)
#define RUBY_GPIO16_PWM6				(RUBY_GPIO1_PWM0 + 24)
#define RUBY_GPIO_PWM_LOW_SHIFT				(0)
#define RUBY_GPIO_PWM_HIGH_SHIFT			(8)
#define RUBY_GPIO_PWM_ENABLE				(BIT(16))
#define RUBY_GPIO_PWM_MAX_COUNT				(255)

#ifdef TOPAZ_AMBER_IP
#define	AMBER_GPIO11_PWM0				(RUBY_GPIO_REGS_ADDR + 0x20)
#define AMBER_GPIO12_PWM1				(RUBY_GPIO_REGS_ADDR + 0x24)
#define	AMBER_GPIO13_PWM2				(RUBY_GPIO_REGS_ADDR + 0x28)
#define AMBER_GPIO14_PWM3				(RUBY_GPIO_REGS_ADDR + 0x2C)
#define AMBER_GPIO15_PWM4				(RUBY_GPIO_REGS_ADDR + 0x30)
#define AMBER_GPIO16_PWM5				(RUBY_GPIO_REGS_ADDR + 0x34)
#define AMBER_GPIO17_PWM6				(RUBY_GPIO_REGS_ADDR + 0x38)
#endif

/* Interrupt lines */
#define TOPAZ_IRQ_MISC_WDT				(57)
#define TOPAZ_IRQ_MISC_SPI1				(58)
#define TOPAZ_IRQ_MISC_AHB_MON				(61)
#define TOPAZ_IRQ_MISC_HBM				(62)
#define TOPAZ_IRQ_MISC_FWT				(63)
#define TOPAZ_IRQ_MISC_EXT_IRQ_COUNT			(8)
#define TOPAZ_IRQ_MISC_RST_CAUSE_START			(9)

/* RESET CAUSE */
#define TOPAZ_SYS_CTL_INTR_TIMER_MSK(t)		(1 << (3 + (t)))

#endif /* #ifndef __TOPAZ_PLATFORM_H */
