/*
 * Copyright (C) 2010-2013 Bluecherry, LLC <http://www.bluecherrydvr.com>
 *
 * Original author:
 * Ben Collins <bcollins@ubuntu.com>
 *
 * Additional work by:
 * John Brooks <john.brooks@bluecherry.net>
 *
 * 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.
 */

#ifndef __SOLO6X10_REGISTERS_H
#define __SOLO6X10_REGISTERS_H

#include "solo6x10-offsets.h"

/* Global 6010 system configuration */
#define SOLO_SYS_CFG				0x0000
#define   SOLO_SYS_CFG_FOUT_EN			0x00000001
#define   SOLO_SYS_CFG_PLL_BYPASS		0x00000002
#define   SOLO_SYS_CFG_PLL_PWDN			0x00000004
#define   SOLO_SYS_CFG_OUTDIV(__n)		(((__n) & 0x003) << 3)
#define   SOLO_SYS_CFG_FEEDBACKDIV(__n)		(((__n) & 0x1ff) << 5)
#define   SOLO_SYS_CFG_INPUTDIV(__n)		(((__n) & 0x01f) << 14)
#define   SOLO_SYS_CFG_CLOCK_DIV		0x00080000
#define   SOLO_SYS_CFG_NCLK_DELAY(__n)		(((__n) & 0x003) << 24)
#define   SOLO_SYS_CFG_PCLK_DELAY(__n)		(((__n) & 0x00f) << 26)
#define   SOLO_SYS_CFG_SDRAM64BIT		0x40000000
#define   SOLO_SYS_CFG_RESET			0x80000000

#define	SOLO_DMA_CTRL				0x0004
#define	  SOLO_DMA_CTRL_REFRESH_CYCLE(n)	((n)<<8)
/* 0=16/32MB, 1=32/64MB, 2=64/128MB, 3=128/256MB */
#define	  SOLO_DMA_CTRL_SDRAM_SIZE(n)		((n)<<6)
#define	  SOLO_DMA_CTRL_SDRAM_CLK_INVERT	(1<<5)
#define	  SOLO_DMA_CTRL_STROBE_SELECT		(1<<4)
#define	  SOLO_DMA_CTRL_READ_DATA_SELECT	(1<<3)
#define	  SOLO_DMA_CTRL_READ_CLK_SELECT		(1<<2)
#define	  SOLO_DMA_CTRL_LATENCY(n)		((n)<<0)

/* Some things we set in this are undocumented. Why Softlogic?!?! */
#define SOLO_DMA_CTRL1				0x0008

#define SOLO_SYS_VCLK				0x000C
#define	  SOLO_VCLK_INVERT			(1<<22)
/* 0=sys_clk/4, 1=sys_clk/2, 2=clk_in/2 of system input */
#define	  SOLO_VCLK_SELECT(n)			((n)<<20)
#define	  SOLO_VCLK_VIN1415_DELAY(n)		((n)<<14)
#define	  SOLO_VCLK_VIN1213_DELAY(n)		((n)<<12)
#define	  SOLO_VCLK_VIN1011_DELAY(n)		((n)<<10)
#define	  SOLO_VCLK_VIN0809_DELAY(n)		((n)<<8)
#define	  SOLO_VCLK_VIN0607_DELAY(n)		((n)<<6)
#define	  SOLO_VCLK_VIN0405_DELAY(n)		((n)<<4)
#define	  SOLO_VCLK_VIN0203_DELAY(n)		((n)<<2)
#define	  SOLO_VCLK_VIN0001_DELAY(n)		((n)<<0)

#define SOLO_IRQ_STAT				0x0010
#define SOLO_IRQ_MASK				0x0014
#define	  SOLO_IRQ_P2M(n)			(1<<((n)+17))
#define	  SOLO_IRQ_GPIO				(1<<16)
#define	  SOLO_IRQ_VIDEO_LOSS			(1<<15)
#define	  SOLO_IRQ_VIDEO_IN			(1<<14)
#define	  SOLO_IRQ_MOTION			(1<<13)
#define	  SOLO_IRQ_ATA_CMD			(1<<12)
#define	  SOLO_IRQ_ATA_DIR			(1<<11)
#define	  SOLO_IRQ_PCI_ERR			(1<<10)
#define	  SOLO_IRQ_PS2_1			(1<<9)
#define	  SOLO_IRQ_PS2_0			(1<<8)
#define	  SOLO_IRQ_SPI				(1<<7)
#define	  SOLO_IRQ_IIC				(1<<6)
#define	  SOLO_IRQ_UART(n)			(1<<((n) + 4))
#define	  SOLO_IRQ_G723				(1<<3)
#define	  SOLO_IRQ_DECODER			(1<<1)
#define	  SOLO_IRQ_ENCODER			(1<<0)

#define SOLO_CHIP_OPTION			0x001C
#define   SOLO_CHIP_ID_MASK			0x00000007

#define SOLO_PLL_CONFIG				0x0020 /* 6110 Only */

#define SOLO_EEPROM_CTRL			0x0060
#define	  SOLO_EEPROM_ACCESS_EN			(1<<7)
#define	  SOLO_EEPROM_CS			(1<<3)
#define	  SOLO_EEPROM_CLK			(1<<2)
#define	  SOLO_EEPROM_DO			(1<<1)
#define	  SOLO_EEPROM_DI			(1<<0)
#define	  SOLO_EEPROM_ENABLE (SOLO_EEPROM_ACCESS_EN | SOLO_EEPROM_CS)

#define SOLO_PCI_ERR				0x0070
#define   SOLO_PCI_ERR_FATAL			0x00000001
#define   SOLO_PCI_ERR_PARITY			0x00000002
#define   SOLO_PCI_ERR_TARGET			0x00000004
#define   SOLO_PCI_ERR_TIMEOUT			0x00000008
#define   SOLO_PCI_ERR_P2M			0x00000010
#define   SOLO_PCI_ERR_ATA			0x00000020
#define   SOLO_PCI_ERR_P2M_DESC			0x00000040
#define   SOLO_PCI_ERR_FSM0(__s)		(((__s) >> 16) & 0x0f)
#define   SOLO_PCI_ERR_FSM1(__s)		(((__s) >> 20) & 0x0f)
#define   SOLO_PCI_ERR_FSM2(__s)		(((__s) >> 24) & 0x1f)

#define SOLO_P2M_BASE				0x0080

#define SOLO_P2M_CONFIG(n)			(0x0080 + ((n)*0x20))
#define	  SOLO_P2M_DMA_INTERVAL(n)		((n)<<6)/* N*32 clocks */
#define	  SOLO_P2M_CSC_BYTE_REORDER		(1<<5)	/* BGR -> RGB */
/* 0:r=[14:10] g=[9:5] b=[4:0], 1:r=[15:11] g=[10:5] b=[4:0] */
#define	  SOLO_P2M_CSC_16BIT_565		(1<<4)
#define	  SOLO_P2M_UV_SWAP			(1<<3)
#define	  SOLO_P2M_PCI_MASTER_MODE		(1<<2)
#define	  SOLO_P2M_DESC_INTR_OPT		(1<<1)	/* 1:Empty, 0:Each */
#define	  SOLO_P2M_DESC_MODE			(1<<0)

#define SOLO_P2M_DES_ADR(n)			(0x0084 + ((n)*0x20))

#define SOLO_P2M_DESC_ID(n)			(0x0088 + ((n)*0x20))
#define	  SOLO_P2M_UPDATE_ID(n)			((n)<<0)

#define SOLO_P2M_STATUS(n)			(0x008C + ((n)*0x20))
#define	  SOLO_P2M_COMMAND_DONE			(1<<8)
#define	  SOLO_P2M_CURRENT_ID(stat)		(0xff & (stat))

#define SOLO_P2M_CONTROL(n)			(0x0090 + ((n)*0x20))
#define	  SOLO_P2M_PCI_INC(n)			((n)<<20)
#define	  SOLO_P2M_REPEAT(n)			((n)<<10)
/* 0:512, 1:256, 2:128, 3:64, 4:32, 5:128(2page) */
#define	  SOLO_P2M_BURST_SIZE(n)		((n)<<7)
#define	    SOLO_P2M_BURST_512			0
#define	    SOLO_P2M_BURST_256			1
#define	    SOLO_P2M_BURST_128			2
#define	    SOLO_P2M_BURST_64			3
#define	    SOLO_P2M_BURST_32			4
#define	  SOLO_P2M_CSC_16BIT			(1<<6)	/* 0:24bit, 1:16bit */
/* 0:Y[0]<-0(OFF), 1:Y[0]<-1(ON), 2:Y[0]<-G[0], 3:Y[0]<-Bit[15] */
#define	  SOLO_P2M_ALPHA_MODE(n)		((n)<<4)
#define	  SOLO_P2M_CSC_ON			(1<<3)
#define	  SOLO_P2M_INTERRUPT_REQ		(1<<2)
#define	  SOLO_P2M_WRITE			(1<<1)
#define	  SOLO_P2M_TRANS_ON			(1<<0)

#define SOLO_P2M_EXT_CFG(n)			(0x0094 + ((n)*0x20))
#define	  SOLO_P2M_EXT_INC(n)			((n)<<20)
#define	  SOLO_P2M_COPY_SIZE(n)			((n)<<0)

#define SOLO_P2M_TAR_ADR(n)			(0x0098 + ((n)*0x20))

#define SOLO_P2M_EXT_ADR(n)			(0x009C + ((n)*0x20))

#define SOLO_P2M_BUFFER(i)			(0x2000 + ((i)*4))

#define SOLO_VI_CH_SWITCH_0			0x0100
#define SOLO_VI_CH_SWITCH_1			0x0104
#define SOLO_VI_CH_SWITCH_2			0x0108

#define	SOLO_VI_CH_ENA				0x010C
#define	SOLO_VI_CH_FORMAT			0x0110
#define	  SOLO_VI_FD_SEL_MASK(n)		((n)<<16)
#define	  SOLO_VI_PROG_MASK(n)			((n)<<0)

#define SOLO_VI_FMT_CFG				0x0114
#define	  SOLO_VI_FMT_CHECK_VCOUNT		(1<<31)
#define	  SOLO_VI_FMT_CHECK_HCOUNT		(1<<30)
#define   SOLO_VI_FMT_TEST_SIGNAL		(1<<28)

#define	SOLO_VI_PAGE_SW				0x0118
#define	  SOLO_FI_INV_DISP_LIVE(n)		((n)<<8)
#define	  SOLO_FI_INV_DISP_OUT(n)		((n)<<7)
#define	  SOLO_DISP_SYNC_FI(n)			((n)<<6)
#define	  SOLO_PIP_PAGE_ADD(n)			((n)<<3)
#define	  SOLO_NORMAL_PAGE_ADD(n)		((n)<<0)

#define	SOLO_VI_ACT_I_P				0x011C
#define	SOLO_VI_ACT_I_S				0x0120
#define	SOLO_VI_ACT_P				0x0124
#define	  SOLO_VI_FI_INVERT			(1<<31)
#define	  SOLO_VI_H_START(n)			((n)<<21)
#define	  SOLO_VI_V_START(n)			((n)<<11)
#define	  SOLO_VI_V_STOP(n)			((n)<<0)

#define SOLO_VI_STATUS0				0x0128
#define   SOLO_VI_STATUS0_PAGE(__n)		((__n) & 0x07)
#define SOLO_VI_STATUS1				0x012C

/* XXX: Might be better off in kernel level disp.h */
#define DISP_PAGE(stat)				((stat) & 0x07)

#define SOLO_VI_PB_CONFIG			0x0130
#define	  SOLO_VI_PB_USER_MODE			(1<<1)
#define	  SOLO_VI_PB_PAL			(1<<0)
#define SOLO_VI_PB_RANGE_HV			0x0134
#define	  SOLO_VI_PB_HSIZE(h)			((h)<<12)
#define	  SOLO_VI_PB_VSIZE(v)			((v)<<0)
#define SOLO_VI_PB_ACT_H			0x0138
#define	  SOLO_VI_PB_HSTART(n)			((n)<<12)
#define	  SOLO_VI_PB_HSTOP(n)			((n)<<0)
#define SOLO_VI_PB_ACT_V			0x013C
#define	  SOLO_VI_PB_VSTART(n)			((n)<<12)
#define	  SOLO_VI_PB_VSTOP(n)			((n)<<0)

#define	SOLO_VI_MOSAIC(ch)			(0x0140 + ((ch)*4))
#define	  SOLO_VI_MOSAIC_SX(x)			((x)<<24)
#define	  SOLO_VI_MOSAIC_EX(x)			((x)<<16)
#define	  SOLO_VI_MOSAIC_SY(x)			((x)<<8)
#define	  SOLO_VI_MOSAIC_EY(x)			((x)<<0)

#define	SOLO_VI_WIN_CTRL0(ch)			(0x0180 + ((ch)*4))
#define	SOLO_VI_WIN_CTRL1(ch)			(0x01C0 + ((ch)*4))

#define	  SOLO_VI_WIN_CHANNEL(n)		((n)<<28)

#define	  SOLO_VI_WIN_PIP(n)			((n)<<27)
#define	  SOLO_VI_WIN_SCALE(n)			((n)<<24)

#define	  SOLO_VI_WIN_SX(x)			((x)<<12)
#define	  SOLO_VI_WIN_EX(x)			((x)<<0)

#define	  SOLO_VI_WIN_SY(x)			((x)<<12)
#define	  SOLO_VI_WIN_EY(x)			((x)<<0)

#define	SOLO_VI_WIN_ON(ch)			(0x0200 + ((ch)*4))

#define SOLO_VI_WIN_SW				0x0240
#define SOLO_VI_WIN_LIVE_AUTO_MUTE		0x0244

#define	SOLO_VI_MOT_ADR				0x0260
#define	  SOLO_VI_MOTION_EN(mask)		((mask)<<16)
#define	SOLO_VI_MOT_CTRL			0x0264
#define	  SOLO_VI_MOTION_FRAME_COUNT(n)		((n)<<24)
#define	  SOLO_VI_MOTION_SAMPLE_LENGTH(n)	((n)<<16)
#define	  SOLO_VI_MOTION_INTR_START_STOP	(1<<15)
#define	  SOLO_VI_MOTION_FREEZE_DATA		(1<<14)
#define	  SOLO_VI_MOTION_SAMPLE_COUNT(n)	((n)<<0)
#define SOLO_VI_MOT_CLEAR			0x0268
#define SOLO_VI_MOT_STATUS			0x026C
#define	  SOLO_VI_MOTION_CNT(n)			((n)<<0)
#define SOLO_VI_MOTION_BORDER			0x0270
#define SOLO_VI_MOTION_BAR			0x0274
#define	  SOLO_VI_MOTION_Y_SET			(1<<29)
#define	  SOLO_VI_MOTION_Y_ADD			(1<<28)
#define	  SOLO_VI_MOTION_CB_SET			(1<<27)
#define	  SOLO_VI_MOTION_CB_ADD			(1<<26)
#define	  SOLO_VI_MOTION_CR_SET			(1<<25)
#define	  SOLO_VI_MOTION_CR_ADD			(1<<24)
#define	  SOLO_VI_MOTION_Y_VALUE(v)		((v)<<16)
#define	  SOLO_VI_MOTION_CB_VALUE(v)		((v)<<8)
#define	  SOLO_VI_MOTION_CR_VALUE(v)		((v)<<0)

#define	SOLO_VO_FMT_ENC				0x0300
#define	  SOLO_VO_SCAN_MODE_PROGRESSIVE		(1<<31)
#define	  SOLO_VO_FMT_TYPE_PAL			(1<<30)
#define   SOLO_VO_FMT_TYPE_NTSC			0
#define	  SOLO_VO_USER_SET			(1<<29)

#define	  SOLO_VO_FI_CHANGE			(1<<20)
#define	  SOLO_VO_USER_COLOR_SET_VSYNC		(1<<19)
#define	  SOLO_VO_USER_COLOR_SET_HSYNC		(1<<18)
#define	  SOLO_VO_USER_COLOR_SET_NAH		(1<<17)
#define	  SOLO_VO_USER_COLOR_SET_NAV		(1<<16)
#define	  SOLO_VO_NA_COLOR_Y(Y)			((Y)<<8)
#define	  SOLO_VO_NA_COLOR_CB(CB)		(((CB)/16)<<4)
#define	  SOLO_VO_NA_COLOR_CR(CR)		(((CR)/16)<<0)

#define	SOLO_VO_ACT_H				0x0304
#define	  SOLO_VO_H_BLANK(n)			((n)<<22)
#define	  SOLO_VO_H_START(n)			((n)<<11)
#define	  SOLO_VO_H_STOP(n)			((n)<<0)

#define	SOLO_VO_ACT_V				0x0308
#define	  SOLO_VO_V_BLANK(n)			((n)<<22)
#define	  SOLO_VO_V_START(n)			((n)<<11)
#define	  SOLO_VO_V_STOP(n)			((n)<<0)

#define	SOLO_VO_RANGE_HV			0x030C
#define	  SOLO_VO_SYNC_INVERT			(1<<24)
#define	  SOLO_VO_HSYNC_INVERT			(1<<23)
#define	  SOLO_VO_VSYNC_INVERT			(1<<22)
#define	  SOLO_VO_H_LEN(n)			((n)<<11)
#define	  SOLO_VO_V_LEN(n)			((n)<<0)

#define	SOLO_VO_DISP_CTRL			0x0310
#define	  SOLO_VO_DISP_ON			(1<<31)
#define	  SOLO_VO_DISP_ERASE_COUNT(n)		((n&0xf)<<24)
#define	  SOLO_VO_DISP_DOUBLE_SCAN		(1<<22)
#define	  SOLO_VO_DISP_SINGLE_PAGE		(1<<21)
#define	  SOLO_VO_DISP_BASE(n)			(((n)>>16) & 0xffff)

#define SOLO_VO_DISP_ERASE			0x0314
#define	  SOLO_VO_DISP_ERASE_ON			(1<<0)

#define	SOLO_VO_ZOOM_CTRL			0x0318
#define	  SOLO_VO_ZOOM_VER_ON			(1<<24)
#define	  SOLO_VO_ZOOM_HOR_ON			(1<<23)
#define	  SOLO_VO_ZOOM_V_COMP			(1<<22)
#define	  SOLO_VO_ZOOM_SX(h)			(((h)/2)<<11)
#define	  SOLO_VO_ZOOM_SY(v)			(((v)/2)<<0)

#define SOLO_VO_FREEZE_CTRL			0x031C
#define	  SOLO_VO_FREEZE_ON			(1<<1)
#define	  SOLO_VO_FREEZE_INTERPOLATION		(1<<0)

#define	SOLO_VO_BKG_COLOR			0x0320
#define	  SOLO_BG_Y(y)				((y)<<16)
#define	  SOLO_BG_U(u)				((u)<<8)
#define	  SOLO_BG_V(v)				((v)<<0)

#define	SOLO_VO_DEINTERLACE			0x0324
#define	  SOLO_VO_DEINTERLACE_THRESHOLD(n)	((n)<<8)
#define	  SOLO_VO_DEINTERLACE_EDGE_VALUE(n)	((n)<<0)

#define SOLO_VO_BORDER_LINE_COLOR		0x0330
#define SOLO_VO_BORDER_FILL_COLOR		0x0334
#define SOLO_VO_BORDER_LINE_MASK		0x0338
#define SOLO_VO_BORDER_FILL_MASK		0x033c

#define SOLO_VO_BORDER_X(n)			(0x0340+((n)*4))
#define SOLO_VO_BORDER_Y(n)			(0x0354+((n)*4))

#define SOLO_VO_CELL_EXT_SET			0x0368
#define SOLO_VO_CELL_EXT_START			0x036c
#define SOLO_VO_CELL_EXT_STOP			0x0370

#define SOLO_VO_CELL_EXT_SET2			0x0374
#define SOLO_VO_CELL_EXT_START2			0x0378
#define SOLO_VO_CELL_EXT_STOP2			0x037c

#define SOLO_VO_RECTANGLE_CTRL(n)		(0x0368+((n)*12))
#define SOLO_VO_RECTANGLE_START(n)		(0x036c+((n)*12))
#define SOLO_VO_RECTANGLE_STOP(n)		(0x0370+((n)*12))

#define SOLO_VO_CURSOR_POS			(0x0380)
#define SOLO_VO_CURSOR_CLR			(0x0384)
#define SOLO_VO_CURSOR_CLR2			(0x0388)
#define SOLO_VO_CURSOR_MASK(id)			(0x0390+((id)*4))

#define SOLO_VO_EXPANSION(id)			(0x0250+((id)*4))

#define	SOLO_OSG_CONFIG				0x03E0
#define	  SOLO_VO_OSG_ON			(1<<31)
#define	  SOLO_VO_OSG_COLOR_MUTE		(1<<28)
#define	  SOLO_VO_OSG_ALPHA_RATE(n)		((n)<<22)
#define	  SOLO_VO_OSG_ALPHA_BG_RATE(n)		((n)<<16)
#define	  SOLO_VO_OSG_BASE(offset)		(((offset)>>16)&0xffff)

#define SOLO_OSG_ERASE				0x03E4
#define	  SOLO_OSG_ERASE_ON			(0x80)
#define	  SOLO_OSG_ERASE_OFF			(0x00)

#define SOLO_VO_OSG_BLINK			0x03E8
#define	  SOLO_VO_OSG_BLINK_ON			(1<<1)
#define	  SOLO_VO_OSG_BLINK_INTREVAL18		(1<<0)

#define SOLO_CAP_BASE				0x0400
#define	  SOLO_CAP_MAX_PAGE(n)			((n)<<16)
#define	  SOLO_CAP_BASE_ADDR(n)			((n)<<0)
#define SOLO_CAP_BTW				0x0404
#define	  SOLO_CAP_PROG_BANDWIDTH(n)		((n)<<8)
#define	  SOLO_CAP_MAX_BANDWIDTH(n)		((n)<<0)

#define SOLO_DIM_SCALE1				0x0408
#define SOLO_DIM_SCALE2				0x040C
#define SOLO_DIM_SCALE3				0x0410
#define SOLO_DIM_SCALE4				0x0414
#define SOLO_DIM_SCALE5				0x0418
#define	  SOLO_DIM_V_MB_NUM_FRAME(n)		((n)<<16)
#define	  SOLO_DIM_V_MB_NUM_FIELD(n)		((n)<<8)
#define	  SOLO_DIM_H_MB_NUM(n)			((n)<<0)

#define SOLO_DIM_PROG				0x041C
#define SOLO_CAP_STATUS				0x0420

#define SOLO_CAP_CH_SCALE(ch)			(0x0440+((ch)*4))
#define SOLO_CAP_CH_COMP_ENA_E(ch)		(0x0480+((ch)*4))
#define SOLO_CAP_CH_INTV(ch)			(0x04C0+((ch)*4))
#define SOLO_CAP_CH_INTV_E(ch)			(0x0500+((ch)*4))


#define SOLO_VE_CFG0				0x0610
#define	  SOLO_VE_TWO_PAGE_MODE			(1<<31)
#define	  SOLO_VE_INTR_CTRL(n)			((n)<<24)
#define	  SOLO_VE_BLOCK_SIZE(n)			((n)<<16)
#define	  SOLO_VE_BLOCK_BASE(n)			((n)<<0)

#define SOLO_VE_CFG1				0x0614
#define	  SOLO_VE_BYTE_ALIGN(n)			((n)<<24)
#define	  SOLO_VE_INSERT_INDEX			(1<<18)
#define	  SOLO_VE_MOTION_MODE(n)		((n)<<16)
#define	  SOLO_VE_MOTION_BASE(n)		((n)<<0)
#define   SOLO_VE_MPEG_SIZE_H(n)		((n)<<28) /* 6110 Only */
#define   SOLO_VE_JPEG_SIZE_H(n)		((n)<<20) /* 6110 Only */
#define   SOLO_VE_INSERT_INDEX_JPEG		(1<<19)   /* 6110 Only */

#define SOLO_VE_WMRK_POLY			0x061C
#define SOLO_VE_VMRK_INIT_KEY			0x0620
#define SOLO_VE_WMRK_STRL			0x0624
#define SOLO_VE_ENCRYP_POLY			0x0628
#define SOLO_VE_ENCRYP_INIT			0x062C
#define SOLO_VE_ATTR				0x0630
#define	  SOLO_VE_LITTLE_ENDIAN			(1<<31)
#define	  SOLO_COMP_ATTR_RN			(1<<30)
#define	  SOLO_COMP_ATTR_FCODE(n)		((n)<<27)
#define	  SOLO_COMP_TIME_INC(n)			((n)<<25)
#define	  SOLO_COMP_TIME_WIDTH(n)		((n)<<21)
#define	  SOLO_DCT_INTERVAL(n)			((n)<<16)
#define SOLO_VE_COMPT_MOT			0x0634 /* 6110 Only */

#define SOLO_VE_STATE(n)			(0x0640+((n)*4))

#define SOLO_VE_JPEG_QP_TBL			0x0670
#define SOLO_VE_JPEG_QP_CH_L			0x0674
#define SOLO_VE_JPEG_QP_CH_H			0x0678
#define SOLO_VE_JPEG_CFG			0x067C
#define SOLO_VE_JPEG_CTRL			0x0680
#define SOLO_VE_CODE_ENCRYPT			0x0684 /* 6110 Only */
#define SOLO_VE_JPEG_CFG1			0x0688 /* 6110 Only */
#define SOLO_VE_WMRK_ENABLE			0x068C /* 6110 Only */
#define SOLO_VE_OSD_CH				0x0690
#define SOLO_VE_OSD_BASE			0x0694
#define SOLO_VE_OSD_CLR				0x0698
#define SOLO_VE_OSD_OPT				0x069C
#define   SOLO_VE_OSD_V_DOUBLE			(1<<16) /* 6110 Only */
#define   SOLO_VE_OSD_H_SHADOW			(1<<15)
#define   SOLO_VE_OSD_V_SHADOW			(1<<14)
#define   SOLO_VE_OSD_H_OFFSET(n)		((n & 0x7f)<<7)
#define   SOLO_VE_OSD_V_OFFSET(n)		(n & 0x7f)

#define SOLO_VE_CH_INTL(ch)			(0x0700+((ch)*4))
#define SOLO_VE_CH_MOT(ch)			(0x0740+((ch)*4))
#define SOLO_VE_CH_QP(ch)			(0x0780+((ch)*4))
#define SOLO_VE_CH_QP_E(ch)			(0x07C0+((ch)*4))
#define SOLO_VE_CH_GOP(ch)			(0x0800+((ch)*4))
#define SOLO_VE_CH_GOP_E(ch)			(0x0840+((ch)*4))
#define SOLO_VE_CH_REF_BASE(ch)			(0x0880+((ch)*4))
#define SOLO_VE_CH_REF_BASE_E(ch)		(0x08C0+((ch)*4))

#define SOLO_VE_MPEG4_QUE(n)			(0x0A00+((n)*8))
#define SOLO_VE_JPEG_QUE(n)			(0x0A04+((n)*8))

#define SOLO_VD_CFG0				0x0900
#define	  SOLO_VD_CFG_NO_WRITE_NO_WINDOW	(1<<24)
#define	  SOLO_VD_CFG_BUSY_WIAT_CODE		(1<<23)
#define	  SOLO_VD_CFG_BUSY_WIAT_REF		(1<<22)
#define	  SOLO_VD_CFG_BUSY_WIAT_RES		(1<<21)
#define	  SOLO_VD_CFG_BUSY_WIAT_MS		(1<<20)
#define	  SOLO_VD_CFG_SINGLE_MODE		(1<<18)
#define	  SOLO_VD_CFG_SCAL_MANUAL		(1<<17)
#define	  SOLO_VD_CFG_USER_PAGE_CTRL		(1<<16)
#define	  SOLO_VD_CFG_LITTLE_ENDIAN		(1<<15)
#define	  SOLO_VD_CFG_START_FI			(1<<14)
#define	  SOLO_VD_CFG_ERR_LOCK			(1<<13)
#define	  SOLO_VD_CFG_ERR_INT_ENA		(1<<12)
#define	  SOLO_VD_CFG_TIME_WIDTH(n)		((n)<<8)
#define	  SOLO_VD_CFG_DCT_INTERVAL(n)		((n)<<0)

#define SOLO_VD_CFG1				0x0904

#define	SOLO_VD_DEINTERLACE			0x0908
#define	  SOLO_VD_DEINTERLACE_THRESHOLD(n)	((n)<<8)
#define	  SOLO_VD_DEINTERLACE_EDGE_VALUE(n)	((n)<<0)

#define SOLO_VD_CODE_ADR			0x090C

#define SOLO_VD_CTRL				0x0910
#define	  SOLO_VD_OPER_ON			(1<<31)
#define	  SOLO_VD_MAX_ITEM(n)			((n)<<0)

#define SOLO_VD_STATUS0				0x0920
#define	  SOLO_VD_STATUS0_INTR_ACK		(1<<22)
#define	  SOLO_VD_STATUS0_INTR_EMPTY		(1<<21)
#define	  SOLO_VD_STATUS0_INTR_ERR		(1<<20)

#define SOLO_VD_STATUS1				0x0924

#define SOLO_VD_IDX0				0x0930
#define	  SOLO_VD_IDX_INTERLACE			(1<<30)
#define	  SOLO_VD_IDX_CHANNEL(n)		((n)<<24)
#define	  SOLO_VD_IDX_SIZE(n)			((n)<<0)

#define SOLO_VD_IDX1				0x0934
#define	  SOLO_VD_IDX_SRC_SCALE(n)		((n)<<28)
#define	  SOLO_VD_IDX_WINDOW(n)			((n)<<24)
#define	  SOLO_VD_IDX_DEINTERLACE		(1<<16)
#define	  SOLO_VD_IDX_H_BLOCK(n)		((n)<<8)
#define	  SOLO_VD_IDX_V_BLOCK(n)		((n)<<0)

#define SOLO_VD_IDX2				0x0938
#define	  SOLO_VD_IDX_REF_BASE_SIDE		(1<<31)
#define	  SOLO_VD_IDX_REF_BASE(n)		(((n)>>16)&0xffff)

#define SOLO_VD_IDX3				0x093C
#define	  SOLO_VD_IDX_DISP_SCALE(n)		((n)<<28)
#define	  SOLO_VD_IDX_INTERLACE_WR		(1<<27)
#define	  SOLO_VD_IDX_INTERPOL			(1<<26)
#define	  SOLO_VD_IDX_HOR2X			(1<<25)
#define	  SOLO_VD_IDX_OFFSET_X(n)		((n)<<12)
#define	  SOLO_VD_IDX_OFFSET_Y(n)		((n)<<0)

#define SOLO_VD_IDX4				0x0940
#define	  SOLO_VD_IDX_DEC_WR_PAGE(n)		((n)<<8)
#define	  SOLO_VD_IDX_DISP_RD_PAGE(n)		((n)<<0)

#define SOLO_VD_WR_PAGE(n)			(0x03F0 + ((n) * 4))


#define SOLO_GPIO_CONFIG_0			0x0B00
#define SOLO_GPIO_CONFIG_1			0x0B04
#define SOLO_GPIO_DATA_OUT			0x0B08
#define SOLO_GPIO_DATA_IN			0x0B0C
#define SOLO_GPIO_INT_ACK_STA			0x0B10
#define SOLO_GPIO_INT_ENA			0x0B14
#define SOLO_GPIO_INT_CFG_0			0x0B18
#define SOLO_GPIO_INT_CFG_1			0x0B1C


#define SOLO_IIC_CFG				0x0B20
#define	  SOLO_IIC_ENABLE			(1<<8)
#define	  SOLO_IIC_PRESCALE(n)			((n)<<0)

#define SOLO_IIC_CTRL				0x0B24
#define	  SOLO_IIC_AUTO_CLEAR			(1<<20)
#define	  SOLO_IIC_STATE_RX_ACK			(1<<19)
#define	  SOLO_IIC_STATE_BUSY			(1<<18)
#define	  SOLO_IIC_STATE_SIG_ERR		(1<<17)
#define	  SOLO_IIC_STATE_TRNS			(1<<16)
#define	  SOLO_IIC_CH_SET(n)			((n)<<5)
#define	  SOLO_IIC_ACK_EN			(1<<4)
#define	  SOLO_IIC_START			(1<<3)
#define	  SOLO_IIC_STOP				(1<<2)
#define	  SOLO_IIC_READ				(1<<1)
#define	  SOLO_IIC_WRITE			(1<<0)

#define SOLO_IIC_TXD				0x0B28
#define SOLO_IIC_RXD				0x0B2C

/*
 *	UART REGISTER
 */
#define SOLO_UART_CONTROL(n)			(0x0BA0 + ((n)*0x20))
#define	  SOLO_UART_CLK_DIV(n)			((n)<<24)
#define	  SOLO_MODEM_CTRL_EN			(1<<20)
#define	  SOLO_PARITY_ERROR_DROP		(1<<18)
#define	  SOLO_IRQ_ERR_EN			(1<<17)
#define	  SOLO_IRQ_RX_EN			(1<<16)
#define	  SOLO_IRQ_TX_EN			(1<<15)
#define	  SOLO_RX_EN				(1<<14)
#define	  SOLO_TX_EN				(1<<13)
#define	  SOLO_UART_HALF_DUPLEX			(1<<12)
#define	  SOLO_UART_LOOPBACK			(1<<11)

#define	  SOLO_BAUDRATE_230400			((0<<9)|(0<<6))
#define	  SOLO_BAUDRATE_115200			((0<<9)|(1<<6))
#define	  SOLO_BAUDRATE_57600			((0<<9)|(2<<6))
#define	  SOLO_BAUDRATE_38400			((0<<9)|(3<<6))
#define	  SOLO_BAUDRATE_19200			((0<<9)|(4<<6))
#define	  SOLO_BAUDRATE_9600			((0<<9)|(5<<6))
#define	  SOLO_BAUDRATE_4800			((0<<9)|(6<<6))
#define	  SOLO_BAUDRATE_2400			((1<<9)|(6<<6))
#define	  SOLO_BAUDRATE_1200			((2<<9)|(6<<6))
#define	  SOLO_BAUDRATE_300			((3<<9)|(6<<6))

#define	  SOLO_UART_DATA_BIT_8			(3<<4)
#define	  SOLO_UART_DATA_BIT_7			(2<<4)
#define	  SOLO_UART_DATA_BIT_6			(1<<4)
#define	  SOLO_UART_DATA_BIT_5			(0<<4)

#define	  SOLO_UART_STOP_BIT_1			(0<<2)
#define	  SOLO_UART_STOP_BIT_2			(1<<2)

#define	  SOLO_UART_PARITY_NONE			(0<<0)
#define	  SOLO_UART_PARITY_EVEN			(2<<0)
#define	  SOLO_UART_PARITY_ODD			(3<<0)

#define SOLO_UART_STATUS(n)			(0x0BA4 + ((n)*0x20))
#define	  SOLO_UART_CTS				(1<<15)
#define	  SOLO_UART_RX_BUSY			(1<<14)
#define	  SOLO_UART_OVERRUN			(1<<13)
#define	  SOLO_UART_FRAME_ERR			(1<<12)
#define	  SOLO_UART_PARITY_ERR			(1<<11)
#define	  SOLO_UART_TX_BUSY			(1<<5)

#define	  SOLO_UART_RX_BUFF_CNT(stat)		(((stat)>>6) & 0x1f)
#define	  SOLO_UART_RX_BUFF_SIZE		8
#define	  SOLO_UART_TX_BUFF_CNT(stat)		(((stat)>>0) & 0x1f)
#define	  SOLO_UART_TX_BUFF_SIZE		8

#define SOLO_UART_TX_DATA(n)			(0x0BA8 + ((n)*0x20))
#define	  SOLO_UART_TX_DATA_PUSH		(1<<8)
#define SOLO_UART_RX_DATA(n)			(0x0BAC + ((n)*0x20))
#define	  SOLO_UART_RX_DATA_POP			(1<<8)

#define SOLO_TIMER_CLOCK_NUM			0x0be0
#define SOLO_TIMER_USEC				0x0be8
#define SOLO_TIMER_SEC				0x0bec
#define SOLO_TIMER_USEC_LSB			0x0d20 /* 6110 Only */

#define SOLO_AUDIO_CONTROL			0x0D00
#define	  SOLO_AUDIO_ENABLE			(1<<31)
#define	  SOLO_AUDIO_MASTER_MODE		(1<<30)
#define	  SOLO_AUDIO_I2S_MODE			(1<<29)
#define	  SOLO_AUDIO_I2S_LR_SWAP		(1<<27)
#define	  SOLO_AUDIO_I2S_8BIT			(1<<26)
#define	  SOLO_AUDIO_I2S_MULTI(n)		((n)<<24)
#define	  SOLO_AUDIO_MIX_9TO0			(1<<23)
#define	  SOLO_AUDIO_DEC_9TO0_VOL(n)		((n)<<20)
#define	  SOLO_AUDIO_MIX_19TO10			(1<<19)
#define	  SOLO_AUDIO_DEC_19TO10_VOL(n)		((n)<<16)
#define	  SOLO_AUDIO_MODE(n)			((n)<<0)
#define SOLO_AUDIO_SAMPLE			0x0D04
#define	  SOLO_AUDIO_EE_MODE_ON			(1<<30)
#define	  SOLO_AUDIO_EE_ENC_CH(ch)		((ch)<<25)
#define	  SOLO_AUDIO_BITRATE(n)			((n)<<16)
#define	  SOLO_AUDIO_CLK_DIV(n)			((n)<<0)
#define SOLO_AUDIO_FDMA_INTR			0x0D08
#define	  SOLO_AUDIO_FDMA_INTERVAL(n)		((n)<<19)
#define	  SOLO_AUDIO_INTR_ORDER(n)		((n)<<16)
#define	  SOLO_AUDIO_FDMA_BASE(n)		((n)<<0)
#define SOLO_AUDIO_EVOL_0			0x0D0C
#define SOLO_AUDIO_EVOL_1			0x0D10
#define	  SOLO_AUDIO_EVOL(ch, value)		((value)<<((ch)%10))
#define SOLO_AUDIO_STA				0x0D14

/*
 * Watchdog configuration
 */
#define SOLO_WATCHDOG				0x0be4
#define SOLO_WATCHDOG_SET(status, sec)		(status << 8 | (sec & 0xff))

#endif /* __SOLO6X10_REGISTERS_H */
