/*SH1
*******************************************************************************
**                                                                           **
**         Copyright (c) 2008 - 2010 Quantenna Communications Inc            **
**                            All Rights Reserved                            **
**                                                                           **
**  Author      : Quantenna Communications Inc                               **
**  File        : registers.h                                                **
**  Description :                                                            **
**                                                                           **
*******************************************************************************
**                                                                           **
**  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.  **
**  3. The name of the author may not be used to endorse or promote products **
**     derived from this software without specific prior written permission. **
**                                                                           **
**  Alternatively, this software may be distributed under the terms of the   **
**  GNU General Public License ("GPL") version 2, or (at your option) any    **
**  later version as published by the Free Software Foundation.              **
**                                                                           **
**  In the case this software is distributed under the GPL license,          **
**  you should have received a copy of the GNU General Public License        **
**  along with this software; if not, write to the Free Software             **
**  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA  **
**                                                                           **
**  THIS SOFTWARE IS PROVIDED BY THE AUTHOR "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 AUTHOR 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.        **
**                                                                           **
*******************************************************************************
EH1*/

#ifndef _QTN_REGISTERS_H
#define _QTN_REGISTERS_H

#include <asm/io.h>

#if defined(MUC_BUILD) || defined(DSP_BUILD) || defined(AUC_BUILD)
#include <qtn/registers_muc.h>
#endif

#if (CONFIG_ARC)
# define CONFIG_RUBY 1
#else
# define CONFIG_ENVY 1
#endif

#define QTN_BIT(_i)				(1L << (_i))

#define SYS_REG_BASE		0xE0000000
#define SYS_RESET_VECTOR_MASK	(SYS_REG_BASE + 0x0)
#define SYS_RESET_VECTOR	(SYS_REG_BASE + 0x4)
#define SYS_CONTROL_MASK	(SYS_REG_BASE + 0x8)
#define SYS_CONTROL_REG		(SYS_REG_BASE + 0xC)

#define ULA_RESET_VECTOR_MASK 0xE0000000
#define ULA_RESET_VECTOR 0xE0000004

#define NDP_PKT_SRC_BBO (0xE60B0000)
#define NDP_PKT_SRC_BB1 (0xE68B0000)

#define DSP_MASTER_GPIO_ENABLE (1<<15)

#define MUC_BASE_ADDR 0xE5000000
#define MUC_OFFSET_CTRL_REG 0x42000

#define MUC_CTRL_REG_SIZE 0xFF

/* Interrupts */
#define MUC_INT0  0
#define MUC_INT1  1
#define MUC_INT2  2
#define MUC_INT3  3
#define MUC_INT4  4
#define MUC_INT5  5
#define MUC_INT6  6
#define MUC_INT7  7
#define MUC_INT8  8
#define MUC_INT9  9
#define MUC_INT10 10
#define MUC_INT11 11
#define MUC_INT12 12
#define MUC_INT13 13
#define MUC_INT14 14

/* UMS reset Masks */
#define ARMSS_RESET 0x00000001   
#define EBI_RESET   0x00000002
#define DRAM_RESET  0x00000004   
#define SRAM_RESET  0x00000008   
#define DSPSS_RESET 0x00000010   
#define DSP_RESET   0x00000020   
#define MUC_RESET   0x00000040   
#define NETSS_RESET 0x00000080   
#define MMC_RESET   0x00000100   
#define ENET_RESET  0x00000200   
#define IOSS_RESET  0x00000400   
#define PCI_RESET   0x00000800   
#define SDIO_RESET  0x00001000   
#define USB_RESET   0x00002000 
#define BB_RESET    0x00004000  
#define MB_RESET    0x00008000  
#define ULA_RESET   0x00010000  

struct muc_ctrl_reg
{
	volatile u32 int_mask;
	volatile u32 int_status;
	volatile u32 host_sem0;
	volatile u32 host_sem1;
	volatile u32 uc_sem0;
	volatile u32 uc_sem1;
	volatile u32 mac0_host_int_pri;
	volatile u32 mac0_host_int_mask;
	volatile u32 mac0_host_int_status;
	volatile u32 mac0_host_int_gen;
	volatile u32 mac1_host_int_pri; //Not in Ruby
	volatile u32 mac1_host_int_mask; //Not in Ruby
	volatile u32 mac1_host_int_status; //Not in Ruby
	volatile u32 mac1_host_int_gen; //Not in Ruby
	volatile u32 soft_rst;
	volatile u32 lpbck_cntl; //Not in Ruby
#if CONFIG_RUBY
	volatile u32 global_tim0;
	volatile u32 global_tim1;
	volatile u32 global_csr;
	volatile u32 mac_debug_sel;
#endif
} __attribute__ ((packed));

struct ruby_sys_ctrl_reg
{
	volatile u32 reset_vector_mask; /* 0xE0000000 */
	volatile u32 reset_vector;
	volatile u32 system_control_mask;
	volatile u32 system_control;
	volatile u32 reset_cause;       /* 0xE0000010 */
	volatile u32 csr;
	volatile u32 debug_select;
	volatile u32 l2m_int;
	volatile u32 l2m_int_mask;      /* 0xE0000020 */
	volatile u32 l2d_int;
	volatile u32 l2d_int_mask;
	volatile u32 m2l_int;
	volatile u32 m2l_int_mask;      /* 0xE0000030 */
	volatile u32 m2d_int;
	volatile u32 m2d_int_mask;
	volatile u32 d2l_int;
	volatile u32 d2l_int_mask;      /* 0xE0000040 */
	volatile u32 d2m_int;
	volatile u32 d2m_int_mask;
	volatile u32 lhost_int_en;
	volatile u32 muc_int_en;        /* 0xE0000050 */
	volatile u32 dsp_int_en;
	volatile u32 lhost_int_or_en;
	volatile u32 muc_int_or_en;
	volatile u32 dsp_int_or_en;     /* 0xE0000060 */
	volatile u32 muc_remap;
	volatile u32 dsp_remap;
	volatile u32 pcie_cfg_0;
	volatile u32 pcie_cfg_1;        /* 0xE0000070 */
	volatile u32 pcie_cfg_2;
	volatile u32 pcie_cfg_3;
	volatile u32 pcie_cfg_4;
	volatile u32 pll0_ctrl;         /* 0xE0000080 */
	volatile u32 pll1_ctrl;
	volatile u32 proc_id;
	volatile u32 pll2_ctrl;
	volatile u32 reserved1;         /* 0xE0000090 */
	volatile u32 l2m_sem;
	volatile u32 m2l_sem;
	volatile u32 l2d_sem;
	volatile u32 d2l_sem;           /* 0xE00000A0 */
	volatile u32 m2d_sem;
	volatile u32 d2m_sem;
	volatile u32 intr_inv0;
	volatile u32 intr_inv1;         /* 0xE00000B0 */
	volatile u32 gmii_clkdll;
	volatile u32 debug_bus;
	volatile u32 spare;
	volatile u32 pcie_int_mask;     /* 0xE00000C0 */
} __attribute__ ((packed));

#define NETDEV_F_ALLOC		0x0001	/* dev allocated */
#define	NETDEV_F_VALID		0x0002	/* dev is valid */
#define	NETDEV_F_RUNNING	0x0004	/* dev is running */
#define	NETDEV_F_PROMISC	0x0008	/* dev is in promiscuous mode */
#define	NETDEV_F_ALLMULTI	0x0010
#define	NETDEV_F_UP		0x0020	/* dev is up */
#define	NETDEV_F_EXTERNAL	0x0040	/* dev is exposed to tcp/ip stack */

#define SCAN_BASEBAND_RESET	0x0000
#define SCAN_CHAN_CHANGE	0x0001

extern void enable_host_irq(int devid, int irq);
extern void disable_host_irq(int devid, int irq);

#define BB_BASE_ADDR(_i)	(0xE6000000 + (_i * 0x800000))

#define BB_SPI_BASE(_i)		(BB_BASE_ADDR(_i) + 0x40000)
#define BB_RF_BASE(_i)		(BB_BASE_ADDR(_i) + 0x70000)
#define BB_RDR_BASE(_i)		(BB_BASE_ADDR(_i) + 0x80000)

/*
 * Define RFIC version register.
 * Expected to map across multiple versions of the RFIC
 */

#define RFIC_VERSION				(BB_SPI_BASE(0) + 0X0018)

/*Define SPI registers */

#define SPI_VCO_FREQ_CC_OUTPUT(_i)		(BB_SPI_BASE(_i) + 0X0004)
#define SPI_LX_PLL_COUNTER_DATA_LSB(_i)		(BB_SPI_BASE(_i) + 0X0008)
#define SPI_LX_PLL_COUNTER_DATA_MSB(_i)		(BB_SPI_BASE(_i) + 0X000C)
#define SPI_RC_TUNING_DATA_OUT(_i)		(BB_SPI_BASE(_i) + 0X0010)
#define SPI_CTRL_DATA_AGC_TST(_i)		(BB_SPI_BASE(_i) + 0X00C4)
#define SPI_READ_AGC_RX1(_i)			(BB_SPI_BASE(_i) + 0X00C8)
#define SPI_READ_AGC_RX2(_i)			(BB_SPI_BASE(_i) + 0X00CC)
#define SPI_RX12_AGC_OUT(_i)			(BB_SPI_BASE(_i) + 0X00D0)
#define SPI_ET_DAC_TX12(_i)			(BB_SPI_BASE(_i) + 0X00D4)
#define SPI_RX1_DAC_I(_i)			(BB_SPI_BASE(_i) + 0X00D8)
#define SPI_RX1_DAC_Q(_i)			(BB_SPI_BASE(_i) + 0X00DC)
#define SPI_RX2_DAC_I(_i)			(BB_SPI_BASE(_i) + 0X00E0)
#define SPI_RX2_DAC_Q(_i)			(BB_SPI_BASE(_i) + 0X00E4)
#define SPI_PDN_RX_BUS_CTRL_BUS_1(_i)		(BB_SPI_BASE(_i) + 0X00E8)
#define SPI_PDN_RX_BUS_CTRL_BUS_2(_i)		(BB_SPI_BASE(_i) + 0X00EC)
#define SPI_PDN_RX_BUS_CTRL_BUS_3(_i)		(BB_SPI_BASE(_i) + 0x00F0)
#define SPI_PDN_RX_BUS_CTRL_BUS_4(_i)		(BB_SPI_BASE(_i) + 0x00F4)
#define SPI_MUX_IN(_i)				(BB_SPI_BASE(_i) + 0x00F8)
#define SPI_MUX_OUT(_i)				(BB_SPI_BASE(_i) + 0x00FC)
#define SPI_DAC_RX1TB1_I(_i)			(BB_SPI_BASE(_i) + 0x0100)
#define SPI_DAC_RX1TB2_I(_i)			(BB_SPI_BASE(_i) + 0x0104)
#define SPI_DAC_RX1TB3_I(_i)			(BB_SPI_BASE(_i) + 0x0108)
#define SPI_DAC_RX1TB4_I(_i)			(BB_SPI_BASE(_i) + 0x010C)
#define SPI_DAC_RX1TB1_Q(_i)			(BB_SPI_BASE(_i) + 0x0110)
#define SPI_DAC_RX1TB2_Q(_i)			(BB_SPI_BASE(_i) + 0x0114)
#define SPI_DAC_RX1TB3_Q(_i)			(BB_SPI_BASE(_i) + 0x0118)
#define SPI_DAC_RX1TB4_Q(_i)			(BB_SPI_BASE(_i) + 0x011C)
#define SPI_DAC_RX2TB1_I(_i)			(BB_SPI_BASE(_i) + 0x0120)
#define SPI_DAC_RX2TB2_I(_i)			(BB_SPI_BASE(_i) + 0x0124)
#define SPI_DAC_RX2TB3_I(_i)			(BB_SPI_BASE(_i) + 0x0128)
#define SPI_DAC_RX2TB4_I(_i)			(BB_SPI_BASE(_i) + 0x012C)
#define SPI_DAC_RX2TB1_Q(_i)			(BB_SPI_BASE(_i) + 0x0130)
#define SPI_DAC_RX2TB2_Q(_i)			(BB_SPI_BASE(_i) + 0x0134)
#define SPI_DAC_RX2TB3_Q(_i)			(BB_SPI_BASE(_i) + 0x0138)
#define SPI_DAC_RX2TB4_Q(_i)			(BB_SPI_BASE(_i) + 0x013C)
#define SPI_RX_PDN_11_0(_i)			(BB_SPI_BASE(_i) + 0x0140)
#define SPI_RX_PDN_23_12(_i)			(BB_SPI_BASE(_i) + 0x0144)
#define SPI_TX1_PDN_11_0(_i)			(BB_SPI_BASE(_i) + 0x0148)
#define SPI_TX1_PDN_23_12(_i)			(BB_SPI_BASE(_i) + 0x014C)
#define SPI_TX2_PDN_11_0(_i)			(BB_SPI_BASE(_i) + 0X0150)
#define SPI_TX2_PDN_23_12(_i)			(BB_SPI_BASE(_i) + 0X0154)
#define SPI_ALX_PDN_11_0(_i)			(BB_SPI_BASE(_i) + 0X0158)
#define SPI_ALX_PDN_23_12(_i)			(BB_SPI_BASE(_i) + 0X015C)
#define SPI_PDN_VAL_23_0(_i)			(BB_SPI_BASE(_i) + 0X0160)
#define SPI_RX_CAL_OVRD_VAL(_i)			(BB_SPI_BASE(_i) + 0X0164)
#define SPI_AGC_CTRL_DAC_RC_TST(_i)		(BB_SPI_BASE(_i) + 0X0168)
#define SPI_PLL_FRACTIONAL(_i)			(BB_SPI_BASE(_i) + 0X016C)
#define SPI_PLL_N_CH(_i)			(BB_SPI_BASE(_i) + 0X0170)
#define SPI_CP_D_U_VCO(_i)			(BB_SPI_BASE(_i) + 0X0174)
#define SPI_VCO_CLK_PFD_LPF(_i)			(BB_SPI_BASE(_i) + 0X0178)
#define SPI_BG_BIAS_EXT_PTAT(_i)		(BB_SPI_BASE(_i) + 0X017C)
#define SPI_CURR_OPT_DAC_TX_RX_SSB(_i)		(BB_SPI_BASE(_i) + 0X0180)
#define SPI_RXMX_BBMX_VBIAS_ADJ(_i)		(BB_SPI_BASE(_i) + 0X0184)
#define SPI_TX_SSB_DAC(_i)			(BB_SPI_BASE(_i) + 0X0188)
#define SPI_BYP_PWR_OFS_PROBE_IQ(_i)		(BB_SPI_BASE(_i) + 0X018C)
#define SPI_LNA12_GAIN_FREQ_CURR_LOOPBK(_i)	(BB_SPI_BASE(_i) + 0X0190)
#define SPI_ICT_WCT_TX1_PA(_i)			(BB_SPI_BASE(_i) + 0X0194)
#define SPI_ICT_WCT_TX2_PA(_i)			(BB_SPI_BASE(_i) + 0X0198)
#define SPI_GCT_FCT_TX1_PA(_i)			(BB_SPI_BASE(_i) + 0X019C)
#define SPI_WCT_TX12_PA(_i)			(BB_SPI_BASE(_i) + 0X01A0)
#define SPI_MOD_ICT_ABS_VRRP(_i)		(BB_SPI_BASE(_i) + 0X01A4)
#define SPI_MOD_CCT_RCT(_i)			(BB_SPI_BASE(_i) + 0X01A8)
#define SPI_MOD_LO_GCT_TX_1MA(_i)		(BB_SPI_BASE(_i) + 0X01AC)
#define SPI_MODDAC_1M_IQ(_i)			(BB_SPI_BASE(_i) + 0X01B0)
#define SPI_MODDAC_1A_IQ(_i)			(BB_SPI_BASE(_i) + 0X01B4)
#define SPI_MOD_LO_GCT_TX_2MA(_i)		(BB_SPI_BASE(_i) + 0X01B8)
#define SPI_MODDAC_2M_IQ(_i)			(BB_SPI_BASE(_i) + 0X01BC)
#define SPI_MODDAC_2A_IQ(_i)			(BB_SPI_BASE(_i) + 0X01C0)
#define SPI_RX12_MUX_DATA_CNTL(_i)		(BB_SPI_BASE(_i) + 0X01C4)

// timer register definition
#define ARM_TIMER_BASE_ADDR				(0XF3000000)
#define ARM_TIMER_MEM_LEN					(0x30)
#define ARM_TIMER_PRESCALE_EN				(0x0000)
#define ARM_TIMER_PRESCALE_0				(0x0004)
#define ARM_TIMER_PRESCALE_1				(0x0008)
#define ARM_TIMER_CTL(_i)					(0x000c + (_i)*8)
#define ARM_TIMER_ENABLE					(QTN_BIT(0))
#define ARM_TIMER_PERIODIC					(QTN_BIT(1))
#define ARM_TIMER_PRESCALER_1				(QTN_BIT(2))

#define ARM_TIMER_CNT(_i)					(0x0010 + (_i)*8)

#if CONFIG_RUBY
#define  QT3_BB_GLBL_SOFT_RST		0xE6000008
#define  QT3_BB_TD_PA_CONF		0xE609048C

/* The following definitions used to install the steering vectors */
#define QT3_RF_NUM_CHAINS		4
#define QT3_BB_Q_MATRIX_MEM		0xE6100000
#define QT3_BB_Q_MATRIX_SIZE		0x8000
#endif

#endif /* _QTN_REGISTERS_H */
