Anforderungen  |   Konzepte  |   Entwurf  |   Entwicklung  |   Qualitätssicherung  |   Lebenszyklus  |   Steuerung
 
 
 
 


Quelle  solo6x10-regs.h   Sprache: C

 
/* SPDX-License-Identifier: GPL-2.0-or-later */
/*
 * Copyright (C) 2010-2013 Bluecherry, LLC <https://www.bluecherrydvr.com>
 *
 * Original author:
 * Ben Collins <bcollins@ubuntu.com>
 *
 * Additional work by:
 * John Brooks <john.brooks@bluecherry.net>
 */


#ifndef __SOLO6X10_REGISTERS_H
#define __SOLO6X10_REGISTERS_H

#include <linux/bitops.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 BIT(5)
#define   SOLO_DMA_CTRL_STROBE_SELECT  BIT(4)
#define   SOLO_DMA_CTRL_READ_DATA_SELECT BIT(3)
#define   SOLO_DMA_CTRL_READ_CLK_SELECT  BIT(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   BIT(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)   BIT((n) + 17)
#define   SOLO_IRQ_GPIO    BIT(16)
#define   SOLO_IRQ_VIDEO_LOSS   BIT(15)
#define   SOLO_IRQ_VIDEO_IN   BIT(14)
#define   SOLO_IRQ_MOTION   BIT(13)
#define   SOLO_IRQ_ATA_CMD   BIT(12)
#define   SOLO_IRQ_ATA_DIR   BIT(11)
#define   SOLO_IRQ_PCI_ERR   BIT(10)
#define   SOLO_IRQ_PS2_1   BIT(9)
#define   SOLO_IRQ_PS2_0   BIT(8)
#define   SOLO_IRQ_SPI    BIT(7)
#define   SOLO_IRQ_IIC    BIT(6)
#define   SOLO_IRQ_UART(n)   BIT((n) + 4)
#define   SOLO_IRQ_G723    BIT(3)
#define   SOLO_IRQ_DECODER   BIT(1)
#define   SOLO_IRQ_ENCODER   BIT(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   BIT(7)
#define   SOLO_EEPROM_CS   BIT(3)
#define   SOLO_EEPROM_CLK   BIT(2)
#define   SOLO_EEPROM_DO   BIT(1)
#define   SOLO_EEPROM_DI   BIT(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  BIT(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  BIT(4)
#define   SOLO_P2M_UV_SWAP   BIT(3)
#define   SOLO_P2M_PCI_MASTER_MODE  BIT(2)
#define   SOLO_P2M_DESC_INTR_OPT  BIT(1) /* 1:Empty, 0:Each */
#define   SOLO_P2M_DESC_MODE   BIT(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   BIT(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   BIT(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   BIT(3)
#define   SOLO_P2M_INTERRUPT_REQ  BIT(2)
#define   SOLO_P2M_WRITE   BIT(1)
#define   SOLO_P2M_TRANS_ON   BIT(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  BIT(31)
#define   SOLO_VI_FMT_CHECK_HCOUNT  BIT(30)
#define   SOLO_VI_FMT_TEST_SIGNAL  BIT(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   BIT(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   BIT(1)
#define   SOLO_VI_PB_PAL   BIT(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 BIT(15)
#define   SOLO_VI_MOTION_FREEZE_DATA  BIT(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   BIT(29)
#define   SOLO_VI_MOTION_Y_ADD   BIT(28)
#define   SOLO_VI_MOTION_CB_SET   BIT(27)
#define   SOLO_VI_MOTION_CB_ADD   BIT(26)
#define   SOLO_VI_MOTION_CR_SET   BIT(25)
#define   SOLO_VI_MOTION_CR_ADD   BIT(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  BIT(31)
#define   SOLO_VO_FMT_TYPE_PAL   BIT(30)
#define   SOLO_VO_FMT_TYPE_NTSC   0
#define   SOLO_VO_USER_SET   BIT(29)

#define   SOLO_VO_FI_CHANGE   BIT(20)
#define   SOLO_VO_USER_COLOR_SET_VSYNC  BIT(19)
#define   SOLO_VO_USER_COLOR_SET_HSYNC  BIT(18)
#define   SOLO_VO_USER_COLOR_SET_NAH  BIT(17)
#define   SOLO_VO_USER_COLOR_SET_NAV  BIT(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   BIT(24)
#define   SOLO_VO_HSYNC_INVERT   BIT(23)
#define   SOLO_VO_VSYNC_INVERT   BIT(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   BIT(31)
#define   SOLO_VO_DISP_ERASE_COUNT(n)  ((n&0xf)<<24)
#define   SOLO_VO_DISP_DOUBLE_SCAN  BIT(22)
#define   SOLO_VO_DISP_SINGLE_PAGE  BIT(21)
#define   SOLO_VO_DISP_BASE(n)   (((n)>>16) & 0xffff)

#define SOLO_VO_DISP_ERASE   0x0314
#define   SOLO_VO_DISP_ERASE_ON   BIT(0)

#define SOLO_VO_ZOOM_CTRL   0x0318
#define   SOLO_VO_ZOOM_VER_ON   BIT(24)
#define   SOLO_VO_ZOOM_HOR_ON   BIT(23)
#define   SOLO_VO_ZOOM_V_COMP   BIT(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   BIT(1)
#define   SOLO_VO_FREEZE_INTERPOLATION  BIT(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   BIT(31)
#define   SOLO_VO_OSG_COLOR_MUTE  BIT(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   BIT(1)
#define   SOLO_VO_OSG_BLINK_INTREVAL18  BIT(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   BIT(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   BIT(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  BIT(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   BIT(31)
#define   SOLO_COMP_ATTR_RN   BIT(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   BIT(16) /* 6110 Only */
#define   SOLO_VE_OSD_H_SHADOW   BIT(15)
#define   SOLO_VE_OSD_V_SHADOW   BIT(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 BIT(24)
#define   SOLO_VD_CFG_BUSY_WIAT_CODE  BIT(23)
#define   SOLO_VD_CFG_BUSY_WIAT_REF  BIT(22)
#define   SOLO_VD_CFG_BUSY_WIAT_RES  BIT(21)
#define   SOLO_VD_CFG_BUSY_WIAT_MS  BIT(20)
#define   SOLO_VD_CFG_SINGLE_MODE  BIT(18)
#define   SOLO_VD_CFG_SCAL_MANUAL  BIT(17)
#define   SOLO_VD_CFG_USER_PAGE_CTRL  BIT(16)
#define   SOLO_VD_CFG_LITTLE_ENDIAN  BIT(15)
#define   SOLO_VD_CFG_START_FI   BIT(14)
#define   SOLO_VD_CFG_ERR_LOCK   BIT(13)
#define   SOLO_VD_CFG_ERR_INT_ENA  BIT(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   BIT(31)
#define   SOLO_VD_MAX_ITEM(n)   ((n)<<0)

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

#define SOLO_VD_STATUS1    0x0924

#define SOLO_VD_IDX0    0x0930
#define   SOLO_VD_IDX_INTERLACE   BIT(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  BIT(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  BIT(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  BIT(27)
#define   SOLO_VD_IDX_INTERPOL   BIT(26)
#define   SOLO_VD_IDX_HOR2X   BIT(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   BIT(8)
#define   SOLO_IIC_PRESCALE(n)   ((n)<<0)

#define SOLO_IIC_CTRL    0x0B24
#define   SOLO_IIC_AUTO_CLEAR   BIT(20)
#define   SOLO_IIC_STATE_RX_ACK   BIT(19)
#define   SOLO_IIC_STATE_BUSY   BIT(18)
#define   SOLO_IIC_STATE_SIG_ERR  BIT(17)
#define   SOLO_IIC_STATE_TRNS   BIT(16)
#define   SOLO_IIC_CH_SET(n)   ((n)<<5)
#define   SOLO_IIC_ACK_EN   BIT(4)
#define   SOLO_IIC_START   BIT(3)
#define   SOLO_IIC_STOP    BIT(2)
#define   SOLO_IIC_READ    BIT(1)
#define   SOLO_IIC_WRITE   BIT(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   BIT(20)
#define   SOLO_PARITY_ERROR_DROP  BIT(18)
#define   SOLO_IRQ_ERR_EN   BIT(17)
#define   SOLO_IRQ_RX_EN   BIT(16)
#define   SOLO_IRQ_TX_EN   BIT(15)
#define   SOLO_RX_EN    BIT(14)
#define   SOLO_TX_EN    BIT(13)
#define   SOLO_UART_HALF_DUPLEX   BIT(12)
#define   SOLO_UART_LOOPBACK   BIT(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    BIT(15)
#define   SOLO_UART_RX_BUSY   BIT(14)
#define   SOLO_UART_OVERRUN   BIT(13)
#define   SOLO_UART_FRAME_ERR   BIT(12)
#define   SOLO_UART_PARITY_ERR   BIT(11)
#define   SOLO_UART_TX_BUSY   BIT(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  BIT(8)
#define SOLO_UART_RX_DATA(n)   (0x0BAC + ((n)*0x20))
#define   SOLO_UART_RX_DATA_POP   BIT(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   BIT(31)
#define   SOLO_AUDIO_MASTER_MODE  BIT(30)
#define   SOLO_AUDIO_I2S_MODE   BIT(29)
#define   SOLO_AUDIO_I2S_LR_SWAP  BIT(27)
#define   SOLO_AUDIO_I2S_8BIT   BIT(26)
#define   SOLO_AUDIO_I2S_MULTI(n)  ((n)<<24)
#define   SOLO_AUDIO_MIX_9TO0   BIT(23)
#define   SOLO_AUDIO_DEC_9TO0_VOL(n)  ((n)<<20)
#define   SOLO_AUDIO_MIX_19TO10   BIT(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   BIT(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 */

¤ Dauer der Verarbeitung: 0.2 Sekunden  (vorverarbeitet)  ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.






                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Software

     Produkte
     Quellcodebibliothek

Aktivitäten

     Artikel über Sicherheit
     Anleitung zur Aktivierung von SSL

Muße

     Gedichte
     Musik
     Bilder

Jenseits des Üblichen ....

Besucherstatistik

Besucherstatistik

Monitoring

Montastic status badge