These are the Samsung S3C camera interface register definitions directly from the 2.6.21 BSP. The only changes to the original code are the removal of trailing whitespace and the change of location. Signed-off-by: Werner Almesberger --- Index: cam/arch/arm/plat-s3c64xx/include/plat/regs-camif.h =================================================================== --- /dev/null 1970-01-01 00:00:00.000000000 +0000 +++ cam/arch/arm/plat-s3c64xx/include/plat/regs-camif.h 2009-03-05 11:03:12.000000000 +0800 @@ -0,0 +1,460 @@ +/* arch/arm/plat-s3c64xx/include/plat/regs-camif.h + * + * Copyright (c) 2003 Simtec Electronics + * http://www.simtec.co.uk/products/SWLINUX/ + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ + + +#ifndef ___ASM_ARCH_REGS_CAMIF_H +#define ___ASM_ARCH_REGS_CAMIF_H + +#define S3C_CAMIFREG(x) (x) + +/************************************************************************* + * Macro part + ************************************************************************/ +#define S3C_CISRCFMT_SOURCEHSIZE(x) ((x) << 16) +#define S3C_CISRCFMT_GET_SOURCEHSIZE(x) (((x) >> 16) & 0x1FFFF) +#define S3C_CISRCFMT_SOURCEVSIZE(x) ((x) << 0) +#define S3C_CISRCFMT_GET_SOURCEVSIZE(x) (((x) >> 0) & 0x1FFF) + +#define S3C_CIWDOFST_WINHOROFST(x) ((x) << 16) +#define S3C_CIWDOFST_GET_WINHOROFST(x) (((x) >> 16) & 0x7FF) +#define S3C_CIWDOFST_WINVEROFST(x) ((x) << 0) +#define S3C_CIWDOFST_GET_WINVEROFST(x) (((x) >> 0) & 0x7FF) + +#define S3C_CIDOWSFT2_WINHOROFST2(x) ((x) << 16) +#define S3C_CIDOWSFT2_GET_WINHOROFST2(x) (((x) >> 16) & 0x7FF) +#define S3C_CIDOWSFT2_WINVEROFST2(x) ((x) << 0) +#define S3C_CIDOWSFT2_GET_WINVEROFST2(x) (((x) >> 0) & 0x7FF) + +#define S3C_CICOTRGFMT_TARGETHSIZE_CO(x) ((x) << 16) +#define S3C_CICOTRGFMT_GET_TARGETHSIZE_CO(x) (((x) >> 16) & 0x1FFF) + +#define S3C_CICOTRGFMT_TARGETVSIZE_CO(x) ((x) << 0) +#define S3C_CICOTRGFMT_GET_TARGETVSIZE_CO(x) (((x) >> 0) & 0x1FFF) + +#define S3C_CICOCTRL_YBURST1_CO(x) ((x) << 19) +#define S3C_CICOCTRL_YBURST2_CO(x) ((x) << 14) +#define S3C_CICOCTRL_CBURST1_CO(x) ((x) << 9) +#define S3C_CICOCTRL_CBURST2_CO(x) ((x) << 4) + +#define S3C_CICOSCPRERATIO_SHFACTOR_CO(x) ((x) << 28) +#define S3C_CICOSCPRERATIO_GET_SHFACTOR_CO(x) (((x) >> 28) & 0x7F) +#define S3C_CICOSCPRERATIO_PREHORRATIO_CO(x) ((x) << 16) +#define S3C_CICOSCPRERATIO_GET_PREHORRATIO_CO(x) (((x) >> 16) & 0x7F) +#define S3C_CICOSCPRERATIO_PREVERRATIO_CO(x) ((x) << 0) +#define S3C_CICOSCPRERATIO_GET_PREVERRATIO_CO(x) (((x) >> 0) & 0x7F) + +#define S3C_CICOSCPREDST_PREDSTWIDTH_CO(x) ((x) << 16) +#define S3C_CICOSCPREDST_GET_PREDSTWIDTH_CO(x) (((x) >> 16) & 0x7FF) +#define S3C_CICOSCPREDST_PREDSTHEIGHT_CO(x) ((x) << 0) +#define S3C_CICOSCPREDST_GET_PREDSTHEIGHT_CO(x) (((x) >> 0) & 0x7FF) + +#define S3C_CICOSCCTRL_MAINHORRATIO_CO(x) ((x) << 16) +#define S3C_CICOSCCTRL_GET_MAINHORRATIO_CO(x) (((x) >> 16) & 0x1FF) +#define S3C_CICOSCCTRL_MAINVERRATIO_CO(x) ((x) << 0) + +#define S3C_CICOSTATUS_FRAMECNT_CO(x) ((x) << 26) +#define S3C_CICOSTATUS_GET_FRAMECNT_CO(x) (((x) >> 26) & 0x3) + +#define S3C_CIPRTRGFMT_TARGETHSIZE_PR(x) ((x) << 16) +#define S3C_CIPRTRGFMT_GET_TARGETHSIZE_PR(x) (((x) >> 16) & 0x1FFF) + +#define S3C_CIPRTRGFMT_GET_ROT90_PR(x) (((x) >> 13) & 0x1) + +#define S3C_CIPRTRGFMT_TARGETVSIZE_PR(x) ((x) << 0) +#define S3C_CIPRTRGFMT_GET_TARGETVSIZE_PR(x) (((x) >> 0) & 0x1FFF) + +#define S3C_CIPRSCPRERATIO_SHFACTOR_PR(x) ((x) << 28) +#define S3C_CIPRSCPRERATIO_GET_SHFACTOR_PR(x) (((x) >> 28) & 0xF) +#define S3C_CIPRSCPRERATIO_PREHORRATIO_PR(x) ((x) << 16) +#define S3C_CIPRSCPRERATIO_GET_PREHORRATIO_PR(x) (((x) >> 16) & 0x7F) +#define S3C_CIPRSCPRERATIO_PREVERRATIO_PR(x) ((x) << 0) +#define S3C_CIPRSCPRERATIO_GET_PREVERRATIO_PR(x) (((x) >> 0) & 0x7F) + +#define S3C_CIPRSCPREDST_PREDSTWIDTH_PR(x) ((x) << 16) +#define S3C_CIPRSCPREDST_GET_PREDSTWIDTH_PR(x) (((x) >> 16) & 0xFFF) +#define S3C_CIPRSCPREDST_PREDSTHEIGHT_PR(x) ((x) << 0) +#define S3C_CIPRSCPREDST_GET_PREDSTHEIGHT_PR(x) (((x) >> 0) & 0xFFF) + +#define S3C_CIPRSCCTRL_MAINHORRATIO_PR(x) ((x) << 16) +#define S3C_CIPRSCCTRL_GET_MAINHORRATIO_PR(x) (((x) >> 16) && 0x1FF) +#define S3C_CIPRSCCTRL_MAINVERRATIO_PR(x) ((x) << 0) +#define S3C_CIPRSCCTRL_GET_MAINVERRATIO_PR(x) (((x) >> 0) && 0x1FF) + +/************************************************************************* + * Bit definition part + ************************************************************************/ +/* Windows Offset Register */ +#define S3C_CIWDOFST_WINOFSEN (1 << 31) +#define S3C_CIWDOFST_CLROVCOFIY (1 << 30) +#define S3C_CIWDOFST_CLROVRLB_CO (1 << 29) +#define S3C_CIWDOFST_CLROVRLB_PR (1 << 28) +#define S3C_CIWDOFST_CLROVPRFIY (1 << 27) +#define S3C_CIWDOFST_CLROVCOFICB (1 << 15) +#define S3C_CIWDOFST_CLROVCOFICR (1 << 14) +#define S3C_CIWDOFST_CLROVPRFICB (1 << 13) +#define S3C_CIWDOFST_CLROVPRFICR (1 << 12) + +/* Global Control Register */ +#define S3C_CIGCTRL_SWRST (1 << 31) +#define S3C_CIGCTRL_CAMRST (1 << 30) + +#if defined (CONFIG_CPU_S3C6400) || defined (CONFIG_CPU_S3C6410) +#define S3C_CIGCTRL_IRQ_LEVEL (1 << 20) +#endif + +#define S3C_CIGCTRL_TESTPATTERN_VER_INC (3 << 27) +#define S3C_CIGCTRL_TESTPATTERN_HOR_INC (2 << 27) +#define S3C_CIGCTRL_TESTPATTERN_COLOR_BAR (1 << 27) +#define S3C_CIGCTRL_TESTPATTERN_NORMAL (0 << 27) + +#define S3C_CIGCTRL_INVPOLPCLK (1 << 26) +#define S3C_CIGCTRL_INVPOLVSYNC (1 << 25) +#define S3C_CIGCTRL_INVPOLHREF (1 << 24) +#define S3C_CIGCTRL_IRQ_OVFEN (1 << 22) +#define S3C_CIGCTRL_HREF_MASK (1 << 21) +#define S3C_CIGCTRL_IRQ_LEVEL (1 << 20) +#define S3C_CIGCTRL_IRQ_CLR_C (1 << 19) +#define S3C_CIGCTRL_IRQ_CLR_P (1 << 18) + +/* Codec Target Format Register */ +#if defined(CONFIG_CPU_S3C2443) || defined(CONFIG_CPU_S3C2450) || defined(CONFIG_CPU_S3C2416) +#define S3C_CICOTRGFMT_IN422_422 (1 << 31) +#define S3C_CICOTRGFMT_IN422_420 (0 << 31) +#define S3C_CICOTRGFMT_OUT422_422 (1 << 30) +#define S3C_CICOTRGFMT_OUT422_420 (0 << 30) + +#elif defined(CONFIG_CPU_S3C6400) || defined(CONFIG_CPU_S3C6410) +#define S3C_CICOTRGFMT_OUTFORMAT_RGBOUT (3 << 29) +#define S3C_CICOTRGFMT_OUTFORMAT_YCBCR422OUTINTERLEAVE (2 << 29) +#define S3C_CICOTRGFMT_OUTFORMAT_YCBCR422OUT (1 << 29) +#define S3C_CICOTRGFMT_OUTFORMAT_YCBCR420OUT (0 << 29) +#endif + +#define S3C_CICOTRGFMT_INTERLEAVE_ON (1 << 29) +#define S3C_CICOTRGFMT_INTERLEAVE_OFF (0 << 29) + +#define S3C_CICOTRGFMT_FLIP_180 (3 << 14) +#define S3C_CICOTRGFMT_FLIP_Y_MIRROR (2 << 14) +#define S3C_CICOTRGFMT_FLIP_X_MIRROR (1 << 14) +#define S3C_CICOTRGFMT_FLIP_NORMAL (0 << 14) + +/* Codec DMA Control Register */ +#define S3C_CICOCTRL_LASTIRQEN (1 << 2) +#define S3C_CICOCTRL_ORDER422_CRYCBY (3 << 0) +#define S3C_CICOCTRL_ORDER422_CBYCRY (2 << 0) +#define S3C_CICOCTRL_ORDER422_YCRYCB (1 << 0) +#define S3C_CICOCTRL_ORDER422_YCBYCR (0 << 0) + +/* Codec Main-Scaler Control Register */ +#define S3C_CICOSCCTRL_SCALERBYPASS_CO (1 << 31) +#define S3C_CICOSCCTRL_SCALEUP_H (1 << 30) +#define S3C_CICOSCCTRL_SCALEUP_V (1 << 29) + +#define S3C_CICOSCCTRL_CSCR2Y_WIDE (1 << 28) +#define S3C_CICOSCCTRL_CSCR2Y_NARROW (0 << 28) + +#define S3C_CICOSCCTRL_CSCY2R_WIDE (1 << 27) +#define S3C_CICOSCCTRL_CSCY2R_NARROW (0 << 27) + +#define S3C_CICOSCCTRL_LCDPATHEN_FIFO (1 << 26) +#define S3C_CICOSCCTRL_LCDPATHEN_DMA (0 << 26) + +#define S3C_CICOSCCTRL_INTERLACE_INTERLACE (1 << 25) +#define S3C_CICOSCCTRL_INTERLACE_PROGRESSIVE (0 << 25) + +#define S3C_CICOSCCTRL_COSCALERSTART (1 << 15) + +#define S3C_CICOSCCTRL_INRGB_FMT_RGB888 (2 << 13) +#define S3C_CICOSCCTRL_INRGB_FMT_RGB666 (1 << 13) +#define S3C_CICOSCCTRL_INRGB_FMT_RGB565 (0 << 13) + +#define S3C_CICOSCCTRL_OUTRGB_FMT_RGB888 (2 << 11) +#define S3C_CICOSCCTRL_OUTRGB_FMT_RGB666 (1 << 11) +#define S3C_CICOSCCTRL_OUTRGB_FMT_RGB565 (0 << 11) + +#define S3C_CICOSCCTRL_EXTRGB_EXTENSION (1 << 10) +#define S3C_CICOSCCTRL_EXTRGB_NORMAL (0 << 10) + +/* Codec Status Register */ +#define S3C_CICOSTATUS_OVFIY_CO (1 << 31) +#define S3C_CICOSTATUS_OVFICB_CO (1 << 30) +#define S3C_CICOSTATUS_OVFICR_CO (1 << 29) +#define S3C_CICOSTATUS_VSYNC (1 << 28) +#define S3C_CICOSTATUS_WINOFSTEN_CO (1 << 25) +#define S3C_CICOSTATUS_IMGCPTEN_CAMIF (1 << 22) +#define S3C_CICOSTATUS_IMGCPTEN_COSC (1 << 21) +#define S3C_CICOSTATUS_VSYNC_A (1 << 20) +#define S3C_CICOSTATUS_VSYNC_B (1 << 19) +#define S3C_CICOSTATUS_OVRLB_CO (1 << 18) +#define S3C_CICOSTATUS_FRAMEEND_CO (1 << 17) + +/* Preview Target Format Register */ +#define S3C_CIPRTRGFMT_FLIPMD_180ROT (3 << 14) +#define S3C_CIPRTRGFMT_FLIPMD_YMIRROR (2 << 14) +#define S3C_CIPRTRGFMT_FLIPMD_XMIRROR (1 << 14) +#define S3C_CIPRTRGFMT_FLIPMD_NORMAL (0 << 14) + +#define S3C_CIPRTRGFMT_ROT90_ROTATE (1 << 13) +#define S3C_CIPRTRGFMT_ROT90_BYPASS (0 << 13) + +/* Preview DMA Control Register */ +#define S3C_CIPRCTRL_LASTIRQEN_ENABLE (1 << 2) +#define S3C_CIPRCTRL_LASTIRQEN_NORMAL (0 << 2) + +#define S3C_CIPRCTRL_ORDER422_CRYCBY (3 << 0) +#define S3C_CIPRCTRL_ORDER422_CBYCRY (2 << 0) +#define S3C_CIPRCTRL_ORDER422_YCRYCB (1 << 0) +#define S3C_CIPRCTRL_ORDER422_YCBYCR (0 << 0) + +/* Preview Main-Scaler Control Register */ +#define S3C_CIPRSCCTRL_SAMPLE_PR (1 << 31) + +#define S3C_CIPRSCCTRL_RGBFORMAT_24 (1 << 30) +#define S3C_CIPRSCCTRL_RGBFORMAT_16 (0 << 30) + +#define S3C_CIPRSCCTRL_START (1 << 15) + +#define S3C_CIPRSCCTRL_INRGB_FMT_PR_RGB888 (2 << 13) +#define S3C_CIPRSCCTRL_INRGB_FMT_PR_RGB666 (1 << 13) +#define S3C_CIPRSCCTRL_INRGB_FMT_PR_RGB565 (0 << 13) + +#define S3C_CIPRSCCTRL_OUTRGB_FMT_PR_RGB888 (2 << 11) +#define S3C_CIPRSCCTRL_OUTRGB_FMT_PR_RGB666 (1 << 11) +#define S3C_CIPRSCCTRL_OUTRGB_FMT_PR_RGB565 (0 << 11) + +/* Preview Status Register */ +#if defined(CONFIG_CPU_S3C2443) || defined(CONFIG_CPU_S3C2450) || defined(CONFIG_CPU_S3C2416) +#define S3C_CIPRSTATUS_OVFICB_PR (1 << 31) +#define S3C_CIPRSTATUS_OVFICR_PR (1 << 30) + +#elif defined CONFIG_CPU_S3C6400 || defined CONFIG_CPU_S3C6410 +#define S3C_CIPRSTATUS_OVFIY_PR (1 << 31) +#define S3C_CIPRSTATUS_OVFICB_PR (1 << 30) +#define S3C_CIPRSTATUS_OVFICR_PR (1 << 29) +#endif + +/* Image Capture Enable Register */ +#define S3C_CIIMGCPT_IMGCPTEN (1 << 31) +#define S3C_CIIMGCPT_IMGCPTEN_COSC (1 << 30) +#define S3C_CIIMGCPT_IMGCPTEN_PRSC (1 << 29) + +#define S3C_CIIMGCPT_CPT_CODMA_SEL_RGB (1 << 26) +#define S3C_CIIMGCPT_CPT_CODMA_SEL_YUV (0 << 26) + +#if defined(CONFIG_CPU_S3C2443) || defined(CONFIG_CPU_S3C2450) || defined(CONFIG_CPU_S3C2416) +#define S3C_CIIMGCPT_CPT_CODMA_RGBFMT_24 (1 << 25) +#define S3C_CIIMGCPT_CPT_CODMA_RGBFMT_16 (0 << 25) +#define S3C_CIIMGCPT_CPT_CODMA_ENABLE (1 << 24) +#define S3C_CIIMGCPT_CPT_CODMA_DISABLE (0 << 24) +#define S3C_CIIMGCPT_CPT_CODMA_MOD_CNT (1 << 18) +#define S3C_CIIMGCPT_CPT_CODMA_MOD_EN (0 << 18) + +#elif defined CONFIG_CPU_S3C6400 || defined CONFIG_CPU_S3C6410 +#define S3C_CIIMGCPT_CPT_FREN_CO_ENABLE (1 << 25) +#define S3C_CIIMGCPT_CPT_FREN_CO_DISABLE (0 << 25) +#define S3C_CIIMGCPT_CPT_FREN_PR_ENABLE (1 << 24) +#define S3C_CIIMGCPT_CPT_FREN_PR_DISABLE (0 << 24) +#define S3C_CIIMGCPT_CPT_FRMOD_CNT (1 << 18) +#define S3C_CIIMGCPT_CPT_FRMOD_EN (0 << 18) +#endif + +/* Image Effects Register */ +#define S3C_CIIMGEFF_IE_ON_PR_ENABLE (1 << 31) +#define S3C_CIIMGEFF_IE_ON_PR_DISABLE (0 << 31) + +#define S3C_CIIMGEFF_IE_ON_CO_ENABLE (1 << 30) +#define S3C_CIIMGEFF_IE_ON_CO_DISABLE (0 << 30) + +#define S3C_CIIMGEFF_IE_AFTER_SC_BEFORE (0 << 29) +#define S3C_CIIMGEFF_IE_AFTER_SC_AFTER (1 << 29) + +#define S3C_CIIMGEFF_FIN_SILHOUETTE (5 << 26) +#define S3C_CIIMGEFF_FIN_EMBOSSING (4 << 26) +#define S3C_CIIMGEFF_FIN_ARTFREEZE (3 << 26) +#define S3C_CIIMGEFF_FIN_NEGATIVE (2 << 26) +#define S3C_CIIMGEFF_FIN_ARBITRARY (1 << 26) +#define S3C_CIIMGEFF_FIN_BYPASS (0 << 26) + +/* MSDMA for Codec Source Image Width Register */ +#define S3C_MSCOWIDTH_AUTOLOAD_ENABLE (1 << 31) +#define S3C_MSCOWIDTH_AUTOLOAD_DISABLE (0 << 31) + +#define S3C_MSCOWIDTH_ADDR_CH_ENABLE (1 << 30) +#define S3C_MSCOWIDTH_ADDR_CH_DISABLE (0 << 30) + +/* MSDMA Control Register */ +#if defined(CONFIG_CPU_S3C2443) || defined(CONFIG_CPU_S3C2450) || defined(CONFIG_CPU_S3C2416) +#define S3C_CIMSCTRL_INTERLEAVE_MS_INTERLEAVE (1 << 5) +#define S3C_CIMSCTRL_INTERLEAVE_MS_NONINTERLEAVE (0 << 5) +#define S3C_CIMSCTRL_ORDER422_MS_CRYCBY (3 << 3) +#define S3C_CIMSCTRL_ORDER422_MS_CBYCRY (2 << 3) +#define S3C_CIMSCTRL_ORDER422_MS_YCRYCB (1 << 3) +#define S3C_CIMSCTRL_ORDER422_MS_YCBYCR (0 << 3) +#define S3C_CIMSCTRL_SEL_DMA_CAM_MEMORY (1 << 2) +#define S3C_CIMSCTRL_SEL_DMA_CAM_EXTCAM (0 << 2) +#define S3C_CIMSCTRL_SRC420_MS_420 (1 << 1) +#define S3C_CIMSCTRL_SRC420_MS_422 (0 << 1) +#define S3C_CIMSCTRL_ENVID_MS_SET (1 << 0) + +#elif defined CONFIG_CPU_S3C6400 || defined CONFIG_CPU_S3C6410 +#define S3C_MSCOCTRL_BC_SEL_FRAME (0 << 10) +#define S3C_MSCOCTRL_BC_SEL_FIELD (1 << 10) +#define S3C_MSCOCTRL_BUFFER_INI_0 (0 << 8) +#define S3C_MSCOCTRL_BUFFER_INI_1 (1 << 8) +#define S3C_MSCOCTRL_TRG_MODE_SOFT (0 << 7) +#define S3C_MSCOCTRL_TRG_MODE_HARD (1 << 7) +#define S3C_MSCOCTRL_ORDER422_M_C_YCBYCR (0 << 4) +#define S3C_MSCOCTRL_ORDER422_M_C_YCRYCB (1 << 4) +#define S3C_MSCOCTRL_ORDER422_M_C_CBYCRY (2 << 4) +#define S3C_MSCOCTRL_ORDER422_M_C_CRYCBY (3 << 4) +#define S3C_MSCOCTRL_SEL_DMA_CAM_C_EXTCAM (0 << 3) +#define S3C_MSCOCTRL_SEL_DMA_CAM_C_MEMORY (1 << 3) +#define S3C_MSCOCTRL_INFORMAT_M_C_420 (0 << 1) +#define S3C_MSCOCTRL_INFORMAT_M_C_422 (1 << 1) +#define S3C_MSCOCTRL_INFORMAT_M_C_422_INT (2 << 1) +#define S3C_MSCOCTRL_INFORMAT_M_C_RGB (3 << 1) +#define S3C_MSCOCTRL_ENVID_M_C_SET (1 << 0) +#define S3C_MSPRCTRL_BC_SEL_FIELD (0 << 10) +#define S3C_MSPRCTRL_BC_SEL_FRAME (1 << 10) +#define S3C_MSPRCTRL_BUFFER_INI_0 (0 << 8) +#define S3C_MSPRCTRL_BUFFER_INI_1 (1 << 8) +#define S3C_MSPRCTRL_TRG_MODE_SOFT (0 << 7) +#define S3C_MSPRCTRL_TRG_MODE_HARD (1 << 7) +#define S3C_MSPRCTRL_ORDER422_M_P_YCBYCR (0 << 4) +#define S3C_MSPRCTRL_ORDER422_M_P_YCRYCB (1 << 4) +#define S3C_MSPRCTRL_ORDER422_M_P_CBYCRY (2 << 4) +#define S3C_MSPRCTRL_ORDER422_M_P_CRYCBY (3 << 4) +#define S3C_MSPRCTRL_SEL_DMA_CAM_P_EXTCAM (0 << 3) +#define S3C_MSPRCTRL_SEL_DMA_CAM_P_MEMORY (1 << 3) +#define S3C_MSPRCTRL_INFORMAT_M_P_420 (0 << 1) +#define S3C_MSPRCTRL_INFORMAT_M_P_422 (1 << 1) +#define S3C_MSPRCTRL_INFORMAT_M_P_422_INT (2 << 1) +#define S3C_MSPRCTRL_INFORMAT_M_P_RGB (3 << 1) +#define S3C_MSPRCTRL_ENVID_M_P_SET (1 << 0) +#endif + +/************************************************************************* + * Register part + ************************************************************************/ +#define S3C_CICOYSA(__x) S3C_CAMIFREG(0x18 + (__x) * 4) +#define S3C_CICOCBSA(__x) S3C_CAMIFREG(0x28 + (__x) * 4) +#define S3C_CICOCRSA(__x) S3C_CAMIFREG(0x38 + (__x) * 4) +#define S3C_CIPRCLRSA(__x) S3C_CAMIFREG(0x6C + (__x) * 4) +#define S3C_CIPRYSA(__x) S3C_CAMIFREG(0x6C + (__x) * 4) +#define S3C_CIPRCBSA(__x) S3C_CAMIFREG(0x7C + (__x) * 4) +#define S3C_CIPRCRSA(__x) S3C_CAMIFREG(0x8C + (__x) * 4) + +#define S3C_CISRCFMT S3C_CAMIFREG(0x00) +#define S3C_CIWDOFST S3C_CAMIFREG(0x04) +#define S3C_CIGCTRL S3C_CAMIFREG(0x08) +#define S3C_CIDOWSFT2 S3C_CAMIFREG(0x14) +#define S3C_CICOYSA1 S3C_CAMIFREG(0x18) +#define S3C_CICOYSA2 S3C_CAMIFREG(0x1C) +#define S3C_CICOYSA3 S3C_CAMIFREG(0x20) +#define S3C_CICOYSA4 S3C_CAMIFREG(0x24) +#define S3C_CICOCBSA1 S3C_CAMIFREG(0x28) +#define S3C_CICOCBSA2 S3C_CAMIFREG(0x2C) +#define S3C_CICOCBSA3 S3C_CAMIFREG(0x30) +#define S3C_CICOCBSA4 S3C_CAMIFREG(0x34) +#define S3C_CICOCRSA1 S3C_CAMIFREG(0x38) +#define S3C_CICOCRSA2 S3C_CAMIFREG(0x3C) +#define S3C_CICOCRSA3 S3C_CAMIFREG(0x40) +#define S3C_CICOCRSA4 S3C_CAMIFREG(0x44) +#define S3C_CICOTRGFMT S3C_CAMIFREG(0x48) /* CODEC target format */ +#define S3C_CICOCTRL S3C_CAMIFREG(0x4C) /* CODEC DMA control register */ +#define S3C_CICOSCPRERATIO S3C_CAMIFREG(0x50) /* CODEC pre-scaler control register 1 */ +#define S3C_CICOSCPREDST S3C_CAMIFREG(0x54) /* CODEC pre-scaler control register 2 */ +#define S3C_CICOSCCTRL S3C_CAMIFREG(0x58) /* CODEC main-scaler control */ +#define S3C_CICOTAREA S3C_CAMIFREG(0x5C) /* CODEC DMA target area register */ +#define S3C_CICOSTATUS S3C_CAMIFREG(0x64) /* CODEC status register */ + +#if defined (CONFIG_CPU_S3C2443) || defined(CONFIG_CPU_S3C2450) || defined(CONFIG_CPU_S3C2416) +#define S3C_CIPRCLRSA1 S3C_CAMIFREG(0x6C) /* RGB 1st frame start address for preview DMA */ +#define S3C_CIPRCLRSA2 S3C_CAMIFREG(0x70) /* RGB 2nd frame start address for preview DMA */ +#define S3C_CIPRCLRSA3 S3C_CAMIFREG(0x74) /* RGB 3rd frame start address for preview DMA */ +#define S3C_CIPRCLRSA4 S3C_CAMIFREG(0x78) /* RGB 4th frame start address for preview DMA */ +#define S3C_CIPRTRGFMT S3C_CAMIFREG(0x7C) /* PREVIEW target format register */ +#define S3C_CIPRCTRL S3C_CAMIFREG(0x80) /* PREVIEW DMA control register */ +#define S3C_CIPRSCPRERATIO S3C_CAMIFREG(0x84) /* PREVIEW pre-scaler control register 1 */ +#define S3C_CIPRSCPREDST S3C_CAMIFREG(0x88) /* PREVIEW pre-scaler control register 2 */ +#define S3C_CIPRSCCTRL S3C_CAMIFREG(0x8C) /* PREVIEW main-scaler control register */ +#define S3C_CIPRTAREA S3C_CAMIFREG(0x90) /* PREVIEW DMA target area register */ +#define S3C_CIPRSTATUS S3C_CAMIFREG(0x98) /* PREVIEW status register */ +#define S3C_CIIMGCPT S3C_CAMIFREG(0xA0) /* image capture enable register */ +#define S3C_CICOCPTSEQ S3C_CAMIFREG(0xA4) /* CODEC capture sequence register */ +#define S3C_CICOSCOS S3C_CAMIFREG(0xA8) /* CODEC scan line offset register */ +#define S3C_CIIMGEFF S3C_CAMIFREG(0xB0) /* image effect register */ +#define S3C_CIMSYSA S3C_CAMIFREG(0xB4) /* MSDMA Y start address register */ +#define S3C_CIMSCBSA S3C_CAMIFREG(0xB8) /* MSDMA CB start address register */ +#define S3C_CIMSCRSA S3C_CAMIFREG(0xBC) /* MSDMA CR start address register */ +#define S3C_CIMSYEND S3C_CAMIFREG(0xC0) /* MSDMA Y end address register */ +#define S3C_CIMSCBEND S3C_CAMIFREG(0xC4) /* MSDMA CB end address register */ +#define S3C_CIMSCREND S3C_CAMIFREG(0xC8) /* MSDMA CR end address register */ +#define S3C_CIMSYOFF S3C_CAMIFREG(0xCC) /* MSDMA Y offset register */ +#define S3C_CIMSCBOFF S3C_CAMIFREG(0xD0) /* MSDMA CB offset register */ +#define S3C_CIMSCROFF S3C_CAMIFREG(0xD4) /* MSDMA CR offset register */ +#define S3C_CIMSWIDTH S3C_CAMIFREG(0xD8) /* MSDMA source image width register */ +#define S3C_CIMSCTRL S3C_CAMIFREG(0xDC) /* MSDMA control register */ + +#elif defined CONFIG_CPU_S3C6400 || defined CONFIG_CPU_S3C6410 +#define S3C_CIPRYSA1 S3C_CAMIFREG(0x6C) /* 1st frame start address for preview DMA */ +#define S3C_CIPRYSA2 S3C_CAMIFREG(0x70) /* 2nd frame start address for preview DMA */ +#define S3C_CIPRYSA3 S3C_CAMIFREG(0x74) /* 3rd frame start address for preview DMA */ +#define S3C_CIPRYSA4 S3C_CAMIFREG(0x78) /* 4th frame start address for preview DMA */ +#define S3C_CIPRCBSA1 S3C_CAMIFREG(0x7C) /* 1st frame start address for preview DMA */ +#define S3C_CIPRCBSA2 S3C_CAMIFREG(0x80) /* 2nd frame start address for preview DMA */ +#define S3C_CIPRCBSA3 S3C_CAMIFREG(0x84) /* 3rd frame start address for preview DMA */ +#define S3C_CIPRCBSA4 S3C_CAMIFREG(0x88) /* 4th frame start address for preview DMA */ +#define S3C_CIPRCRSA1 S3C_CAMIFREG(0x8C) /* 1st frame start address for preview DMA */ +#define S3C_CIPRCRSA2 S3C_CAMIFREG(0x90) /* 2nd frame start address for preview DMA */ +#define S3C_CIPRCRSA3 S3C_CAMIFREG(0x94) /* 3rd frame start address for preview DMA */ +#define S3C_CIPRCRSA4 S3C_CAMIFREG(0x98) /* 4th frame start address for preview DMA */ +#define S3C_CIPRTRGFMT S3C_CAMIFREG(0x9C) /* PREVIEW target format register */ +#define S3C_CIPRCTRL S3C_CAMIFREG(0xA0) /* PREVIEW DMA control register */ +#define S3C_CIPRSCPRERATIO S3C_CAMIFREG(0xA4) /* PREVIEW pre-scaler control register 1 */ +#define S3C_CIPRSCPREDST S3C_CAMIFREG(0xA8) /* PREVIEW pre-scaler control register 2 */ +#define S3C_CIPRSCCTRL S3C_CAMIFREG(0xAC) /* PREVIEW main-scaler control register */ +#define S3C_CIPRTAREA S3C_CAMIFREG(0xB0) /* PREVIEW DMA target area register */ +#define S3C_CIPRSTATUS S3C_CAMIFREG(0xB8) /* PREVIEW status register */ +#define S3C_CIIMGCPT S3C_CAMIFREG(0xC0) /* image capture enable register */ +#define S3C_CICOCPTSEQ S3C_CAMIFREG(0xC4) /* CODEC capture sequence register */ +#define S3C_CIIMGEFF S3C_CAMIFREG(0xD0) /* image effect register */ +#define S3C_MSCOY0SA S3C_CAMIFREG(0xD4) /* MSDMA for CODEC Y start address register */ +#define S3C_MSCOCB0SA S3C_CAMIFREG(0xD8) /* MSDMA for CODEC CB start address register */ +#define S3C_MSCOCR0SA S3C_CAMIFREG(0xDC) /* MSDMA for CODEC CR start address register */ +#define S3C_MSCOY0END S3C_CAMIFREG(0xE0) /* MSDMA for CODEC Y end address register */ +#define S3C_MSCOCB0END S3C_CAMIFREG(0xE4) /* MSDMA for CODEC CB end address register */ +#define S3C_MSCOCR0END S3C_CAMIFREG(0xE8) /* MSDMA for CODEC CR end address register */ +#define S3C_MSCOYOFF S3C_CAMIFREG(0xEC) /* MSDMA for CODEC Y offset register */ +#define S3C_MSCOCBOFF S3C_CAMIFREG(0xF0) /* MSDMA for CODEC CB offset register */ +#define S3C_MSCOCROFF S3C_CAMIFREG(0xF4) /* MSDMA for CODEC CR offset register */ +#define S3C_MSCOWIDTH S3C_CAMIFREG(0xF8) /* MSDMA for CODEC source image width register */ +#define S3C_MSCOCTRL S3C_CAMIFREG(0xFC) /* MSDMA for CODEC control register */ +#define S3C_MSPRY0SA S3C_CAMIFREG(0x100) /* MSDMA for PREVIEW Y0 start address register */ +#define S3C_MSPRCB0SA S3C_CAMIFREG(0x104) /* MSDMA for PREVIEW CB0 start address register */ +#define S3C_MSPRCR0SA S3C_CAMIFREG(0x108) /* MSDMA for PREVIEW CR0 start address register */ +#define S3C_MSPRY0END S3C_CAMIFREG(0x10C) /* MSDMA for PREVIEW Y0 end address register */ +#define S3C_MSPRCB0END S3C_CAMIFREG(0x110) /* MSDMA for PREVIEW CB0 end address register */ +#define S3C_MSPRCR0END S3C_CAMIFREG(0x114) /* MSDMA for PREVIEW CR0 end address register */ +#define S3C_MSPRYOFF S3C_CAMIFREG(0x118) /* MSDMA for PREVIEW Y offset register */ +#define S3C_MSPRCBOFF S3C_CAMIFREG(0x11C) /* MSDMA for PREVIEW CB offset register */ +#define S3C_MSPRCROFF S3C_CAMIFREG(0x120) /* MSDMA for PREVIEW CR offset register */ +#define S3C_MSPRWIDTH S3C_CAMIFREG(0x124) /* MSDMA for PREVIEW source image width register */ +#define S3C_CIMSCTRL S3C_CAMIFREG(0x128) /* MSDMA for PREVIEW control register */ +#define S3C_CICOSCOSY S3C_CAMIFREG(0x12C) /* CODEC scan line Y offset register */ +#define S3C_CICOSCOSCB S3C_CAMIFREG(0x130) /* CODEC scan line CB offset register */ +#define S3C_CICOSCOSCR S3C_CAMIFREG(0x134) /* CODEC scan line CR offset register */ +#define S3C_CIPRSCOSY S3C_CAMIFREG(0x138) /* PREVIEW scan line Y offset register */ +#define S3C_CIPRSCOSCB S3C_CAMIFREG(0x13C) /* PREVIEW scan line CB offset register */ +#define S3C_CIPRSCOSCR S3C_CAMIFREG(0x140) /* PREVIEW scan line CR offset register */ +#endif + +#endif /* ___ASM_ARCH_REGS_CAMIF_H */ + --