mirror of
https://github.com/thead-yocto-mirror/vi-kernel
synced 2026-06-21 08:52:26 +02:00
10447 lines
449 KiB
C
Executable File
10447 lines
449 KiB
C
Executable File
/******************************************************************************
|
||
*
|
||
* Copyright 2010, Dream Chip Technologies GmbH. All rights reserved.
|
||
*
|
||
****************************************************************************
|
||
*
|
||
* The MIT License (MIT)
|
||
*
|
||
* Copyright (c) 2020 VeriSilicon Holdings Co., Ltd.
|
||
*
|
||
* Permission is hereby granted, free of charge, to any person obtaining a
|
||
* copy of this software and associated documentation files (the "Software"),
|
||
* to deal in the Software without restriction, including without limitation
|
||
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
||
* and/or sell copies of the Software, and to permit persons to whom the
|
||
* Software is furnished to do so, subject to the following conditions:
|
||
*
|
||
* The above copyright notice and this permission notice shall be included in
|
||
* all copies or substantial portions of the Software.
|
||
*
|
||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
||
* DEALINGS IN THE SOFTWARE.
|
||
*
|
||
*****************************************************************************
|
||
*
|
||
* The GPL License (GPL)
|
||
*
|
||
* Copyright (c) 2020 VeriSilicon Holdings Co., Ltd.
|
||
*
|
||
* 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;
|
||
*
|
||
*****************************************************************************
|
||
*
|
||
* Note: This software is released under dual MIT and GPL licenses. A
|
||
* recipient may use this file under the terms of either the MIT license or
|
||
* GPL License. If you wish to use only one license not the other, you can
|
||
* indicate your decision by deleting one of the above license notices in your
|
||
* version of this file.
|
||
*
|
||
*****************************************************************************/
|
||
|
||
#ifndef __MRV_ALL_BITS_H__
|
||
#define __MRV_ALL_BITS_H__
|
||
|
||
/*****************************************************************************/
|
||
/* this includes the registermap generated by SIG-flow */
|
||
/*****************************************************************************/
|
||
#ifndef __KERNEL__
|
||
#include <stdint.h>
|
||
#else
|
||
#include <linux/types.h>
|
||
#endif
|
||
#include "mrv_all_regs.h"
|
||
|
||
/*****************************************************************************/
|
||
/* this includes the hw version information */
|
||
/*****************************************************************************/
|
||
#include "isp_version.h"
|
||
|
||
/*****************************************************************************/
|
||
/* Marvin Main Control Registers */
|
||
/*****************************************************************************/
|
||
#define ALIGN_16BYTE(width) (((width) + (0xF - 1)) & (~(0xF - 1)))
|
||
#define ALIGN_32BYTE(width) (((width) + 31) & (~31))
|
||
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: vi_ccl: Data path control register (0x0000)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: vi_ccl_dis:*/
|
||
/* Clock Control Logic disable */
|
||
/* 0: processing/cfg-clocks for all marvin sub modules enabled */
|
||
/* 1: processing/cfg-clocks for all marvin sub modules disabled w/o access to ID and VI_CCL register */
|
||
#ifdef MRV_VI_CCL_DIS
|
||
#define MRV_VI_CCL_ENABLE_CLOCKS 0
|
||
#define MRV_VI_CCL_DISABLE_CLOCKS 1
|
||
#endif /* MRV_VI_CCL_DIS */
|
||
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: vi_id: Revision identification register (0x0008)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: rev_id:*/
|
||
/* MARVIN5 revision IDs */
|
||
#ifdef MRV_REV_ID
|
||
#endif /* MRV_REV_ID */
|
||
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: vi_iccl: Internal clock control register (0x0010)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: vi_mipi_clk_enable: */
|
||
/* MIPI interface clock enable */
|
||
/* 1: processing mode */
|
||
/* 0: power safe */
|
||
#ifdef MRV_VI_MIPI_CLK_ENABLE
|
||
#endif /* MRV_VI_MIPI_CLK_ENABLE */
|
||
|
||
/* Slice: vi_smia_clk_enable:*/
|
||
/* SMIA interface clock enable */
|
||
/* 1: processing mode */
|
||
/* 0: power safe */
|
||
#ifdef MRV_VI_SMIA_CLK_ENABLE
|
||
#endif /* MRV_VI_SMIA_CLK_ENABLE */
|
||
|
||
/* Slice: vi_simp_clk_enable:*/
|
||
/* Superimpose clock enable */
|
||
/* 1: processing mode */
|
||
/* 0: power safe */
|
||
#ifdef MRV_VI_SIMP_CLK_ENABLE
|
||
#endif /* MRV_VI_SIMP_CLK_ENABLE */
|
||
|
||
/* Slice: vi_ie_clk_enable:*/
|
||
/* Image effect clock enable */
|
||
/* 1: processing mode */
|
||
/* 0: power safe */
|
||
#ifdef MRV_VI_IE_CLK_ENABLE
|
||
#endif /* MRV_VI_IE_CLK_ENABLE */
|
||
|
||
/* Slice: vi_mi_clk_enable:*/
|
||
/* memory interface clock enable */
|
||
/* 1: processing mode */
|
||
/* 0: power safe */
|
||
#ifdef MRV_VI_MI_CLK_ENABLE
|
||
#endif /* MRV_VI_MI_CLK_ENABLE */
|
||
|
||
/* Slice: vi_jpeg_clk_enable:*/
|
||
/* JPEG encoder clock enable */
|
||
/* 1: processing mode */
|
||
/* 0: power safe */
|
||
#ifdef MRV_VI_JPEG_CLK_ENABLE
|
||
#endif /* MRV_VI_JPEG_CLK_ENABLE */
|
||
|
||
/* Slice: vi_srsz_clk_enable:*/
|
||
/* main resize clock enable */
|
||
/* 1: processing mode */
|
||
/* 0: power safe */
|
||
#ifdef MRV_VI_SRSZ_CLK_ENABLE
|
||
#endif /* MRV_VI_SRSZ_CLK_ENABLE */
|
||
|
||
/* Slice: vi_mrsz_clk_enable:*/
|
||
/* main resize clock enable */
|
||
/* 1: processing mode */
|
||
/* 0: power safe */
|
||
#ifdef MRV_VI_MRSZ_CLK_ENABLE
|
||
#endif /* MRV_VI_MRSZ_CLK_ENABLE */
|
||
|
||
/* Slice: vi_cp_clk_enable:*/
|
||
/* color processing clock enable */
|
||
/* 1: processing mode */
|
||
/* 0: power safe */
|
||
#ifdef MRV_VI_CP_CLK_ENABLE
|
||
#endif /* MRV_VI_CP_CLK_ENABLE */
|
||
|
||
/* Slice: vi_isp_clk_enable:*/
|
||
/* isp processing clock enable */
|
||
/* 1: processing mode */
|
||
/* 0: power safe */
|
||
#ifdef MRV_VI_ISP_CLK_ENABLE
|
||
#endif /* MRV_VI_ISP_CLK_ENABLE */
|
||
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: vi_ircl: Internal reset control register (0x0014)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: vi_mipi_soft_rst:*/
|
||
/* MIPI Interface software reset */
|
||
/* 0: processing mode */
|
||
/* 1: reset state */
|
||
#ifdef MRV_VI_MIPI_SOFT_RST
|
||
#endif /* MRV_VI_MIPI_SOFT_RST */
|
||
|
||
/* Slice: vi_smia_soft_rst:*/
|
||
/* SMIA Interface software reset */
|
||
/* 0: processing mode */
|
||
/* 1: reset state */
|
||
#ifdef MRV_VI_SMIA_SOFT_RST
|
||
#endif /* MRV_VI_SMIA_SOFT_RST */
|
||
|
||
/* Slice: vi_simp_soft_rst:*/
|
||
/* Superimpose software reset */
|
||
/* 0: processing mode */
|
||
/* 1: reset state */
|
||
#ifdef MRV_VI_SIMP_SOFT_RST
|
||
#endif /* MRV_VI_SIMP_SOFT_RST */
|
||
|
||
/* Slice: vi_ie_soft_rst:*/
|
||
/* Image effect software reset */
|
||
/* 0: processing mode */
|
||
/* 1: reset state */
|
||
#ifdef MRV_VI_IE_SOFT_RST
|
||
#endif /* MRV_VI_IE_SOFT_RST */
|
||
|
||
/* Slice: vi_marvin_rst:*/
|
||
/* Soft reset of entire marvin */
|
||
/* 0: processing mode */
|
||
/* 1: reset state */
|
||
#ifdef MRV_VI_MARVIN_RST
|
||
#endif /* MRV_VI_MARVIN_RST */
|
||
|
||
/* Slice: vi_mi_soft_rst:*/
|
||
/* memory interface software reset */
|
||
/* 0: processing mode */
|
||
/* 1: reset state */
|
||
#ifdef MRV_VI_MI_SOFT_RST
|
||
#endif /* MRV_VI_MI_SOFT_RST */
|
||
|
||
/* Slice: vi_jpeg_soft_rst:*/
|
||
/* JPEG encoder software reset */
|
||
/* 0: processing mode */
|
||
/* 1: reset state */
|
||
#ifdef MRV_VI_JPEG_SOFT_RST
|
||
#endif /* MRV_VI_JPEG_SOFT_RST */
|
||
|
||
/* Slice: vi_srsz_soft_rst:*/
|
||
/* Self-picture resize software reset */
|
||
/* 0: processing mode */
|
||
/* 1: reset state */
|
||
#ifdef MRV_VI_SRSZ_SOFT_RST
|
||
#endif /* MRV_VI_SRSZ_SOFT_RST */
|
||
|
||
/* Slice: vi_mrsz_soft_rst:*/
|
||
/* Main-picture resize software reset */
|
||
/* 0: processing mode */
|
||
/* 1: reset state */
|
||
#ifdef MRV_VI_MRSZ_SOFT_RST
|
||
#endif /* MRV_VI_MRSZ_SOFT_RST */
|
||
|
||
/* Slice: vi_ycs_soft_rst:*/
|
||
/* y/c splitter software reset */
|
||
/* 0: processing mode */
|
||
/* 1: reset state */
|
||
#ifdef MRV_VI_YCS_SOFT_RST
|
||
#endif /* MRV_VI_YCS_SOFT_RST */
|
||
|
||
/* Slice: vi_cp_soft_rst:*/
|
||
/* color processing software reset */
|
||
/* 0: processing mode */
|
||
/* 1: reset state */
|
||
#ifdef MRV_VI_CP_SOFT_RST
|
||
#endif /* MRV_VI_CP_SOFT_RST */
|
||
|
||
/* Slice: vi_isp_soft_rst:*/
|
||
/* isp software reset */
|
||
/* 0: processing mode */
|
||
/* 1: reset state */
|
||
#ifdef MRV_VI_ISP_SOFT_RST
|
||
#endif /* MRV_VI_ISP_SOFT_RST */
|
||
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: vi_dpcl: Data path control register (0x0018)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: vi_dma_spmux:*/
|
||
/* 0: data from camera interface to self resize */
|
||
/* 1: data from DMA read port to self resize */
|
||
#ifdef MRV_VI_DMA_SPMUX
|
||
#define MRV_VI_DMA_SPMUX_CAM 0 /* 0: data from camera interface to self resize */
|
||
#define MRV_VI_DMA_SPMUX_DMA 1 /* 1: data from DMA read port to self resize */
|
||
#endif /* MRV_VI_DMA_SPMUX */
|
||
|
||
/* Slice: vi_dma_iemux:*/
|
||
/* 0: data from camera interface to image effects */
|
||
/* 1: data from DMA read port to image effects */
|
||
#ifdef MRV_VI_DMA_IEMUX
|
||
#define MRV_VI_DMA_IEMUX_CAM 0 /* 0: data from camera interface to image effects */
|
||
#define MRV_VI_DMA_IEMUX_DMA 1 /* 1: data from DMA read port to image effects */
|
||
#endif /* MRV_VI_DMA_IEMUX */
|
||
|
||
/* Slice: if_select:*/
|
||
/* selects input interface */
|
||
/* 0: parallel interface */
|
||
/* 1: SMIA-interface */
|
||
/* 2: MIPI-interface */
|
||
#ifdef MRV_IF_SELECT
|
||
#define MRV_IF_SELECT_PAR 0 /* 0: parallel interface */
|
||
#define MRV_IF_SELECT_SMIA 1 /* 1: SMIA-interface */
|
||
#define MRV_IF_SELECT_MIPI 2 /* 2: MIPI-interface */
|
||
#define MRV_IF_SELECT_HDR 3 /* 2: HDR-interface */
|
||
#endif /* MRV_IF_SELECT */
|
||
|
||
/* Slice: vi_dma_switch:*/
|
||
/* DMA read data path selector */
|
||
/* 0: path to SPMUX */
|
||
/* 1: path to Superimpose */
|
||
/* 2: path to Image Effects */
|
||
/* 3: reserved (for path to JPEG)*/
|
||
/* 4..7: reserved */
|
||
#ifdef MRV_VI_DMA_SWITCH
|
||
#define MRV_VI_DMA_SWITCH_SELF 0 /* 0: path to SPMUX */
|
||
#define MRV_VI_DMA_SWITCH_SIMP 1 /* 1: path to Superimpose */
|
||
#define MRV_VI_DMA_SWITCH_IE 2 /* 2: path to Image Effects */
|
||
#define MRV_VI_DMA_SWITCH_JPG 3 /* 3: path to JPEG */
|
||
#define MRV_VI_DMA_SWITCH_ISP 4 /* 4: path to ISP */
|
||
#endif /* MRV_VI_DMA_SWITCH */
|
||
|
||
/* Slice: vi_chan_mode:*/
|
||
/* Y/C splitter channel mode */
|
||
/* 0: disabled */
|
||
/* 1: main path and raw data mode */
|
||
/* 2: self path mode */
|
||
/* 3: main and self path mode */
|
||
#ifdef MRV_VI_CHAN_MODE
|
||
#define MRV_VI_CHAN_MODE_OFF 0x00 /* 0: disabled */
|
||
#define MRV_VI_CHAN_MODE_Y 0xFF /* not supported */
|
||
#define MRV_VI_CHAN_MODE_MP_RAW 0x01 /* 1: main path and raw data mode */
|
||
#define MRV_VI_CHAN_MODE_MP 0x01 /* 1: main path and raw data mode */
|
||
#define MRV_VI_CHAN_MODE_SP 0x02 /* 2: self path mode */
|
||
#define MRV_VI_CHAN_MODE_MP_SP 0x03 /* 3: main and self path mode */
|
||
#define MRV_VI_CHAN_MODE_SP2 0x04 /* 4: self2 path mode */
|
||
#define MRV_VI_CHAN_MODE_MP_SP2 0x05 /* 5: main and self2 path mode */
|
||
#define MRV_VI_CHAN_MODE_SP_SP2 0x06 /* 6: self and self2 path mode */
|
||
#define MRV_VI_CHAN_MODE_MP_SP_SP2 0x07 /* 7: main self and self2 path mode */
|
||
|
||
#endif /* MRV_VI_CHAN_MODE */
|
||
|
||
/* Slice: vi_mp_mux:*/
|
||
/* data path selector for main path */
|
||
/* 00: reserved (future: data from DMA read port to JPEG encoder)*/
|
||
/* 01: data from main resize to MI, uncompressed */
|
||
/* 10: data from main resize to JPEG encoder */
|
||
/* 11: reserved */
|
||
#ifdef MRV_VI_MP_MUX
|
||
#define MRV_VI_MP_MUX_JPGDIRECT 0x00 /* 00: reserved (future: data from DMA read port to JPEG encoder) */
|
||
#define MRV_VI_MP_MUX_MP 0x01 /* 01: data from main resize to MI, uncompressed */
|
||
#define MRV_VI_MP_MUX_RAW 0x01 /* (now also used for RAW data bypass) */
|
||
#define MRV_VI_MP_MUX_JPEG 0x02 /* 10: data from main resize to JPEG encoder */
|
||
#endif /* MRV_VI_MP_MUX */
|
||
|
||
/*****************************************************************************/
|
||
/* Image Effects Registers */
|
||
/*****************************************************************************/
|
||
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: img_eff_ctrl: Global control register (0x0000)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: full_range:*/
|
||
/* write 0: pixel value range according to BT.601 */
|
||
/* write 1: YCbCr full range 0...255 */
|
||
#ifdef MRV_IMGEFF_FULL_RANGE
|
||
#define MRV_IMGEFF_FULL_RANGE_FULL 1 /* 1: YCbCr full range 0...255 */
|
||
#define MRV_IMGEFF_FULL_RANGE_BT601 0 /* 0: pixel value range according to BT.601 */
|
||
#endif /* MRV_IMGEFF_FULL_RANGE */
|
||
|
||
/* Slice: cfg_upd:*/
|
||
/* write 0: nothing happens */
|
||
/* write 1: update shadow registers */
|
||
/* read: always 0 */
|
||
#ifdef MRV_IMGEFF_CFG_UPD
|
||
#define MRV_IMGEFF_CFG_UPD_NOTHING 0 /* 0: nothing happens */
|
||
#define MRV_IMGEFF_CFG_UPD_UPDATE 1 /* 1: update shadow registers */
|
||
#endif /* MRV_IMGEFF_CFG_UPD */
|
||
|
||
/* Slice: effect_mode:*/
|
||
/* effect mode */
|
||
/* 000: black & white effect (grayscale)*/
|
||
/* 001: negative effect */
|
||
/* 010: sepia effect */
|
||
/* 011: color selection effect */
|
||
/* 100: emboss effect */
|
||
/* 101: sketch effect */
|
||
/* 110: sharpen effect */
|
||
/* 111: reserved */
|
||
#ifdef MRV_IMGEFF_EFFECT_MODE
|
||
#define MRV_IMGEFF_EFFECT_MODE_GRAY 0 /* 000: black & white effect (grayscale) */
|
||
#define MRV_IMGEFF_EFFECT_MODE_NEGATIVE 1 /* 001: negative effect */
|
||
#define MRV_IMGEFF_EFFECT_MODE_SEPIA 2 /* 010: sepia effect */
|
||
#define MRV_IMGEFF_EFFECT_MODE_COLOR_SEL 3 /* 011: color selection effect */
|
||
#define MRV_IMGEFF_EFFECT_MODE_EMBOSS 4 /* 100: emboss effect */
|
||
#define MRV_IMGEFF_EFFECT_MODE_SKETCH 5 /* 101: sketch effect */
|
||
#define MRV_IMGEFF_EFFECT_MODE_SHARPEN 6 /* 110: sharpen effect */
|
||
#endif /* MRV_IMGEFF_EFFECT_MODE */
|
||
|
||
/* Slice: bypass_mode:*/
|
||
/* bypass mode */
|
||
/* 1: processing is activated */
|
||
/* 0: processing is deactivated, bypass mode is selected */
|
||
#ifdef MRV_IMGEFF_BYPASS_MODE
|
||
#define MRV_IMGEFF_BYPASS_MODE_PROCESS 1 /* 1: processing is activated */
|
||
#define MRV_IMGEFF_BYPASS_MODE_BYPASS 0 /* 0: processing is deactivated, bypass mode is selected */
|
||
#endif /* MRV_IMGEFF_BYPASS_MODE */
|
||
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: img_eff_color_sel: Color selection register (for
|
||
* color selection effect) (0x0004)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: color_threshold:*/
|
||
/* Threshold value of the RGB colors for the color selection effect.*/
|
||
#ifdef MRV_IMGEFF_COLOR_THRESHOLD
|
||
#endif /* MRV_IMGEFF_COLOR_THRESHOLD */
|
||
|
||
/* Slice: color_selection:*/
|
||
/* Defining the maintained color:*/
|
||
/* 000: red green and blue */
|
||
/* 001: blue */
|
||
/* 010: green */
|
||
/* 011: green and blue */
|
||
/* 100: red */
|
||
/* 101: red and blue */
|
||
/* 110: red and green */
|
||
/* 111: red green and blue */
|
||
#ifdef MRV_IMGEFF_COLOR_SELECTION
|
||
#define MRV_IMGEFF_COLOR_SELECTION_RGB 0 /* 000: red green and blue */
|
||
#define MRV_IMGEFF_COLOR_SELECTION_B 1 /* 001: blue */
|
||
#define MRV_IMGEFF_COLOR_SELECTION_G 2 /* 010: green */
|
||
#define MRV_IMGEFF_COLOR_SELECTION_BG 3 /* 011: green and blue */
|
||
#define MRV_IMGEFF_COLOR_SELECTION_R 4 /* 100: red */
|
||
#define MRV_IMGEFF_COLOR_SELECTION_RB 5 /* 101: red and blue */
|
||
#define MRV_IMGEFF_COLOR_SELECTION_RG 6 /* 110: red and green */
|
||
#define MRV_IMGEFF_COLOR_SELECTION_BGR 7 /* 111: red green and blue */
|
||
#endif /* MRV_IMGEFF_COLOR_SELECTION */
|
||
|
||
/* Slice: emb_coef_21_en:*/
|
||
/* 0: entry not used (coefficient is zero)*/
|
||
/* 1: entry used */
|
||
#ifdef MRV_IMGEFF_EMB_COEF_21_EN
|
||
#endif /* MRV_IMGEFF_EMB_COEF_21_EN */
|
||
|
||
/* Slice: emb_coef_21:*/
|
||
/* second line, left entry of 3x3 emboss effect matrix, 2 bit for coefficient, one sign bit.*/
|
||
/* coefficients:*/
|
||
/* 000 (1), 001(2), 010(4), 011(8)*/
|
||
/* 100 (-1), 101(-2), 110(-4), 111(-8)*/
|
||
#ifdef MRV_IMGEFF_EMB_COEF_21
|
||
#define MRV_IMGEFF_EMB_COEF_21_ONE 0 /* 000 (1) */
|
||
#define MRV_IMGEFF_EMB_COEF_21_TWO 1 /* 001 (2) */
|
||
#define MRV_IMGEFF_EMB_COEF_21_FOUR 2 /* 010 (4) */
|
||
#define MRV_IMGEFF_EMB_COEF_21_EIGHT 3 /* 011 (8) */
|
||
#define MRV_IMGEFF_EMB_COEF_21_MIN_ONE 4 /* 100 (-1) */
|
||
#define MRV_IMGEFF_EMB_COEF_21_MIN_TWO 5 /* 101 (-2) */
|
||
#define MRV_IMGEFF_EMB_COEF_21_MIN_FOUR 6 /* 110 (-4) */
|
||
#define MRV_IMGEFF_EMB_COEF_21_MIN_EIGHT 8 /* 111 (-8) */
|
||
#endif /* MRV_IMGEFF_EMB_COEF_21 */
|
||
|
||
/* combination of value and enable bit */
|
||
#define MRV_IMGEFF_EMB_COEF_21_4
|
||
#define MRV_IMGEFF_EMB_COEF_21_4_MASK 0x0000F000
|
||
#define MRV_IMGEFF_EMB_COEF_21_4_SHIFT 12
|
||
|
||
/* Slice: emb_coef_13_en:*/
|
||
/* 0: entry not used (coefficient is zero)*/
|
||
/* 1: entry used */
|
||
#ifdef MRV_IMGEFF_EMB_COEF_13_EN
|
||
#endif /* MRV_IMGEFF_EMB_COEF_13_EN */
|
||
|
||
/* Slice: emb_coef_13:*/
|
||
/* first line, right entry of 3x3 emboss effect matrix, 2 bit for coefficient, one sign bit.*/
|
||
/* coefficients:*/
|
||
/* 000 (1), 001(2), 010(4), 011(8)*/
|
||
/* 100 (-1), 101(-2), 110(-4), 111(-8)*/
|
||
#ifdef MRV_IMGEFF_EMB_COEF_13
|
||
#define MRV_IMGEFF_EMB_COEF_13_ONE 0 /* 000 (1) */
|
||
#define MRV_IMGEFF_EMB_COEF_13_TWO 1 /* 001 (2) */
|
||
#define MRV_IMGEFF_EMB_COEF_13_FOUR 2 /* 010 (4) */
|
||
#define MRV_IMGEFF_EMB_COEF_13_EIGHT 3 /* 011 (8) */
|
||
#define MRV_IMGEFF_EMB_COEF_13_MIN_ONE 4 /* 100 (-1) */
|
||
#define MRV_IMGEFF_EMB_COEF_13_MIN_TWO 5 /* 101 (-2) */
|
||
#define MRV_IMGEFF_EMB_COEF_13_MIN_FOUR 6 /* 110 (-4) */
|
||
#define MRV_IMGEFF_EMB_COEF_13_MIN_EIGHT 8 /* 111 (-8) */
|
||
#endif /* MRV_IMGEFF_EMB_COEF_13 */
|
||
|
||
/* combination of value and enable bit */
|
||
#define MRV_IMGEFF_EMB_COEF_13_4
|
||
#define MRV_IMGEFF_EMB_COEF_13_4_MASK 0x00000F00
|
||
#define MRV_IMGEFF_EMB_COEF_13_4_SHIFT 8
|
||
|
||
/* Slice: emb_coef_12_en:*/
|
||
/* 0: entry not used (coefficient is zero)*/
|
||
/* 1: entry used */
|
||
#ifdef MRV_IMGEFF_EMB_COEF_12_EN
|
||
#endif /* MRV_IMGEFF_EMB_COEF_12_EN */
|
||
|
||
/* Slice: emb_coef_12:*/
|
||
/* first line, middle entry of 3x3 emboss effect matrix, 2 bit for coefficient, one sign bit.*/
|
||
/* coefficients:*/
|
||
/* 000 (1), 001(2), 010(4), 011(8)*/
|
||
/* 100 (-1), 101(-2), 110(-4), 111(-8)*/
|
||
#ifdef MRV_IMGEFF_EMB_COEF_12
|
||
#define MRV_IMGEFF_EMB_COEF_12_ONE 0 /* 000 (1) */
|
||
#define MRV_IMGEFF_EMB_COEF_12_TWO 1 /* 001 (2) */
|
||
#define MRV_IMGEFF_EMB_COEF_12_FOUR 2 /* 010 (4) */
|
||
#define MRV_IMGEFF_EMB_COEF_12_EIGHT 3 /* 011 (8) */
|
||
#define MRV_IMGEFF_EMB_COEF_12_MIN_ONE 4 /* 100 (-1) */
|
||
#define MRV_IMGEFF_EMB_COEF_12_MIN_TWO 5 /* 101 (-2) */
|
||
#define MRV_IMGEFF_EMB_COEF_12_MIN_FOUR 6 /* 110 (-4) */
|
||
#define MRV_IMGEFF_EMB_COEF_12_MIN_EIGHT 8 /* 111 (-8) */
|
||
#endif /* MRV_IMGEFF_EMB_COEF_12 */
|
||
|
||
/* combination of value and enable bit */
|
||
#define MRV_IMGEFF_EMB_COEF_12_4
|
||
#define MRV_IMGEFF_EMB_COEF_12_4_MASK 0x000000F0
|
||
#define MRV_IMGEFF_EMB_COEF_12_4_SHIFT 4
|
||
|
||
/* Slice: emb_coef_11_en:*/
|
||
/* 0: entry not used (coefficient is zero)*/
|
||
/* 1: entry used */
|
||
#ifdef MRV_IMGEFF_EMB_COEF_11_EN
|
||
#define MRV_IMGEFF_EMB_COEF_11_EN_ON 1
|
||
#define MRV_IMGEFF_EMB_COEF_11_EN_OFF 0
|
||
#endif /* MRV_IMGEFF_EMB_COEF_11_EN */
|
||
|
||
/* Slice: emb_coef_11:*/
|
||
/* first line, left entry of 3x3 emboss effect matrix, 2 bit for coefficient, one sign bit.*/
|
||
/* coefficients:*/
|
||
/* 000 (1), 001(2), 010(4), 011(8)*/
|
||
/* 100 (-1), 101(-2), 110(-4), 111(-8)*/
|
||
#ifdef MRV_IMGEFF_EMB_COEF_11
|
||
#define MRV_IMGEFF_EMB_COEF_11_ONE 0 /* 000 (1) */
|
||
#define MRV_IMGEFF_EMB_COEF_11_TWO 1 /* 001 (2) */
|
||
#define MRV_IMGEFF_EMB_COEF_11_FOUR 2 /* 010 (4) */
|
||
#define MRV_IMGEFF_EMB_COEF_11_EIGHT 3 /* 011 (8) */
|
||
#define MRV_IMGEFF_EMB_COEF_11_MIN_ONE 4 /* 100 (-1) */
|
||
#define MRV_IMGEFF_EMB_COEF_11_MIN_TWO 5 /* 101 (-2) */
|
||
#define MRV_IMGEFF_EMB_COEF_11_MIN_FOUR 6 /* 110 (-4) */
|
||
#define MRV_IMGEFF_EMB_COEF_11_MIN_EIGHT 8 /* 111 (-8) */
|
||
#endif /* MRV_IMGEFF_EMB_COEF_11 */
|
||
|
||
/* combination of value and enable bit */
|
||
#define MRV_IMGEFF_EMB_COEF_11_4
|
||
#define MRV_IMGEFF_EMB_COEF_11_4_MASK 0x0000000F
|
||
#define MRV_IMGEFF_EMB_COEF_11_4_SHIFT 0
|
||
|
||
/* Slice: emb_coef_32_en:*/
|
||
/* 0: entry not used (coefficient is zero)*/
|
||
/* 1: entry used */
|
||
#ifdef MRV_IMGEFF_EMB_COEF_32_EN
|
||
#endif /* MRV_IMGEFF_EMB_COEF_32_EN */
|
||
|
||
/* Slice: emb_coef_32:*/
|
||
/* first line, left entry of 3x3 emboss effect matrix, 2 bit for coefficient, one sign bit.*/
|
||
/* coefficients:*/
|
||
/* 000 (1), 001(2), 010(4), 011(8)*/
|
||
/* 100 (-1), 101(-2), 110(-4), 111(-8)*/
|
||
#ifdef MRV_IMGEFF_EMB_COEF_32
|
||
#define MRV_IMGEFF_EMB_COEF_32_ONE 0 /* 000 (1) */
|
||
#define MRV_IMGEFF_EMB_COEF_32_TWO 1 /* 001 (2) */
|
||
#define MRV_IMGEFF_EMB_COEF_32_FOUR 2 /* 010 (4) */
|
||
#define MRV_IMGEFF_EMB_COEF_32_EIGHT 3 /* 011 (8) */
|
||
#define MRV_IMGEFF_EMB_COEF_32_MIN_ONE 4 /* 100 (-1) */
|
||
#define MRV_IMGEFF_EMB_COEF_32_MIN_TWO 5 /* 101 (-2) */
|
||
#define MRV_IMGEFF_EMB_COEF_32_MIN_FOUR 6 /* 110 (-4) */
|
||
#define MRV_IMGEFF_EMB_COEF_32_MIN_EIGHT 8 /* 111 (-8) */
|
||
#endif /* MRV_IMGEFF_EMB_COEF_32 */
|
||
|
||
/* combination of value and enable bit */
|
||
#define MRV_IMGEFF_EMB_COEF_32_4
|
||
#define MRV_IMGEFF_EMB_COEF_32_4_MASK 0x0000F000
|
||
#define MRV_IMGEFF_EMB_COEF_32_4_SHIFT 12
|
||
|
||
/* Slice: emb_coef_31_en:*/
|
||
/* 0: entry not used (coefficient is zero)*/
|
||
/* 1: entry used */
|
||
#ifdef MRV_IMGEFF_EMB_COEF_31_EN
|
||
#endif /* MRV_IMGEFF_EMB_COEF_31_EN */
|
||
|
||
/* Slice: emb_coef_31:*/
|
||
/* first line, left entry of 3x3 emboss effect matrix, 2 bit for coefficient, one sign bit.*/
|
||
/* coefficients:*/
|
||
/* 000 (1), 001(2), 010(4), 011(8)*/
|
||
/* 100 (-1), 101(-2), 110(-4), 111(-8)*/
|
||
#ifdef MRV_IMGEFF_EMB_COEF_31
|
||
#define MRV_IMGEFF_EMB_COEF_31_ONE 0 /* 000 (1) */
|
||
#define MRV_IMGEFF_EMB_COEF_31_TWO 1 /* 001 (2) */
|
||
#define MRV_IMGEFF_EMB_COEF_31_FOUR 2 /* 010 (4) */
|
||
#define MRV_IMGEFF_EMB_COEF_31_EIGHT 3 /* 011 (8) */
|
||
#define MRV_IMGEFF_EMB_COEF_31_MIN_ONE 4 /* 100 (-1) */
|
||
#define MRV_IMGEFF_EMB_COEF_31_MIN_TWO 5 /* 101 (-2) */
|
||
#define MRV_IMGEFF_EMB_COEF_31_MIN_FOUR 6 /* 110 (-4) */
|
||
#define MRV_IMGEFF_EMB_COEF_31_MIN_EIGHT 8 /* 111 (-8) */
|
||
#endif /* MRV_IMGEFF_EMB_COEF_31 */
|
||
|
||
/* combination of value and enable bit */
|
||
#define MRV_IMGEFF_EMB_COEF_31_4
|
||
#define MRV_IMGEFF_EMB_COEF_31_4_MASK 0x00000F00
|
||
#define MRV_IMGEFF_EMB_COEF_31_4_SHIFT 8
|
||
|
||
/* Slice: emb_coef_23_en:*/
|
||
/* 0: entry not used (coefficient is zero)*/
|
||
/* 1: entry used */
|
||
#ifdef MRV_IMGEFF_EMB_COEF_23_EN
|
||
#endif /* MRV_IMGEFF_EMB_COEF_23_EN */
|
||
|
||
/* Slice: emb_coef_23:*/
|
||
/* first line, left entry of 3x3 emboss effect matrix, 2 bit for coefficient, one sign bit.*/
|
||
/* coefficients:*/
|
||
/* 000 (1), 001(2), 010(4), 011(8)*/
|
||
/* 100 (-1), 101(-2), 110(-4), 111(-8)*/
|
||
#ifdef MRV_IMGEFF_EMB_COEF_23
|
||
#define MRV_IMGEFF_EMB_COEF_23_ONE 0 /* 000 (1) */
|
||
#define MRV_IMGEFF_EMB_COEF_23_TWO 1 /* 001 (2) */
|
||
#define MRV_IMGEFF_EMB_COEF_23_FOUR 2 /* 010 (4) */
|
||
#define MRV_IMGEFF_EMB_COEF_23_EIGHT 3 /* 011 (8) */
|
||
#define MRV_IMGEFF_EMB_COEF_23_MIN_ONE 4 /* 100 (-1) */
|
||
#define MRV_IMGEFF_EMB_COEF_23_MIN_TWO 5 /* 101 (-2) */
|
||
#define MRV_IMGEFF_EMB_COEF_23_MIN_FOUR 6 /* 110 (-4) */
|
||
#define MRV_IMGEFF_EMB_COEF_23_MIN_EIGHT 8 /* 111 (-8) */
|
||
#endif /* MRV_IMGEFF_EMB_COEF_23 */
|
||
|
||
/* combination of value and enable bit */
|
||
#define MRV_IMGEFF_EMB_COEF_23_4
|
||
#define MRV_IMGEFF_EMB_COEF_23_4_MASK 0x000000F0
|
||
#define MRV_IMGEFF_EMB_COEF_23_4_SHIFT 4
|
||
|
||
/* Slice: emb_coef_22_en:*/
|
||
/* 0: entry not used (coefficient is zero)*/
|
||
/* 1: entry used */
|
||
#ifdef MRV_IMGEFF_EMB_COEF_22_EN
|
||
#endif /* MRV_IMGEFF_EMB_COEF_22_EN */
|
||
|
||
/* Slice: emb_coef_22:*/
|
||
/* first line, left entry of 3x3 emboss effect matrix, 2 bit for coefficient, one sign bit.*/
|
||
/* coefficients:*/
|
||
/* 000 (1), 001(2), 010(4), 011(8)*/
|
||
/* 100 (-1), 101(-2), 110(-4), 111(-8)*/
|
||
#ifdef MRV_IMGEFF_EMB_COEF_22
|
||
#define MRV_IMGEFF_EMB_COEF_22_ONE 0 /* 000 (1) */
|
||
#define MRV_IMGEFF_EMB_COEF_22_TWO 1 /* 001 (2) */
|
||
#define MRV_IMGEFF_EMB_COEF_22_FOUR 2 /* 010 (4) */
|
||
#define MRV_IMGEFF_EMB_COEF_22_EIGHT 3 /* 011 (8) */
|
||
#define MRV_IMGEFF_EMB_COEF_22_MIN_ONE 4 /* 100 (-1) */
|
||
#define MRV_IMGEFF_EMB_COEF_22_MIN_TWO 5 /* 101 (-2) */
|
||
#define MRV_IMGEFF_EMB_COEF_22_MIN_FOUR 6 /* 110 (-4) */
|
||
#define MRV_IMGEFF_EMB_COEF_22_MIN_EIGHT 8 /* 111 (-8) */
|
||
#endif /* MRV_IMGEFF_EMB_COEF_22 */
|
||
|
||
/* combination of value and enable bit */
|
||
#define MRV_IMGEFF_EMB_COEF_22_4
|
||
#define MRV_IMGEFF_EMB_COEF_22_4_MASK 0x0000000F
|
||
#define MRV_IMGEFF_EMB_COEF_22_4_SHIFT 0
|
||
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: img_eff_mat_3: 3x3 matrix coefficients for emboss(3) effect /
|
||
* sketch(1) effect (0x0010)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: sket_coef_13_en:*/
|
||
/* 0: entry not used (coefficient is zero)*/
|
||
/* 1: entry used */
|
||
#ifdef MRV_IMGEFF_SKET_COEF_13_EN
|
||
#endif /* MRV_IMGEFF_SKET_COEF_13_EN */
|
||
|
||
/* Slice: sket_coef_13:*/
|
||
/* first line, right entry of 3x3 sketch effect matrix, 2 bit for coefficient, one sign bit.*/
|
||
/* coefficients:*/
|
||
/* 000 (1), 001(2), 010(4), 011(8)*/
|
||
/* 100 (-1), 101(-2), 110(-4), 111(-8)*/
|
||
#ifdef MRV_IMGEFF_SKET_COEF_13
|
||
#define MRV_IMGEFF_SKET_COEF_13_ONE 0 /* 000 (1) */
|
||
#define MRV_IMGEFF_SKET_COEF_13_TWO 1 /* 001 (2) */
|
||
#define MRV_IMGEFF_SKET_COEF_13_FOUR 2 /* 010 (4) */
|
||
#define MRV_IMGEFF_SKET_COEF_13_EIGHT 3 /* 011 (8) */
|
||
#define MRV_IMGEFF_SKET_COEF_13_MIN_ONE 4 /* 100 (-1) */
|
||
#define MRV_IMGEFF_SKET_COEF_13_MIN_TWO 5 /* 101 (-2) */
|
||
#define MRV_IMGEFF_SKET_COEF_13_MIN_FOUR 6 /* 110 (-4) */
|
||
#define MRV_IMGEFF_SKET_COEF_13_MIN_EIGHT 8 /* 111 (-8) */
|
||
#endif /* MRV_IMGEFF_SKET_COEF_13 */
|
||
|
||
/* combination of value and enable bit */
|
||
#define MRV_IMGEFF_SKET_COEF_13_4
|
||
#define MRV_IMGEFF_SKET_COEF_13_4_MASK 0x0000F000
|
||
#define MRV_IMGEFF_SKET_COEF_13_4_SHIFT 12
|
||
|
||
/* Slice: sket_coef_12_en:*/
|
||
/* 0: entry not used (coefficient is zero)*/
|
||
/* 1: entry used */
|
||
#ifdef MRV_IMGEFF_SKET_COEF_12_EN
|
||
#endif /* MRV_IMGEFF_SKET_COEF_13_EN */
|
||
|
||
/* Slice: sket_coef_12:*/
|
||
/* first line, middle entry of 3x3 sketch effect matrix, 2 bit for coefficient, one sign bit.*/
|
||
/* coefficients:*/
|
||
/* 000 (1), 001(2), 010(4), 011(8)*/
|
||
/* 100 (-1), 101(-2), 110(-4), 111(-8)*/
|
||
#ifdef MRV_IMGEFF_SKET_COEF_12
|
||
#define MRV_IMGEFF_SKET_COEF_12_ONE 0 /* 000 (1) */
|
||
#define MRV_IMGEFF_SKET_COEF_12_TWO 1 /* 001 (2) */
|
||
#define MRV_IMGEFF_SKET_COEF_12_FOUR 2 /* 010 (4) */
|
||
#define MRV_IMGEFF_SKET_COEF_12_EIGHT 3 /* 011 (8) */
|
||
#define MRV_IMGEFF_SKET_COEF_12_MIN_ONE 4 /* 100 (-1) */
|
||
#define MRV_IMGEFF_SKET_COEF_12_MIN_TWO 5 /* 101 (-2) */
|
||
#define MRV_IMGEFF_SKET_COEF_12_MIN_FOUR 6 /* 110 (-4) */
|
||
#define MRV_IMGEFF_SKET_COEF_12_MIN_EIGHT 8 /* 111 (-8) */
|
||
#endif /* MRV_IMGEFF_SKET_COEF_12 */
|
||
|
||
/* combination of value and enable bit */
|
||
#define MRV_IMGEFF_SKET_COEF_12_4
|
||
#define MRV_IMGEFF_SKET_COEF_12_4_MASK 0x00000F00
|
||
#define MRV_IMGEFF_SKET_COEF_12_4_SHIFT 8
|
||
|
||
/* Slice: sket_coef_11_en:*/
|
||
/* 0: entry not used (coefficient is zero)*/
|
||
/* 1: entry used */
|
||
#ifdef MRV_IMGEFF_SKET_COEF_11_EN
|
||
#endif /* MRV_IMGEFF_SKET_COEF_13_EN */
|
||
|
||
/* Slice: sket_coef_11:*/
|
||
/* first line, middle entry of 3x3 sketch effect matrix, 2 bit for coefficient, one sign bit.*/
|
||
/* coefficients:*/
|
||
/* 000 (1), 001(2), 010(4), 011(8)*/
|
||
/* 100 (-1), 101(-2), 110(-4), 111(-8)*/
|
||
#ifdef MRV_IMGEFF_SKET_COEF_11
|
||
#define MRV_IMGEFF_SKET_COEF_11_ONE 0 /* 000 (1) */
|
||
#define MRV_IMGEFF_SKET_COEF_11_TWO 1 /* 001 (2) */
|
||
#define MRV_IMGEFF_SKET_COEF_11_FOUR 2 /* 010 (4) */
|
||
#define MRV_IMGEFF_SKET_COEF_11_EIGHT 3 /* 011 (8) */
|
||
#define MRV_IMGEFF_SKET_COEF_11_MIN_ONE 4 /* 100 (-1) */
|
||
#define MRV_IMGEFF_SKET_COEF_11_MIN_TWO 5 /* 101 (-2) */
|
||
#define MRV_IMGEFF_SKET_COEF_11_MIN_FOUR 6 /* 110 (-4) */
|
||
#define MRV_IMGEFF_SKET_COEF_11_MIN_EIGHT 8 /* 111 (-8) */
|
||
#endif /* MRV_IMGEFF_SKET_COEF_11 */
|
||
|
||
/* combination of value and enable bit */
|
||
#define MRV_IMGEFF_SKET_COEF_11_4
|
||
#define MRV_IMGEFF_SKET_COEF_11_4_MASK 0x000000F0
|
||
#define MRV_IMGEFF_SKET_COEF_11_4_SHIFT 4
|
||
|
||
/* Slice: emb_coef_33_en:*/
|
||
/* 0: entry not used (coefficient is zero)*/
|
||
/* 1: entry used */
|
||
#ifdef MRV_IMGEFF_EMB_COEF_33_EN
|
||
#endif /* MRV_IMGEFF_EMB_COEF_33_EN */
|
||
|
||
/* Slice: emb_coef_33:*/
|
||
/* first line, left entry of 3x3 emboss effect matrix, 2 bit for coefficient, one sign bit.*/
|
||
/* coefficients:*/
|
||
/* 000 (1), 001(2), 010(4), 011(8)*/
|
||
/* 100 (-1), 101(-2), 110(-4), 111(-8)*/
|
||
#ifdef MRV_IMGEFF_EMB_COEF_3
|
||
#define MRV_IMGEFF_EMB_COEF_33_ONE 0 /* 000 (1) */
|
||
#define MRV_IMGEFF_EMB_COEF_33_TWO 1 /* 001 (2) */
|
||
#define MRV_IMGEFF_EMB_COEF_33_FOUR 2 /* 010 (4) */
|
||
#define MRV_IMGEFF_EMB_COEF_33_EIGHT 3 /* 011 (8) */
|
||
#define MRV_IMGEFF_EMB_COEF_33_MIN_ONE 4 /* 100 (-1) */
|
||
#define MRV_IMGEFF_EMB_COEF_33_MIN_TWO 5 /* 101 (-2) */
|
||
#define MRV_IMGEFF_EMB_COEF_33_MIN_FOUR 6 /* 110 (-4) */
|
||
#define MRV_IMGEFF_EMB_COEF_33_MIN_EIGHT 8 /* 111 (-8) */
|
||
#endif /* MRV_IMGEFF_EMB_COEF_33 */
|
||
|
||
/* combination of value and enable bit */
|
||
#define MRV_IMGEFF_EMB_COEF_33_4
|
||
#define MRV_IMGEFF_EMB_COEF_33_4_MASK 0x0000000F
|
||
#define MRV_IMGEFF_EMB_COEF_33_4_SHIFT 0
|
||
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: img_eff_mat_4: 3x3 matrix coefficients for sketch effect (2)
|
||
* (0x0014)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: sket_coef_31_en:*/
|
||
/* 0: entry not used (coefficient is zero)*/
|
||
/* 1: entry used */
|
||
#ifdef MRV_IMGEFF_SKET_COEF_31_EN
|
||
#endif /* MRV_IMGEFF_SKET_COEF_31_EN */
|
||
|
||
/* Slice: sket_coef_31:*/
|
||
/* first line, middle entry of 3x3 sketch effect matrix, 2 bit for coefficient, one sign bit.*/
|
||
/* coefficients:*/
|
||
/* 000 (1), 001(2), 010(4), 011(8)*/
|
||
/* 100 (-1), 101(-2), 110(-4), 111(-8)*/
|
||
#ifdef MRV_IMGEFF_SKET_COEF_31
|
||
#define MRV_IMGEFF_SKET_COEF_31_ONE 0 /* 000 (1) */
|
||
#define MRV_IMGEFF_SKET_COEF_31_TWO 1 /* 001 (2) */
|
||
#define MRV_IMGEFF_SKET_COEF_31_FOUR 2 /* 010 (4) */
|
||
#define MRV_IMGEFF_SKET_COEF_31_EIGHT 3 /* 011 (8) */
|
||
#define MRV_IMGEFF_SKET_COEF_31_MIN_ONE 4 /* 100 (-1) */
|
||
#define MRV_IMGEFF_SKET_COEF_31_MIN_TWO 5 /* 101 (-2) */
|
||
#define MRV_IMGEFF_SKET_COEF_31_MIN_FOUR 6 /* 110 (-4) */
|
||
#define MRV_IMGEFF_SKET_COEF_31_MIN_EIGHT 8 /* 111 (-8) */
|
||
#endif /* MRV_IMGEFF_SKET_COEF_31 */
|
||
|
||
/* combination of value and enable bit */
|
||
#define MRV_IMGEFF_SKET_COEF_31_4
|
||
#define MRV_IMGEFF_SKET_COEF_31_4_MASK 0x0000F000
|
||
#define MRV_IMGEFF_SKET_COEF_31_4_SHIFT 12
|
||
|
||
/* Slice: sket_coef_23_en:*/
|
||
/* 0: entry not used (coefficient is zero)*/
|
||
/* 1: entry used */
|
||
#ifdef MRV_IMGEFF_SKET_COEF_23_EN
|
||
#endif /* MRV_IMGEFF_SKET_COEF_23_EN */
|
||
|
||
/* Slice: sket_coef_23:*/
|
||
/* first line, middle entry of 3x3 sketch effect matrix, 2 bit for coefficient, one sign bit.*/
|
||
/* coefficients:*/
|
||
/* 000 (1), 001(2), 010(4), 011(8)*/
|
||
/* 100 (-1), 101(-2), 110(-4), 111(-8)*/
|
||
#ifdef MRV_IMGEFF_SKET_COEF_23
|
||
#define MRV_IMGEFF_SKET_COEF_23_ONE 0 /* 000 (1) */
|
||
#define MRV_IMGEFF_SKET_COEF_23_TWO 1 /* 001 (2) */
|
||
#define MRV_IMGEFF_SKET_COEF_23_FOUR 2 /* 010 (4) */
|
||
#define MRV_IMGEFF_SKET_COEF_23_EIGHT 3 /* 011 (8) */
|
||
#define MRV_IMGEFF_SKET_COEF_23_MIN_ONE 4 /* 100 (-1) */
|
||
#define MRV_IMGEFF_SKET_COEF_23_MIN_TWO 5 /* 101 (-2) */
|
||
#define MRV_IMGEFF_SKET_COEF_23_MIN_FOUR 6 /* 110 (-4) */
|
||
#define MRV_IMGEFF_SKET_COEF_23_MIN_EIGHT 8 /* 111 (-8) */
|
||
#endif /* MRV_IMGEFF_SKET_COEF_23 */
|
||
|
||
/* combination of value and enable bit */
|
||
#define MRV_IMGEFF_SKET_COEF_23_4
|
||
#define MRV_IMGEFF_SKET_COEF_23_4_MASK 0x00000F00
|
||
#define MRV_IMGEFF_SKET_COEF_23_4_SHIFT 8
|
||
|
||
/* Slice: sket_coef_22_en:*/
|
||
/* 0: entry not used (coefficient is zero)*/
|
||
/* 1: entry used */
|
||
#ifdef MRV_IMGEFF_SKET_COEF_22_EN
|
||
#endif /* MRV_IMGEFF_SKET_COEF_22_EN */
|
||
|
||
/* Slice: sket_coef_22:*/
|
||
/* first line, middle entry of 3x3 sketch effect matrix, 2 bit for coefficient, one sign bit.*/
|
||
/* coefficients:*/
|
||
/* 000 (1), 001(2), 010(4), 011(8)*/
|
||
/* 100 (-1), 101(-2), 110(-4), 111(-8)*/
|
||
#ifdef MRV_IMGEFF_SKET_COEF_22
|
||
#define MRV_IMGEFF_SKET_COEF_22_ONE 0 /* 000 (1) */
|
||
#define MRV_IMGEFF_SKET_COEF_22_TWO 1 /* 001 (2) */
|
||
#define MRV_IMGEFF_SKET_COEF_22_FOUR 2 /* 010 (4) */
|
||
#define MRV_IMGEFF_SKET_COEF_22_EIGHT 3 /* 011 (8) */
|
||
#define MRV_IMGEFF_SKET_COEF_22_MIN_ONE 4 /* 100 (-1) */
|
||
#define MRV_IMGEFF_SKET_COEF_22_MIN_TWO 5 /* 101 (-2) */
|
||
#define MRV_IMGEFF_SKET_COEF_22_MIN_FOUR 6 /* 110 (-4) */
|
||
#define MRV_IMGEFF_SKET_COEF_22_MIN_EIGHT 8 /* 111 (-8) */
|
||
#endif /* MRV_IMGEFF_SKET_COEF_22 */
|
||
|
||
/* combination of value and enable bit */
|
||
#define MRV_IMGEFF_SKET_COEF_22_4
|
||
#define MRV_IMGEFF_SKET_COEF_22_4_MASK 0x000000F0
|
||
#define MRV_IMGEFF_SKET_COEF_22_4_SHIFT 4
|
||
|
||
/* Slice: sket_coef_21_en:*/
|
||
/* 0: entry not used (coefficient is zero)*/
|
||
/* 1: entry used */
|
||
#ifdef MRV_IMGEFF_SKET_COEF_21_EN
|
||
#endif /* MRV_IMGEFF_SKET_COEF_21_EN */
|
||
|
||
/* Slice: sket_coef_21:*/
|
||
/* first line, middle entry of 3x3 sketch effect matrix, 2 bit for coefficient, one sign bit.*/
|
||
/* coefficients:*/
|
||
/* 000 (1), 001(2), 010(4), 011(8)*/
|
||
/* 100 (-1), 101(-2), 110(-4), 111(-8)*/
|
||
#ifdef MRV_IMGEFF_SKET_COEF_21
|
||
#define MRV_IMGEFF_SKET_COEF_21_ONE 0 /* 000 (1) */
|
||
#define MRV_IMGEFF_SKET_COEF_21_TWO 1 /* 001 (2) */
|
||
#define MRV_IMGEFF_SKET_COEF_21_FOUR 2 /* 010 (4) */
|
||
#define MRV_IMGEFF_SKET_COEF_21_EIGHT 3 /* 011 (8) */
|
||
#define MRV_IMGEFF_SKET_COEF_21_MIN_ONE 4 /* 100 (-1) */
|
||
#define MRV_IMGEFF_SKET_COEF_21_MIN_TWO 5 /* 101 (-2) */
|
||
#define MRV_IMGEFF_SKET_COEF_21_MIN_FOUR 6 /* 110 (-4) */
|
||
#define MRV_IMGEFF_SKET_COEF_21_MIN_EIGHT 8 /* 111 (-8) */
|
||
#endif /* MRV_IMGEFF_SKET_COEF_21 */
|
||
|
||
/* combination of value and enable bit */
|
||
#define MRV_IMGEFF_SKET_COEF_21_4
|
||
#define MRV_IMGEFF_SKET_COEF_21_4_MASK 0x0000000F
|
||
#define MRV_IMGEFF_SKET_COEF_21_4_SHIFT 0
|
||
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: img_eff_mat_5: 3x3 matrix coefficients for sketch effect (3)
|
||
* (0x0018)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: sket_coef_33_en:*/
|
||
/* 0: entry not used (coefficient is zero)*/
|
||
/* 1: entry used */
|
||
#ifdef MRV_IMGEFF_SKET_COEF_33_EN
|
||
#endif /* MRV_IMGEFF_SKET_COEF_33_EN */
|
||
|
||
/* Slice: sket_coef_33:*/
|
||
/* third line, right entry of 3x3 sketch effect matrix, 2 bit for coefficient, one sign bit.*/
|
||
/* coefficients:*/
|
||
/* 000 (1), 001(2), 010(4), 011(8)*/
|
||
/* 100 (-1), 101(-2), 110(-4), 111(-8)*/
|
||
#ifdef MRV_IMGEFF_SKET_COEF_33
|
||
#define MRV_IMGEFF_SKET_COEF_33_ONE 0 /* 000 (1) */
|
||
#define MRV_IMGEFF_SKET_COEF_33_TWO 1 /* 001 (2) */
|
||
#define MRV_IMGEFF_SKET_COEF_33_FOUR 2 /* 010 (4) */
|
||
#define MRV_IMGEFF_SKET_COEF_33_EIGHT 3 /* 011 (8) */
|
||
#define MRV_IMGEFF_SKET_COEF_33_MIN_ONE 4 /* 100 (-1) */
|
||
#define MRV_IMGEFF_SKET_COEF_33_MIN_TWO 5 /* 101 (-2) */
|
||
#define MRV_IMGEFF_SKET_COEF_33_MIN_FOUR 6 /* 110 (-4) */
|
||
#define MRV_IMGEFF_SKET_COEF_33_MIN_EIGHT 8 /* 111 (-8) */
|
||
#endif /* MRV_IMGEFF_SKET_COEF_33 */
|
||
|
||
/* combination of value and enable bit */
|
||
#define MRV_IMGEFF_SKET_COEF_33_4
|
||
#define MRV_IMGEFF_SKET_COEF_33_4_MASK 0x000000F0
|
||
#define MRV_IMGEFF_SKET_COEF_33_4_SHIFT 4
|
||
|
||
/* Slice: sket_coef_32_en:*/
|
||
/* 0: entry not used (coefficient is zero)*/
|
||
/* 1: entry used */
|
||
#ifdef MRV_IMGEFF_SKET_COEF_32_EN
|
||
#endif /* MRV_IMGEFF_SKET_COEF_32_EN */
|
||
|
||
/* Slice: sket_coef_32:*/
|
||
/* third line, right entry of 3x3 sketch effect matrix, 2 bit for coefficient, one sign bit.*/
|
||
/* coefficients:*/
|
||
/* 000 (1), 001(2), 010(4), 011(8)*/
|
||
/* 100 (-1), 101(-2), 110(-4), 111(-8)*/
|
||
#ifdef MRV_IMGEFF_SKET_COEF_32
|
||
#define MRV_IMGEFF_SKET_COEF_32_ONE 0 /* 000 (1) */
|
||
#define MRV_IMGEFF_SKET_COEF_32_TWO 1 /* 001 (2) */
|
||
#define MRV_IMGEFF_SKET_COEF_32_FOUR 2 /* 010 (4) */
|
||
#define MRV_IMGEFF_SKET_COEF_32_EIGHT 3 /* 011 (8) */
|
||
#define MRV_IMGEFF_SKET_COEF_32_MIN_ONE 4 /* 100 (-1) */
|
||
#define MRV_IMGEFF_SKET_COEF_32_MIN_TWO 5 /* 101 (-2) */
|
||
#define MRV_IMGEFF_SKET_COEF_32_MIN_FOUR 6 /* 110 (-4) */
|
||
#define MRV_IMGEFF_SKET_COEF_32_MIN_EIGHT 8 /* 111 (-8) */
|
||
#endif /* MRV_IMGEFF_SKET_COEF_32 */
|
||
|
||
/* combination of value and enable bit */
|
||
#define MRV_IMGEFF_SKET_COEF_32_4
|
||
#define MRV_IMGEFF_SKET_COEF_32_4_MASK 0x0000000F
|
||
#define MRV_IMGEFF_SKET_COEF_32_4_SHIFT 0
|
||
|
||
/* valid for all coeffiecient definitions */
|
||
#define MRV_IMGEFF_COEF
|
||
#define MRV_IMGEFF_COEF_ONE 0U
|
||
#define MRV_IMGEFF_COEF_TWO 1U /* 001: (2) */
|
||
#define MRV_IMGEFF_COEF_FOUR 2U /* 010: (4) */
|
||
#define MRV_IMGEFF_COEF_EIGHT 3U /* 011: (8) */
|
||
#define MRV_IMGEFF_COEF_MIN_ONE 4U /* 100: (-1) */
|
||
#define MRV_IMGEFF_COEF_MIN_TWO 5U /* 101: (-2) */
|
||
#define MRV_IMGEFF_COEF_MIN_FOUR 6U /* 110: (-4) */
|
||
#define MRV_IMGEFF_COEF_MIN_EIGHT 7U /* 111: (-8) */
|
||
|
||
#define MRV_IMGEFF_COEF_ON 1U /* 1: coefficient enabled */
|
||
#define MRV_IMGEFF_COEF_OFF 0U /* 0: coefficient disabled */
|
||
#define MRV_IMGEFF_COEF_SHIFT 3U /* shift for enable bit */
|
||
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: img_eff_tint: Chrominance increment values of a tint
|
||
* (used for sepia effect) (0x001c)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: incr_cr:*/
|
||
/* Cr increment value of a tint. 7 bits for value, 1 sign bit.*/
|
||
/* Default tint is R=162 G=138 B=101, which is used for the sepia effect. See below for the calculation of the entries.*/
|
||
#ifdef MRV_IMGEFF_INCR_CR
|
||
#endif /* MRV_IMGEFF_INCR_CR */
|
||
|
||
/* Slice: incr_cb:*/
|
||
/* Cb increment value of a tint. 7 bits for value, 1 sign bit.*/
|
||
/* Default tint is R=162 G=138 B=101, which is used for the sepia effect. See below for the calculation of the entries.*/
|
||
#ifdef MRV_IMGEFF_INCR_CB
|
||
#endif /* MRV_IMGEFF_INCR_CB */
|
||
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: img_eff_ctrl_shd: Shadow register for control register (0x0020)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: effect_mode_shd:*/
|
||
/* effect mode */
|
||
/* 000: black & white effect (grayscale)*/
|
||
/* 001: negative effect */
|
||
/* 010: sepia effect */
|
||
/* 011: color selection effect */
|
||
/* 100: emboss effect */
|
||
/* 101: sketch effect */
|
||
/* 110-111: not used */
|
||
#ifdef MRV_IMGEFF_EFFECT_MODE_SHD
|
||
#define MRV_IMGEFF_EFFECT_MODE_SHD_GRAY 0 /* 000: black & white effect (grayscale) */
|
||
#define MRV_IMGEFF_EFFECT_MODE_SHD_NEGATIVE 1 /* 001: negative effect */
|
||
#define MRV_IMGEFF_EFFECT_MODE_SHD_SEPIA 2 /* 010: sepia effect */
|
||
#define MRV_IMGEFF_EFFECT_MODE_SHD_COLOR_SEL 3 /* 011: color selection effect */
|
||
#define MRV_IMGEFF_EFFECT_MODE_SHD_EMBOSS 4 /* 100: emboss effect */
|
||
#define MRV_IMGEFF_EFFECT_MODE_SHD_SKETCH 5 /* 101: sketch effect */
|
||
#define MRV_IMGEFF_EFFECT_MODE_SHD_SHARPEN 6 /* 110: sharpen effect */
|
||
#endif /* MRV_IMGEFF_EFFECT_MODE_SHD */
|
||
|
||
/*****************************************************************************/
|
||
/* Super Impose Registers */
|
||
/*****************************************************************************/
|
||
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: super_imp_ctrl: Global control register (0x0000)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: transparency_mode:*/
|
||
/* transparency mode */
|
||
/* 1: transparency mode disabled */
|
||
/* 0: transparency mode enabled */
|
||
#ifdef MRV_SI_TRANSPARENCY_MODE
|
||
#define MRV_SI_TRANSPARENCY_MODE_DISABLED 1 /* 1: transparency mode disabled */
|
||
#define MRV_SI_TRANSPARENCY_MODE_ENABLED 0 /* 0: transparency mode enabled */
|
||
#endif /* MRV_SI_TRANSPARENCY_MODE */
|
||
|
||
/* Slice: ref_image:*/
|
||
/* Define the reference image */
|
||
/* 1: superimpose bitmap from main memory */
|
||
/* 0: image from the Image Effect module */
|
||
/* Note: the reference image defines the size of the output image */
|
||
#ifdef MRV_SI_REF_IMAGE
|
||
#define MRV_SI_REF_IMAGE_MEM 1 /* 1: superimpose bitmap from main memory */
|
||
#define MRV_SI_REF_IMAGE_IE 0 /* 0: image from the Image Effect module */
|
||
#endif /* MRV_SI_REF_IMAGE */
|
||
|
||
/* Slice: bypass_mode:*/
|
||
/* bypass mode */
|
||
/* 1: processing is activated */
|
||
/* 0: processing is deactivated, bypass mode is selected */
|
||
#ifdef MRV_SI_BYPASS_MODE
|
||
#define MRV_SI_BYPASS_MODE_PROCESS 1 /* 1: processing is activated */
|
||
#define MRV_SI_BYPASS_MODE_BYPASS 0 /* 0: processing is deactivated, bypass mode is selected */
|
||
#endif /* MRV_IMGEFF_BYPASS_MODE */
|
||
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: super_imp_offset_x: Offset x register (0x0004)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: offset_x:*/
|
||
/* Offset X */
|
||
/* Note: the bit 0 is don't care (write 1 doesn't have any effect, the read access always gives 0)*/
|
||
/* Note: the offset_x is positive and refers to the reference image */
|
||
#ifdef MRV_SI_OFFSET_X
|
||
#endif /* MRV_SI_OFFSET_X */
|
||
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: super_imp_offset_y: Offset y register (0x0008)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: offset_y:*/
|
||
/* Offset Y */
|
||
/* Note: the offset_y is positive and refers to the reference image */
|
||
#ifdef MRV_SI_OFFSET_Y
|
||
#endif /* MRV_SI_OFFSET_Y */
|
||
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: super_imp_color_y: Y component of transparent key color (0x000c)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: y_comp:*/
|
||
/* Y component of transparent key color */
|
||
#ifdef MRV_SI_Y_COMP
|
||
#endif /* MRV_SI_Y_COMP */
|
||
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: super_imp_color_cb: Cb component of transparent key color (0x0010)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: cb_comp:*/
|
||
/* Cb component of transparent key color */
|
||
#ifdef MRV_SI_CB_COMP
|
||
#endif /* MRV_SI_CB_COMP */
|
||
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: super_imp_color_cr: Cr component of transparent key color (0x0014)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: cr_comp:*/
|
||
/* Cr component of transparent key color */
|
||
#ifdef MRV_SI_CR_COMP
|
||
#endif /* MRV_SI_CR_COMP */
|
||
|
||
/*****************************************************************************/
|
||
/* ISP Registers */
|
||
/*****************************************************************************/
|
||
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_ctrl: global control register (0x0000)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: ISP_DPF_RAW_OUT */
|
||
/*! Slice MRV_ISP_DPF_RAW_OUT:*/
|
||
/*! 0: DPF RAW OUT is disable */
|
||
/*! 1: DPF RAW OUT is enable */
|
||
#ifdef ISP_DPF_RAW
|
||
#ifdef MRV_ISP_DPF_RAW_OUT
|
||
#define MRV_ISP_DPF_RAW_OUT_DISABLE 0 /* 0: DPF raw out is disable */
|
||
#define MRV_ISP_DPF_RAW_OUT_ENABLE 1 /* 1: DPF raw out is enable */
|
||
#endif
|
||
#endif
|
||
/* Slice: ISP_CSM_C_RANGE:*/
|
||
/* Color Space Matrix chrominance clipping range for ISP output */
|
||
/* 0: CbCr range 64..960 (16..240) according to ITU-R BT.601 standard */
|
||
/* 1: full UV range 0..1023 (0..255)*/
|
||
/* Numbers in brackets are for 8 bit resolution.*/
|
||
#ifdef MRV_ISP_ISP_CSM_C_RANGE
|
||
#define MRV_ISP_ISP_CSM_C_RANGE_BT601 0 /* 0: CbCr range 64..960 (16..240) according to ITU-R BT.601 standard */
|
||
#define MRV_ISP_ISP_CSM_C_RANGE_FULL 1 /* 1: full UV range 0..1023 (0..255) */
|
||
#endif /* MRV_ISP_ISP_CSM_C_RANGE */
|
||
|
||
/* Slice: ISP_CSM_Y_RANGE:*/
|
||
/* Color Space Matrix luminance clipping range for ISP output */
|
||
/* 0: Y range 64..940 (16..235) according to ITU-R BT.601 standard */
|
||
/* 1: full Y range 0..1023 (0..255)*/
|
||
/* Numbers in brackets are for 8 bit resolution.*/
|
||
#ifdef MRV_ISP_ISP_CSM_Y_RANGE
|
||
#define MRV_ISP_ISP_CSM_Y_RANGE_BT601 0 /* 0: Y range 64..940 (16..235) according to ITU-R BT.601 standard */
|
||
#define MRV_ISP_ISP_CSM_Y_RANGE_FULL 1 /* 1: full Y range 0..1023 (0..255) */
|
||
#endif /* MRV_ISP_ISP_CSM_Y_RANGE */
|
||
|
||
/* Slice: ISP_FLASH_MODE:*/
|
||
/* 0: sensor interface works independently from flash control unit */
|
||
/* 1: one frame is captured when signaled by flash control unit */
|
||
#ifdef MRV_ISP_ISP_FLASH_MODE
|
||
#define MRV_ISP_ISP_FLASH_MODE_INDEP 0 /* 0: sensor interface works independently from flash control unit */
|
||
#define MRV_ISP_ISP_FLASH_MODE_SYNC 1 /* 1: one frame is captured when signaled by flash control unit */
|
||
#endif /* MRV_ISP_ISP_FLASH_MODE */
|
||
|
||
/* Slice: ISP_GAMMA_OUT_ENABLE:*/
|
||
/* gamma ON/OFF */
|
||
#ifdef MRV_ISP_ISP_GAMMA_OUT_ENABLE
|
||
#endif /* MRV_ISP_ISP_GAMMA_OUT_ENABLE */
|
||
|
||
/* Slice: ISP_GEN_CFG_UPD:*/
|
||
/* generate vsynced config shadow signal at the output, write only */
|
||
#ifdef MRV_ISP_ISP_GEN_CFG_UPD
|
||
#endif /* MRV_ISP_ISP_GEN_CFG_UPD */
|
||
|
||
/* Slice: ISP_CFG_UPD:*/
|
||
/* immediate configure internal shadow registers, write only */
|
||
#ifdef MRV_ISP_ISP_CFG_UPD
|
||
#endif /* MRV_ISP_ISP_CFG_UPD */
|
||
|
||
/* Slice: ISP_AE_ENABLE:*/
|
||
/* auto exposure ON/OFF */
|
||
#ifdef MRV_ISP_ISP_AE_ENABLE
|
||
#endif /* MRV_ISP_ISP_AE_ENABLE */
|
||
|
||
/* Slice: ISP_AWB_ENABLE:*/
|
||
/* auto white balance ON/OFF */
|
||
#ifdef MRV_ISP_ISP_AWB_ENABLE
|
||
#endif /* MRV_ISP_ISP_AWB_ENABLE */
|
||
|
||
/* Slice: ISP_GAMMA_IN_ENABLE:*/
|
||
/* Sensor De-gamma ON/OFF */
|
||
#ifdef MRV_ISP_ISP_GAMMA_IN_ENABLE
|
||
#define MRV_ISP_ISP_GAMMA_IN_ENABLE_ON 1U
|
||
#define MRV_ISP_ISP_GAMMA_IN_ENABLE_OFF 0U
|
||
#endif /* MRV_ISP_ISP_GAMMA_IN_ENABLE */
|
||
|
||
/* Slice: ISP_INFORM_ENABLE:*/
|
||
/* input block ON/OFF (frame-synced on)*/
|
||
#ifdef MRV_ISP_ISP_INFORM_ENABLE
|
||
#endif /* MRV_ISP_ISP_INFORM_ENABLE */
|
||
|
||
/* Slice: ISP_MODE:*/
|
||
/* 000: RAW picture with BT.601 sync (ISP bypass)*/
|
||
/* 001: ITU-R BT.656 (YUV with embedded sync)*/
|
||
/* 010: ITU-R BT.601 (YUV input with H and Vsync signals)*/
|
||
/* 011: Bayer RGB processing with H and Vsync signals */
|
||
/* 100: data mode (ISP bypass, sync signals interpreted as data enable)*/
|
||
/* 101: Bayer RGB processing with BT.656 synchronization */
|
||
/* 110: RAW picture with ITU-R BT.656 synchronization (ISP bypass)*/
|
||
/* 111: reserved */
|
||
/**/
|
||
/* Side effect:*/
|
||
/* If RAW, BT.601, BT.656, or data mode is selected, the clock of the */
|
||
/* ISP SRAMs (ISP line buffer, Lens Shading, Bad Pixel) is switched off.*/
|
||
/* Only in Bayer RGB mode the clock to the SRAMs is enabled. This */
|
||
/* further reduces power consumption.*/
|
||
#ifdef MRV_ISP_ISP_MODE
|
||
#define MRV_ISP_ISP_MODE_RAW 0 /* 000 - RAW picture with BT.601 sync (ISP bypass) */
|
||
#define MRV_ISP_ISP_MODE_656 1 /* 001 - ITU-R BT.656 (YUV with embedded sync) */
|
||
#define MRV_ISP_ISP_MODE_601 2 /* 010 - ITU-R BT.601 (YUV input with H and Vsync signals) */
|
||
#define MRV_ISP_ISP_MODE_RGB 3 /* 011 - Bayer RGB processing with H and Vsync signals */
|
||
#define MRV_ISP_ISP_MODE_DATA 4 /* 100 - data mode (ISP bypass, sync signals interpreted as data enable) */
|
||
#define MRV_ISP_ISP_MODE_RGB656 5 /* 101 - Bayer RGB processing with BT.656 synchronization */
|
||
#define MRV_ISP_ISP_MODE_RAW656 6 /* 110 - RAW picture with ITU-R BT.656 synchronization (ISP bypass) */
|
||
#endif /* MRV_ISP_ISP_MODE */
|
||
/* Slice: ISP_ENABLE:*/
|
||
/* MANUAL ON/OFF (controls output formatter, framesynced)*/
|
||
#ifdef MRV_ISP_ISP_ENABLE
|
||
#endif /* MRV_ISP_ISP_ENABLE */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_acq_prop: ISP acquisition properties (0x0004)
|
||
*
|
||
*****************************************************************************/
|
||
#ifdef ISP_DVP_PINMAPPING
|
||
/*! Slice: MRV_ISP_DVP_INPUT_PIN_MAPPING */
|
||
/*! Bit Mapping for LSB to MSP for ISPNano.*/
|
||
/*! 3'b000: normal 12-bit external interface */
|
||
/*! 3'b001: mapping low 10 bit to high 10 bits, append 2 zeros as LSBs.*/
|
||
/*! 3'b010: mapping low 8 bit to high 8 bits, append 4 zeros as LSBs.*/
|
||
/*! 3'b011: mapping middle 8 bit to high 8 bits, append 4 zeros as LSBs.*/
|
||
/*! 3'b100..3'b111: rsvd */
|
||
#ifdef MRV_ISP_DVP_INPUT_PIN_MAPPING
|
||
#define MRV_ISP_DVP_INPUT_PIN_MAPPING_12TO12 0
|
||
#define MRV_ISP_DVP_INPUT_PIN_MAPPING_L10TOH10 1
|
||
#define MRV_ISP_DVP_INPUT_PIN_MAPPING_L8TOH8 2
|
||
#define MRV_ISP_DVP_INPUT_PIN_MAPPING_M8TOH8 3
|
||
#endif
|
||
#endif
|
||
/*! Slice: DMA_YUV_SELECTION */
|
||
/*! 0: use align or conversion data for isp_is input */
|
||
/*! 1: use dma yuv read data for isp_is input */
|
||
#ifdef MRV_ISP_DMA_YUV_SELECTION
|
||
#define MRV_ISP_DMA_YUV_SELECTION_ALIGNED_CONV 0
|
||
#define MRV_ISP_DMA_YUV_SELECTION_DMA_YUV 1
|
||
#endif
|
||
/* Slice: LATENCY_FIFO_SELECTION:*/
|
||
/* 0: use input formatter input for latency fifo.*/
|
||
/* 1: use dma rgb read input for latency fifo.*/
|
||
#ifdef MRV_ISP_LATENCY_FIFO_SELECTION
|
||
#define MRV_ISP_LATENCY_FIFO_SELECTION_INPUT_FORMATTER 0
|
||
#define MRV_ISP_LATENCY_FIFO_SELECTION_DMA_READ 1
|
||
#endif /* MRV_ISP_LATENCY_FIFO_SELECTION */
|
||
/* Slice: INPUT_SELECTION:*/
|
||
/* 000: 12Bit external Interface */
|
||
/* 001: 10Bit Interface, append 2 zeroes as LSBs */
|
||
/* 010: 10Bit Interface, append 2 MSBs as LSBs */
|
||
/* 011: 8Bit Interface, append 4 zeroes as LSBs */
|
||
/* 100: 8Bit Interface, append 4 MSBs as LSBs */
|
||
/* 101...111: reserved */
|
||
#ifdef MRV_ISP_INPUT_SELECTION
|
||
#define MRV_ISP_INPUT_SELECTION_12EXT 0 /* 000- 12Bit external Interface */
|
||
#define MRV_ISP_INPUT_SELECTION_10ZERO 1 /* 001- 10Bit Interface, append 2 zeroes as LSBs */
|
||
#define MRV_ISP_INPUT_SELECTION_10MSB 2 /* 010- 10Bit Interface, append 2 MSBs as LSBs */
|
||
#define MRV_ISP_INPUT_SELECTION_8ZERO 3 /* 011- 8Bit Interface, append 4 zeroes as LSBs */
|
||
#define MRV_ISP_INPUT_SELECTION_8MSB 4 /* 100- 8Bit Interface, append 4 MSBs as LSBs */
|
||
#endif /* MRV_ISP_INPUT_SELECTION */
|
||
/* Slice: FIELD_SELECTION:*/
|
||
/* 00: sample all fields (don't care about fields)*/
|
||
/* 01: sample only even fields */
|
||
/* 10: sample only odd fields */
|
||
/* 11: reserved */
|
||
#ifdef MRV_ISP_FIELD_SELECTION
|
||
#define MRV_ISP_FIELD_SELECTION_BOTH 0 /* 00- sample all fields (don't care about fields) */
|
||
#define MRV_ISP_FIELD_SELECTION_EVEN 1 /* 01- sample only even fields */
|
||
#define MRV_ISP_FIELD_SELECTION_ODD 2 /* 10- sample only odd fields */
|
||
#endif /* MRV_ISP_FIELD_SELECTION */
|
||
/* Slice: CCIR_SEQ:*/
|
||
/* 00: YCbYCr */
|
||
/* 01: YCrYCb */
|
||
/* 10: CbYCrY */
|
||
/* 11: CrYCbY */
|
||
#ifdef MRV_ISP_CCIR_SEQ
|
||
#define MRV_ISP_CCIR_SEQ_YCBYCR 0 /* 00 - YCbYCr */
|
||
#define MRV_ISP_CCIR_SEQ_YCRYCB 1 /* 01 - YCrYCb */
|
||
#define MRV_ISP_CCIR_SEQ_CBYCRY 2 /* 10 - CbYCrY */
|
||
#define MRV_ISP_CCIR_SEQ_CRYCBY 3 /* 11 - CrYCbY */
|
||
#endif /* MRV_ISP_CCIR_SEQ */
|
||
/* Slice: CONV_422:*/
|
||
/* 00- co-sited color subsampling Y0Cb0Cr0 - Y1 */
|
||
/* 01- interleaved color subsampling Y0Cb0 - Y1Cr1 (not recommended)*/
|
||
/* 10- non-cosited color subsampling Y0Cb(0+1)/2 - Y1Cr(0+1)/2 */
|
||
/* 11- reserved */
|
||
#ifdef MRV_ISP_CONV_422
|
||
#define MRV_ISP_CONV_422_CO 0 /* 00- co-sited color subsampling Y0Cb0Cr0 - Y1 */
|
||
#define MRV_ISP_CONV_422_INTER 1 /* 01- interleaved color subsampling Y0Cb0 - Y1Cr1 (not recommended) */
|
||
#define MRV_ISP_CONV_422_NONCO 2 /* 10- non-cosited color subsampling Y0Cb(0+1)/2 - Y1Cr(0+1)/2 */
|
||
#endif /* MRV_ISP_CONV_422 */
|
||
/* Slice: BAYER_PAT:*/
|
||
/* color components from sensor, starting with top left position in sampled frame */
|
||
/* (reprogram with ISP_ACQ_H_OFFS, ISP_ACQ_V_OFFS)*/
|
||
/**/
|
||
/* 00: first line: RGRG, second line: GBGB, etc.*/
|
||
/* 01: first line: GRGR, second line: BGBG, etc.*/
|
||
/* 10: first line: GBGB, second line: RGRG, etc.*/
|
||
/* 11: first line: BGBG, second line: GRGR, etc.*/
|
||
/* This configuration applies for the black level area after cropping by the input formatter.*/
|
||
#ifdef MRV_ISP_BAYER_PAT
|
||
#define MRV_ISP_BAYER_PAT_RG 0 /* 00 - first line: RGRG, second line: GBGB, etc. */
|
||
#define MRV_ISP_BAYER_PAT_GR 1 /* 01 - first line: GRGR, second line: BGBG, etc. */
|
||
#define MRV_ISP_BAYER_PAT_GB 2 /* 10 - first line: GBGB, second line: RGRG, etc. */
|
||
#define MRV_ISP_BAYER_PAT_BG 3 /* 11 - first line: BGBG, second line: GRGR, etc. */
|
||
#endif /* MRV_ISP_BAYER_PAT */
|
||
/* Slice: VSYNC_POL:*/
|
||
/* vertical sync polarity */
|
||
/* 0: high active */
|
||
/* 1: low active */
|
||
#ifdef MRV_ISP_VSYNC_POL
|
||
#endif /* MRV_ISP_VSYNC_POL */
|
||
/* Slice: HSYNC_POL:*/
|
||
/* horizontal sync polarity */
|
||
/* 0: high active */
|
||
/* 1: low active */
|
||
#ifdef MRV_ISP_HSYNC_POL
|
||
#endif /* MRV_ISP_HSYNC_POL */
|
||
/* Slice: SAMPLE_EDGE:*/
|
||
/* 0: negative edge sampling */
|
||
/* 1: positive edge sampling */
|
||
#ifdef MRV_ISP_SAMPLE_EDGE
|
||
#endif /* MRV_ISP_SAMPLE_EDGE */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_acq_h_offs: horizontal input offset (0x0008)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: ACQ_H_OFFS:*/
|
||
/* horizontal sample offset in 8-bit samples (yuv: 4 samples=2pix)*/
|
||
#ifdef MRV_ISP_ACQ_H_OFFS
|
||
#endif /* MRV_ISP_ACQ_H_OFFS */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_acq_v_offs: vertical input offset (0x000c)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: ACQ_V_OFFS:*/
|
||
/* vertical sample offset in lines */
|
||
#ifdef MRV_ISP_ACQ_V_OFFS
|
||
#endif /* MRV_ISP_ACQ_V_OFFS */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_acq_h_size: horizontal input size (0x0010)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: ACQ_H_SIZE:*/
|
||
/* horizontal sample size in 12-bit samples */
|
||
/* YUV input: 2 samples = 1 pixel, else 1 sample = 1 pixel; So in YUV mode ACQ_H_SIZE must be twice as large as horizontal image size */
|
||
/* horizontal image size must always be even exept in raw picture mode; if an odd size is programmed the value will be truncated to even size */
|
||
#ifdef MRV_ISP_ACQ_H_SIZE
|
||
#endif /* MRV_ISP_ACQ_H_SIZE */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_acq_v_size: vertical input size (0x0014)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: ACQ_V_SIZE:*/
|
||
/* vertical sample size in lines */
|
||
#ifdef MRV_ISP_ACQ_V_SIZE
|
||
#endif /* MRV_ISP_ACQ_V_SIZE */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_acq_nr_frames: Number of frames to be captured (0x0018)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: ACQ_NR_FRAMES:*/
|
||
/* number of input frames to be sampled (0 = continuous)*/
|
||
#ifdef MRV_ISP_ACQ_NR_FRAMES
|
||
#endif /* MRV_ISP_ACQ_NR_FRAMES */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_gamma_dx_lo: De-Gamma Curve definition lower x increments
|
||
* (sampling points) (0x001c)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: GAMMA_DX_8:*/
|
||
/* gamma curve sample point definition x-axis (input)*/
|
||
#ifdef MRV_ISP_GAMMA_DX_8
|
||
#endif /* MRV_ISP_GAMMA_DX_8 */
|
||
/* Slice: GAMMA_DX_7:*/
|
||
/* gamma curve sample point definition x-axis (input)*/
|
||
#ifdef MRV_ISP_GAMMA_DX_7
|
||
#endif /* MRV_ISP_GAMMA_DX_7 */
|
||
/* Slice: GAMMA_DX_6:*/
|
||
/* gamma curve sample point definition x-axis (input)*/
|
||
#ifdef MRV_ISP_GAMMA_DX_6
|
||
#endif /* MRV_ISP_GAMMA_DX_6 */
|
||
/* Slice: GAMMA_DX_5:*/
|
||
/* gamma curve sample point definition x-axis (input)*/
|
||
#ifdef MRV_ISP_GAMMA_DX_5
|
||
#endif /* MRV_ISP_GAMMA_DX_5 */
|
||
/* Slice: GAMMA_DX_4:*/
|
||
/* gamma curve sample point definition x-axis (input)*/
|
||
#ifdef MRV_ISP_GAMMA_DX_4
|
||
#endif /* MRV_ISP_GAMMA_DX_4 */
|
||
/* Slice: GAMMA_DX_3:*/
|
||
/* gamma curve sample point definition x-axis (input)*/
|
||
#ifdef MRV_ISP_GAMMA_DX_3
|
||
#endif /* MRV_ISP_GAMMA_DX_3 */
|
||
/* Slice: GAMMA_DX_2:*/
|
||
/* gamma curve sample point definition x-axis (input)*/
|
||
#ifdef MRV_ISP_GAMMA_DX_2
|
||
#endif /* MRV_ISP_GAMMA_DX_2 */
|
||
/* Slice: GAMMA_DX_1:*/
|
||
/* gamma curve sample point definition x-axis (input)*/
|
||
#ifdef MRV_ISP_GAMMA_DX_1
|
||
#endif /* MRV_ISP_GAMMA_DX_1 */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_gamma_dx_hi: De-Gamma Curve definition higher x increments
|
||
* (sampling points) (0x0020)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: GAMMA_DX_16:*/
|
||
/* gamma curve sample point definition x-axis (input)*/
|
||
#ifdef MRV_ISP_GAMMA_DX_16
|
||
#endif /* MRV_ISP_GAMMA_DX_16 */
|
||
/* Slice: GAMMA_DX_15:*/
|
||
/* gamma curve sample point definition x-axis (input)*/
|
||
#ifdef MRV_ISP_GAMMA_DX_15
|
||
#endif /* MRV_ISP_GAMMA_DX_15 */
|
||
/* Slice: GAMMA_DX_14:*/
|
||
/* gamma curve sample point definition x-axis (input)*/
|
||
#ifdef MRV_ISP_GAMMA_DX_14
|
||
#endif /* MRV_ISP_GAMMA_DX_14 */
|
||
/* Slice: GAMMA_DX_13:*/
|
||
/* gamma curve sample point definition x-axis (input)*/
|
||
#ifdef MRV_ISP_GAMMA_DX_13
|
||
#endif /* MRV_ISP_GAMMA_DX_13 */
|
||
/* Slice: GAMMA_DX_12:*/
|
||
/* gamma curve sample point definition x-axis (input)*/
|
||
#ifdef MRV_ISP_GAMMA_DX_12
|
||
#endif /* MRV_ISP_GAMMA_DX_12 */
|
||
/* Slice: GAMMA_DX_11:*/
|
||
/* gamma curve sample point definition x-axis (input)*/
|
||
#ifdef MRV_ISP_GAMMA_DX_11
|
||
#endif /* MRV_ISP_GAMMA_DX_11 */
|
||
/* Slice: GAMMA_DX_10:*/
|
||
/* gamma curve sample point definition x-axis (input)*/
|
||
#ifdef MRV_ISP_GAMMA_DX_10
|
||
#endif /* MRV_ISP_GAMMA_DX_10 */
|
||
/* Slice: GAMMA_DX_9:*/
|
||
/* gamma curve sample point definition x-axis (input)*/
|
||
#ifdef MRV_ISP_GAMMA_DX_9
|
||
#endif /* MRV_ISP_GAMMA_DX_9 */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register array: isp_gamma_r_y: De-Gamma Curve definition y red (0x0024+n (n=0..16))
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: GAMMA_R_Y:*/
|
||
/* gamma curve point definition y-axis (output) for red */
|
||
/* RESTRICTION: each Y must be in the +2047/-2048 range compared to its predecessor (so that dy is 12-bit signed !)*/
|
||
#ifdef MRV_ISP_GAMMA_R_Y
|
||
#endif /* MRV_ISP_GAMMA_R_Y */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register array: isp_gamma_g_y: De-Gamma Curve definition y green (0x0068+n (n=0..16))
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: GAMMA_G_Y:*/
|
||
/* gamma curve point definition y-axis (output) for green */
|
||
/* RESTRICTION: each Y must be in the +2047/-2048 range compared to its predecessor (so that dy is 12-bit signed !)*/
|
||
#ifdef MRV_ISP_GAMMA_G_Y
|
||
#endif /* MRV_ISP_GAMMA_G_Y */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register array: isp_gamma_b_y: De-Gamma Curve definition y blue (0x00AC+n (n=0..16))
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: GAMMA_B_Y:*/
|
||
/* gamma curve point definition y-axis (output) for blue */
|
||
/* RESTRICTION: each Y must be in the +2047/-2048 range compared to its predecessor (so that dy is 12-bit signed !)*/
|
||
#ifdef MRV_ISP_GAMMA_B_Y
|
||
#endif /* MRV_ISP_GAMMA_B_Y */
|
||
/*****************************************************************************/
|
||
/* ISP Auto White Balance Registers */
|
||
/*****************************************************************************/
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_awb_prop: Auto white balance properties (0x0110)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: AWB_MEAS_MODE:*/
|
||
/* 1: RGB based measurement mode */
|
||
/* 0: near white discrimination mode using YCbCr color space */
|
||
#ifdef MRV_ISP_AWB_MEAS_MODE
|
||
#define MRV_ISP_AWB_MEAS_MODE_RGB 1U /* 1: RGB based measurement mode */
|
||
#define MRV_ISP_AWB_MEAS_MODE_YCBCR 0U /* 0: near white discrimination mode using YCbCr color space */
|
||
#endif /* MRV_ISP_AWB_MEAS_MODE */
|
||
/* Slice: AWB_MAX_EN:*/
|
||
/* 1: enable Y_MAX compare */
|
||
/* 0: disable Y_MAX compare */
|
||
/* ignored if RGB measurement mode is enabled */
|
||
#ifdef MRV_ISP_AWB_MAX_EN
|
||
#define MRV_ISP_AWB_MAX_EN_ENABLE 1U /* 1: enable Y_MAX compare */
|
||
#define MRV_ISP_AWB_MAX_EN_DISABLE 0U /* 0: disable Y_MAX compare */
|
||
#endif /* MRV_ISP_AWB_MAX_EN */
|
||
/* Slice: AWB_MODE:*/
|
||
/* AWB_MODE(1:0):*/
|
||
/* 11: reserved */
|
||
/* 10: white balance measurement of YCbCr means */
|
||
/* 01: reserved */
|
||
/* 00: manual white balance (gain adjust possible), no measurement */
|
||
#ifdef MRV_ISP_AWB_MODE
|
||
#define MRV_ISP_AWB_MODE_MEAS 2U /* 10: white balance measurement of YCbCr or RGB means (dependent on MRV_ISP_AWB_MEAS_MODE) */
|
||
#define MRV_ISP_AWB_MODE_NOMEAS 0U /* 00: manual white balance (gain adjust possible), no measurement */
|
||
#endif /* MRV_ISP_AWB_MODE */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_awb_h_offs: Auto white balance horizontal offset of measure
|
||
* window (0x0114)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: AWB_H_OFFS:*/
|
||
/* horizontal window offset in pixel */
|
||
#ifdef MRV_ISP_AWB_H_OFFS
|
||
#define MRV_ISP_AWB_H_OFFS_MIN 0U
|
||
#define MRV_ISP_AWB_H_OFFS_MAX (MRV_ISP_AWB_H_OFFS_MASK >> MRV_ISP_AWB_H_OFFS_SHIFT)
|
||
#endif /* MRV_ISP_AWB_H_OFFS */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_awb_v_offs: Auto white balance vertical offset of measure
|
||
* window (0x0118)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: AWB_V_OFFS:*/
|
||
/* vertical window offset in lines */
|
||
#ifdef MRV_ISP_AWB_V_OFFS
|
||
#define MRV_ISP_AWB_V_OFFS_MIN 0U
|
||
#define MRV_ISP_AWB_V_OFFS_MAX (MRV_ISP_AWB_V_OFFS_MASK >> MRV_ISP_AWB_V_OFFS_SHIFT)
|
||
#endif /* MRV_ISP_AWB_V_OFFS */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_awb_h_size: Auto white balance horizontal window size (0x011c)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: AWB_H_SIZE:*/
|
||
/* horizontal measurement window size in pixel */
|
||
#ifdef MRV_ISP_AWB_H_SIZE
|
||
#define MRV_ISP_AWB_H_SIZE_MIN 0U
|
||
#define MRV_ISP_AWB_H_SIZE_MAX (MRV_ISP_AWB_H_SIZE_MASK >> MRV_ISP_AWB_H_SIZE_SHIFT)
|
||
#endif /* MRV_ISP_AWB_H_SIZE */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_awb_v_size: Auto white balance vertical window size (0x0120)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: AWB_V_SIZE:*/
|
||
/* vertical measurement window size in lines */
|
||
#ifdef MRV_ISP_AWB_V_SIZE
|
||
#define MRV_ISP_AWB_V_SIZE_MIN 0U
|
||
#define MRV_ISP_AWB_V_SIZE_MAX (MRV_ISP_AWB_V_SIZE_MASK >> MRV_ISP_AWB_V_SIZE_SHIFT)
|
||
#endif /* MRV_ISP_AWB_V_SIZE */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_awb_frames: Auto white balance mean value over multiple frames (0x0124)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: AWB_FRAMES:*/
|
||
/* number of frames-1 used for mean value calculation (value of 0 means 1 frame, value of 7 means 8 frames)*/
|
||
#ifdef MRV_ISP_AWB_FRAMES
|
||
#endif /* MRV_ISP_AWB_FRAMES */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_awb_ref: Auto white balance reference Cb/Cr values (0x0128)
|
||
* or maximum red/blue values
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: AWB_REF_CR__MAX_R:*/
|
||
/* - reference Cr value for AWB regulation, target for AWB */
|
||
/* - maximum red value, if RGB measurement mode is selected */
|
||
#ifdef MRV_ISP_AWB_REF_CR__MAX_R
|
||
#endif /* MRV_ISP_AWB_REF_CR__MAX_R */
|
||
/* Slice: AWB_REF_CB__MAX_B:*/
|
||
/* - reference Cb value for AWB regulation, target for AWB */
|
||
/* - maximum blue value, if RGB measurement mode is selected */
|
||
#ifdef MRV_ISP_AWB_REF_CB__MAX_B
|
||
#endif /* MRV_ISP_AWB_REF_CB__MAX_B */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_awb_thresh: Auto white balance threshold values (0x012c)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: AWB_MAX_Y:*/
|
||
/* - Luminance maximum value, only consider pixels with luminance smaller than threshold for the WB measurement (must be enabled by AWB_MODE(2)),*/
|
||
/* - ignored if RGB measurement mode is enabled */
|
||
#ifdef MRV_ISP_AWB_MAX_Y
|
||
#endif /* MRV_ISP_AWB_MAX_Y */
|
||
/* Slice: AWB_MIN_Y__MAX_G:*/
|
||
/* - Luminance minimum value, only consider pixels with luminance greater than threshold for the WB measurement */
|
||
/* - maximum green value, if RGB measurement mode is selected */
|
||
#ifdef MRV_ISP_AWB_MIN_Y__MAX_G
|
||
#endif /* MRV_ISP_AWB_MIN_Y__MAX_G */
|
||
/* Slice: AWB_MAX_CSUM:*/
|
||
/* - Chrominance sum maximum value, only consider pixels with Cb+Cr smaller than threshold for WB measurements */
|
||
/* - ignored if RGB measurement mode is enabled */
|
||
#ifdef MRV_ISP_AWB_MAX_CSUM
|
||
#endif /* MRV_ISP_AWB_MAX_CSUM */
|
||
/* Slice: AWB_MIN_C:*/
|
||
/* - Chrominance minimum value, only consider pixels with Cb/Cr each greater than threshold value for WB measurements */
|
||
/* - ignored if RGB measurement mode is enabled */
|
||
#ifdef MRV_ISP_AWB_MIN_C
|
||
#endif /* MRV_ISP_AWB_MIN_C */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_awb_gain_g: Auto white balance gain green (0x0138)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: AWB_GAIN_GR:*/
|
||
/* gain value for green component in red line 100h = 1 */
|
||
#ifdef MRV_ISP_AWB_GAIN_GR
|
||
#define MRV_ISP_AWB_GAIN_GR_DEFAULT (0x100U)
|
||
#define MRV_ISP_AWB_GAIN_GR_MAX (MRV_ISP_AWB_GAIN_GR_MASK >> MRV_ISP_AWB_GAIN_GR_SHIFT)
|
||
#endif /* MRV_ISP_AWB_GAIN_GR */
|
||
/* Slice: AWB_GAIN_GB:*/
|
||
/* gain value for green component in blue line 100h = 1 */
|
||
#ifdef MRV_ISP_AWB_GAIN_GB
|
||
#define MRV_ISP_AWB_GAIN_GB_DEFAULT (0x100U)
|
||
#define MRV_ISP_AWB_GAIN_GB_MAX (MRV_ISP_AWB_GAIN_GB_MASK >> MRV_ISP_AWB_GAIN_GB_SHIFT)
|
||
#endif /* MRV_ISP_AWB_GAIN_GB */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_awb_gain_rb: Auto white balance gain red and blue (0x013c)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: AWB_GAIN_R:*/
|
||
/* gain value for red component 100h = 1 */
|
||
#ifdef MRV_ISP_AWB_GAIN_R
|
||
#define MRV_ISP_AWB_GAIN_R_DEFAULT (0x100U)
|
||
#define MRV_ISP_AWB_GAIN_R_MAX (MRV_ISP_AWB_GAIN_R_MASK >> MRV_ISP_AWB_GAIN_R_SHIFT)
|
||
#endif /* MRV_ISP_AWB_GAIN_R */
|
||
/* Slice: AWB_GAIN_B:*/
|
||
/* gain value for blue component 100h = 1 */
|
||
#ifdef MRV_ISP_AWB_GAIN_B
|
||
#define MRV_ISP_AWB_GAIN_B_DEFAULT (0x100U)
|
||
#define MRV_ISP_AWB_GAIN_B_MAX (MRV_ISP_AWB_GAIN_B_MASK >> MRV_ISP_AWB_GAIN_B_SHIFT)
|
||
#endif /* MRV_ISP_AWB_GAIN_B */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_awb_white_cnt: Auto white balance white pixel count (0x0140)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: AWB_WHITE_CNT:*/
|
||
/* White pixel count, number of "white pixels" found during last measurement, i.e. pixels included in mean value calculation */
|
||
#ifdef MRV_ISP_AWB_WHITE_CNT
|
||
#endif /* MRV_ISP_AWB_WHITE_CNT */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_awb_mean: Auto white balance measured mean value (0x0144)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: AWB_MEAN_Y_G:*/
|
||
/* - mean value of Y within window and frames */
|
||
/* - mean value of green within window and frames if RGB measurement is enabled */
|
||
#ifdef MRV_ISP_AWB_MEAN_Y__G
|
||
#endif /* MRV_ISP_AWB_MEAN_Y__G */
|
||
/* Slice: AWB_MEAN_CB_B:*/
|
||
/* - mean value of Cb within window and frames */
|
||
/* - mean value of blue within window and frames if RGB measurement is enabled */
|
||
#ifdef MRV_ISP_AWB_MEAN_CB__B
|
||
#endif /* MRV_ISP_AWB_MEAN_CB__B */
|
||
/* Slice: AWB_MEAN_CR_R:*/
|
||
/* - mean value of Cr within window and frames */
|
||
/* - mean value of red within window and frames if RGB measurement is enabled */
|
||
#ifdef MRV_ISP_AWB_MEAN_CR__R
|
||
#endif /* MRV_ISP_AWB_MEAN_CR__R */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_cc_coeff_0: Color conversion coefficient 0 (0x0170)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: cc_coeff_0:*/
|
||
/* coefficient 0 for color space conversion */
|
||
#ifdef MRV_ISP_CC_COEFF_0
|
||
#endif /* MRV_ISP_CC_COEFF_0 */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_cc_coeff_1: Color conversion coefficient 1 (0x0174)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: cc_coeff_1:*/
|
||
/* coefficient 1 for color space conversion */
|
||
#ifdef MRV_ISP_CC_COEFF_1
|
||
#endif /* MRV_ISP_CC_COEFF_1 */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_cc_coeff_2: Color conversion coefficient 2 (0x0178)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: cc_coeff_2:*/
|
||
/* coefficient 2 for color space conversion */
|
||
#ifdef MRV_ISP_CC_COEFF_2
|
||
#endif /* MRV_ISP_CC_COEFF_2 */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_cc_coeff_3: Color conversion coefficient 3 (0x017c)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: cc_coeff_3:*/
|
||
/* coefficient 3 for color space conversion */
|
||
#ifdef MRV_ISP_CC_COEFF_3
|
||
#endif /* MRV_ISP_CC_COEFF_3 */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_cc_coeff_4: Color conversion coefficient 4 (0x0180)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: cc_coeff_4:*/
|
||
/* coefficient 4 for color space conversion */
|
||
#ifdef MRV_ISP_CC_COEFF_4
|
||
#endif /* MRV_ISP_CC_COEFF_4 */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_cc_coeff_5: Color conversion coefficient 5 (0x0184)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: cc_coeff_5:*/
|
||
/* coefficient 5 for color space conversion */
|
||
#ifdef MRV_ISP_CC_COEFF_5
|
||
#endif /* MRV_ISP_CC_COEFF_5 */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_cc_coeff_6: Color conversion coefficient 6 (0x0188)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: cc_coeff_6:*/
|
||
/* coefficient 6 for color space conversion */
|
||
#ifdef MRV_ISP_CC_COEFF_6
|
||
#endif /* MRV_ISP_CC_COEFF_6 */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_cc_coeff_7: Color conversion coefficient 7 (0x018c)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: cc_coeff_7:*/
|
||
/* coefficient 7 for color space conversion */
|
||
#ifdef MRV_ISP_CC_COEFF_7
|
||
#endif /* MRV_ISP_CC_COEFF_7 */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_cc_coeff_8: Color conversion coefficient 8 (0x0190)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: cc_coeff_8:*/
|
||
/* coefficient 8 for color space conversion */
|
||
#ifdef MRV_ISP_CC_COEFF_8
|
||
#endif /* MRV_ISP_CC_COEFF_8 */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_out_h_offs: Horizontal offset of output window (0x0194)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: ISP_OUT_H_OFFS:*/
|
||
/* vertical pic offset in lines */
|
||
#ifdef MRV_ISP_ISP_OUT_H_OFFS
|
||
#endif /* MRV_ISP_ISP_OUT_H_OFFS */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_out_v_offs: Vertical offset of output window (0x0198)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: ISP_OUT_V_OFFS:*/
|
||
/* vertical pic offset in lines */
|
||
#ifdef MRV_ISP_ISP_OUT_V_OFFS
|
||
#endif /* MRV_ISP_ISP_OUT_V_OFFS */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_out_h_size: Output horizontal picture size (0x019c)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: ISP_OUT_H_SIZE:*/
|
||
/* horizontal picture size in pixel */
|
||
/* if ISP_MODE is set to */
|
||
/* 001: (ITU-R BT.656 YUV),*/
|
||
/* 010: (ITU-R BT.601 YUV),*/
|
||
/* 011: (ITU-R BT.601 Bayer RGB),*/
|
||
/* 101: (ITU-R BT.656 Bayer RGB)*/
|
||
/* only even numbers are accepted, because complete quadruples of YUYV(YCbYCr)*/
|
||
/* are needed for the 422 output. (if an odd size is programmed the value will */
|
||
/* be truncated to an even size)*/
|
||
#ifdef MRV_ISP_ISP_OUT_H_SIZE
|
||
#define MRV_ISP_ISP_OUT_H_SIZE_IS_EVEN(x) (!(x & 0x01U)) /* check is even value */
|
||
#define MRV_ISP_ISP_OUT_H_SIZE_IS_ODD(x) (x & 0x01U) /* check is odd value */
|
||
#endif /* MRV_ISP_ISP_OUT_H_SIZE */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_out_v_size: Output vertical picture size (0x01a0)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: ISP_OUT_V_SIZE:*/
|
||
/* vertical pic size in lines */
|
||
#ifdef MRV_ISP_ISP_OUT_V_SIZE
|
||
#endif /* MRV_ISP_ISP_OUT_V_SIZE */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_demosaic: Demosaic parameters (0x000001a4)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: DEMOSAIC_BYPASS:*/
|
||
/* 0: normal operation for RGB Bayer Pattern input */
|
||
/* 1: demosaicing bypass for Black&White input data */
|
||
#ifdef MRV_ISP_DEMOSAIC_BYPASS
|
||
#define MRV_ISP_DEMOSAIC_MODE_STD 0 /* "0": standard */
|
||
#define MRV_ISP_DEMOSAIC_MODE_ENH 1 /* "1": enhanced mode */
|
||
#endif /* MRV_ISP_DEMOSAIC_BYPASS */
|
||
/* Slice: DEMOSAIC_TH:*/
|
||
/* Threshold for Bayer demosaicing texture detection. This value shifted left */
|
||
/* 4bit is compared with the difference of the vertical and horizontal 12Bit */
|
||
/* wide texture indicators, to decide if the vertical or horizontal texture */
|
||
/* flag must be set.*/
|
||
/* 0xFF: no texture detection */
|
||
/* 0x00: maximum edge sensitivity */
|
||
#ifdef MRV_ISP_DEMOSAIC_TH
|
||
#define MRV_ISP_DEMOSAIC_TH_MAX_TEXTURE_DETECTION 0xFFU /* 0xFF: no texture detection */
|
||
#define MRV_ISP_DEMOSAIC_TH_MAX_EDGE_SENSITIVITY 0x00U /* 0x00: maximum edge sensitivity */
|
||
#endif /* MRV_ISP_DEMOSAIC_TH */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_flags_shd: Flags (current status) of certain signals and
|
||
* Shadow regs for enable signals (0x000001a8)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: S_HSYNC:*/
|
||
/* state of ISP input port s_hsync, for test purposes */
|
||
#ifdef MRV_ISP_S_HSYNC
|
||
#endif /* MRV_ISP_S_HSYNC */
|
||
/* Slice: S_VSYNC:*/
|
||
/* state of ISP input port s_vsync, for test purposes */
|
||
#ifdef MRV_ISP_S_VSYNC
|
||
#endif /* MRV_ISP_S_VSYNC */
|
||
/* Slice: S_DATA:*/
|
||
/* state of ISP input port s_data, for test purposes */
|
||
#ifdef MRV_ISP_S_DATA
|
||
#endif /* MRV_ISP_S_DATA */
|
||
/* Slice: INFORM_FIELD:*/
|
||
/* current field information */
|
||
/* 0: odd */
|
||
/* 1: even */
|
||
#ifdef MRV_ISP_INFORM_FIELD
|
||
#define MRV_ISP_INFORM_FIELD_ODD 0 /* 0: odd field is sampled */
|
||
#define MRV_ISP_INFORM_FIELD_EVEN 1 /* 1: even field is sampled */
|
||
#endif /* MRV_ISP_INFORM_FIELD */
|
||
/* Slice: INFORM_EN_SHD:*/
|
||
/* Input formatter enable shadow register */
|
||
#ifdef MRV_ISP_INFORM_EN_SHD
|
||
#endif /* MRV_ISP_INFORM_EN_SHD */
|
||
/* Slice: ISP_ENABLE_SHD:*/
|
||
/* ISP enable shadow register */
|
||
/* shows, if ISP currently outputs data (1) or not (0)*/
|
||
#ifdef MRV_ISP_ISP_ENABLE_SHD
|
||
#endif /* MRV_ISP_ISP_ENABLE_SHD */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_out_h_offs_shd: current horizontal offset of output window
|
||
* (shadow register) (0x000001ac)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: ISP_OUT_H_OFFS_SHD:*/
|
||
/* current vertical pic offset in lines */
|
||
#ifdef MRV_ISP_ISP_OUT_H_OFFS_SHD
|
||
#endif /* MRV_ISP_ISP_OUT_H_OFFS_SHD */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_out_v_offs_shd: current vertical offset of output window
|
||
* (shadow register) (0x000001b0)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: ISP_OUT_V_OFFS_SHD:*/
|
||
/* current vertical pic offset in lines */
|
||
#ifdef MRV_ISP_ISP_OUT_V_OFFS_SHD
|
||
#endif /* MRV_ISP_ISP_OUT_V_OFFS_SHD */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_out_h_size_shd: current output horizontal picture size
|
||
* (shadow register) (0x000001b4)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: ISP_OUT_H_SIZE_SHD:*/
|
||
/* current horizontal pic size in pixel */
|
||
#ifdef MRV_ISP_ISP_OUT_H_SIZE_SHD
|
||
#endif /* MRV_ISP_ISP_OUT_H_SIZE_SHD */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_out_v_size_shd: current output vertical picture size
|
||
* (shadow register) (0x000001b8)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: ISP_OUT_V_SIZE_SHD:*/
|
||
/* vertical pic size in lines */
|
||
#ifdef MRV_ISP_ISP_OUT_V_SIZE_SHD
|
||
#endif /* MRV_ISP_ISP_OUT_V_SIZE_SHD */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_imsc: Interrupt mask (0x000001bc)
|
||
*
|
||
*****************************************************************************/
|
||
/*! Slice: IMSC_VSM_END:*/
|
||
/*! enable interrupt (1) or mask out (0)*/
|
||
#ifndef MRV_ISP_IMSC_VSM_END
|
||
#define MRV_ISP_IMSC_VSM_END_MASK 0U /* make sure, that this mask is defined for the combination mask */
|
||
#endif /* !MRV_ISP_IMSC_VSM_END */
|
||
/* Slice: IMSC_EXP_END:*/
|
||
/* enable interrupt (1) or mask out (0)*/
|
||
#ifndef MRV_ISP_IMSC_EXP_END
|
||
#define MRV_ISP_IMSC_EXP_END_MASK 0U /* make sure, that this mask is defined for the combination mask */
|
||
#endif /* !MRV_ISP_IMSC_EXP_END */
|
||
/* Slice: IMSC_FLASH_CAP:*/
|
||
/* enable interrupt (1) or mask out (0)*/
|
||
#ifndef MRV_ISP_IMSC_FLASH_CAP
|
||
#define MRV_ISP_IMSC_FLASH_CAP_MASK 0U /* make sure, that this mask is defined for the combination mask */
|
||
#endif /* !MRV_ISP_IMSC_FLASH_CAP */
|
||
/* Slice: IMSC_BP_DET:*/
|
||
/* enable interrupt (1) or mask out (0)*/
|
||
#ifndef MRV_ISP_IMSC_BP_DET
|
||
#define MRV_ISP_IMSC_BP_DET_MASK 0U /* make sure, that this mask is defined for the combination mask */
|
||
#endif /* !MRV_ISP_IMSC_BP_DET */
|
||
/* Slice: IMSC_HIST_MEASURE_RDY:*/
|
||
/* enable interrupt (1) or mask out (0)*/
|
||
#ifndef MRV_ISP_IMSC_HIST_MEASURE_RDY
|
||
#define MRV_ISP_IMSC_HIST_MEASURE_RDY_MASK 0U /* make sure, that this mask is defined for the combination mask */
|
||
#endif /* !MRV_ISP_IMSC_HIST_MEASURE_RDY */
|
||
/* Slice: IMSC_AFM_FIN:*/
|
||
/* enable interrupt (1) or mask out (0)*/
|
||
#ifndef MRV_ISP_IMSC_AFM_FIN
|
||
#define MRV_ISP_IMSC_AFM_FIN_MASK 0U /* make sure, that this mask is defined for the combination mask */
|
||
#endif /* !IMSC_AFM_FIN */
|
||
/* Slice: IMSC_AFM_LUM_OF:*/
|
||
/* enable interrupt (1) or mask out (0)*/
|
||
#ifndef MRV_ISP_IMSC_AFM_LUM_OF
|
||
#define MRV_ISP_IMSC_AFM_LUM_OF_MASK 0U /* make sure, that this mask is defined for the combination mask */
|
||
#endif /* !MRV_ISP_IMSC_AFM_LUM_OF */
|
||
/* Slice: IMSC_AFM_SUM_OF:*/
|
||
/* enable interrupt (1) or mask out (0)*/
|
||
#ifndef MRV_ISP_IMSC_AFM_SUM_OF
|
||
#define MRV_ISP_IMSC_AFM_SUM_OF_MASK 0U /* make sure, that this mask is defined for the combination mask */
|
||
#endif /* !MRV_ISP_IMSC_AFM_SUM_OF */
|
||
/* Slice: IMSC_SHUTTER_OFF:*/
|
||
/* enable interrupt (1) or mask out (0)*/
|
||
#ifndef MRV_ISP_IMSC_SHUTTER_OFF
|
||
#define MRV_ISP_IMSC_SHUTTER_OFF_MASK 0U /* make sure, that this mask is defined for the combination mask */
|
||
#endif /* !MRV_ISP_IMSC_SHUTTER_OFF */
|
||
/* Slice: IMSC_SHUTTER_ON:*/
|
||
/* enable interrupt (1) or mask out (0)*/
|
||
#ifndef MRV_ISP_IMSC_SHUTTER_ON
|
||
#define MRV_ISP_IMSC_SHUTTER_ON_MASK 0U /* make sure, that this mask is defined for the combination mask */
|
||
#endif /* !MRV_ISP_IMSC_SHUTTER_ON */
|
||
/* Slice: IMSC_FLASH_OFF:*/
|
||
/* enable interrupt (1) or mask out (0)*/
|
||
#ifndef MRV_ISP_IMSC_FLASH_OFF
|
||
#define MRV_ISP_IMSC_FLASH_OFF_MASK 0U /* make sure, that this mask is defined for the combination mask */
|
||
#endif /* !MRV_ISP_IMSC_FLASH_OFF */
|
||
/* Slice: IMSC_FLASH_ON:*/
|
||
/* enable interrupt (1) or mask out (0)*/
|
||
#ifndef MRV_ISP_IMSC_FLASH_ON
|
||
#define MRV_ISP_IMSC_FLASH_ON_MASK 0U /* make sure, that this mask is defined for the combination mask */
|
||
#endif /* !MRV_ISP_IMSC_FLASH_ON */
|
||
/* Slice: IMSC_H_START:*/
|
||
/* enable interrupt (1) or mask out (0)*/
|
||
#ifndef MRV_ISP_IMSC_H_START
|
||
#define MRV_ISP_IMSC_H_START_MASK 0U /* make sure, that this mask is defined for the combination mask */
|
||
#endif /* !MRV_ISP_IMSC_H_START */
|
||
/* Slice: IMSC_V_START:*/
|
||
/* enable interrupt (1) or mask out (0)*/
|
||
#ifndef MRV_ISP_IMSC_V_START
|
||
#define MRV_ISP_IMSC_V_START_MASK 0U /* make sure, that this mask is defined for the combination mask */
|
||
#endif /* !MRV_ISP_IMSC_V_START */
|
||
/* Slice: IMSC_FRAME_IN:*/
|
||
/* enable interrupt (1) or mask out (0)*/
|
||
#ifndef MRV_ISP_IMSC_FRAME_IN
|
||
#define MRV_ISP_IMSC_FRAME_IN_MASK 0U /* make sure, that this mask is defined for the combination mask */
|
||
#endif /* !MRV_ISP_IMSC_FRAME_IN */
|
||
/* Slice: IMSC_AWB_DONE:*/
|
||
/* enable interrupt (1) or mask out (0)*/
|
||
#ifndef MRV_ISP_IMSC_AWB_DONE
|
||
#define MRV_ISP_IMSC_AWB_DONE_MASK 0U /* make sure, that this mask is defined for the combination mask */
|
||
#endif /* !MRV_ISP_IMSC_AWB_DONE */
|
||
/* Slice: IMSC_PIC_SIZE_ERR:*/
|
||
/* enable interrupt (1) or mask out (0)*/
|
||
#ifndef MRV_ISP_IMSC_PIC_SIZE_ERR
|
||
#define MRV_ISP_IMSC_PIC_SIZE_ERR_MASK 0U /* make sure, that this mask is defined for the combination mask */
|
||
#endif /* !MRV_ISP_IMSC_PIC_SIZE_ERR */
|
||
/* Slice: IMSC_DATA_LOSS:*/
|
||
/* enable interrupt (1) or mask out (0)*/
|
||
#ifndef MRV_ISP_IMSC_DATA_LOSS
|
||
#define MRV_ISP_IMSC_DATA_LOSS_MASK 0U /* make sure, that this mask is defined for the combination mask */
|
||
#endif /* !MRV_ISP_IMSC_DATA_LOSS */
|
||
/* Slice: IMSC_FRAME:*/
|
||
/* enable interrupt (1) or mask out (0)*/
|
||
#ifndef MRV_ISP_IMSC_FRAME
|
||
#define MRV_ISP_IMSC_FRAME_MASK 0U /* make sure, that this mask is defined for the combination mask */
|
||
#endif /* !MRV_ISP_IMSC_FRAME */
|
||
/* Slice: IMSC_ISP_OFF:*/
|
||
/* enable interrupt (1) or mask out (0)*/
|
||
#ifndef MRV_ISP_IMSC_ISP_OFF
|
||
#define MRV_ISP_IMSC_ISP_OFF_MASK 0U /* make sure, that this mask is defined for the combination mask */
|
||
#endif /* !MRV_ISP_IMSC_ISP_OFF */
|
||
/* combination of all interrupt lines */
|
||
#define MRV_ISP_IMSC_ALL_IRQS
|
||
#define MRV_ISP_IMSC_ALL_IRQS_MASK \
|
||
(0 \
|
||
| MRV_ISP_IMSC_VSM_END_MASK \
|
||
| MRV_ISP_IMSC_EXP_END_MASK \
|
||
| MRV_ISP_IMSC_FLASH_CAP_MASK \
|
||
| MRV_ISP_IMSC_BP_DET_MASK \
|
||
| MRV_ISP_IMSC_HIST_MEASURE_RDY_MASK \
|
||
| MRV_ISP_IMSC_AFM_FIN_MASK \
|
||
| MRV_ISP_IMSC_AFM_LUM_OF_MASK \
|
||
| MRV_ISP_IMSC_AFM_SUM_OF_MASK \
|
||
| MRV_ISP_IMSC_SHUTTER_OFF_MASK \
|
||
| MRV_ISP_IMSC_SHUTTER_ON_MASK \
|
||
| MRV_ISP_IMSC_FLASH_OFF_MASK \
|
||
| MRV_ISP_IMSC_FLASH_ON_MASK \
|
||
| MRV_ISP_IMSC_H_START_MASK \
|
||
| MRV_ISP_IMSC_V_START_MASK \
|
||
| MRV_ISP_IMSC_FRAME_IN_MASK \
|
||
| MRV_ISP_IMSC_AWB_DONE_MASK \
|
||
| MRV_ISP_IMSC_PIC_SIZE_ERR_MASK \
|
||
| MRV_ISP_IMSC_DATA_LOSS_MASK \
|
||
| MRV_ISP_IMSC_FRAME_MASK \
|
||
| MRV_ISP_IMSC_ISP_OFF_MASK \
|
||
)
|
||
#define MRV_ISP_IMSC_ALL_IRQS_SHIFT 0U
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_ris: Raw interrupt status (0x000001c0)
|
||
*
|
||
*****************************************************************************/
|
||
/*! Slice: RIS_VSM_END:*/
|
||
/*! VSM measurement complete */
|
||
#ifndef MRV_ISP_RIS_VSM_END
|
||
#define MRV_ISP_RIS_VSM_END_MASK 0U /* make sure, that this mask is defined for the combination mask */
|
||
#endif /* !MRV_ISP_RIS_VSM_END */
|
||
/* Slice: RIS_EXP_END:*/
|
||
/* enable interrupt (1) or mask out (0)*/
|
||
#ifndef MRV_ISP_RIS_EXP_END
|
||
#define MRV_ISP_RIS_EXP_END_MASK 0U /* make sure, that this mask is defined for the combination mask */
|
||
#endif /* !MRV_ISP_RIS_EXP_END */
|
||
/* Slice: RIS_FLASH_CAP:*/
|
||
/* enable interrupt (1) or mask out (0)*/
|
||
#ifndef MRV_ISP_RIS_FLASH_CAP
|
||
#define MRV_ISP_RIS_FLASH_CAP_MASK 0U /* make sure, that this mask is defined for the combination mask */
|
||
#endif /* !MRV_ISP_RIS_FLASH_CAP */
|
||
/* Slice: RIS_BP_DET:*/
|
||
/* enable interrupt (1) or mask out (0)*/
|
||
#ifndef MRV_ISP_RIS_BP_DET
|
||
#define MRV_ISP_RIS_BP_DET_MASK 0U /* make sure, that this mask is defined for the combination mask */
|
||
#endif /* !MRV_ISP_RIS_BP_DET */
|
||
/* Slice: RIS_HIST_MEASURE_RDY:*/
|
||
/* enable interrupt (1) or mask out (0)*/
|
||
#ifndef MRV_ISP_RIS_HIST_MEASURE_RDY
|
||
#define MRV_ISP_RIS_HIST_MEASURE_RDY_MASK 0U /* make sure, that this mask is defined for the combination mask */
|
||
#endif /* !MRV_ISP_RIS_HIST_MEASURE_RDY */
|
||
/* Slice: RIS_AFM_FIN:*/
|
||
/* enable interrupt (1) or mask out (0)*/
|
||
#ifndef MRV_ISP_RIS_AFM_FIN
|
||
#define MRV_ISP_RIS_AFM_FIN_MASK 0U /* make sure, that this mask is defined for the combination mask */
|
||
#endif /* !RIS_AFM_FIN */
|
||
/* Slice: RIS_AFM_LUM_OF:*/
|
||
/* enable interrupt (1) or mask out (0)*/
|
||
#ifndef MRV_ISP_RIS_AFM_LUM_OF
|
||
#define MRV_ISP_RIS_AFM_LUM_OF_MASK 0U /* make sure, that this mask is defined for the combination mask */
|
||
#endif /* !MRV_ISP_RIS_AFM_LUM_OF */
|
||
/* Slice: RIS_AFM_SUM_OF:*/
|
||
/* enable interrupt (1) or mask out (0)*/
|
||
#ifndef MRV_ISP_RIS_AFM_SUM_OF
|
||
#define MRV_ISP_RIS_AFM_SUM_OF_MASK 0U /* make sure, that this mask is defined for the combination mask */
|
||
#endif /* !MRV_ISP_RIS_AFM_SUM_OF */
|
||
/* Slice: RIS_SHUTTER_OFF:*/
|
||
/* enable interrupt (1) or mask out (0)*/
|
||
#ifndef MRV_ISP_RIS_SHUTTER_OFF
|
||
#define MRV_ISP_RIS_SHUTTER_OFF_MASK 0U /* make sure, that this mask is defined for the combination mask */
|
||
#endif /* !MRV_ISP_RIS_SHUTTER_OFF */
|
||
/* Slice: RIS_SHUTTER_ON:*/
|
||
/* enable interrupt (1) or mask out (0)*/
|
||
#ifndef MRV_ISP_RIS_SHUTTER_ON
|
||
#define MRV_ISP_RIS_SHUTTER_ON_MASK 0U /* make sure, that this mask is defined for the combination mask */
|
||
#endif /* !MRV_ISP_RIS_SHUTTER_ON */
|
||
/* Slice: RIS_FLASH_OFF:*/
|
||
/* enable interrupt (1) or mask out (0)*/
|
||
#ifndef MRV_ISP_RIS_FLASH_OFF
|
||
#define MRV_ISP_RIS_FLASH_OFF_MASK 0U /* make sure, that this mask is defined for the combination mask */
|
||
#endif /* !MRV_ISP_RIS_FLASH_OFF */
|
||
/* Slice: RIS_FLASH_ON:*/
|
||
/* enable interrupt (1) or mask out (0)*/
|
||
#ifndef MRV_ISP_RIS_FLASH_ON
|
||
#define MRV_ISP_RIS_FLASH_ON_MASK 0U /* make sure, that this mask is defined for the combination mask */
|
||
#endif /* !MRV_ISP_RIS_FLASH_ON */
|
||
/* Slice: RIS_H_START:*/
|
||
/* enable interrupt (1) or mask out (0)*/
|
||
#ifndef MRV_ISP_RIS_H_START
|
||
#define MRV_ISP_RIS_H_START_MASK 0U /* make sure, that this mask is defined for the combination mask */
|
||
#endif /* !MRV_ISP_RIS_H_START */
|
||
/* Slice: RIS_V_START:*/
|
||
/* enable interrupt (1) or mask out (0)*/
|
||
#ifndef MRV_ISP_RIS_V_START
|
||
#define MRV_ISP_RIS_V_START_MASK 0U /* make sure, that this mask is defined for the combination mask */
|
||
#endif /* !MRV_ISP_RIS_V_START */
|
||
/* Slice: RIS_FRAME_IN:*/
|
||
/* enable interrupt (1) or mask out (0)*/
|
||
#ifndef MRV_ISP_RIS_FRAME_IN
|
||
#define MRV_ISP_RIS_FRAME_IN_MASK 0U /* make sure, that this mask is defined for the combination mask */
|
||
#endif /* !MRV_ISP_RIS_FRAME_IN */
|
||
/* Slice: RIS_AWB_DONE:*/
|
||
/* enable interrupt (1) or mask out (0)*/
|
||
#ifndef MRV_ISP_RIS_AWB_DONE
|
||
#define MRV_ISP_RIS_AWB_DONE_MASK 0U /* make sure, that this mask is defined for the combination mask */
|
||
#endif /* !MRV_ISP_RIS_AWB_DONE */
|
||
/* Slice: RIS_PIC_SIZE_ERR:*/
|
||
/* enable interrupt (1) or mask out (0)*/
|
||
#ifndef MRV_ISP_RIS_PIC_SIZE_ERR
|
||
#define MRV_ISP_RIS_PIC_SIZE_ERR_MASK 0U /* make sure, that this mask is defined for the combination mask */
|
||
#endif /* !MRV_ISP_RIS_PIC_SIZE_ERR */
|
||
/* Slice: RIS_DATA_LOSS:*/
|
||
/* enable interrupt (1) or mask out (0)*/
|
||
#ifndef MRV_ISP_RIS_DATA_LOSS
|
||
#define MRV_ISP_RIS_DATA_LOSS_MASK 0U /* make sure, that this mask is defined for the combination mask */
|
||
#endif /* !MRV_ISP_RIS_DATA_LOSS */
|
||
/* Slice: RIS_FRAME:*/
|
||
/* enable interrupt (1) or mask out (0)*/
|
||
#ifndef MRV_ISP_RIS_FRAME
|
||
#define MRV_ISP_RIS_FRAME_MASK 0U /* make sure, that this mask is defined for the combination mask */
|
||
#endif /* !MRV_ISP_RIS_FRAME */
|
||
/* Slice: RIS_ISP_OFF:*/
|
||
/* enable interrupt (1) or mask out (0)*/
|
||
#ifndef MRV_ISP_RIS_ISP_OFF
|
||
#define MRV_ISP_RIS_ISP_OFF_MASK 0U /* make sure, that this mask is defined for the combination mask */
|
||
#endif /* !MRV_ISP_RIS_ISP_OFF */
|
||
/* combination of all interrupt lines */
|
||
#define MRV_ISP_RIS_ALL_IRQS
|
||
#define MRV_ISP_RIS_ALL_IRQS_MASK \
|
||
(0 \
|
||
| MRV_ISP_RIS_VSM_END_MASK \
|
||
| MRV_ISP_RIS_EXP_END_MASK \
|
||
| MRV_ISP_RIS_FLASH_CAP_MASK \
|
||
| MRV_ISP_RIS_BP_DET_MASK \
|
||
| MRV_ISP_RIS_HIST_MEASURE_RDY_MASK \
|
||
| MRV_ISP_RIS_AFM_FIN_MASK \
|
||
| MRV_ISP_RIS_AFM_LUM_OF_MASK \
|
||
| MRV_ISP_RIS_AFM_SUM_OF_MASK \
|
||
| MRV_ISP_RIS_SHUTTER_OFF_MASK \
|
||
| MRV_ISP_RIS_SHUTTER_ON_MASK \
|
||
| MRV_ISP_RIS_FLASH_OFF_MASK \
|
||
| MRV_ISP_RIS_FLASH_ON_MASK \
|
||
| MRV_ISP_RIS_H_START_MASK \
|
||
| MRV_ISP_RIS_V_START_MASK \
|
||
| MRV_ISP_RIS_FRAME_IN_MASK \
|
||
| MRV_ISP_RIS_AWB_DONE_MASK \
|
||
| MRV_ISP_RIS_PIC_SIZE_ERR_MASK \
|
||
| MRV_ISP_RIS_DATA_LOSS_MASK \
|
||
| MRV_ISP_RIS_FRAME_MASK \
|
||
| MRV_ISP_RIS_ISP_OFF_MASK \
|
||
)
|
||
#define MRV_ISP_RIS_ALL_IRQS_SHIFT 0U
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_mis: Masked interrupt status (0x000001c4)
|
||
*
|
||
*****************************************************************************/
|
||
/*! Slice: MIS_VSM_END:*/
|
||
/*! VSM measurement complete */
|
||
#ifndef MRV_ISP_MIS_VSM_END
|
||
#define MRV_ISP_MIS_VSM_END_MASK 0U /* make sure, that this mask is defined for the combination mask */
|
||
#endif /* !MRV_ISP_MIS_VSM_END_MASK */
|
||
/* Slice: MIS_EXP_END:*/
|
||
/* enable interrupt (1) or mask out (0)*/
|
||
#ifndef MRV_ISP_MIS_EXP_END
|
||
#define MRV_ISP_MIS_EXP_END_MASK 0U /* make sure, that this mask is defined for the combination mask */
|
||
#endif /* !MRV_ISP_MIS_EXP_END */
|
||
/* Slice: MIS_FLASH_CAP:*/
|
||
/* enable interrupt (1) or mask out (0)*/
|
||
#ifndef MRV_ISP_MIS_FLASH_CAP
|
||
#define MRV_ISP_MIS_FLASH_CAP_MASK 0U /* make sure, that this mask is defined for the combination mask */
|
||
#endif /* !MRV_ISP_MIS_FLASH_CAP */
|
||
/* Slice: MIS_BP_DET:*/
|
||
/* enable interrupt (1) or mask out (0)*/
|
||
#ifndef MRV_ISP_MIS_BP_DET
|
||
#define MRV_ISP_MIS_BP_DET_MASK 0U /* make sure, that this mask is defined for the combination mask */
|
||
#endif /* !MRV_ISP_MIS_BP_DET */
|
||
/* Slice: MIS_HIST_MEASURE_RDY:*/
|
||
/* enable interrupt (1) or mask out (0)*/
|
||
#ifndef MRV_ISP_MIS_HIST_MEASURE_RDY
|
||
#define MRV_ISP_MIS_HIST_MEASURE_RDY_MASK 0U /* make sure, that this mask is defined for the combination mask */
|
||
#endif /* !MRV_ISP_MIS_HIST_MEASURE_RDY */
|
||
/* Slice: MIS_AFM_FIN:*/
|
||
/* enable interrupt (1) or mask out (0)*/
|
||
#ifndef MRV_ISP_MIS_AFM_FIN
|
||
#define MRV_ISP_MIS_AFM_FIN_MASK 0U /* make sure, that this mask is defined for the combination mask */
|
||
#endif /* !MIS_AFM_FIN */
|
||
/* Slice: MIS_AFM_LUM_OF:*/
|
||
/* enable interrupt (1) or mask out (0)*/
|
||
#ifndef MRV_ISP_MIS_AFM_LUM_OF
|
||
#define MRV_ISP_MIS_AFM_LUM_OF_MASK 0U /* make sure, that this mask is defined for the combination mask */
|
||
#endif /* !MRV_ISP_MIS_AFM_LUM_OF */
|
||
/* Slice: MIS_AFM_SUM_OF:*/
|
||
/* enable interrupt (1) or mask out (0)*/
|
||
#ifndef MRV_ISP_MIS_AFM_SUM_OF
|
||
#define MRV_ISP_MIS_AFM_SUM_OF_MASK 0U /* make sure, that this mask is defined for the combination mask */
|
||
#endif /* !MRV_ISP_MIS_AFM_SUM_OF */
|
||
/* Slice: MIS_SHUTTER_OFF:*/
|
||
/* enable interrupt (1) or mask out (0)*/
|
||
#ifndef MRV_ISP_MIS_SHUTTER_OFF
|
||
#define MRV_ISP_MIS_SHUTTER_OFF_MASK 0U /* make sure, that this mask is defined for the combination mask */
|
||
#endif /* !MRV_ISP_MIS_SHUTTER_OFF */
|
||
/* Slice: MIS_SHUTTER_ON:*/
|
||
/* enable interrupt (1) or mask out (0)*/
|
||
#ifndef MRV_ISP_MIS_SHUTTER_ON
|
||
#define MRV_ISP_MIS_SHUTTER_ON_MASK 0U /* make sure, that this mask is defined for the combination mask */
|
||
#endif /* !MRV_ISP_MIS_SHUTTER_ON */
|
||
/* Slice: MIS_FLASH_OFF:*/
|
||
/* enable interrupt (1) or mask out (0)*/
|
||
#ifndef MRV_ISP_MIS_FLASH_OFF
|
||
#define MRV_ISP_MIS_FLASH_OFF_MASK 0U /* make sure, that this mask is defined for the combination mask */
|
||
#endif /* !MRV_ISP_MIS_FLASH_OFF */
|
||
/* Slice: MIS_FLASH_ON:*/
|
||
/* enable interrupt (1) or mask out (0)*/
|
||
#ifndef MRV_ISP_MIS_FLASH_ON
|
||
#define MRV_ISP_MIS_FLASH_ON_MASK 0U /* make sure, that this mask is defined for the combination mask */
|
||
#endif /* !MRV_ISP_MIS_FLASH_ON */
|
||
/* Slice: MIS_H_START:*/
|
||
/* enable interrupt (1) or mask out (0)*/
|
||
#ifndef MRV_ISP_MIS_H_START
|
||
#define MRV_ISP_MIS_H_START_MASK 0U /* make sure, that this mask is defined for the combination mask */
|
||
#endif /* !MRV_ISP_MIS_H_START */
|
||
/* Slice: MIS_V_START:*/
|
||
/* enable interrupt (1) or mask out (0)*/
|
||
#ifndef MRV_ISP_MIS_V_START
|
||
#define MRV_ISP_MIS_V_START_MASK 0U /* make sure, that this mask is defined for the combination mask */
|
||
#endif /* !MRV_ISP_MIS_V_START */
|
||
/* Slice: MIS_FRAME_IN:*/
|
||
/* enable interrupt (1) or mask out (0)*/
|
||
#ifndef MRV_ISP_MIS_FRAME_IN
|
||
#define MRV_ISP_MIS_FRAME_IN_MASK 0U /* make sure, that this mask is defined for the combination mask */
|
||
#endif /* !MRV_ISP_MIS_FRAME_IN */
|
||
/* Slice: MIS_AWB_DONE:*/
|
||
/* enable interrupt (1) or mask out (0)*/
|
||
#ifndef MRV_ISP_MIS_AWB_DONE
|
||
#define MRV_ISP_MIS_AWB_DONE_MASK 0U /* make sure, that this mask is defined for the combination mask */
|
||
#endif /* !MRV_ISP_MIS_AWB_DONE */
|
||
/* Slice: MIS_PIC_SIZE_ERR:*/
|
||
/* enable interrupt (1) or mask out (0)*/
|
||
#ifndef MRV_ISP_MIS_PIC_SIZE_ERR
|
||
#define MRV_ISP_MIS_PIC_SIZE_ERR_MASK 0U /* make sure, that this mask is defined for the combination mask */
|
||
#endif /* !MRV_ISP_MIS_PIC_SIZE_ERR */
|
||
/* Slice: MIS_DATA_LOSS:*/
|
||
/* enable interrupt (1) or mask out (0)*/
|
||
#ifndef MRV_ISP_MIS_DATA_LOSS
|
||
#define MRV_ISP_MIS_DATA_LOSS_MASK 0U /* make sure, that this mask is defined for the combination mask */
|
||
#endif /* !MRV_ISP_MIS_DATA_LOSS */
|
||
/* Slice: MIS_FRAME:*/
|
||
/* enable interrupt (1) or mask out (0)*/
|
||
#ifndef MRV_ISP_MIS_FRAME
|
||
#define MRV_ISP_MIS_FRAME_MASK 0U /* make sure, that this mask is defined for the combination mask */
|
||
#endif /* !MRV_ISP_MIS_FRAME */
|
||
/* Slice: MIS_ISP_OFF:*/
|
||
/* enable interrupt (1) or mask out (0)*/
|
||
#ifndef MRV_ISP_MIS_ISP_OFF
|
||
#define MRV_ISP_MIS_ISP_OFF_MASK 0U /* make sure, that this mask is defined for the combination mask */
|
||
#endif /* !MRV_ISP_MIS_ISP_OFF */
|
||
/* combination of all interrupt lines */
|
||
#define MRV_ISP_MIS_ALL_IRQS
|
||
#define MRV_ISP_MIS_ALL_IRQS_MASK \
|
||
(0 \
|
||
| MRV_ISP_MIS_VSM_END_MASK \
|
||
| MRV_ISP_MIS_EXP_END_MASK \
|
||
| MRV_ISP_MIS_FLASH_CAP_MASK \
|
||
| MRV_ISP_MIS_BP_DET_MASK \
|
||
| MRV_ISP_MIS_HIST_MEASURE_RDY_MASK \
|
||
| MRV_ISP_MIS_AFM_FIN_MASK \
|
||
| MRV_ISP_MIS_AFM_LUM_OF_MASK \
|
||
| MRV_ISP_MIS_AFM_SUM_OF_MASK \
|
||
| MRV_ISP_MIS_SHUTTER_OFF_MASK \
|
||
| MRV_ISP_MIS_SHUTTER_ON_MASK \
|
||
| MRV_ISP_MIS_FLASH_OFF_MASK \
|
||
| MRV_ISP_MIS_FLASH_ON_MASK \
|
||
| MRV_ISP_MIS_H_START_MASK \
|
||
| MRV_ISP_MIS_V_START_MASK \
|
||
| MRV_ISP_MIS_FRAME_IN_MASK \
|
||
| MRV_ISP_MIS_AWB_DONE_MASK \
|
||
| MRV_ISP_MIS_PIC_SIZE_ERR_MASK \
|
||
| MRV_ISP_MIS_DATA_LOSS_MASK \
|
||
| MRV_ISP_MIS_FRAME_MASK \
|
||
| MRV_ISP_MIS_ISP_OFF_MASK \
|
||
)
|
||
#define MRV_ISP_MIS_ALL_IRQS_SHIFT 0U
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_icr: Interrupt clear register (0x000001c8)
|
||
*
|
||
*****************************************************************************/
|
||
/*! Slice: ICR_VSM_END:*/
|
||
/*! clear interrupt */
|
||
#ifndef MRV_ISP_ICR_VSM_END
|
||
#define MRV_ISP_ICR_VSM_END_MASK 0U /* make sure, that this mask is defined for the combination mask */
|
||
#endif /* !MRV_ISP_ICR_VSM_END */
|
||
/* Slice: ICR_EXP_END:*/
|
||
/* enable interrupt (1) or mask out (0)*/
|
||
#ifndef MRV_ISP_ICR_EXP_END
|
||
#define MRV_ISP_ICR_EXP_END_MASK 0U /* make sure, that this mask is defined for the combination mask */
|
||
#endif /* !MRV_ISP_ICR_EXP_END */
|
||
/* Slice: ICR_FLASH_CAP:*/
|
||
/* enable interrupt (1) or mask out (0)*/
|
||
#ifndef MRV_ISP_ICR_FLASH_CAP
|
||
#define MRV_ISP_ICR_FLASH_CAP_MASK 0U /* make sure, that this mask is defined for the combination mask */
|
||
#endif /* !MRV_ISP_ICR_FLASH_CAP */
|
||
/* Slice: ICR_BP_DET:*/
|
||
/* enable interrupt (1) or mask out (0)*/
|
||
#ifndef MRV_ISP_ICR_BP_DET
|
||
#define MRV_ISP_ICR_BP_DET_MASK 0U /* make sure, that this mask is defined for the combination mask */
|
||
#endif /* !MRV_ISP_ICR_BP_DET */
|
||
/* Slice: ICR_HIST_MEASURE_RDY:*/
|
||
/* enable interrupt (1) or mask out (0)*/
|
||
#ifndef MRV_ISP_ICR_HIST_MEASURE_RDY
|
||
#define MRV_ISP_ICR_HIST_MEASURE_RDY_MASK 0U /* make sure, that this mask is defined for the combination mask */
|
||
#endif /* !MRV_ISP_ICR_HIST_MEASURE_RDY */
|
||
/* Slice: ICR_AFM_FIN:*/
|
||
/* enable interrupt (1) or mask out (0)*/
|
||
#ifndef MRV_ISP_ICR_AFM_FIN
|
||
#define MRV_ISP_ICR_AFM_FIN_MASK 0U /* make sure, that this mask is defined for the combination mask */
|
||
#endif /* !ICR_AFM_FIN */
|
||
/* Slice: ICR_AFM_LUM_OF:*/
|
||
/* enable interrupt (1) or mask out (0)*/
|
||
#ifndef MRV_ISP_ICR_AFM_LUM_OF
|
||
#define MRV_ISP_ICR_AFM_LUM_OF_MASK 0U /* make sure, that this mask is defined for the combination mask */
|
||
#endif /* !MRV_ISP_ICR_AFM_LUM_OF */
|
||
/* Slice: ICR_AFM_SUM_OF:*/
|
||
/* enable interrupt (1) or mask out (0)*/
|
||
#ifndef MRV_ISP_ICR_AFM_SUM_OF
|
||
#define MRV_ISP_ICR_AFM_SUM_OF_MASK 0U /* make sure, that this mask is defined for the combination mask */
|
||
#endif /* !MRV_ISP_ICR_AFM_SUM_OF */
|
||
/* Slice: ICR_SHUTTER_OFF:*/
|
||
/* enable interrupt (1) or mask out (0)*/
|
||
#ifndef MRV_ISP_ICR_SHUTTER_OFF
|
||
#define MRV_ISP_ICR_SHUTTER_OFF_MASK 0U /* make sure, that this mask is defined for the combination mask */
|
||
#endif /* !MRV_ISP_ICR_SHUTTER_OFF */
|
||
/* Slice: ICR_SHUTTER_ON:*/
|
||
/* enable interrupt (1) or mask out (0)*/
|
||
#ifndef MRV_ISP_ICR_SHUTTER_ON
|
||
#define MRV_ISP_ICR_SHUTTER_ON_MASK 0U /* make sure, that this mask is defined for the combination mask */
|
||
#endif /* !MRV_ISP_ICR_SHUTTER_ON */
|
||
/* Slice: ICR_FLASH_OFF:*/
|
||
/* enable interrupt (1) or mask out (0)*/
|
||
#ifndef MRV_ISP_ICR_FLASH_OFF
|
||
#define MRV_ISP_ICR_FLASH_OFF_MASK 0U /* make sure, that this mask is defined for the combination mask */
|
||
#endif /* !MRV_ISP_ICR_FLASH_OFF */
|
||
/* Slice: ICR_FLASH_ON:*/
|
||
/* enable interrupt (1) or mask out (0)*/
|
||
#ifndef MRV_ISP_ICR_FLASH_ON
|
||
#define MRV_ISP_ICR_FLASH_ON_MASK 0U /* make sure, that this mask is defined for the combination mask */
|
||
#endif /* !MRV_ISP_ICR_FLASH_ON */
|
||
/* Slice: ICR_H_START:*/
|
||
/* enable interrupt (1) or mask out (0)*/
|
||
#ifndef MRV_ISP_ICR_H_START
|
||
#define MRV_ISP_ICR_H_START_MASK 0U /* make sure, that this mask is defined for the combination mask */
|
||
#endif /* !MRV_ISP_ICR_H_START */
|
||
/* Slice: ICR_V_START:*/
|
||
/* enable interrupt (1) or mask out (0)*/
|
||
#ifndef MRV_ISP_ICR_V_START
|
||
#define MRV_ISP_ICR_V_START_MASK 0U /* make sure, that this mask is defined for the combination mask */
|
||
#endif /* !MRV_ISP_ICR_V_START */
|
||
/* Slice: ICR_FRAME_IN:*/
|
||
/* enable interrupt (1) or mask out (0)*/
|
||
#ifndef MRV_ISP_ICR_FRAME_IN
|
||
#define MRV_ISP_ICR_FRAME_IN_MASK 0U /* make sure, that this mask is defined for the combination mask */
|
||
#endif /* !MRV_ISP_ICR_FRAME_IN */
|
||
/* Slice: ICR_AWB_DONE:*/
|
||
/* enable interrupt (1) or mask out (0)*/
|
||
#ifndef MRV_ISP_ICR_AWB_DONE
|
||
#define MRV_ISP_ICR_AWB_DONE_MASK 0U /* make sure, that this mask is defined for the combination mask */
|
||
#endif /* !MRV_ISP_ICR_AWB_DONE */
|
||
/* Slice: ICR_PIC_SIZE_ERR:*/
|
||
/* enable interrupt (1) or mask out (0)*/
|
||
#ifndef MRV_ISP_ICR_PIC_SIZE_ERR
|
||
#define MRV_ISP_ICR_PIC_SIZE_ERR_MASK 0U /* make sure, that this mask is defined for the combination mask */
|
||
#endif /* !MRV_ISP_ICR_PIC_SIZE_ERR */
|
||
/* Slice: ICR_DATA_LOSS:*/
|
||
/* enable interrupt (1) or mask out (0)*/
|
||
#ifndef MRV_ISP_ICR_DATA_LOSS
|
||
#define MRV_ISP_ICR_DATA_LOSS_MASK 0U /* make sure, that this mask is defined for the combination mask */
|
||
#endif /* !MRV_ISP_ICR_DATA_LOSS */
|
||
/* Slice: ICR_FRAME:*/
|
||
/* enable interrupt (1) or mask out (0)*/
|
||
#ifndef MRV_ISP_ICR_FRAME
|
||
#define MRV_ISP_ICR_FRAME_MASK 0U /* make sure, that this mask is defined for the combination mask */
|
||
#endif /* !MRV_ISP_ICR_FRAME */
|
||
/* Slice: ICR_ISP_OFF:*/
|
||
/* enable interrupt (1) or mask out (0)*/
|
||
#ifndef MRV_ISP_ICR_ISP_OFF
|
||
#define MRV_ISP_ICR_ISP_OFF_MASK 0U /* make sure, that this mask is defined for the combination mask */
|
||
#endif /* !MRV_ISP_ICR_ISP_OFF */
|
||
/* combination of all interrupt lines */
|
||
#define MRV_ISP_ICR_ALL_IRQS
|
||
#define MRV_ISP_ICR_ALL_IRQS_MASK \
|
||
(0 \
|
||
| MRV_ISP_ICR_VSM_END_MASK \
|
||
| MRV_ISP_ICR_EXP_END_MASK \
|
||
| MRV_ISP_ICR_FLASH_CAP_MASK \
|
||
| MRV_ISP_ICR_BP_DET_MASK \
|
||
| MRV_ISP_ICR_HIST_MEASURE_RDY_MASK \
|
||
| MRV_ISP_ICR_AFM_FIN_MASK \
|
||
| MRV_ISP_ICR_AFM_LUM_OF_MASK \
|
||
| MRV_ISP_ICR_AFM_SUM_OF_MASK \
|
||
| MRV_ISP_ICR_SHUTTER_OFF_MASK \
|
||
| MRV_ISP_ICR_SHUTTER_ON_MASK \
|
||
| MRV_ISP_ICR_FLASH_OFF_MASK \
|
||
| MRV_ISP_ICR_FLASH_ON_MASK \
|
||
| MRV_ISP_ICR_H_START_MASK \
|
||
| MRV_ISP_ICR_V_START_MASK \
|
||
| MRV_ISP_ICR_FRAME_IN_MASK \
|
||
| MRV_ISP_ICR_AWB_DONE_MASK \
|
||
| MRV_ISP_ICR_PIC_SIZE_ERR_MASK \
|
||
| MRV_ISP_ICR_DATA_LOSS_MASK \
|
||
| MRV_ISP_ICR_FRAME_MASK \
|
||
| MRV_ISP_ICR_ISP_OFF_MASK \
|
||
)
|
||
#define MRV_ISP_ICR_ALL_IRQS_SHIFT 0U
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_isr: Interrupt set register (0x000001cc)
|
||
*
|
||
*****************************************************************************/
|
||
/*! Register: isp_isr: Interrupt set register (0x000001cc)*/
|
||
/*! Slice: ISR_VSM_END:*/
|
||
/*! set interrupt */
|
||
#ifndef MRV_ISP_ISR_VSM_END
|
||
#define MRV_ISP_ISR_VSM_END_MASK 0U /* make sure, that this mask is defined for the combination mask */
|
||
#endif /* !MRV_ISP_ISR_VSM_END */
|
||
/* Slice: ISR_EXP_END:*/
|
||
/* enable interrupt (1) or mask out (0)*/
|
||
#ifndef MRV_ISP_ISR_EXP_END
|
||
#define MRV_ISP_ISR_EXP_END_MASK 0U /* make sure, that this mask is defined for the combination mask */
|
||
#endif /* !MRV_ISP_ISR_EXP_END */
|
||
/* Slice: ISR_FLASH_CAP:*/
|
||
/* enable interrupt (1) or mask out (0)*/
|
||
#ifndef MRV_ISP_ISR_FLASH_CAP
|
||
#define MRV_ISP_ISR_FLASH_CAP_MASK 0U /* make sure, that this mask is defined for the combination mask */
|
||
#endif /* !MRV_ISP_ISR_FLASH_CAP */
|
||
/* Slice: ISR_BP_DET:*/
|
||
/* enable interrupt (1) or mask out (0)*/
|
||
#ifndef MRV_ISP_ISR_BP_DET
|
||
#define MRV_ISP_ISR_BP_DET_MASK 0U /* make sure, that this mask is defined for the combination mask */
|
||
#endif /* !MRV_ISP_ISR_BP_DET */
|
||
/* Slice: ISR_HIST_MEASURE_RDY:*/
|
||
/* enable interrupt (1) or mask out (0)*/
|
||
#ifndef MRV_ISP_ISR_HIST_MEASURE_RDY
|
||
#define MRV_ISP_ISR_HIST_MEASURE_RDY_MASK 0U /* make sure, that this mask is defined for the combination mask */
|
||
#endif /* !MRV_ISP_ISR_HIST_MEASURE_RDY */
|
||
/* Slice: ISR_AFM_FIN:*/
|
||
/* enable interrupt (1) or mask out (0)*/
|
||
#ifndef MRV_ISP_ISR_AFM_FIN
|
||
#define MRV_ISP_ISR_AFM_FIN_MASK 0U /* make sure, that this mask is defined for the combination mask */
|
||
#endif /* !ISR_AFM_FIN */
|
||
/* Slice: ISR_AFM_LUM_OF:*/
|
||
/* enable interrupt (1) or mask out (0)*/
|
||
#ifndef MRV_ISP_ISR_AFM_LUM_OF
|
||
#define MRV_ISP_ISR_AFM_LUM_OF_MASK 0U /* make sure, that this mask is defined for the combination mask */
|
||
#endif /* !MRV_ISP_ISR_AFM_LUM_OF */
|
||
/* Slice: ISR_AFM_SUM_OF:*/
|
||
/* enable interrupt (1) or mask out (0)*/
|
||
#ifndef MRV_ISP_ISR_AFM_SUM_OF
|
||
#define MRV_ISP_ISR_AFM_SUM_OF_MASK 0U /* make sure, that this mask is defined for the combination mask */
|
||
#endif /* !MRV_ISP_ISR_AFM_SUM_OF */
|
||
/* Slice: ISR_SHUTTER_OFF:*/
|
||
/* enable interrupt (1) or mask out (0)*/
|
||
#ifndef MRV_ISP_ISR_SHUTTER_OFF
|
||
#define MRV_ISP_ISR_SHUTTER_OFF_MASK 0U /* make sure, that this mask is defined for the combination mask */
|
||
#endif /* !MRV_ISP_ISR_SHUTTER_OFF */
|
||
/* Slice: ISR_SHUTTER_ON:*/
|
||
/* enable interrupt (1) or mask out (0)*/
|
||
#ifndef MRV_ISP_ISR_SHUTTER_ON
|
||
#define MRV_ISP_ISR_SHUTTER_ON_MASK 0U /* make sure, that this mask is defined for the combination mask */
|
||
#endif /* !MRV_ISP_ISR_SHUTTER_ON */
|
||
/* Slice: ISR_FLASH_OFF:*/
|
||
/* enable interrupt (1) or mask out (0)*/
|
||
#ifndef MRV_ISP_ISR_FLASH_OFF
|
||
#define MRV_ISP_ISR_FLASH_OFF_MASK 0U /* make sure, that this mask is defined for the combination mask */
|
||
#endif /* !MRV_ISP_ISR_FLASH_OFF */
|
||
/* Slice: ISR_FLASH_ON:*/
|
||
/* enable interrupt (1) or mask out (0)*/
|
||
#ifndef MRV_ISP_ISR_FLASH_ON
|
||
#define MRV_ISP_ISR_FLASH_ON_MASK 0U /* make sure, that this mask is defined for the combination mask */
|
||
#endif /* !MRV_ISP_ISR_FLASH_ON */
|
||
/* Slice: ISR_H_START:*/
|
||
/* enable interrupt (1) or mask out (0)*/
|
||
#ifndef MRV_ISP_ISR_H_START
|
||
#define MRV_ISP_ISR_H_START_MASK 0U /* make sure, that this mask is defined for the combination mask */
|
||
#endif /* !MRV_ISP_ISR_H_START */
|
||
/* Slice: ISR_V_START:*/
|
||
/* enable interrupt (1) or mask out (0)*/
|
||
#ifndef MRV_ISP_ISR_V_START
|
||
#define MRV_ISP_ISR_V_START_MASK 0U /* make sure, that this mask is defined for the combination mask */
|
||
#endif /* !MRV_ISP_ISR_V_START */
|
||
/* Slice: ISR_FRAME_IN:*/
|
||
/* enable interrupt (1) or mask out (0)*/
|
||
#ifndef MRV_ISP_ISR_FRAME_IN
|
||
#define MRV_ISP_ISR_FRAME_IN_MASK 0U /* make sure, that this mask is defined for the combination mask */
|
||
#endif /* !MRV_ISP_ISR_FRAME_IN */
|
||
/* Slice: ISR_AWB_DONE:*/
|
||
/* enable interrupt (1) or mask out (0)*/
|
||
#ifndef MRV_ISP_ISR_AWB_DONE
|
||
#define MRV_ISP_ISR_AWB_DONE_MASK 0U /* make sure, that this mask is defined for the combination mask */
|
||
#endif /* !MRV_ISP_ISR_AWB_DONE */
|
||
/* Slice: ISR_PIC_SIZE_ERR:*/
|
||
/* enable interrupt (1) or mask out (0)*/
|
||
#ifndef MRV_ISP_ISR_PIC_SIZE_ERR
|
||
#define MRV_ISP_ISR_PIC_SIZE_ERR_MASK 0U /* make sure, that this mask is defined for the combination mask */
|
||
#endif /* !MRV_ISP_ISR_PIC_SIZE_ERR */
|
||
/* Slice: ISR_DATA_LOSS:*/
|
||
/* enable interrupt (1) or mask out (0)*/
|
||
#ifndef MRV_ISP_ISR_DATA_LOSS
|
||
#define MRV_ISP_ISR_DATA_LOSS_MASK 0U /* make sure, that this mask is defined for the combination mask */
|
||
#endif /* !MRV_ISP_ISR_DATA_LOSS */
|
||
/* Slice: ISR_FRAME:*/
|
||
/* enable interrupt (1) or mask out (0)*/
|
||
#ifndef MRV_ISP_ISR_FRAME
|
||
#define MRV_ISP_ISR_FRAME_MASK 0U /* make sure, that this mask is defined for the combination mask */
|
||
#endif /* !MRV_ISP_ISR_FRAME */
|
||
/* Slice: ISR_ISP_OFF:*/
|
||
/* enable interrupt (1) or mask out (0)*/
|
||
#ifndef MRV_ISP_ISR_ISP_OFF
|
||
#define MRV_ISP_ISR_ISP_OFF_MASK 0U /* make sure, that this mask is defined for the combination mask */
|
||
#endif /* !MRV_ISP_ISR_ISP_OFF */
|
||
/* combination of all interrupt lines */
|
||
#define MRV_ISP_ISR_ALL_IRQS
|
||
#define MRV_ISP_ISR_ALL_IRQS_MASK \
|
||
(0 \
|
||
| MRV_ISP_ISR_VSM_END_MASK \
|
||
| MRV_ISP_ISR_EXP_END_MASK \
|
||
| MRV_ISP_ISR_FLASH_CAP_MASK \
|
||
| MRV_ISP_ISR_BP_DET_MASK \
|
||
| MRV_ISP_ISR_HIST_MEASURE_RDY_MASK \
|
||
| MRV_ISP_ISR_AFM_FIN_MASK \
|
||
| MRV_ISP_ISR_AFM_LUM_OF_MASK \
|
||
| MRV_ISP_ISR_AFM_SUM_OF_MASK \
|
||
| MRV_ISP_ISR_SHUTTER_OFF_MASK \
|
||
| MRV_ISP_ISR_SHUTTER_ON_MASK \
|
||
| MRV_ISP_ISR_FLASH_OFF_MASK \
|
||
| MRV_ISP_ISR_FLASH_ON_MASK \
|
||
| MRV_ISP_ISR_H_START_MASK \
|
||
| MRV_ISP_ISR_V_START_MASK \
|
||
| MRV_ISP_ISR_FRAME_IN_MASK \
|
||
| MRV_ISP_ISR_AWB_DONE_MASK \
|
||
| MRV_ISP_ISR_PIC_SIZE_ERR_MASK \
|
||
| MRV_ISP_ISR_DATA_LOSS_MASK \
|
||
| MRV_ISP_ISR_FRAME_MASK \
|
||
| MRV_ISP_ISR_ISP_OFF_MASK \
|
||
)
|
||
#define MRV_ISP_ISR_ALL_IRQS_SHIFT 0U
|
||
/*****************************************************************************/
|
||
/**
|
||
* register array: isp_ct_coeff: cross-talk configuration register (color
|
||
* correction matrix) (0x03A0 + n*0x4 (n=0..8))
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: ct_coeff:*/
|
||
/* Coefficient n for cross talk matrix.*/
|
||
/**/
|
||
/* Values are 11-bit signed fixed-point numbers with 4 bit integer and */
|
||
/* 7 bit fractional part, ranging from -8 (0x400) to +7.992 (0x3FF).*/
|
||
/* 0 is reprsented by 0x000 and a coefficient value of 1 as 0x080.*/
|
||
#ifdef MRV_ISP_CT_COEFF
|
||
#define MRV_ISP_CT_COEFF_DEFAULT 0x080U /* default value */
|
||
#endif /* MRV_ISP_CT_COEFF */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_gamma_out_mode: gamma segmentation mode register for output
|
||
* gamma (0x000001f4)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: equ_segm:*/
|
||
/* 0: logarithmic like segmentation of gamma curve (default after reset)*/
|
||
/* segmentation from 0 to 4095: 64 64 64 64 128 128 128 128 256 256 256 512 512 512 512 512 */
|
||
/* 1: equidistant segmentation (all 16 segments are 256)*/
|
||
#ifdef MRV_ISP_EQU_SEGM
|
||
#define MRV_ISP_EQU_SEGM_LOG 0 /* 0: logarithmic like segmentation of gamma curve (default after reset) */
|
||
#define MRV_ISP_EQU_SEGM_EQU 1 /* 1: equidistant segmentation (all 16 segments are 256) */
|
||
#endif /* MRV_ISP_EQU_SEGM */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register array: isp_gamma_out_y: Gamma Out Curve definition y (0x03F0 + n*0x4 (n=0..16))
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: isp_gamma_out_y:*/
|
||
/* Gamma_out curve point definition y-axis (output) for all color */
|
||
/* components (red, green, blue)*/
|
||
/* RESTRICTION: each Y_n must be in the +511/-512 range compared */
|
||
/* to its predecessor (so that dy is 10-bit signed !)*/
|
||
#ifdef MRV_ISP_ISP_GAMMA_OUT_Y
|
||
#endif /* MRV_ISP_ISP_GAMMA_OUT_Y */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_err: ISP error register (0x0000023c)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: outform_size_err:*/
|
||
/* size error is generated in outmux submodule */
|
||
#ifdef MRV_ISP_OUTFORM_SIZE_ERR
|
||
#endif /* MRV_ISP_OUTFORM_SIZE_ERR */
|
||
/* Slice: is_size_err:*/
|
||
/* size error is generated in image stabilization submodule */
|
||
#ifdef MRV_ISP_IS_SIZE_ERR
|
||
#endif /* MRV_ISP_IS_SIZE_ERR */
|
||
/* Slice: inform_size_err:*/
|
||
/* size error is generated in inform submodule */
|
||
#ifdef MRV_ISP_INFORM_SIZE_ERR
|
||
#endif /* MRV_ISP_INFORM_SIZE_ERR */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_err_clr: ISP error clear register (0x00000240)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: outform_size_err_clr:*/
|
||
/* size error is cleared */
|
||
#ifdef MRV_ISP_OUTFORM_SIZE_ERR_CLR
|
||
#endif /* MRV_ISP_OUTFORM_SIZE_ERR_CLR */
|
||
/* Slice: is_size_err_clr:*/
|
||
/* size error is cleared */
|
||
#ifdef MRV_ISP_IS_SIZE_ERR_CLR
|
||
#endif /* MRV_ISP_IS_SIZE_ERR_CLR */
|
||
/* Slice: inform_size_err_clr:*/
|
||
/* size error is cleared */
|
||
#ifdef MRV_ISP_INFORM_SIZE_ERR_CLR
|
||
#endif /* MRV_ISP_INFORM_SIZE_ERR_CLR */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_frame_count: Frame counter (0x00000244)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: frame_counter:*/
|
||
/* Current frame count of processing */
|
||
#ifdef MRV_ISP_FRAME_COUNTER
|
||
#endif /* MRV_ISP_FRAME_COUNTER */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_ct_offset_r: cross-talk offset red (0x00000248)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: ct_offset_r:*/
|
||
/* Offset red for cross talk matrix. Two's complement integer number ranging */
|
||
/* from -2048 (0x800) to 2047 (0x7FF). 0 is represented as 0x000.*/
|
||
#ifdef MRV_ISP_CT_OFFSET_R
|
||
#define MRV_ISP_CT_OFFSET_R_DEFAULT 0x000U /* default value */
|
||
#endif /* MRV_ISP_CT_OFFSET_R */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_ct_offset_g: cross-talk offset green (0x0000024c)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: ct_offset_g:*/
|
||
/* Offset green for cross talk matrix. Two's complement integer number ranging */
|
||
/* from -2048 (0x800) to 2047 (0x7FF). 0 is represented as 0x000.*/
|
||
#ifdef MRV_ISP_CT_OFFSET_G
|
||
#define MRV_ISP_CT_OFFSET_G_DEFAULT 0x000U /* default value */
|
||
#endif /* MRV_ISP_CT_OFFSET_G */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_ct_offset_b: cross-talk offset blue (0x00000250)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: ct_offset_b:*/
|
||
/* Offset blue for cross talk matrix. Two's complement integer number ranging */
|
||
/* from -2048 (0x800) to 2047 (0x7FF). 0 is represented as 0x000.*/
|
||
#ifdef MRV_ISP_CT_OFFSET_B
|
||
#define MRV_ISP_CT_OFFSET_B_DEFAULT 0x000U /* default value */
|
||
#endif /* MRV_ISP_CT_OFFSET_B */
|
||
/*****************************************************************************/
|
||
/* ISP Flash Module Registers */
|
||
/*****************************************************************************/
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_flash_cmd: Flash command (0x0000)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: preflash_on:*/
|
||
/* preflash on */
|
||
/* 0: no effect */
|
||
/* 1: flash delay counter is started at next trigger event */
|
||
/* No capture event is signaled to the sensor interface block.*/
|
||
#ifdef MRV_FLASH_PREFLASH_ON
|
||
#endif /* MRV_FLASH_PREFLASH_ON */
|
||
/* Slice: flash_on:*/
|
||
/* flash on */
|
||
/* 0: no effect */
|
||
/* 1: flash delay counter is started at next trigger event */
|
||
/* A capture event is signaled to the sensor interface block.*/
|
||
#ifdef MRV_FLASH_FLASH_ON
|
||
#endif /* MRV_FLASH_FLASH_ON */
|
||
/* Slice: prelight_on:*/
|
||
/* prelight on */
|
||
/* 0: prelight is switched off at next trigger event */
|
||
/* 1: prelight is switched on at next trigger event */
|
||
#ifdef MRV_FLASH_PRELIGHT_ON
|
||
#endif /* MRV_FLASH_PRELIGHT_ON */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_flash_config: Flash config (0x0004)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: fl_cap_del:*/
|
||
/* capture delay */
|
||
/* frame number (0 to 15) to be captured after trigger event */
|
||
#ifdef MRV_FLASH_FL_CAP_DEL
|
||
#endif /* MRV_FLASH_FL_CAP_DEL */
|
||
/* Slice: fl_trig_src:*/
|
||
/* trigger source for flash and prelight */
|
||
/* 0: use "vds_vsync" for trigger event (with evaluation of vs_in_edge)*/
|
||
/* 1: use "fl_trig" for trigger event (positive edge)*/
|
||
#ifdef MRV_FLASH_FL_TRIG_SRC
|
||
#define MRV_FLASH_FL_TRIG_SRC_VDS 0 /* 0: use "vds_vsync" for trigger event (with evaluation of vs_in_edge) */
|
||
#define MRV_FLASH_FL_TRIG_SRC_FL 1 /* 1: use "fl_trig" for trigger event (positive edge) */
|
||
#endif /* MRV_FLASH_FL_TRIG_SRC */
|
||
/* Slice: fl_pol:*/
|
||
/* polarity of flash related signals */
|
||
/* 0: flash_trig, prelight_trig are high active */
|
||
/* 1: flash_trig, prelight_trig are low active */
|
||
#ifdef MRV_FLASH_FL_POL
|
||
#define MRV_FLASH_FL_POL_HIGH 0 /* 0: flash_trig, prelight_trig are high active */
|
||
#define MRV_FLASH_FL_POL_LOW 1 /* 1: flash_trig, prelight_trig are low active */
|
||
#endif /* MRV_FLASH_FL_POL */
|
||
/* Slice: vs_in_edge:*/
|
||
/* VSYNC edge */
|
||
/* 0: use negative edge of "vds_vsync" if generating a trigger event */
|
||
/* 1: use positive edge of "vds_vsync" if generating a trigger event */
|
||
#ifdef MRV_FLASH_VS_IN_EDGE
|
||
#define MRV_FLASH_VS_IN_EDGE_NEG 0 /* 0: use negative edge of "vds_vsync" if generating a trigger event */
|
||
#define MRV_FLASH_VS_IN_EDGE_POS 1 /* 1: use positive edge of "vds_vsync" if generating a trigger event */
|
||
#endif /* MRV_FLASH_VS_IN_EDGE */
|
||
/* Slice: prelight_mode:*/
|
||
/* prelight mode */
|
||
/* 0: prelight is switched off at begin of flash */
|
||
/* 1: prelight is switched off at end of flash */
|
||
#ifdef MRV_FLASH_PRELIGHT_MODE
|
||
#define MRV_FLASH_PRELIGHT_MODE_OASF 0 /* 0: prelight is switched off at begin of flash */
|
||
#define MRV_FLASH_PRELIGHT_MODE_OAEF 1 /* 1: prelight is switched off at end of flash */
|
||
#endif /* MRV_FLASH_PRELIGHT_MODE */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_flash_prediv: Flash Counter Pre-Divider (0x00000008)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: fl_pre_div:*/
|
||
/* pre-divider for flush/preflash counter */
|
||
#ifdef MRV_FLASH_FL_PRE_DIV
|
||
#endif /* MRV_FLASH_FL_PRE_DIV */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_flash_delay: Flash Delay (0x000c)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: fl_delay:*/
|
||
/* counter value for flash/preflash delay */
|
||
/* open_delay = (fl_delay + 1) * (fl_pre_div+1) / clk_isp */
|
||
/* fl_delay = (open_delay * clk_isp) / (fl_pre_div+1) - 1 */
|
||
#ifdef MRV_FLASH_FL_DELAY
|
||
#endif /* MRV_FLASH_FL_DELAY */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_flash_time: Flash time (0x00000010)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: fl_time:*/
|
||
/* counter value for flash/preflash time */
|
||
/* open_time = (fl_time + 1) * (fl_pre_div+1) / clk_isp */
|
||
/* fl_time = (open_time * clk_isp) / (fl_pre_div+1) - 1 */
|
||
#ifdef MRV_FLASH_FL_TIME
|
||
#endif /* MRV_FLASH_FL_TIME */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_flash_maxp: Maximum value for flash or preflash (0x00000014)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: fl_maxp:*/
|
||
/* maximum period value for flash or preflash */
|
||
/* max. flash/preflash period = 214 * (fl_maxp + 1) / clk_isp */
|
||
/* fl_maxp = (max_period * clk_isp) / 214 - 1 */
|
||
#ifdef MRV_FLASH_FL_MAXP
|
||
#endif /* MRV_FLASH_FL_MAXP */
|
||
/*****************************************************************************/
|
||
/* ISP Shutter Module Registers */
|
||
/*****************************************************************************/
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_sh_ctrl: mechanical shutter control (0x0000)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: sh_open_pol:*/
|
||
/* shutter_open polarity */
|
||
/* 0: shutter_open is high active */
|
||
/* 1: shutter_open is low active */
|
||
#ifdef MRV_SHUT_SH_OPEN_POL
|
||
#define MRV_SHUT_SH_OPEN_POL_HIGH 0 /* 0: shutter_open is high active */
|
||
#define MRV_SHUT_SH_OPEN_POL_LOW 1 /* 1: shutter_open is low active */
|
||
#endif /* MRV_SHUT_SH_OPEN_POL */
|
||
/* Slice: sh_trig_en:*/
|
||
/* mechanical shutter trigger edge */
|
||
/* 0: use negative edge of trigger signal */
|
||
/* 1: use positive edge of trigger signal */
|
||
#ifdef MRV_SHUT_SH_TRIG_EN
|
||
#define MRV_SHUT_SH_TRIG_EN_NEG 0 /* 0: use negative edge of trigger signal */
|
||
#define MRV_SHUT_SH_TRIG_EN_POS 1 /* 1: use positive edge of trigger signal */
|
||
#endif /* MRV_SHUT_SH_TRIG_EN */
|
||
/* Slice: sh_trig_src:*/
|
||
/* mechanical shutter trigger source */
|
||
/* 0: use "vds_vsync" for trigger event */
|
||
/* 1: use "shutter_trig" for trigger event */
|
||
#ifdef MRV_SHUT_SH_TRIG_SRC
|
||
#define MRV_SHUT_SH_TRIG_SRC_VDS 0 /* 0: use "vds_vsync" for trigger event */
|
||
#define MRV_SHUT_SH_TRIG_SRC_SHUT 1 /* 1: use "shutter_trig" for trigger event */
|
||
#endif /* MRV_SHUT_SH_TRIG_SRC */
|
||
/* Slice: sh_rep_en:*/
|
||
/* mechanical shutter repetition enable */
|
||
/* 0: shutter is opened only once */
|
||
/* 1: shutter is opened with the repetition rate of the trigger signal */
|
||
#ifdef MRV_SHUT_SH_REP_EN
|
||
#define MRV_SHUT_SH_REP_EN_ONCE 0 /* 0: shutter is opened only once */
|
||
#define MRV_SHUT_SH_REP_EN_REP 1 /* 1: shutter is opened with the repetition rate of the trigger signal */
|
||
#endif /* MRV_SHUT_SH_REP_EN */
|
||
/* Slice: sh_en:*/
|
||
/* mechanical shutter enable */
|
||
/* 0: mechanical shutter function is disabled */
|
||
/* 1: mechanical shutter function is enabled */
|
||
#ifdef MRV_SHUT_SH_EN
|
||
#endif /* MRV_SHUT_SH_EN */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_sh_prediv: Mech. Shutter Counter Pre-Divider (0x0004)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: sh_pre_div:*/
|
||
/* pre-divider for mechanical shutter open_delay and open_time counter */
|
||
#ifdef MRV_SHUT_SH_PRE_DIV
|
||
#endif /* MRV_SHUT_SH_PRE_DIV */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_sh_delay: Delay register (0x00000008)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: sh_delay:*/
|
||
/* counter value for delay */
|
||
/* open_delay = (sh_delay + 1) * (fl_pre_div+1) / clk_isp */
|
||
/* sh_delay = (open_delay * clk_isp) / (sh_pre_div+1) 1 */
|
||
#ifdef MRV_SHUT_SH_DELAY
|
||
#endif /* MRV_SHUT_SH_DELAY */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_sh_time: Time register (0x0000000c)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: sh_time:*/
|
||
/* counter value for time */
|
||
/* open_time = (sh_time + 1) * (fl_pre_div+1) / clk_isp */
|
||
/* sh_time = (open_time * clk_isp) / (sh_pre_div+1) - 1 */
|
||
#ifndef MRV_SHUT_SH_TIME
|
||
#endif /* MRV_SHUT_SH_TIME */
|
||
/*****************************************************************************/
|
||
/* Color Processing Module Registers */
|
||
/*****************************************************************************/
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: c_proc_ctrl: Global control register (0x0000)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: cproc_c_out_range:*/
|
||
/* Color processing chrominance pixel clipping range at output */
|
||
/* 0: CbCr_out clipping range 16..240 according to ITU-R BT.601 standard */
|
||
/* 1: full UV_out clipping range 0..255 */
|
||
#ifdef MRV_CPROC_CPROC_C_OUT_RANGE
|
||
#define MRV_CPROC_CPROC_C_OUT_RANGE_BT601 0 /* 0: CbCr_out clipping range 16..240 according to ITU-R BT.601 standard */
|
||
#define MRV_CPROC_CPROC_C_OUT_RANGE_FULL 1 /* 1: full UV_out clipping range 0..255 */
|
||
#endif /* MRV_CPROC_CPROC_C_OUT_RANGE */
|
||
/* Slice: cproc_y_in_range:*/
|
||
/* Color processing luminance input range (offset processing)*/
|
||
/* 0: Y_in range 64..940 according to ITU-R BT.601 standard;*/
|
||
/* offset of 64 will be subtracted from Y_in */
|
||
/* 1: Y_in full range 0..1023; no offset will be subtracted from Y_in */
|
||
#ifdef MRV_CPROC_CPROC_Y_IN_RANGE
|
||
#define MRV_CPROC_CPROC_Y_IN_RANGE_BT601 0 /* 0: Y_in range 64..940 according to ITU-R BT.601 standard */
|
||
#define MRV_CPROC_CPROC_Y_IN_RANGE_FULL 1 /* 1: Y_in full range 0..1023 */
|
||
#endif /* MRV_CPROC_CPROC_Y_IN_RANGE */
|
||
/* Slice: cproc_y_out_range:*/
|
||
/* Color processing luminance output clipping range */
|
||
/* 0: Y_out clipping range 16..235; offset of 16 is added to Y_out according to ITU-R BT.601 standard */
|
||
/* 1: Y_out clipping range 0..255; no offset is added to Y_out */
|
||
#ifdef MRV_CPROC_CPROC_Y_OUT_RANGE
|
||
#define MRV_CPROC_CPROC_Y_OUT_RANGE_BT601 0 /* 0: Y_out clipping range 16..235; offset of 16 is added to Y_out according to ITU-R BT.601 standard */
|
||
#define MRV_CPROC_CPROC_Y_OUT_RANGE_FULL 1 /* 1: Y_out clipping range 0..255; no offset is added to Y_out */
|
||
#endif /* MRV_CPROC_CPROC_Y_OUT_RANGE */
|
||
/* Slice: cproc_enable:*/
|
||
/* color processing enable */
|
||
/* 0: color processing is bypassed */
|
||
/* 2 * 10 Bit input data are truncated to 2 * 8Bit output data */
|
||
/* 1: color processing is active */
|
||
/* output data are rounded to 2 * 8Bit and clipping is active */
|
||
#ifdef MRV_CPROC_CPROC_ENABLE
|
||
#define MRV_CPROC_CPROC_ENABLE_PROCESS 1 /* 1: processing is activated */
|
||
#define MRV_CPROC_CPROC_ENABLE_BYPASS 0 /* 0: processing is deactivated, bypass mode is selected */
|
||
#endif /* MRV_CPROC_CPROC_ENABLE */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: c_proc_contrast: Color Processing contrast register (0x0004)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: cproc_contrast:*/
|
||
/* contrast adjustment value */
|
||
/* 00H equals x 0.0 */
|
||
/* ...*/
|
||
/* 80H equals x 1.0 */
|
||
/* ...*/
|
||
/* FFH equals x 1.992 */
|
||
#ifdef MRV_CPROC_CPROC_CONTRAST
|
||
#endif /* MRV_CPROC_CPROC_CONTRAST */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: c_proc_brightness: Color Processing brightness register (0x0008)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: cproc_brightness:*/
|
||
/* brightness adjustment value */
|
||
/* 80H equals -128 */
|
||
/* ...*/
|
||
/* 00H equals +0 */
|
||
/* ...*/
|
||
/* 7FH equals +127 */
|
||
#ifdef MRV_CPROC_CPROC_BRIGHTNESS
|
||
#endif /* MRV_CPROC_CPROC_BRIGHTNESS */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: c_proc_saturation: Color Processing saturation register (0x000c)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: cproc_saturation:*/
|
||
/* saturation adjustment value */
|
||
/* 00H equals x 0.0 */
|
||
/* ...*/
|
||
/* 80H equals x 1.0 */
|
||
/* ...*/
|
||
/* FFH equals x 1.992 */
|
||
#ifdef MRV_CPROC_CPROC_SATURATION
|
||
#endif /* MRV_CPROC_CPROC_SATURATION */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: c_proc_hue: Color Processing hue register (0x0010)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: cproc_hue:*/
|
||
/* hue adjustment value */
|
||
/* 80H equals -90 deg */
|
||
/* ...*/
|
||
/* 00H equals 0 deg */
|
||
/* ...*/
|
||
/* 7FH equals +87.188 deg */
|
||
#ifdef MRV_CPROC_CPROC_HUE
|
||
#endif /* MRV_CPROC_CPROC_HUE */
|
||
/*****************************************************************************/
|
||
/* Main Resizer/Scaler Registers */
|
||
/*****************************************************************************/
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: mrsz_ctrl: global control register (0x00000000)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: cfg_upd:*/
|
||
/* write 0: nothing happens */
|
||
/* write 1: update shadow registers */
|
||
/* read: always 0 */
|
||
#ifdef MRV_MRSZ_CFG_UPD
|
||
#endif /* MRV_MRSZ_CFG_UPD */
|
||
/* Slice: scale_vc_up:*/
|
||
/* 1: vertical chrominance upscaling selected */
|
||
/* 0: vertical chrominance downscaling selected */
|
||
#ifdef MRV_MRSZ_SCALE_VC_UP
|
||
#define MRV_MRSZ_SCALE_VC_UP_UPSCALE 1 /* 1: vertical chrominance upscaling selected */
|
||
#define MRV_MRSZ_SCALE_VC_UP_DOWNSCALE 0 /* 0: vertical chrominance downscaling selected */
|
||
#endif /* MRV_MRSZ_SCALE_VC_UP */
|
||
/* Slice: scale_vy_up:*/
|
||
/* 1: vertical luminance upscaling selected */
|
||
/* 0: vertical luminance downscaling selected */
|
||
#ifdef MRV_MRSZ_SCALE_VY_UP
|
||
#define MRV_MRSZ_SCALE_VY_UP_UPSCALE 1 /* 1: vertical luminance upscaling selected */
|
||
#define MRV_MRSZ_SCALE_VY_UP_DOWNSCALE 0 /* 0: vertical luminance downscaling selected */
|
||
#endif /* MRV_MRSZ_SCALE_VY_UP */
|
||
/* Slice: scale_hc_up:*/
|
||
/* 1: horizontal chrominance upscaling selected */
|
||
/* 0: horizontal chrominance downscaling selected */
|
||
#ifdef MRV_MRSZ_SCALE_HC_UP
|
||
#define MRV_MRSZ_SCALE_HC_UP_UPSCALE 1 /* 1: horizontal chrominance upscaling selected */
|
||
#define MRV_MRSZ_SCALE_HC_UP_DOWNSCALE 0 /* 0: horizontal chrominance downscaling selected */
|
||
#endif /* MRV_MRSZ_SCALE_HC_UP */
|
||
/* Slice: scale_hy_up:*/
|
||
/* 1: horizontal luminance upscaling selected */
|
||
/* 0: horizontal luminance downscaling selected */
|
||
#ifdef MRV_MRSZ_SCALE_HY_UP
|
||
#define MRV_MRSZ_SCALE_HY_UP_UPSCALE 1 /* 1: horizontal luminance upscaling selected */
|
||
#define MRV_MRSZ_SCALE_HY_UP_DOWNSCALE 0 /* 0: horizontal luminance downscaling selected */
|
||
#endif /* MRV_MRSZ_SCALE_HY_UP */
|
||
/* Slice: scale_vc_enable:*/
|
||
/* 0: bypass vertical chrominance scaling unit */
|
||
/* 1: enable vertical chrominance scaling unit */
|
||
#ifdef MRV_MRSZ_SCALE_VC_ENABLE
|
||
#define MRV_MRSZ_SCALE_VC_ENABLE_PROCESS 1 /* 1: enable vertical chrominance scaling unit */
|
||
#define MRV_MRSZ_SCALE_VC_ENABLE_BYPASS 0 /* 0: bypass vertical chrominance scaling unit */
|
||
#endif /* MRV_MRSZ_SCALE_VC_ENABLE */
|
||
/* Slice: scale_vy_enable:*/
|
||
/* 0: bypass vertical luminance scaling unit */
|
||
/* 1: enable vertical luminance scaling unit */
|
||
#ifdef MRV_MRSZ_SCALE_VY_ENABLE
|
||
#define MRV_MRSZ_SCALE_VY_ENABLE_PROCESS 1 /* 1: enable vertical luminance scaling unit */
|
||
#define MRV_MRSZ_SCALE_VY_ENABLE_BYPASS 0 /* 0: bypass vertical luminance scaling unit */
|
||
#endif /* MRV_MRSZ_SCALE_VY_ENABLE */
|
||
/* Slice: scale_hc_enable:*/
|
||
/* 0: bypass horizontal chrominance scaling unit */
|
||
/* 1: enable horizontal chrominance scaling unit */
|
||
#ifdef MRV_MRSZ_SCALE_HC_ENABLE
|
||
#define MRV_MRSZ_SCALE_HC_ENABLE_PROCESS 1 /* 1: enable horizontal chrominance scaling unit */
|
||
#define MRV_MRSZ_SCALE_HC_ENABLE_BYPASS 0 /* 0: bypass horizontal chrominance scaling unit */
|
||
#endif /* MRV_MRSZ_SCALE_HC_ENABLE */
|
||
/* Slice: scale_hy_enable:*/
|
||
/* 0: bypass horizontal luminance scaling unit */
|
||
/* 1: enable horizontal luminance scaling unit */
|
||
#ifdef MRV_MRSZ_SCALE_HY_ENABLE
|
||
#define MRV_MRSZ_SCALE_HY_ENABLE_PROCESS 1 /* 1: enable horizontal luminance scaling unit */
|
||
#define MRV_MRSZ_SCALE_HY_ENABLE_BYPASS 0 /* 0: bypass horizontal luminance scaling unit */
|
||
#endif /* MRV_MRSZ_SCALE_HY_ENABLE */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: mrsz_scale_hy: horizontal luminance scale factor register
|
||
* (0x00000004)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: scale_hy:*/
|
||
/* This register is set to the horizontal luminance downscale factor or to */
|
||
/* the reciprocal of the horizontal luminance upscale factor */
|
||
#ifdef MRV_MRSZ_SCALE_HY
|
||
#endif /* MRV_MRSZ_SCALE_HY */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: mrsz_scale_hcb: horizontal Cb scale factor register (0x00000008)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: scale_hcb:*/
|
||
/* This register is set to the horizontal Cb downscale factor or to the */
|
||
/* reciprocal of the horizontal Cb upscale factor */
|
||
#ifdef MRV_MRSZ_SCALE_HCB
|
||
#endif /* MRV_MRSZ_SCALE_HCB */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: mrsz_scale_hcr: horizontal Cr scale factor register (0x0000000c)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: scale_hcr:*/
|
||
/* This register is set to the horizontal Cr downscale factor or to the */
|
||
/* reciprocal of the horizontal Cr upscale factor */
|
||
#ifdef MRV_MRSZ_SCALE_HCR
|
||
#endif /* MRV_MRSZ_SCALE_HCR */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: mrsz_scale_vy: vertical luminance scale factor register (0x00000010)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: scale_vy:*/
|
||
/* This register is set to the vertical luminance downscale factor or to the */
|
||
/* reciprocal of the vertical luminance upscale factor */
|
||
#ifdef MRV_MRSZ_SCALE_VY
|
||
#endif /* MRV_MRSZ_SCALE_VY */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: mrsz_scale_vc: vertical chrominance scale factor register (0x00000014)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: scale_vc:*/
|
||
/* This register is set to the vertical chrominance downscale factor or to the */
|
||
/* reciprocal of the vertical chrominance upscale factor */
|
||
#ifdef MRV_MRSZ_SCALE_VC
|
||
#endif /* MRV_MRSZ_SCALE_VC */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: mrsz_phase_hy: horizontal luminance phase register (0x00000018)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: phase_hy:*/
|
||
/* This register is set to the horizontal luminance phase offset */
|
||
#ifdef MRV_MRSZ_PHASE_HY
|
||
#endif /* MRV_MRSZ_PHASE_HY */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: mrsz_phase_hc: horizontal chrominance phase register (0x0000001c)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: phase_hc:*/
|
||
/* This register is set to the horizontal chrominance phase offset */
|
||
#ifdef MRV_MRSZ_PHASE_HC
|
||
#endif /* MRV_MRSZ_PHASE_HC */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: mrsz_phase_vy: vertical luminance phase register (0x00000020)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: phase_vy:*/
|
||
/* This register is set to the vertical luminance phase offset */
|
||
#ifdef MRV_MRSZ_PHASE_VY
|
||
#endif /* MRV_MRSZ_PHASE_VY */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: mrsz_phase_vc: vertical chrominance phase register (0x00000024)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: phase_vc:*/
|
||
/* This register is set to the vertical chrominance phase offset */
|
||
#ifdef MRV_MRSZ_PHASE_VC
|
||
#endif /* MRV_MRSZ_PHASE_VC */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: mrsz_scale_lut_addr: Address pointer of up-scaling look up table
|
||
* (0x00000028)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: scale_lut_addr:*/
|
||
/* Pointer to entry of lookup table */
|
||
#ifdef MRV_MRSZ_SCALE_LUT_ADDR
|
||
#endif /* MRV_MRSZ_SCALE_LUT_ADDR */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: mrsz_scale_lut: Entry of up-scaling look up table (0x0000002c)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: scale_lut:*/
|
||
/* Entry of lookup table at position scale_lut_addr. The lookup table must be */
|
||
/* filled with appropriate values before the up-scaling functionality can be */
|
||
/* used.*/
|
||
#ifdef MRV_MRSZ_SCALE_LUT
|
||
#endif /* MRV_MRSZ_SCALE_LUT */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: mrsz_ctrl_shd: global control shadow register (0x0030)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: scale_vc_up_shd:*/
|
||
/* 1: vertical chrominance upscaling selected */
|
||
/* 0: vertical chrominance downscaling selected */
|
||
#ifdef MRV_MRSZ_SCALE_VC_UP_SHD
|
||
#define MRV_MRSZ_SCALE_VC_UP_SHD_UPSCALE 1 /* 1: vertical chrominance upscaling selected */
|
||
#define MRV_MRSZ_SCALE_VC_UP_SHD_DOWNSCALE 0 /* 0: vertical chrominance downscaling selected */
|
||
#endif /* MRV_MRSZ_SCALE_VC_UP_SHD */
|
||
/* Slice: scale_vy_up_shd:*/
|
||
/* 1: vertical luminance upscaling selected */
|
||
/* 0: vertical luminance downscaling selected */
|
||
#ifdef MRV_MRSZ_SCALE_VY_UP_SHD
|
||
#define MRV_MRSZ_SCALE_VY_UP_SHD_UPSCALE 1 /* 1: vertical luminance upscaling selected */
|
||
#define MRV_MRSZ_SCALE_VY_UP_SHD_DOWNSCALE 0 /* 0: vertical luminance downscaling selected */
|
||
#endif /* MRV_MRSZ_SCALE_VY_UP_SHD */
|
||
/* Slice: scale_hc_up_shd:*/
|
||
/* 1: horizontal chrominance upscaling selected */
|
||
/* 0: horizontal chrominance downscaling selected */
|
||
#ifdef MRV_MRSZ_SCALE_HC_UP_SHD
|
||
#define MRV_MRSZ_SCALE_HC_UP_SHD_UPSCALE 1 /* 1: horizontal chrominance upscaling selected */
|
||
#define MRV_MRSZ_SCALE_HC_UP_SHD_DOWNSCALE 0 /* 0: horizontal chrominance downscaling selected */
|
||
#endif /* MRV_MRSZ_SCALE_HC_UP_SHD */
|
||
/* Slice: scale_hy_up_shd:*/
|
||
/* 1: horizontal luminance upscaling selected */
|
||
/* 0: horizontal luminance downscaling selected */
|
||
#ifdef MRV_MRSZ_SCALE_HY_UP_SHD
|
||
#define MRV_MRSZ_SCALE_HY_UP_SHD_UPSCALE 1 /* 1: horizontal luminance upscaling selected */
|
||
#define MRV_MRSZ_SCALE_HY_UP_SHD_DOWNSCALE 0 /* 0: horizontal luminance downscaling selected */
|
||
#endif /* MRV_MRSZ_SCALE_HY_UP_SHD */
|
||
/* Slice: scale_vc_enable_shd:*/
|
||
/* 0: bypass vertical chrominance scaling unit */
|
||
/* 1: enable vertical chrominance scaling unit */
|
||
#ifdef MRV_MRSZ_SCALE_VC_ENABLE_SHD
|
||
#define MRV_MRSZ_SCALE_VC_ENABLE_SHD_PROCESS 1 /* 1: enable vertical chrominance scaling unit */
|
||
#define MRV_MRSZ_SCALE_VC_ENABLE_SHD_BYPASS 0 /* 0: bypass vertical chrominance scaling unit */
|
||
#endif /* MRV_MRSZ_SCALE_VC_ENABLE_SHD */
|
||
/* Slice: scale_vy_enable_shd:*/
|
||
/* 0: bypass vertical luminance scaling unit */
|
||
/* 1: enable vertical luminance scaling unit */
|
||
#ifdef MRV_MRSZ_SCALE_VY_ENABLE_SHD
|
||
#define MRV_MRSZ_SCALE_VY_ENABLE_SHD_PROCESS 1 /* 1: enable vertical luminance scaling unit */
|
||
#define MRV_MRSZ_SCALE_VY_ENABLE_SHD_BYPASS 0 /* 0: bypass vertical luminance scaling unit */
|
||
#endif /* MRV_MRSZ_SCALE_VY_ENABLE_SHD */
|
||
/* Slice: scale_hc_enable_shd:*/
|
||
/* 0: bypass horizontal chrominance scaling unit */
|
||
/* 1: enable horizontal chrominance scaling unit */
|
||
#ifdef MRV_MRSZ_SCALE_HC_ENABLE_SHD
|
||
#define MRV_MRSZ_SCALE_HC_ENABLE_SHD_PROCESS 1 /* 1: enable horizontal chrominance scaling unit */
|
||
#define MRV_MRSZ_SCALE_HC_ENABLE_SHD_BYPASS 0 /* 0: bypass horizontal chrominance scaling unit */
|
||
#endif /* MRV_MRSZ_SCALE_HC_ENABLE_SHD */
|
||
/* Slice: scale_hy_enable_shd:*/
|
||
/* 0: bypass horizontal luminance scaling unit */
|
||
/* 1: enable horizontal luminance scaling unit */
|
||
#ifdef MRV_MRSZ_SCALE_HY_ENABLE_SHD
|
||
#define MRV_MRSZ_SCALE_HY_ENABLE_SHD_PROCESS 1 /* 1: enable horizontal luminance scaling unit */
|
||
#define MRV_MRSZ_SCALE_HY_ENABLE_SHD_BYPASS 0 /* 0: bypass horizontal luminance scaling unit */
|
||
#endif /* MRV_MRSZ_SCALE_HY_ENABLE_SHD */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: mrsz_scale_hy_shd: horizontal luminance scale factor shadow
|
||
* register (0x00000034)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: scale_hy_shd:*/
|
||
/* This register is set to the horizontal luminance downscale factor or to the */
|
||
/* reciprocal of the horizontal luminance upscale factor */
|
||
#ifdef MRV_MRSZ_SCALE_HY_SHD
|
||
#endif /* MRV_MRSZ_SCALE_HY_SHD */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: mrsz_scale_hcb_shd: horizontal Cb scale factor shadow register
|
||
* (0x00000038)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: scale_hcb_shd:*/
|
||
/* This register is set to the horizontal Cb downscale factor or to the */
|
||
/* reciprocal of the horizontal Cb upscale factor */
|
||
#ifdef MRV_MRSZ_SCALE_HCB_SHD
|
||
#endif /* MRV_MRSZ_SCALE_HCB_SHD */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: mrsz_scale_hcr_shd: horizontal Cr scale factor shadow register
|
||
* (0x0000003c)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: scale_hcr_shd:*/
|
||
/* This register is set to the horizontal Cr downscale factor or to the */
|
||
/* reciprocal of the horizontal Cr upscale factor */
|
||
#ifdef MRV_MRSZ_SCALE_HCR_SHD
|
||
#endif /* MRV_MRSZ_SCALE_HCR_SHD */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: mrsz_scale_vy_shd: vertical luminance scale factor shadow register
|
||
* (0x00000040)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: scale_vy_shd:*/
|
||
/* This register is set to the vertical luminance downscale factor or to the */
|
||
/* reciprocal of the vertical luminance upscale factor */
|
||
#ifdef MRV_MRSZ_SCALE_VY_SHD
|
||
#endif /* MRV_MRSZ_SCALE_VY_SHD */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: mrsz_scale_vc_shd: vertical chrominance scale factor shadow
|
||
* register (0x00000044)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: scale_vc_shd:*/
|
||
/* This register is set to the vertical chrominance downscale factor or to */
|
||
/* the reciprocal of the vertical chrominance upscale factor */
|
||
#ifdef MRV_MRSZ_SCALE_VC_SHD
|
||
#endif /* MRV_MRSZ_SCALE_VC_SHD */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: mrsz_phase_hy_shd: horizontal luminance phase shadow register
|
||
* (0x00000048)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: phase_hy_shd:*/
|
||
/* This register is set to the horizontal luminance phase offset */
|
||
#ifdef MRV_MRSZ_PHASE_HY_SHD
|
||
#endif /* MRV_MRSZ_PHASE_HY_SHD */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: mrsz_phase_hc_shd: horizontal chrominance phase shadow register
|
||
* (0x0000004c)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: phase_hc_shd:*/
|
||
/* This register is set to the horizontal chrominance phase offset */
|
||
#ifdef MRV_MRSZ_PHASE_HC_SHD
|
||
#endif /* MRV_MRSZ_PHASE_HC_SHD */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: mrsz_phase_vy_shd: vertical luminance phase shadow register
|
||
* (0x00000050)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: phase_vy_shd:*/
|
||
/* This register is set to the vertical luminance phase offset */
|
||
#ifdef MRV_MRSZ_PHASE_VY_SHD
|
||
#endif /* MRV_MRSZ_PHASE_VY_SHD */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: mrsz_phase_vc_shd: vertical chrominance phase shadow register
|
||
* (0x00000054)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: phase_vc_shd:*/
|
||
/* This register is set to the vertical chrominance phase offset */
|
||
#ifdef MRV_MRSZ_PHASE_VC_SHD
|
||
#endif /* MRV_MRSZ_PHASE_VC_SHD */
|
||
/*****************************************************************************/
|
||
/* Self Resizer/Scaler Registers */
|
||
/*****************************************************************************/
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: srsz_ctrl: global control register (0x00000000)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: cfg_upd:*/
|
||
/* write 0: nothing happens */
|
||
/* write 1: update shadow registers */
|
||
/* read: always 0 */
|
||
#ifdef MRV_SRSZ_CFG_UPD
|
||
#endif /* MRV_SRSZ_CFG_UPD */
|
||
/* Slice: scale_vc_up:*/
|
||
/* 1: vertical chrominance upscaling selected */
|
||
/* 0: vertical chrominance downscaling selected */
|
||
#ifdef MRV_SRSZ_SCALE_VC_UP
|
||
#define MRV_SRSZ_SCALE_VC_UP_UPSCALE 1 /* 1: vertical chrominance upscaling selected */
|
||
#define MRV_SRSZ_SCALE_VC_UP_DOWNSCALE 0 /* 0: vertical chrominance downscaling selected */
|
||
#endif /* MRV_SRSZ_SCALE_VC_UP */
|
||
/* Slice: scale_vy_up:*/
|
||
/* 1: vertical luminance upscaling selected */
|
||
/* 0: vertical luminance downscaling selected */
|
||
#ifdef MRV_SRSZ_SCALE_VY_UP
|
||
#define MRV_SRSZ_SCALE_VY_UP_UPSCALE 1 /* 1: vertical luminance upscaling selected */
|
||
#define MRV_SRSZ_SCALE_VY_UP_DOWNSCALE 0 /* 0: vertical luminance downscaling selected */
|
||
#endif /* MRV_SRSZ_SCALE_VY_UP */
|
||
/* Slice: scale_hc_up:*/
|
||
/* 1: horizontal chrominance upscaling selected */
|
||
/* 0: horizontal chrominance downscaling selected */
|
||
#ifdef MRV_SRSZ_SCALE_HC_UP
|
||
#define MRV_SRSZ_SCALE_HC_UP_UPSCALE 1 /* 1: horizontal chrominance upscaling selected */
|
||
#define MRV_SRSZ_SCALE_HC_UP_DOWNSCALE 0 /* 0: horizontal chrominance downscaling selected */
|
||
#endif /* MRV_SRSZ_SCALE_HC_UP */
|
||
/* Slice: scale_hy_up:*/
|
||
/* 1: horizontal luminance upscaling selected */
|
||
/* 0: horizontal luminance downscaling selected */
|
||
#ifdef MRV_SRSZ_SCALE_HY_UP
|
||
#define MRV_SRSZ_SCALE_HY_UP_UPSCALE 1 /* 1: horizontal luminance upscaling selected */
|
||
#define MRV_SRSZ_SCALE_HY_UP_DOWNSCALE 0 /* 0: horizontal luminance downscaling selected */
|
||
#endif /* MRV_SRSZ_SCALE_HY_UP */
|
||
/* Slice: scale_vc_enable:*/
|
||
/* 0: bypass vertical chrominance scaling unit */
|
||
/* 1: enable vertical chrominance scaling unit */
|
||
#ifdef MRV_SRSZ_SCALE_VC_ENABLE
|
||
#define MRV_SRSZ_SCALE_VC_ENABLE_PROCESS 1 /* 1: enable vertical chrominance scaling unit */
|
||
#define MRV_SRSZ_SCALE_VC_ENABLE_BYPASS 0 /* 0: bypass vertical chrominance scaling unit */
|
||
#endif /* MRV_SRSZ_SCALE_VC_ENABLE */
|
||
/* Slice: scale_vy_enable:*/
|
||
/* 0: bypass vertical luminance scaling unit */
|
||
/* 1: enable vertical luminance scaling unit */
|
||
#ifdef MRV_SRSZ_SCALE_VY_ENABLE
|
||
#define MRV_SRSZ_SCALE_VY_ENABLE_PROCESS 1 /* 1: enable vertical luminance scaling unit */
|
||
#define MRV_SRSZ_SCALE_VY_ENABLE_BYPASS 0 /* 0: bypass vertical luminance scaling unit */
|
||
#endif /* MRV_SRSZ_SCALE_VY_ENABLE */
|
||
/* Slice: scale_hc_enable:*/
|
||
/* 0: bypass horizontal chrominance scaling unit */
|
||
/* 1: enable horizontal chrominance scaling unit */
|
||
#ifdef MRV_SRSZ_SCALE_HC_ENABLE
|
||
#define MRV_SRSZ_SCALE_HC_ENABLE_PROCESS 1 /* 1: enable horizontal chrominance scaling unit */
|
||
#define MRV_SRSZ_SCALE_HC_ENABLE_BYPASS 0 /* 0: bypass horizontal chrominance scaling unit */
|
||
#endif /* MRV_SRSZ_SCALE_HC_ENABLE */
|
||
/* Slice: scale_hy_enable:*/
|
||
/* 0: bypass horizontal luminance scaling unit */
|
||
/* 1: enable horizontal luminance scaling unit */
|
||
#ifdef MRV_SRSZ_SCALE_HY_ENABLE
|
||
#define MRV_SRSZ_SCALE_HY_ENABLE_PROCESS 1 /* 1: enable horizontal luminance scaling unit */
|
||
#define MRV_SRSZ_SCALE_HY_ENABLE_BYPASS 0 /* 0: bypass horizontal luminance scaling unit */
|
||
#endif /* MRV_SRSZ_SCALE_HY_ENABLE */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: srsz_scale_hy: horizontal luminance scale factor register
|
||
* (0x00000004)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: scale_hy:*/
|
||
/* This register is set to the horizontal luminance downscale factor or to */
|
||
/* the reciprocal of the horizontal luminance upscale factor */
|
||
#ifdef MRV_SRSZ_SCALE_HY
|
||
#endif /* MRV_SRSZ_SCALE_HY */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: srsz_scale_hcb: horizontal Cb scale factor register (0x00000008)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: scale_hcb:*/
|
||
/* This register is set to the horizontal Cb downscale factor or to the */
|
||
/* reciprocal of the horizontal Cb upscale factor */
|
||
#ifdef MRV_SRSZ_SCALE_HCB
|
||
#endif /* MRV_SRSZ_SCALE_HCB */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: srsz_scale_hcr: horizontal Cr scale factor register (0x0000000c)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: scale_hcr:*/
|
||
/* This register is set to the horizontal Cr downscale factor or to the */
|
||
/* reciprocal of the horizontal Cr upscale factor */
|
||
#ifdef MRV_SRSZ_SCALE_HCR
|
||
#endif /* MRV_SRSZ_SCALE_HCR */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: srsz_scale_vy: vertical luminance scale factor register (0x00000010)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: scale_vy:*/
|
||
/* This register is set to the vertical luminance downscale factor or to the */
|
||
/* reciprocal of the vertical luminance upscale factor */
|
||
#ifdef MRV_SRSZ_SCALE_VY
|
||
#endif /* MRV_SRSZ_SCALE_VY */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: srsz_scale_vc: vertical chrominance scale factor register (0x00000014)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: scale_vc:*/
|
||
/* This register is set to the vertical chrominance downscale factor or to the */
|
||
/* reciprocal of the vertical chrominance upscale factor */
|
||
#ifdef MRV_SRSZ_SCALE_VC
|
||
#endif /* MRV_SRSZ_SCALE_VC */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: srsz_phase_hy: horizontal luminance phase register (0x00000018)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: phase_hy:*/
|
||
/* This register is set to the horizontal luminance phase offset */
|
||
#ifdef MRV_SRSZ_PHASE_HY
|
||
#endif /* MRV_SRSZ_PHASE_HY */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: srsz_phase_hc: horizontal chrominance phase register (0x0000001c)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: phase_hc:*/
|
||
/* This register is set to the horizontal chrominance phase offset */
|
||
#ifdef MRV_SRSZ_PHASE_HC
|
||
#endif /* MRV_SRSZ_PHASE_HC */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: srsz_phase_vy: vertical luminance phase register (0x00000020)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: phase_vy:*/
|
||
/* This register is set to the vertical luminance phase offset */
|
||
#ifdef MRV_SRSZ_PHASE_VY
|
||
#endif /* MRV_SRSZ_PHASE_VY */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: srsz_phase_vc: vertical chrominance phase register (0x00000024)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: phase_vc:*/
|
||
/* This register is set to the vertical chrominance phase offset */
|
||
#ifdef MRV_SRSZ_PHASE_VC
|
||
#endif /* MRV_SRSZ_PHASE_VC */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: srsz_scale_lut_addr: Address pointer of up-scaling look up table
|
||
* (0x00000028)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: scale_lut_addr:*/
|
||
/* Pointer to entry of lookup table */
|
||
#ifdef MRV_SRSZ_SCALE_LUT_ADDR
|
||
#endif /* MRV_SRSZ_SCALE_LUT_ADDR */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: srsz_scale_lut: Entry of up-scaling look up table (0x0000002c)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: scale_lut:*/
|
||
/* Entry of lookup table at position scale_lut_addr. The lookup table must be */
|
||
/* filled with appropriate values before the up-scaling functionality can be */
|
||
/* used.*/
|
||
#ifdef MRV_SRSZ_SCALE_LUT
|
||
#endif /* MRV_SRSZ_SCALE_LUT */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: srsz_ctrl_shd: global control shadow register (0x0030)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: scale_vc_up_shd:*/
|
||
/* 1: vertical chrominance upscaling selected */
|
||
/* 0: vertical chrominance downscaling selected */
|
||
#ifdef MRV_SRSZ_SCALE_VC_UP_SHD
|
||
#define MRV_SRSZ_SCALE_VC_UP_SHD_UPSCALE 1 /* 1: vertical chrominance upscaling selected */
|
||
#define MRV_SRSZ_SCALE_VC_UP_SHD_DOWNSCALE 0 /* 0: vertical chrominance downscaling selected */
|
||
#endif /* MRV_SRSZ_SCALE_VC_UP_SHD */
|
||
/* Slice: scale_vy_up_shd:*/
|
||
/* 1: vertical luminance upscaling selected */
|
||
/* 0: vertical luminance downscaling selected */
|
||
#ifdef MRV_SRSZ_SCALE_VY_UP_SHD
|
||
#define MRV_SRSZ_SCALE_VY_UP_SHD_UPSCALE 1 /* 1: vertical luminance upscaling selected */
|
||
#define MRV_SRSZ_SCALE_VY_UP_SHD_DOWNSCALE 0 /* 0: vertical luminance downscaling selected */
|
||
#endif /* MRV_SRSZ_SCALE_VY_UP_SHD */
|
||
/* Slice: scale_hc_up_shd:*/
|
||
/* 1: horizontal chrominance upscaling selected */
|
||
/* 0: horizontal chrominance downscaling selected */
|
||
#ifdef MRV_SRSZ_SCALE_HC_UP_SHD
|
||
#define MRV_SRSZ_SCALE_HC_UP_SHD_UPSCALE 1 /* 1: horizontal chrominance upscaling selected */
|
||
#define MRV_SRSZ_SCALE_HC_UP_SHD_DOWNSCALE 0 /* 0: horizontal chrominance downscaling selected */
|
||
#endif /* MRV_SRSZ_SCALE_HC_UP_SHD */
|
||
/* Slice: scale_hy_up_shd:*/
|
||
/* 1: horizontal luminance upscaling selected */
|
||
/* 0: horizontal luminance downscaling selected */
|
||
#ifdef MRV_SRSZ_SCALE_HY_UP_SHD
|
||
#define MRV_SRSZ_SCALE_HY_UP_SHD_UPSCALE 1 /* 1: horizontal luminance upscaling selected */
|
||
#define MRV_SRSZ_SCALE_HY_UP_SHD_DOWNSCALE 0 /* 0: horizontal luminance downscaling selected */
|
||
#endif /* MRV_SRSZ_SCALE_HY_UP_SHD */
|
||
/* Slice: scale_vc_enable_shd:*/
|
||
/* 0: bypass vertical chrominance scaling unit */
|
||
/* 1: enable vertical chrominance scaling unit */
|
||
#ifdef MRV_SRSZ_SCALE_VC_ENABLE_SHD
|
||
#define MRV_SRSZ_SCALE_VC_ENABLE_SHD_PROCESS 1 /* 1: enable vertical chrominance scaling unit */
|
||
#define MRV_SRSZ_SCALE_VC_ENABLE_SHD_BYPASS 0 /* 0: bypass vertical chrominance scaling unit */
|
||
#endif /* MRV_SRSZ_SCALE_VC_ENABLE_SHD */
|
||
/* Slice: scale_vy_enable_shd:*/
|
||
/* 0: bypass vertical luminance scaling unit */
|
||
/* 1: enable vertical luminance scaling unit */
|
||
#ifdef MRV_SRSZ_SCALE_VY_ENABLE_SHD
|
||
#define MRV_SRSZ_SCALE_VY_ENABLE_SHD_PROCESS 1 /* 1: enable vertical luminance scaling unit */
|
||
#define MRV_SRSZ_SCALE_VY_ENABLE_SHD_BYPASS 0 /* 0: bypass vertical luminance scaling unit */
|
||
#endif /* MRV_SRSZ_SCALE_VY_ENABLE_SHD */
|
||
/* Slice: scale_hc_enable_shd:*/
|
||
/* 0: bypass horizontal chrominance scaling unit */
|
||
/* 1: enable horizontal chrominance scaling unit */
|
||
#ifdef MRV_SRSZ_SCALE_HC_ENABLE_SHD
|
||
#define MRV_SRSZ_SCALE_HC_ENABLE_SHD_PROCESS 1 /* 1: enable horizontal chrominance scaling unit */
|
||
#define MRV_SRSZ_SCALE_HC_ENABLE_SHD_BYPASS 0 /* 0: bypass horizontal chrominance scaling unit */
|
||
#endif /* MRV_SRSZ_SCALE_HC_ENABLE_SHD */
|
||
/* Slice: scale_hy_enable_shd:*/
|
||
/* 0: bypass horizontal luminance scaling unit */
|
||
/* 1: enable horizontal luminance scaling unit */
|
||
#ifdef MRV_SRSZ_SCALE_HY_ENABLE_SHD
|
||
#define MRV_SRSZ_SCALE_HY_ENABLE_SHD_PROCESS 1 /* 1: enable horizontal luminance scaling unit */
|
||
#define MRV_SRSZ_SCALE_HY_ENABLE_SHD_BYPASS 0 /* 0: bypass horizontal luminance scaling unit */
|
||
#endif /* MRV_SRSZ_SCALE_HY_ENABLE_SHD */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: srsz_scale_hy_shd: horizontal luminance scale factor shadow
|
||
* register (0x00000034)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: scale_hy_shd:*/
|
||
/* This register is set to the horizontal luminance downscale factor or to the */
|
||
/* reciprocal of the horizontal luminance upscale factor */
|
||
#ifdef MRV_SRSZ_SCALE_HY_SHD
|
||
#endif /* MRV_SRSZ_SCALE_HY_SHD */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: srsz_scale_hcb_shd: horizontal Cb scale factor shadow register
|
||
* (0x00000038)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: scale_hcb_shd:*/
|
||
/* This register is set to the horizontal Cb downscale factor or to the */
|
||
/* reciprocal of the horizontal Cb upscale factor */
|
||
#ifdef MRV_SRSZ_SCALE_HCB_SHD
|
||
#endif /* MRV_SRSZ_SCALE_HCB_SHD */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: srsz_scale_hcr_shd: horizontal Cr scale factor shadow register
|
||
* (0x0000003c)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: scale_hcr_shd:*/
|
||
/* This register is set to the horizontal Cr downscale factor or to the */
|
||
/* reciprocal of the horizontal Cr upscale factor */
|
||
#ifdef MRV_SRSZ_SCALE_HCR_SHD
|
||
#endif /* MRV_SRSZ_SCALE_HCR_SHD */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: srsz_scale_vy_shd: vertical luminance scale factor shadow register
|
||
* (0x00000040)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: scale_vy_shd:*/
|
||
/* This register is set to the vertical luminance downscale factor or to the */
|
||
/* reciprocal of the vertical luminance upscale factor */
|
||
#ifdef MRV_SRSZ_SCALE_VY_SHD
|
||
#endif /* MRV_SRSZ_SCALE_VY_SHD */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: srsz_scale_vc_shd: vertical chrominance scale factor shadow
|
||
* register (0x00000044)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: scale_vc_shd:*/
|
||
/* This register is set to the vertical chrominance downscale factor or to */
|
||
/* the reciprocal of the vertical chrominance upscale factor */
|
||
#ifdef MRV_SRSZ_SCALE_VC_SHD
|
||
#endif /* MRV_SRSZ_SCALE_VC_SHD */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: srsz_phase_hy_shd: horizontal luminance phase shadow register
|
||
* (0x00000048)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: phase_hy_shd:*/
|
||
/* This register is set to the horizontal luminance phase offset */
|
||
#ifdef MRV_SRSZ_PHASE_HY_SHD
|
||
#endif /* MRV_SRSZ_PHASE_HY_SHD */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: srsz_phase_hc_shd: horizontal chrominance phase shadow register
|
||
* (0x0000004c)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: phase_hc_shd:*/
|
||
/* This register is set to the horizontal chrominance phase offset */
|
||
#ifdef MRV_SRSZ_PHASE_HC_SHD
|
||
#endif /* MRV_SRSZ_PHASE_HC_SHD */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: srsz_phase_vy_shd: vertical luminance phase shadow register
|
||
* (0x00000050)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: phase_vy_shd:*/
|
||
/* This register is set to the vertical luminance phase offset */
|
||
#ifdef MRV_SRSZ_PHASE_VY_SHD
|
||
#endif /* MRV_SRSZ_PHASE_VY_SHD */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: srsz_phase_vc_shd: vertical chrominance phase shadow register
|
||
* (0x00000054)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: phase_vc_shd:*/
|
||
/* This register is set to the vertical chrominance phase offset */
|
||
#ifdef MRV_SRSZ_PHASE_VC_SHD
|
||
#endif /* MRV_SRSZ_PHASE_VC_SHD */
|
||
/*****************************************************************************/
|
||
/* Memory Interface Registers */
|
||
/*****************************************************************************/
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: mi_ctrl: Global control register (0x0000)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: sp_output_format:*/
|
||
/* Selects output format of self picture. For possible restrictions see sub-*/
|
||
/* chapter "Picture Orientation" in chapter "Self Path Output Programming".*/
|
||
/**/
|
||
/* 111: reserved */
|
||
/* 110: RGB 888 */
|
||
/* 101: RGB 666 */
|
||
/* 100: RGB 565 */
|
||
/**/
|
||
/* 011: YCbCr 4:4:4 */
|
||
/* 010: YCbCr 4:2:2 */
|
||
/* 001: YCbCr 4:2:0 */
|
||
/* 000: YCbCr 4:0:0 */
|
||
/**/
|
||
/* Note:*/
|
||
/* - Programmed value becomes effective immediately. So write to the */
|
||
/* register only if no picture data is sent to the self path.*/
|
||
/* - for RGB output format the SP input format must be YCbCr 4:2:2 */
|
||
#ifdef MRV_MI_SP_OUTPUT_FORMAT
|
||
#define MRV_MI_SP_OUTPUT_FORMAT_RGB888 6 /* 110: RGB 888 */
|
||
#define MRV_MI_SP_OUTPUT_FORMAT_RGB666 5 /* 101: RGB 666 */
|
||
#define MRV_MI_SP_OUTPUT_FORMAT_RGB565 4 /* 100: RGB 565 */
|
||
#define MRV_MI_SP_OUTPUT_FORMAT_YUV444 3 /* 011: YCbCr 4:4:4 */
|
||
#define MRV_MI_SP_OUTPUT_FORMAT_YUV422 2 /* 010: YCbCr 4:2:2 */
|
||
#define MRV_MI_SP_OUTPUT_FORMAT_YUV420 1 /* 001: YCbCr 4:2:0 */
|
||
#define MRV_MI_SP_OUTPUT_FORMAT_YUV400 0 /* 000: YCbCr 4:0:0 */
|
||
#endif /* MRV_MI_SP_OUTPUT_FORMAT */
|
||
/* Slice: sp_input_format:*/
|
||
/* Selects input format of self picture. For possible restrictions see sub-*/
|
||
/* chapter "Picture Orientation" in chapter "Self Path Output Programming".*/
|
||
/**/
|
||
/* 11: YCbCr 4:4:4 */
|
||
/* 10: YCbCr 4:2:2 */
|
||
/* 01: YCbCr 4:2:0 */
|
||
/* 00: YCbCr 4:0:0 */
|
||
/**/
|
||
/* Note:*/
|
||
/* - Programmed value becomes effective immediately. So write to the */
|
||
/* register only if no picture data is sent to the self path.*/
|
||
#ifdef MRV_MI_SP_INPUT_FORMAT
|
||
#define MRV_MI_SP_INPUT_FORMAT_YUV444 3 /* 11: YCbCr 4:4:4 */
|
||
#define MRV_MI_SP_INPUT_FORMAT_YUV422 2 /* 10: YCbCr 4:2:2 */
|
||
#define MRV_MI_SP_INPUT_FORMAT_YUV420 1 /* 01: YCbCr 4:2:0 */
|
||
#define MRV_MI_SP_INPUT_FORMAT_YUV400 0 /* 00: YCbCr 4:0:0 */
|
||
#endif /* MRV_MI_SP_INPUT_FORMAT */
|
||
/* Slice: sp_write_format:*/
|
||
/* Defines how YCbCr self picture data is written to memory. Ignored if */
|
||
/* RGB conversion is chosen. With RGB conversion active the output format */
|
||
/* is always interleaved.*/
|
||
/**/
|
||
/* 00: planar */
|
||
/* 01: semi planar, for YCbCr 4:2:x */
|
||
/* 10: interleaved (combined), for YCbCr 4:2:2 only */
|
||
/* 11: reserved */
|
||
/**/
|
||
/* Note:*/
|
||
/* - Programmed value becomes effective immediately. So write to the */
|
||
/* register only if no picture data is sent to the self path.*/
|
||
#ifdef MRV_MI_SP_WRITE_FORMAT
|
||
#define MRV_MI_SP_WRITE_FORMAT_PLANAR 0 /* 00: planar */
|
||
#define MRV_MI_SP_WRITE_FORMAT_SEMIPLANAR 1 /* 01: semi planar, for YCbCr 4:2:x */
|
||
#define MRV_MI_SP_WRITE_FORMAT_INTERLEAVED 2 /* 10: interleaved (combined), for YCbCr 4:2:2 only */
|
||
#define MRV_MI_SP_WRITE_FORMAT_RGB_INTERLEAVED 0 /* 00: hw expects a 0 in RGB mode */
|
||
#endif /* MRV_MI_SP_WRITE_FORMAT */
|
||
/* Slice: mp_write_format:*/
|
||
/* Defines how YCbCr main picture data is written to memory.*/
|
||
/* Ignored if JPEG data is chosen.*/
|
||
/* In YCbCr mode the following meaning is applicable */
|
||
/* 00: planar */
|
||
/* 01: semi planar, for YCbCr 4:2:x */
|
||
/* 10: interleaved (combined), for YCbCr 4:2:2 only */
|
||
/* 11: reserved */
|
||
/* In RAW data mode the following meaning is applicable */
|
||
/* 00: RAW 8 bit */
|
||
/* 01: reserved */
|
||
/* 10: RAW 12 bit */
|
||
/* 11: reserved */
|
||
/* Note:*/
|
||
/* - Programmed value becomes effective immediately. So write to the */
|
||
/* register only if no picture data is sent to the main path.*/
|
||
#ifdef MRV_MI_MP_WRITE_FORMAT
|
||
#define MRV_MI_MP_WRITE_FORMAT_PLANAR 0 /* 00: planar */
|
||
#define MRV_MI_MP_WRITE_FORMAT_SEMIPLANAR 1 /* 01: semi planar, for YCbCr 4:2:x */
|
||
#define MRV_MI_MP_WRITE_FORMAT_INTERLEAVED 2 /* 10: interleaved (combined), for YCbCr 4:2:2 only */
|
||
#define MRV_MI_MP_WRITE_FORMAT_RAW_8 0 /* 0x: RAW 8 bit */
|
||
#define MRV_MI_MP_WRITE_FORMAT_RAW_12 2 /* 1x: RAW 12 bit */
|
||
#endif /* MRV_MI_MP_WRITE_FORMAT */
|
||
/* Slice: bp_write_format:*/
|
||
/* In RAW data mode the following meaning is applicable */
|
||
/* 00: RAW 8 bit */
|
||
/* 01: RAW 10 bit */
|
||
/* 10: RAW 12 bit */
|
||
/* 11: reserved */
|
||
/* Note:*/
|
||
/* - Programmed value becomes effective immediately. So write to the */
|
||
/* register only if no picture data is sent to the main path.*/
|
||
#ifdef MRV_MI_BP_WRITE_RAWBIT
|
||
#define MRV_MI_BP_WRITE_RAWBIT_RAW_8 0 /* 0x: RAW 8 bit */
|
||
#define MRV_MI_BP_WRITE_RAWBIT_RAW_10 1 /* 01x: RAW 10 bit */
|
||
#define MRV_MI_BP_WRITE_RAWBIT_RAW_12 2 /* 10x: RAW 12 bit */
|
||
#endif /* MRV_MI_BP_WRITE_RAWBIT */
|
||
/* Slice: init_offset_en:*/
|
||
/* Enables updating of the offset counters shadow registers for */
|
||
/* main and self picture to the programmed register init values.*/
|
||
/**/
|
||
/* MI_MP/SP_Y/CB/CR_OFFS_CNT_INIT */
|
||
/* -> MI_MP/SP_Y/CB/CR_OFFS_CNT_SHD */
|
||
/**/
|
||
/* The update will be executed either when a forced software */
|
||
/* update occurs (in register MI_INIT bit cfg_upd = 1) or when */
|
||
/* an automatic config update signal arrives at the MI input port.*/
|
||
/* The latter is split into main and self picture. So only the */
|
||
/* corresponding main/self shadow registers are affected.*/
|
||
/* After a picture skip has been performed init_offset_en selects */
|
||
/* between skip restart and skip init mode (see bit skip in */
|
||
/* register MI_INIT).*/
|
||
#ifdef MRV_MI_INIT_OFFSET_EN
|
||
#endif /* MRV_MI_INIT_OFFSET_EN */
|
||
/* Slice: init_base_en:*/
|
||
/* Enables updating of the base address and buffer size shadow */
|
||
/* registers for main and self picture to the programmed register */
|
||
/* init values.*/
|
||
/**/
|
||
/* MI_MP/SP_Y/CB/CR_BASE_AD_INIT */
|
||
/* -> MI_MP/SP_Y/CB/CR_BASE_AD_SHD */
|
||
/**/
|
||
/* MI_MP/SP_Y/CB/CR_SIZE_INIT */
|
||
/* -> MI_MP/SP_Y/CB/CR_SIZE_SHD */
|
||
/**/
|
||
/* The update will be executed either when a forced software */
|
||
/* update occurs (in register MI_INIT bit cfg_upd = 1) or when */
|
||
/* an automatic config update signal arrives at the MI input port.*/
|
||
/* The latter is split into main and self picture. So only the */
|
||
/* corresponding main/self shadow registers are affected.*/
|
||
#ifdef MRV_MI_INIT_BASE_EN
|
||
#endif /* MRV_MI_INIT_BASE_EN */
|
||
/* Slice: burst_len_chrom:*/
|
||
/* Burst length for Cb or Cr data affecting write port.*/
|
||
/* 00: 4-beat bursts */
|
||
/* 01: 8-beat bursts */
|
||
/* 10: 16-beat bursts */
|
||
/* 11: reserved */
|
||
/* Ignored if 8- or 16-beat bursts are not supported. If rotation */
|
||
/* is active, then only 4-beat bursts will be generated in self path,*/
|
||
/* regardless of the setting here.*/
|
||
/**/
|
||
/* Note:*/
|
||
/* - Programmed value becomes effective immediately. So write to the */
|
||
/* register only if no picture data is sent to the main and self path.*/
|
||
#ifdef MRV_MI_BURST_LEN_CHROM
|
||
#define MRV_MI_BURST_LEN_CHROM_4 0 /* 0: 4-beat bursts */
|
||
#define MRV_MI_BURST_LEN_CHROM_8 1 /* 1: 8-beat bursts */
|
||
#define MRV_MI_BURST_LEN_CHROM_16 2 /* 2: 16-beat bursts */
|
||
#endif /* MRV_MI_BURST_LEN_CHROM */
|
||
/* Slice: burst_len_lum:*/
|
||
/* Burst length for Y, JPEG, or raw data affecting write port.*/
|
||
/* 00: 4-beat bursts */
|
||
/* 01: 8-beat bursts */
|
||
/* 10: 16-beat bursts */
|
||
/* 11: reserved */
|
||
/* Ignored if 8- or 16-beat bursts are not supported.*/
|
||
/**/
|
||
/* Note: Programmed value becomes effective immediately. So write to */
|
||
/* the register only if no picture data is sent to the main and self path.*/
|
||
#ifdef MRV_MI_BURST_LEN_LUM
|
||
#define MRV_MI_BURST_LEN_LUM_4 0 /* 0: 4-beat bursts */
|
||
#define MRV_MI_BURST_LEN_LUM_8 1 /* 1: 8-beat bursts */
|
||
#define MRV_MI_BURST_LEN_LUM_16 2 /* 2: 16-beat bursts */
|
||
#endif /* MRV_MI_BURST_LEN_LUM */
|
||
/* Slice: last_pixel_sig_en:*/
|
||
/* enables the last pixel signalization */
|
||
/* 1: enabled */
|
||
/* 0: disabled */
|
||
#ifdef MRV_MI_LAST_PIXEL_SIG_EN
|
||
#define MRV_MI_LAST_PIXEL_SIG_EN_ENABLE 1 /* 1: enable last pixel signalization */
|
||
#define MRV_MI_LAST_PIXEL_SIG_EN_DISABLE 0 /* 0: disable last pixel signalization */
|
||
#endif /* MRV_MI_LAST_PIXEL_SIG_EN */
|
||
/* Slice: 422noncosited:*/
|
||
/* Enables self path YCbCr422non-co-sited -> YCbCr444 interpolation */
|
||
/* 1: YCbCr422 data are non_co-sited (Cb and Cr samples */
|
||
/* are centered between Y samples) so modified interpolation */
|
||
/* is activated */
|
||
/* 0: YCbCr422 data are co-sited (Y0 Cb0 and Cr0 are */
|
||
/* sampled at the same position)*/
|
||
/**/
|
||
/* Note:*/
|
||
/* - Programmed value becomes effective immediately. So write to the */
|
||
/* register only if no picture data is sent to the self path.*/
|
||
#ifdef MRV_MI_422NONCOSITED
|
||
#endif /* MRV_MI_422NONCOSITED */
|
||
/* Slice: cbcr_full_range:*/
|
||
/* Enables CbCr full range for self path YCbCr -> RGB conversion */
|
||
/* 1: CbCr have full range (0..255)*/
|
||
/* 0: CbCr have compressed range range (16..240)*/
|
||
/**/
|
||
/* Note:*/
|
||
/* - Programmed value becomes effective immediately. So write to the */
|
||
/* register only if no picture data is sent to the self path.*/
|
||
#ifdef MRV_MI_CBCR_FULL_RANGE
|
||
#endif /* MRV_MI_CBCR_FULL_RANGE */
|
||
/* Slice: y_full_range:*/
|
||
/* Enables Y full range for self path YCbCr -> RGB conversion */
|
||
/* 1: Y has full range (0..255)*/
|
||
/* 0: Y has compressed range (16..235)*/
|
||
/**/
|
||
/* Note:*/
|
||
/* - Programmed value becomes effective immediately. So write to the */
|
||
/* register only if no picture data is sent to the self path.*/
|
||
#ifdef MRV_MI_Y_FULL_RANGE
|
||
#endif /* MRV_MI_Y_FULL_RANGE */
|
||
/* Slice: byte_swap:*/
|
||
/* Enables change of byte order of the 32 bit output word at write port */
|
||
/* 1: byte order is mirrored but the bit order within one byte doesn't */
|
||
/* change */
|
||
/* 0: no byte mirroring */
|
||
/**/
|
||
/* Note: Programmed value becomes effective immediately. So write to the */
|
||
/* register only if no picture data is sent to the main and self path.*/
|
||
#ifdef MRV_MI_BYTE_SWAP
|
||
#endif /* MRV_MI_BYTE_SWAP */
|
||
/* Slice: rot:*/
|
||
/* Rotation 90 degree counter clockwise of self picture, only in RGB */
|
||
/* mode. For picture orientation and operation modes see sub-chapter */
|
||
/* "Picture Orientation" in chapter "Self Path Output Programming".*/
|
||
/**/
|
||
/* For RGB 565 format the line length must be a multiple of 2. There */
|
||
/* are no restrictions for RGB 888/666.*/
|
||
/* 1: enabled */
|
||
/* 0: disabled */
|
||
/**/
|
||
/* Note:*/
|
||
/* - Programmed value becomes effective immediately. So write to the */
|
||
/* register only if no picture data is sent to the self path. In */
|
||
/* rotation mode only 4-beat bursts are supported for self-path.*/
|
||
#ifdef MRV_MI_ROT
|
||
#endif /* MRV_MI_ROT */
|
||
/* Slice: v_flip:*/
|
||
/* Vertical flipping of self picture. For picture orientation and */
|
||
/* operation modes see sub-chapter "Picture Orientation" in chapter */
|
||
/* "Self Path Output Programming". For Y component the line length */
|
||
/* in 4:2:x planar mode must be a multiple of 8, for all other component */
|
||
/* modes a multiple of 4 and for RGB 565 a multiple of 2. There are */
|
||
/* no restrictions for RGB 888/666.*/
|
||
/**/
|
||
/* 1: enabled */
|
||
/* 0: disabled */
|
||
/**/
|
||
/* Note:*/
|
||
/* - Programmed value becomes effective immediately. So write to the */
|
||
/* register only if no picture data is sent to the self path.*/
|
||
#ifdef MRV_MI_V_FLIP
|
||
#endif /* MRV_MI_V_FLIP */
|
||
/* Slice: h_flip:*/
|
||
/* Horizontal flipping of self picture. For picture orientation and */
|
||
/* operation modes see sub-chapter "Picture Orientation" in chapter */
|
||
/* "Self Path Output Programming".*/
|
||
/**/
|
||
/* For Y component the line length in 4:2:x planar mode must be a */
|
||
/* multiple of 8, for all other component modes a multiple of 4 and */
|
||
/* for RGB 565 a multiple of 2. There are no restrictions for RGB 888/666.*/
|
||
/**/
|
||
/* 1: enabled */
|
||
/* 0: disabled */
|
||
/**/
|
||
/* Note:*/
|
||
/* - Programmed value becomes effective immediately. So write to the */
|
||
/* register only if no picture data is sent to the self path.*/
|
||
#ifdef MRV_MI_H_FLIP
|
||
#endif /* MRV_MI_H_FLIP */
|
||
/* Programmed value becomes effective (visible in shadow register)*/
|
||
/* after a soft reset, a forced software update or an automatic */
|
||
/* config update. Affects MI_IN and MI_OUT module.*/
|
||
/* Slice: raw_enable:*/
|
||
/* Enables raw data */
|
||
/* Programmed value becomes effective (visible in control shadow register) after a soft reset or a forced software update.*/
|
||
/* Affects MI_IN and MI_OUT module.*/
|
||
#ifndef MRV_MI_RAW_ENABLE
|
||
#define MRV_MI_RAW_ENABLE
|
||
#define MRV_MI_RAW_ENABLE_MASK 0x00000008
|
||
#define MRV_MI_RAW_ENABLE_SHIFT 3
|
||
#endif /* MRV_MI_RAW_ENABLE */
|
||
/* Slice: dpcc_enable:*/
|
||
/* Enables DPCC data */
|
||
/* Programmed value becomes effective (visible in control shadow register) after a soft reset or a forced software.*/
|
||
/* Affects MI_IN and MI_OUT module.*/
|
||
#ifndef MRV_MI_DPCC_ENABLE
|
||
#define MRV_MI_DPCC_ENABLE
|
||
#define MRV_MI_DPCC_ENABLE_MASK 0x0000000C
|
||
#define MRV_MI_DPCC_ENABLE_SHIFT 2
|
||
#endif /* MRV_MI_JPEG_ENABLE */
|
||
/* Slice: jpeg_enable:*/
|
||
/* Enables JPEG data */
|
||
/* Programmed value becomes effective (visible in control shadow register) after a soft reset or a forced software.*/
|
||
/* Affects MI_IN and MI_OUT module.*/
|
||
#ifndef MRV_MI_JPEG_ENABLE
|
||
#define MRV_MI_JPEG_ENABLE
|
||
#define MRV_MI_JPEG_ENABLE_MASK 0x00000004
|
||
#define MRV_MI_JPEG_ENABLE_SHIFT 2
|
||
#endif /* MRV_MI_JPEG_ENABLE */
|
||
/* Slice: sp_enable:*/
|
||
/* Enables self picture data path.*/
|
||
/* Programmed value becomes effective (visible in control shadow register) after a soft reset, a forced software update or an automatic config update.*/
|
||
/* Affects MI_IN and MI_OUT module.*/
|
||
#ifndef MRV_MI_SP_ENABLE
|
||
#define MRV_MI_SP_ENABLE
|
||
#define MRV_MI_SP_ENABLE_MASK 0x00000002
|
||
#define MRV_MI_SP_ENABLE_SHIFT 1
|
||
#endif /* MRV_MI_SP_ENABLE */
|
||
/* Slice: mp_enable:*/
|
||
/* Enables main picture data path */
|
||
/* Programmed value becomes effective (visible in control shadow register) after a soft reset, a forced software update or an automatic config update.*/
|
||
/* Affects MI_IN and MI_OUT module.*/
|
||
#ifndef MRV_MI_MP_ENABLE
|
||
#define MRV_MI_MP_ENABLE
|
||
#define MRV_MI_MP_ENABLE_MASK 0x00000001
|
||
#define MRV_MI_MP_ENABLE_SHIFT 0
|
||
#endif /* MRV_MI_MP_ENABLE */
|
||
/* Slice: path_enable:*/
|
||
/* Enables data pathes of MI according to the following table:*/
|
||
/**/
|
||
/* 0000: disabled, no data is transferred */
|
||
/* 0001: YUV data output, mainpath only (mp_enable only)*/
|
||
/* 0010: self-path only, output data format depending on other settings (sp_enable only)*/
|
||
/* 0011: YUV data output in mainpath and self-path image data active */
|
||
/* 0100: JPEG data output, mainpath only (jpeg_enable only)*/
|
||
/* 0101: not allowed */
|
||
/* 0110: JPEG data output in mainpath and self-path image data active */
|
||
/* 0111: not allowed */
|
||
/* 1000: RAW data output, mainpath only (raw_enable only)*/
|
||
/* 1001: defect pixel data on self-path, image data on mainpath */
|
||
/* 1010: defect pixel data on mainpath, image data on self-path */
|
||
/* 1011: not allowed */
|
||
/* 1100: defect pixel data on self-path, JPEG data on mainpath */
|
||
/* 1101: defect pixel data on mainpath only */
|
||
/* 1110: defect pixel data on self-path only */
|
||
/* 1111: defect pixel data on self-path, RAW data on mainpath */
|
||
#ifdef MRV_MI_PATH_ENABLE
|
||
#endif /* MRV_MI_PATH_ENABLE */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: mi_init: Control register for address init and skip function
|
||
* (0x00000004)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: mi_cfg_upd:*/
|
||
/* Forced configuration update. Leads to an immediate update of the shadow registers.*/
|
||
/* Depending on the two init enable bits in the MI_CTRL register (init_offset_en and */
|
||
/* init_base_en) the offset counter, base address and buffer size shadow registers */
|
||
/* are also updated.*/
|
||
#ifdef MRV_MI_MI_CFG_UPD
|
||
#endif /* MRV_MI_MI_CFG_UPD */
|
||
/* Slice: mp_output_format:*/
|
||
/* Selects output format of main picture.*/
|
||
/* 1xxx: Reserved */
|
||
/* 0111: RAW10 */
|
||
/* 0110: JPEG */
|
||
/* 0101: RAW8 */
|
||
/* 0100: RAW12 */
|
||
/**/
|
||
/* 0011: YCbCr 4:4:4 */
|
||
/* 0010: YCbCr 4:2:2 */
|
||
/* 0001: YCbCr 4:2:0 */
|
||
/* 0000: YCbCr 4:0:0 */
|
||
/**/
|
||
#ifdef MRV_MI_MP_OUTPUT_FORMAT
|
||
#define MRV_MI_MP_OUTPUT_FORMAT_RAW10 7 /* 0111: RAW10 */
|
||
#define MRV_MI_MP_OUTPUT_FORMAT_JPEG 6 /* 0110: JPEG */
|
||
#define MRV_MI_MP_OUTPUT_FORMAT_RAW8 5 /* 0101: RAW8 */
|
||
#define MRV_MI_MP_OUTPUT_FORMAT_RAW12 4 /* 0100: RAW12 */
|
||
#define MRV_MI_MP_OUTPUT_FORMAT_YUV444 3 /* 0011: YCbCr 4:4:4 */
|
||
#define MRV_MI_MP_OUTPUT_FORMAT_YUV422 2 /* 0010: YCbCr 4:2:2 */
|
||
#define MRV_MI_MP_OUTPUT_FORMAT_YUV420 1 /* 0001: YCbCr 4:2:0 */
|
||
#define MRV_MI_MP_OUTPUT_FORMAT_YUV400 0 /* 0000: YCbCr 4:0:0 */
|
||
#endif /* MRV_MI_MP_OUTPUT_FORMAT */
|
||
/* Slice: mi_skip:*/
|
||
/* Skip of current or next starting main picture:*/
|
||
/* Aborts writing of main picture image data of the current frame to RAM (after the */
|
||
/* current burst transmission has been completed). Further main picture data up to */
|
||
/* the end of the current frame are discarded.*/
|
||
/**/
|
||
/* No further makroblock line interrupt (mblk_line), no wrap around interrupt for */
|
||
/* main picture (wrap_mp_y/cb/cr) and no fill level interrupt (fill_mp_y) are generated.*/
|
||
/**/
|
||
/* Skip does not affect the generation of the main path frame end interrupt (mp_frame_end).*/
|
||
/* Skip does not affect the processing of self picture and its corresponding interrupts */
|
||
/* namely the self path frame end interrupt (sp_frame_end).*/
|
||
/**/
|
||
/* The byte counter (register MI_BYTE_CNT) is not affected. It produces the correct */
|
||
/* number of JPEG or RAW data bytes at the end of the current (skipped) frame.*/
|
||
/**/
|
||
/* After a skip has been performed the offset counter for the main picture at the start */
|
||
/* of the following frame are set depending on the bit init_offset_en in register MI_CTRL:*/
|
||
/**/
|
||
/* - Skip restart mode (init_offset_en = 0)*/
|
||
/* The offset counters of the main picture are restarted at the old start values of */
|
||
/* the previous skipped frame.*/
|
||
/**/
|
||
/* - Skip init mode (init_offset_en = 1)*/
|
||
/* The offset counters of the main picture are initialized with the register contents */
|
||
/* of the offset counter init registers without any additional forced software update */
|
||
/* or automatic config update.*/
|
||
#ifdef MRV_MI_MI_SKIP
|
||
#endif /* MRV_MI_MI_SKIP */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: mi_mp_y_base_ad_init: Base address for main picture Y component,
|
||
* JPEG or raw data (0x00000008)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: mp_y_base_ad_init:*/
|
||
/* Base address of main picture Y component ring buffer, JPEG ring buffer or raw */
|
||
/* data ring buffer.*/
|
||
/**/
|
||
/* Programmed value becomes effective (visible in corresponding shadow register)*/
|
||
/* after a soft reset, a forced software update or an automatic config update.*/
|
||
/**/
|
||
/* Must be 64-bit aligned (bit 0, bit 1 and bit 2 are hard wired to "000")*/
|
||
#ifdef MRV_MI_MP_Y_BASE_AD_INIT
|
||
#define MRV_MI_MP_Y_BASE_AD_INIT_VALID_MASK (MRV_MI_MP_Y_BASE_AD_INIT_MASK & ~0x00000007)
|
||
#endif /* MRV_MI_MP_Y_BASE_AD_INIT */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: mi_mp_y_size_init: Size of main picture Y component, JPEG or raw
|
||
* data (0x0000000c)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: mp_y_size_init:*/
|
||
/* Size of main picture Y component ring buffer, JPEG ring buffer or raw data */
|
||
/* ring buffer.*/
|
||
/**/
|
||
/* Programmed value becomes effective (visible in corresponding shadow register)*/
|
||
/* after a soft reset, a forced software update or an automatic config update.*/
|
||
/**/
|
||
/* Must be 64-bit aligned (bit 0, bit 1 and bit 2 are hard wired to "000")*/
|
||
#ifdef MRV_MI_MP_Y_SIZE_INIT
|
||
#define MRV_MI_MP_Y_SIZE_INIT_VALID_MASK (MRV_MI_MP_Y_SIZE_INIT_MASK & ~0x00000007)
|
||
#endif /* MRV_MI_MP_Y_SIZE_INIT */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: mi_mp_y_offs_cnt_init: Offset counter init value for main picture
|
||
* Y, JPEG or raw data (0x00000010)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: mp_y_offs_cnt_init:*/
|
||
/* Offset counter init value of main picture Y component ring buffer, JPEG ring */
|
||
/* buffer or raw data ring buffer.*/
|
||
/**/
|
||
/* Programmed value becomes effective (visible in corresponding shadow register)*/
|
||
/* after a soft reset, a forced software update or an automatic config update.*/
|
||
/**/
|
||
/* Must be 64-bit aligned (bit 0, bit 1 and bit 2 are hard wired to "000")*/
|
||
#ifdef MRV_MI_MP_Y_OFFS_CNT_INIT
|
||
#define MRV_MI_MP_Y_OFFS_CNT_INIT_VALID_MASK (MRV_MI_MP_Y_OFFS_CNT_INIT_MASK & ~0x00000007)
|
||
#endif /* MRV_MI_MP_Y_OFFS_CNT_INIT */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: mi_mp_y_offs_cnt_start: Offset counter start value for main picture
|
||
* Y, JPEG or raw data (0x00000014)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: mp_y_offs_cnt_start:*/
|
||
/* Offset counter value which points to the start address of the previously */
|
||
/* processed picture (main picture Y component, JPEG or raw data). Updated at */
|
||
/* frame end.*/
|
||
/**/
|
||
/* Note: A soft reset resets the contents to the reset value.*/
|
||
/**/
|
||
/* Must be 64-bit aligned (bit 0, bit 1 and bit 2 are hard wired to "000")*/
|
||
#ifdef MRV_MI_MP_Y_OFFS_CNT_START
|
||
#define MRV_MI_MP_Y_OFFS_CNT_START_VALID_MASK (MRV_MI_MP_Y_OFFS_CNT_START_MASK & ~0x00000007)
|
||
#endif /* MRV_MI_MP_Y_OFFS_CNT_START */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: mi_mp_y_irq_offs_init: Fill level interrupt offset value for main
|
||
* picture Y, JPEG or raw data (0x00000018)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: mp_y_irq_offs_init:*/
|
||
/* Reaching this programmed value by the current offset counter for addressing */
|
||
/* main picture Y component, JPEG or raw data leads to generation of fill level */
|
||
/* interrupt fill_mp_y.*/
|
||
/**/
|
||
/* Programmed value becomes effective (visible in corresponding shadow register)*/
|
||
/* after a soft reset, a forced software update or an automatic config update.*/
|
||
/**/
|
||
/* Must be 64-bit aligned (bit 0, bit 1 and bit 2 are hard wired to "000")*/
|
||
#ifdef MRV_MI_MP_Y_IRQ_OFFS_INIT
|
||
#define MRV_MI_MP_Y_IRQ_OFFS_INIT_VALID_MASK (MRV_MI_MP_Y_IRQ_OFFS_INIT_MASK & ~0x00000007)
|
||
#endif /* MRV_MI_MP_Y_IRQ_OFFS_INIT */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: mi_mp_cb_base_ad_init: Base address for main picture Cb component
|
||
* ring buffer (0x0000001c)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: mp_cb_base_ad_init:*/
|
||
/* Base address of main picture Cb component ring buffer.*/
|
||
/**/
|
||
/* Programmed value becomes effective (visible in corresponding shadow register)*/
|
||
/* after a soft reset, a forced software update or an automatic config update.*/
|
||
/**/
|
||
/* Note: Set control bit init_base_en before updating so that a forced or */
|
||
/* automatic update can take effect.*/
|
||
/**/
|
||
/* Must be 64-bit aligned (bit 0, bit 1 and bit 2 are hard wired to "000")*/
|
||
#ifdef MRV_MI_MP_CB_BASE_AD_INIT
|
||
#define MRV_MI_MP_CB_BASE_AD_INIT_VALID_MASK (MRV_MI_MP_CB_BASE_AD_INIT_MASK & ~0x00000007)
|
||
#endif /* MRV_MI_MP_CB_BASE_AD_INIT */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: mi_mp_cb_size_init: Size of main picture Cb component ring buffer
|
||
* (0x00000020)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: mp_cb_size_init:*/
|
||
/* Size of main picture Cb component ring buffer.*/
|
||
/**/
|
||
/* Programmed value becomes effective (visible in corresponding shadow register)*/
|
||
/* after a soft reset, a forced software update or an automatic config update.*/
|
||
/**/
|
||
/* Note: Set control bit init_base_en before updating so that a forced or */
|
||
/* automatic update can take effect.*/
|
||
/**/
|
||
/* Must be 64-bit aligned (bit 0, bit 1 and bit 2 are hard wired to "000")*/
|
||
#ifdef MRV_MI_MP_CB_SIZE_INIT
|
||
#define MRV_MI_MP_CB_SIZE_INIT_VALID_MASK (MRV_MI_MP_CB_SIZE_INIT_MASK & ~0x00000007)
|
||
#endif /* MRV_MI_MP_CB_SIZE_INIT */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: mi_mp_cb_offs_cnt_init: Offset counter init value for main picture
|
||
* Cb component ring buffer (0x00000024)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: mp_cb_offs_cnt_init:*/
|
||
/* Offset counter init value of main picture Cb component ring buffer.*/
|
||
/**/
|
||
/* Programmed value becomes effective (visible in corresponding shadow register)*/
|
||
/* after a soft reset, a forced software update or an automatic config update.*/
|
||
/**/
|
||
/* Note: Set control bit init_base_en before updating so that a forced or automatic */
|
||
/* update can take effect. Check exceptional handling in skip modes.*/
|
||
/**/
|
||
/* Must be 64-bit aligned (bit 0, bit 1 and bit 2 are hard wired to "000")*/
|
||
#ifdef MRV_MI_MP_CB_OFFS_CNT_INIT
|
||
#define MRV_MI_MP_CB_OFFS_CNT_INIT_VALID_MASK (MRV_MI_MP_CB_OFFS_CNT_INIT_MASK & ~0x00000007)
|
||
#endif /* MRV_MI_MP_CB_OFFS_CNT_INIT */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: mi_mp_cb_offs_cnt_start: Offset counter start value for main
|
||
* picture Cb component ring buffer (0x00000028)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: mp_cb_offs_cnt_start:*/
|
||
/* Offset counter value which points to the start address of the previously */
|
||
/* processed picture (main picture Cb component). Updated at frame end.*/
|
||
/**/
|
||
/* Must be 64-bit aligned (bit 0, bit 1 and bit 2 are hard wired to "000")*/
|
||
#ifdef MRV_MI_MP_CB_OFFS_CNT_START
|
||
#define MRV_MI_MP_CB_OFFS_CNT_START_VALID_MASK (MRV_MI_MP_CB_OFFS_CNT_START_MASK & ~0x00000007)
|
||
#endif /* MRV_MI_MP_CB_OFFS_CNT_START */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: mi_mp_cr_base_ad_init: Base address for main picture Cr component
|
||
* ring buffer (0x0000002c)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: mp_cr_base_ad_init:*/
|
||
/* Base address of main picture Cr component ring buffer.*/
|
||
/**/
|
||
/* Programmed value becomes effective (visible in corresponding shadow register)*/
|
||
/* after a soft reset, a forced software update or an automatic config update.*/
|
||
/**/
|
||
/* Note:*/
|
||
/* - Set control bit init_base_en before updating so that a forced or automatic */
|
||
/* update can take effect.*/
|
||
/**/
|
||
/* Must be 64-bit aligned (bit 0, bit 1 and bit 2 are hard wired to "000")*/
|
||
#ifdef MRV_MI_MP_CR_BASE_AD_INIT
|
||
#define MRV_MI_MP_CR_BASE_AD_INIT_VALID_MASK (MRV_MI_MP_CR_BASE_AD_INIT_MASK & ~0x00000007)
|
||
#endif /* MRV_MI_MP_CR_BASE_AD_INIT */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: mi_mp_cr_size_init: Size of main picture Cr component ring buffer
|
||
* (0x00000030)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: mp_cr_size_init:*/
|
||
/* Size of main picture Cr component ring buffer.*/
|
||
/**/
|
||
/* Programmed value becomes effective (visible in corresponding shadow register)*/
|
||
/* after a soft reset, a forced software update or an automatic config update.*/
|
||
/**/
|
||
/* Note:*/
|
||
/* - Set control bit init_base_en before updating so that a forced or automatic */
|
||
/* update can take effect.*/
|
||
/**/
|
||
/* Must be 64-bit aligned (bit 0, bit 1 and bit 2 are hard wired to "000")*/
|
||
#ifdef MRV_MI_MP_CR_SIZE_INIT
|
||
#define MRV_MI_MP_CR_SIZE_INIT_VALID_MASK (MRV_MI_MP_CR_SIZE_INIT_MASK & ~0x00000007)
|
||
#endif /* MRV_MI_MP_CR_SIZE_INIT */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: mi_mp_cr_offs_cnt_init: Offset counter init value for main
|
||
* picture Cr component ring buffer (0x00000034)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: mp_cr_offs_cnt_init:*/
|
||
/* Offset counter init value of main picture Cr component ring buffer.*/
|
||
/**/
|
||
/* Programmed value becomes effective (visible in corresponding shadow register)*/
|
||
/* after a soft reset, a forced software update or an automatic config update.*/
|
||
/**/
|
||
/* Note:*/
|
||
/* - Set control bit init_base_en before updating so that a forced or automatic */
|
||
/* update can take effect. Check exceptional handling in skip modes.*/
|
||
/**/
|
||
/* Must be 64-bit aligned (bit 0, bit 1 and bit 2 are hard wired to "000")*/
|
||
#ifdef MRV_MI_MP_CR_OFFS_CNT_INIT
|
||
#define MRV_MI_MP_CR_OFFS_CNT_INIT_VALID_MASK (MRV_MI_MP_CR_OFFS_CNT_INIT_MASK & ~0x00000007)
|
||
#endif /* MRV_MI_MP_CR_OFFS_CNT_INIT */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: mi_mp_cr_offs_cnt_start: Offset counter start value for main
|
||
* picture Cr component ring buffer (0x00000038)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: mp_cr_offs_cnt_start:*/
|
||
/* Offset counter value which points to the start address of the previously */
|
||
/* processed picture (main picture Cr component). Updated at frame end.*/
|
||
/**/
|
||
/* Note:*/
|
||
/* - Soft reset will reset the contents to reset value.*/
|
||
/**/
|
||
/* Must be 64-bit aligned (bit 0, bit 1 and bit 2 are hard wired to "000")*/
|
||
#ifdef MRV_MI_MP_CR_OFFS_CNT_START
|
||
#define MRV_MI_MP_CR_OFFS_CNT_START_VALID_MASK (MRV_MI_MP_CR_OFFS_CNT_START_MASK & ~0x00000007)
|
||
#endif /* MRV_MI_MP_CR_OFFS_CNT_START */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: mi_sp_y_base_ad_init: Base address for self picture Y component
|
||
* ring buffer (0x0000003c)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: sp_y_base_ad_init:*/
|
||
/* Base address of self picture Y component ring buffer.*/
|
||
/**/
|
||
/* Programmed value becomes effective (visible in corresponding shadow register)*/
|
||
/* after a soft reset, a forced software update or an automatic config update.*/
|
||
/**/
|
||
/* Note:*/
|
||
/* - Set control bit init_base_en before updating so that a forced or automatic */
|
||
/* update can take effect.*/
|
||
/**/
|
||
/* Must be 64-bit aligned (bit 0, bit 1 and bit 2 are hard wired to "000")*/
|
||
#ifdef MRV_MI_SP_Y_BASE_AD_INIT
|
||
#define MRV_MI_SP_Y_BASE_AD_INIT_VALID_MASK (MRV_MI_SP_Y_BASE_AD_INIT_MASK & ~0x00000007)
|
||
#endif /* MRV_MI_SP_Y_BASE_AD_INIT */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: mi_sp_y_size_init: Size of self picture Y component ring buffer
|
||
* (0x00000040)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: sp_y_size_init:*/
|
||
/* Size of self picture Y component ring buffer.*/
|
||
/**/
|
||
/* Programmed value becomes effective (visible in corresponding shadow register)*/
|
||
/* after a soft reset, a forced software update or an automatic config update.*/
|
||
/**/
|
||
/* Note: Set control bit init_base_en before updating so that a forced or */
|
||
/* automatic update can take effect.*/
|
||
/**/
|
||
/* Must be 64-bit aligned (bit 0, bit 1 and bit 2 are hard wired to "000")*/
|
||
#ifdef MRV_MI_SP_Y_SIZE_INIT
|
||
#define MRV_MI_SP_Y_SIZE_INIT_VALID_MASK (MRV_MI_SP_Y_SIZE_INIT_MASK & ~0x00000007)
|
||
#endif /* MRV_MI_SP_Y_SIZE_INIT */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: mi_sp_y_offs_cnt_init: Offset counter init value for self
|
||
* picture Y component ring buffer (0x00000044)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: sp_y_offs_cnt_init:*/
|
||
/* Offset counter init value of self picture Y component ring buffer.*/
|
||
/**/
|
||
/* Programmed value becomes effective (visible in corresponding shadow register)*/
|
||
/* after a soft reset, a forced software update or an automatic config update.*/
|
||
/**/
|
||
/* Note: Set control bit init_base_en before updating so that a forced or */
|
||
/* automatic update can take effect.*/
|
||
/**/
|
||
/* Must be 64-bit aligned (bit 0, bit 1 and bit 2 are hard wired to "000")*/
|
||
#ifdef MRV_MI_SP_Y_OFFS_CNT_INIT
|
||
#define MRV_MI_SP_Y_OFFS_CNT_INIT_VALID_MASK (MRV_MI_SP_Y_OFFS_CNT_INIT_MASK & ~0x00000007)
|
||
#endif /* MRV_MI_SP_Y_OFFS_CNT_INIT */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: mi_sp_y_offs_cnt_start: Offset counter start value for self
|
||
* picture Y component ring buffer (0x00000048)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: sp_y_offs_cnt_start:*/
|
||
/* Offset counter value which points to the start address of the previously */
|
||
/* processed picture (self picture Y component). Updated at frame end.*/
|
||
/**/
|
||
/* Note:*/
|
||
/* - Soft reset will reset the contents to reset value.*/
|
||
/**/
|
||
/* Must be 64-bit aligned (bit 0, bit 1 and bit 2 are hard wired to "000")*/
|
||
#ifdef MRV_MI_SP_Y_OFFS_CNT_START
|
||
#define MRV_MI_SP_Y_OFFS_CNT_START_VALID_MASK (MRV_MI_SP_Y_OFFS_CNT_START_MASK & ~0x00000007)
|
||
#endif /* MRV_MI_SP_Y_OFFS_CNT_START */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: mi_sp_y_llength: Line length of self picture Y component (0x0000004c)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: sp_y_llength:*/
|
||
/* Line length of self picture Y component or RGB picture in pixel, also */
|
||
/* known as line stride.*/
|
||
/**/
|
||
/* If no line stride is used, line length must match image width.*/
|
||
/**/
|
||
/* For Y component the line length in 4:2:x planar mode must be a multiple of 8,*/
|
||
/* for all other component modes a multiple of 4 and for RGB 565 a multiple of 2.*/
|
||
/* There are no restrictions for RGB 888/666.*/
|
||
/**/
|
||
/* In planar mode the line length of the Cb and Cr component is assumed according */
|
||
/* to the YCbCr format, i.e. half for 4:2:x and the same size for 4:4:4. In semi */
|
||
/* planar 4:2:x mode the line length of the Cb and Cr component is assumed the */
|
||
/* same size.*/
|
||
/**/
|
||
/* Note:*/
|
||
/* - Line length always refers to the line length of the output image. This */
|
||
/* is particularly important when rotating.*/
|
||
/**/
|
||
/* Note:*/
|
||
/* - Programmed value becomes effective immediately. So write to the register */
|
||
/* only if no picture data is sent to the self path.*/
|
||
#ifdef MRV_MI_SP_Y_LLENGTH
|
||
#define MRV_MI_SP_Y_LLENGTH_VALID_MASK (MRV_MI_SP_Y_LLENGTH_MASK & ~0x00000000)
|
||
#endif /* MRV_MI_SP_Y_LLENGTH */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: mi_sp_cb_base_ad_init: Base address for self picture Cb component
|
||
* ring buffer (0x00000050)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: sp_cb_base_ad_init:*/
|
||
/* Base address of self picture Cb component ring buffer.*/
|
||
/**/
|
||
/* Programmed value becomes effective (visible in corresponding shadow register)*/
|
||
/* after a soft reset, a forced software update or an automatic config update.*/
|
||
/**/
|
||
/* Note: Set control bit init_base_en before updating so that a forced or */
|
||
/* automatic update can take effect.*/
|
||
/**/
|
||
/* Must be 64-bit aligned (bit 0, bit 1 and bit 2 are hard wired to "000")*/
|
||
#ifdef MRV_MI_SP_CB_BASE_AD_INIT
|
||
#define MRV_MI_SP_CB_BASE_AD_INIT_VALID_MASK (MRV_MI_SP_CB_BASE_AD_INIT_MASK & ~0x00000007)
|
||
#endif /* MRV_MI_SP_CB_BASE_AD_INIT */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: mi_sp_cb_size_init: Size of self picture Cb component ring buffer
|
||
* (0x00000054)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: sp_cb_size_init:*/
|
||
/* Size of self picture Cb component ring buffer.*/
|
||
/**/
|
||
/* Programmed value becomes effective (visible in corresponding shadow register)*/
|
||
/* after a soft reset, a forced software update or an automatic config update.*/
|
||
/**/
|
||
/* Note:*/
|
||
/* - Set control bit init_base_en before updating so that a forced or automatic */
|
||
/* update can take effect.*/
|
||
/**/
|
||
/* Must be 64-bit aligned (bit 0, bit 1 and bit 2 are hard wired to "000")*/
|
||
#ifdef MRV_MI_SP_CB_SIZE_INIT
|
||
#define MRV_MI_SP_CB_SIZE_INIT_VALID_MASK (MRV_MI_SP_CB_SIZE_INIT_MASK & ~0x00000007)
|
||
#endif /* MRV_MI_SP_CB_SIZE_INIT */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: mi_sp_cb_offs_cnt_init: Offset counter init value for self picture
|
||
* Cb component ring buffer (0x00000058)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: sp_cb_offs_cnt_init:*/
|
||
/* Offset counter init value of self picture Cb component ring buffer.*/
|
||
/**/
|
||
/* Programmed value becomes effective (visible in corresponding shadow register)*/
|
||
/* after a soft reset, a forced software update or an automatic config update.*/
|
||
/**/
|
||
/* Note:*/
|
||
/* - Set control bit init_base_en before updating so that a forced or automatic */
|
||
/* update can take effect.*/
|
||
/**/
|
||
/* Must be 64-bit aligned (bit 0, bit 1 and bit 2 are hard wired to "000")*/
|
||
#ifdef MRV_MI_SP_CB_OFFS_CNT_INIT
|
||
#define MRV_MI_SP_CB_OFFS_CNT_INIT_VALID_MASK (MRV_MI_SP_CB_OFFS_CNT_INIT_MASK & ~0x00000007)
|
||
#endif /* MRV_MI_SP_CB_OFFS_CNT_INIT */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: mi_sp_cb_offs_cnt_start: Offset counter start value for self
|
||
* picture Cb component ring buffer (0x0000005c)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: sp_cb_offs_cnt_start:*/
|
||
/**/
|
||
/* Offset counter value which points to the start address of the previously */
|
||
/* processed picture (self picture Cb component). Updated at frame end.*/
|
||
/**/
|
||
/* Note:*/
|
||
/* - Soft reset will reset the contents to reset value.*/
|
||
/**/
|
||
/* Must be 64-bit aligned (bit 0, bit 1 and bit 2 are hard wired to "000")*/
|
||
#ifdef MRV_MI_SP_CB_OFFS_CNT_START
|
||
#define MRV_MI_SP_CB_OFFS_CNT_START_VALID_MASK (MRV_MI_SP_CB_OFFS_CNT_START_MASK & ~0x00000007)
|
||
#endif /* MRV_MI_SP_CB_OFFS_CNT_START */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: mi_sp_cr_base_ad_init: Base address for self picture Cr component
|
||
* ring buffer (0x00000060)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: sp_cr_base_ad_init:*/
|
||
/* Base address of self picture Cr component ring buffer.*/
|
||
/**/
|
||
/* Programmed value becomes effective (visible in corresponding shadow register)*/
|
||
/* after a soft reset, a forced software update or an automatic config update.*/
|
||
/**/
|
||
/* Note:*/
|
||
/* - Set control bit init_base_en before updating so that a forced or automatic */
|
||
/* update can take effect.*/
|
||
/**/
|
||
/* Must be 64-bit aligned (bit 0, bit 1 and bit 2 are hard wired to "000")*/
|
||
#ifdef MRV_MI_SP_CR_BASE_AD_INIT
|
||
#define MRV_MI_SP_CR_BASE_AD_INIT_VALID_MASK (MRV_MI_SP_CR_BASE_AD_INIT_MASK & ~0x00000007)
|
||
#endif /* MRV_MI_SP_CR_BASE_AD_INIT */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: mi_sp_cr_size_init: Size of self picture Cr component ring buffer
|
||
* (0x00000064)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: sp_cr_size_init:*/
|
||
/* Size of self picture Cr component ring buffer.*/
|
||
/* Programmed value becomes effective (visible in corresponding shadow register)*/
|
||
/* after a soft reset, a forced software update or an automatic config update.*/
|
||
/**/
|
||
/* Note:*/
|
||
/* - Set control bit init_base_en before updating so that a forced or automatic */
|
||
/* update can take effect.*/
|
||
/**/
|
||
/* Must be 64-bit aligned (bit 0, bit 1 and bit 2 are hard wired to "000")*/
|
||
#ifdef MRV_MI_SP_CR_SIZE_INIT
|
||
#define MRV_MI_SP_CR_SIZE_INIT_VALID_MASK (MRV_MI_SP_CR_SIZE_INIT_MASK & ~0x00000007)
|
||
#endif /* MRV_MI_SP_CR_SIZE_INIT */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: mi_sp_cr_offs_cnt_init: Offset counter init value for self
|
||
* picture Cr component ring buffer (0x00000068)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: sp_cr_offs_cnt_init:*/
|
||
/* Offset counter init value of self picture Cr component ring buffer.*/
|
||
/**/
|
||
/* Programmed value becomes effective (visible in corresponding shadow register)*/
|
||
/* after a soft reset, a forced software update or an automatic config update.*/
|
||
/**/
|
||
/* Note:*/
|
||
/* - Set control bit init_base_en before updating so that a forced or automatic */
|
||
/* update can take effect.*/
|
||
/**/
|
||
/* Must be 64-bit aligned (bit 0, bit 1 and bit 2 are hard wired to "000")*/
|
||
#ifdef MRV_MI_SP_CR_OFFS_CNT_INIT
|
||
#define MRV_MI_SP_CR_OFFS_CNT_INIT_VALID_MASK (MRV_MI_SP_CR_OFFS_CNT_INIT_MASK & ~0x00000007)
|
||
#endif /* MRV_MI_SP_CR_OFFS_CNT_INIT */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: mi_sp_cr_offs_cnt_start: Offset counter start value for self
|
||
* picture Cr component ring buffer (0x0000006c)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: sp_cr_offs_cnt_start:*/
|
||
/* Offset counter value which points to the start address of the previously */
|
||
/* processed picture (self picture Cr component). Updated at frame end.*/
|
||
/**/
|
||
/* Must be 64-bit aligned (bit 0, bit 1 and bit 2 are hard wired to "000")*/
|
||
#ifdef MRV_MI_SP_CR_OFFS_CNT_START
|
||
#define MRV_MI_SP_CR_OFFS_CNT_START_VALID_MASK (MRV_MI_SP_CR_OFFS_CNT_START_MASK & ~0x00000007)
|
||
#endif /* MRV_MI_SP_CR_OFFS_CNT_START */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: mi_byte_cnt: Counter value of JPEG or RAW data bytes (0x00000070)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: byte_cnt:*/
|
||
/* Counter value specifies the number of JPEG or RAW data bytes of the last */
|
||
/* transmitted frame. Updated at frame end.*/
|
||
/**/
|
||
/* A soft reset will set the byte counter to zero.*/
|
||
#ifdef MRV_MI_BYTE_CNT
|
||
#endif /* MRV_MI_BYTE_CNT */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: mi_ctrl_shd: global control internal shadow register (0x00000074)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: path_enable_out:*/
|
||
/* path_enable shadow register for module MI_OUT (former raw_enable_out,*/
|
||
/* jpeg_enable_out, sp_enable_out, mp_enable_out)*/
|
||
#ifdef MRV_MI_PATH_ENABLE_OUT
|
||
#endif /* MRV_MI_PATH_ENABLE_OUT */
|
||
/* Slice: path_enable_in:*/
|
||
/* path_enable shadow register for module MI_IN (former raw_enable_in,*/
|
||
/* jpeg_enable_in, sp_enable_in, mp_enable_in)*/
|
||
#ifdef MRV_MI_PATH_ENABLE_IN
|
||
#endif /* MRV_MI_PATH_ENABLE_IN */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: mi_mp_y_base_ad_shd: Base address shadow register for main
|
||
* picture Y component, JPEG or raw data ring buffer (0x00000078)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: mp_y_base_ad:*/
|
||
/* Base address of main picture Y component ring buffer, JPEG ring buffer or */
|
||
/* raw data ring buffer.*/
|
||
/**/
|
||
/* Must be 64-bit aligned (bit 0, bit 1 and bit 2 are hard wired to "000")*/
|
||
#ifdef MRV_MI_MP_Y_BASE_AD
|
||
#define MRV_MI_MP_Y_BASE_AD_VALID_MASK (MRV_MI_MP_Y_BASE_AD_MASK & ~0x00000007)
|
||
#endif /* MRV_MI_MP_Y_BASE_AD */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: mi_mp_y_size_shd: Size shadow register of main picture Y component,
|
||
* JPEG or raw data (0x0000007c)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: mp_y_size:*/
|
||
/* Size of main picture Y component ring buffer, JPEG ring buffer or raw data */
|
||
/* ring buffer.*/
|
||
/**/
|
||
/* Must be 64-bit aligned (bit 0, bit 1 and bit 2 are hard wired to "000")*/
|
||
#ifdef MRV_MI_MP_Y_SIZE
|
||
#define MRV_MI_MP_Y_SIZE_VALID_MASK (MRV_MI_MP_Y_SIZE_MASK & ~0x00000007)
|
||
#endif /* MRV_MI_MP_Y_SIZE */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: mi_mp_y_offs_cnt_shd: Current offset counter of main picture Y
|
||
* component, JPEG or raw data ring buffer (0x00000080)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: mp_y_offs_cnt:*/
|
||
/* Current offset counter of main picture Y component, JPEG or raw data ring */
|
||
/* buffer for address generation */
|
||
/**/
|
||
/* Note:*/
|
||
/* - Soft reset will reset the contents to reset value.*/
|
||
/**/
|
||
/* Must be 64-bit aligned (bit 0, bit 1 and bit 2 are hard wired to "000")*/
|
||
#ifdef MRV_MI_MP_Y_OFFS_CNT
|
||
#define MRV_MI_MP_Y_OFFS_CNT_VALID_MASK (MRV_MI_MP_Y_OFFS_CNT_MASK & ~0x00000007)
|
||
#endif /* MRV_MI_MP_Y_OFFS_CNT */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: mi_mp_y_irq_offs_shd: Shadow register of fill level interrupt
|
||
* offset value for main picture Y component, JPEG or raw data
|
||
* (0x00000084)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: mp_y_irq_offs:*/
|
||
/* Reaching this offset value by the current offset counter for addressing */
|
||
/* main picture Y component, JPEG or raw data leads to generation of fill */
|
||
/* level interrupt fill_mp_y.*/
|
||
/**/
|
||
/* Must be 64-bit aligned (bit 0, bit 1 and bit 2 are hard wired to "000")*/
|
||
#ifdef MRV_MI_MP_Y_IRQ_OFFS
|
||
#endif /* MRV_MI_MP_Y_IRQ_OFFS */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: mi_mp_cb_base_ad_shd: Base address shadow register for main
|
||
* picture Cb component ring buffer (0x00000088)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: mp_cb_base_ad:*/
|
||
/* Base address of main picture Cb component ring buffer.*/
|
||
/**/
|
||
/* Must be 64-bit aligned (bit 0, bit 1 and bit 2 are hard wired to "000")*/
|
||
#ifdef MRV_MI_MP_CB_BASE_AD
|
||
#endif /* MRV_MI_MP_CB_BASE_AD */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: mi_mp_cb_size_shd: Size shadow register of main picture Cb
|
||
* component ring buffer (0x0000008c)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: mp_cb_size:*/
|
||
/* Size of main picture Cb component ring buffer.*/
|
||
/**/
|
||
/* Must be 64-bit aligned (bit 0, bit 1 and bit 2 are hard wired to "000")*/
|
||
#ifdef MRV_MI_MP_CB_SIZE
|
||
#endif /* MRV_MI_MP_CB_SIZE */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: mi_mp_cb_offs_cnt_shd: Current offset counter of main picture Cb
|
||
* component ring buffer (0x00000090)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: mp_cb_offs_cnt:*/
|
||
/* Current offset counter of main picture Cb component ring buffer for address */
|
||
/* generation */
|
||
/**/
|
||
/* Note:*/
|
||
/* - Soft reset will reset the contents to reset value.*/
|
||
/**/
|
||
/* Must be 64-bit aligned (bit 0, bit 1 and bit 2 are hard wired to "000")*/
|
||
#ifdef MRV_MI_MP_CB_OFFS_CNT
|
||
#endif /* MRV_MI_MP_CB_OFFS_CNT */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: mi_mp_cr_base_ad_shd: Base address shadow register for main
|
||
* picture Cr component ring buffer (0x00000094)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: mp_cr_base_ad:*/
|
||
/* Base address of main picture Cr component ring buffer.*/
|
||
/**/
|
||
/* Must be 64-bit aligned (bit 0, bit 1 and bit 2 are hard wired to "000")*/
|
||
#ifdef MRV_MI_MP_CR_BASE_AD
|
||
#endif /* MRV_MI_MP_CR_BASE_AD */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: mi_mp_cr_size_shd: Size shadow register of main picture Cr
|
||
* component ring buffer (0x00000098)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: mp_cr_size:*/
|
||
/* Size of main picture Cr component ring buffer.*/
|
||
/**/
|
||
/* Must be 64-bit aligned (bit 0, bit 1 and bit 2 are hard wired to "000")*/
|
||
#ifdef MRV_MI_MP_CR_SIZE
|
||
#endif /* MRV_MI_MP_CR_SIZE */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: mi_mp_cr_offs_cnt_shd: Current offset counter of main picture Cr
|
||
* component ring buffer (0x0000009c)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: mp_cr_offs_cnt:*/
|
||
/* Current offset counter of main picture Cr component ring buffer for */
|
||
/* address generation */
|
||
/**/
|
||
/* Note:*/
|
||
/* - Soft reset will reset the contents to reset value.*/
|
||
/**/
|
||
/* Must be 64-bit aligned (bit 0, bit 1 and bit 2 are hard wired to "000")*/
|
||
#ifdef MRV_MI_MP_CR_OFFS_CNT
|
||
#endif /* MRV_MI_MP_CR_OFFS_CNT */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: mi_sp_y_base_ad_shd: Base address shadow register for self
|
||
* picture Y component ring buffer (0x000000a0)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: sp_y_base_ad:*/
|
||
/* Base address of self picture Y component ring buffer.*/
|
||
/**/
|
||
/* Must be 64-bit aligned (bit 0, bit 1 and bit 2 are hard wired to "000")*/
|
||
#ifdef MRV_MI_SP_Y_BASE_AD
|
||
#endif /* MRV_MI_SP_Y_BASE_AD */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: mi_sp_y_size_shd: Size shadow register of self picture Y
|
||
* component ring buffer (0x000000a4)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: sp_y_size:*/
|
||
/* Size of self picture Y component ring buffer.*/
|
||
/**/
|
||
/* Must be 64-bit aligned (bit 0, bit 1 and bit 2 are hard wired to "000")*/
|
||
#ifdef MRV_MI_SP_Y_SIZE
|
||
#endif /* MRV_MI_SP_Y_SIZE */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: mi_sp_y_offs_cnt_shd: Current offset counter of self picture Y
|
||
* component ring buffer (0x000000a8)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: sp_y_offs_cnt:*/
|
||
/* Current offset counter of self picture Y component ring buffer for address generation */
|
||
/**/
|
||
/* Note:*/
|
||
/* - Soft reset will reset the contents to reset value.*/
|
||
/**/
|
||
/* Must be 64-bit aligned (bit 0, bit 1 and bit 2 are hard wired to "000")*/
|
||
#ifdef MRV_MI_SP_Y_OFFS_CNT
|
||
#endif /* MRV_MI_SP_Y_OFFS_CNT */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: mi_sp_cb_base_ad_shd: Base address shadow register for self
|
||
* picture Cb component ring buffer (0x000000b0)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: sp_cb_base_ad:*/
|
||
/* Base address of self picture Cb component ring buffer.*/
|
||
/**/
|
||
/* Must be 64-bit aligned (bit 0, bit 1 and bit 2 are hard wired to "000")*/
|
||
#ifdef MRV_MI_SP_CB_BASE_AD
|
||
#endif /* MRV_MI_SP_CB_BASE_AD */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: mi_sp_cb_size_shd: Size shadow register of self picture Cb
|
||
* component ring buffer (0x000000b4)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: sp_cb_size:*/
|
||
/* Size of self picture Cb component ring buffer.*/
|
||
/**/
|
||
/* Must be 64-bit aligned (bit 0, bit 1 and bit 2 are hard wired to "000")*/
|
||
#ifdef MRV_MI_SP_CB_SIZE
|
||
#endif /* MRV_MI_SP_CB_SIZE */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: mi_sp_cb_offs_cnt_shd: Current offset counter of self picture
|
||
* Cb component ring buffer (0x000000b8)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: sp_cb_offs_cnt:*/
|
||
/* Current offset counter of self picture Cb component ring buffer for */
|
||
/* address generation */
|
||
/**/
|
||
/* Note:*/
|
||
/* - Soft reset will reset the contents to reset value.*/
|
||
/**/
|
||
/* Must be 64-bit aligned (bit 0, bit 1 and bit 2 are hard wired to "000")*/
|
||
#ifdef MRV_MI_SP_CB_OFFS_CNT
|
||
#endif /* MRV_MI_SP_CB_OFFS_CNT */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: mi_sp_cr_base_ad_shd: Base address shadow register for self
|
||
* picture Cr component ring buffer (0x000000bc)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: sp_cr_base_ad:*/
|
||
/* Base address of self picture Cr component ring buffer.*/
|
||
/**/
|
||
/* Must be 64-bit aligned (bit 0, bit 1 and bit 2 are hard wired to "000")*/
|
||
#ifdef MRV_MI_SP_CR_BASE_AD
|
||
#endif /* MRV_MI_SP_CR_BASE_AD */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: mi_sp_cr_size_shd: Size shadow register of self picture Cr
|
||
* component ring buffer (0x000000c0)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: sp_cr_size:*/
|
||
/* Size of self picture Cr component ring buffer.*/
|
||
/**/
|
||
/* Must be 64-bit aligned (bit 0, bit 1 and bit 2 are hard wired to "000")*/
|
||
#ifdef MRV_MI_SP_CR_SIZE
|
||
#endif /* MRV_MI_SP_CR_SIZE */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: mi_sp_cr_offs_cnt_shd: Current offset counter of self picture Cr
|
||
* component ring buffer (0x000000c4)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: sp_cr_offs_cnt:*/
|
||
/* Current offset counter of self picture Cr component ring buffer for */
|
||
/* address generation */
|
||
/**/
|
||
/* Note:*/
|
||
/* - Soft reset will reset the contents to reset value.*/
|
||
/**/
|
||
/* Must be 64-bit aligned (bit 0, bit 1 and bit 2 are hard wired to "000")*/
|
||
#ifdef MRV_MI_SP_CR_OFFS_CNT
|
||
#endif /* MRV_MI_SP_CR_OFFS_CNT */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: mi_dma_y_pic_start_ad: Y component image start address (0x000000c8)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: dma_y_pic_start_ad:*/
|
||
/* Image start address of the y component */
|
||
/**/
|
||
/* Note:*/
|
||
/* - Must be multiple of 4 in interleaved mode.*/
|
||
#ifdef MRV_MI_DMA_Y_PIC_START_AD
|
||
#endif /* MRV_MI_DMA_Y_PIC_START_AD */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: mi_dma_y_pic_width: Y component image width (0x000000cc)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: dma_y_pic_width:*/
|
||
/* Image width of the Y component in pixel.*/
|
||
/**/
|
||
/* For YCbCr 4:2:x the image width must be a multiple of 2.*/
|
||
/**/
|
||
/* In planar mode the image width of the Cb and Cr component is assumed */
|
||
/* according to the YCbCr format, i.e. half for 4:2:x and the same size for 4:4:4.*/
|
||
/**/
|
||
/* In semi planar 4:2:x mode the image width of the Cb component (which includes Cr)*/
|
||
/* is assumed the same size.*/
|
||
/**/
|
||
/* In interleave mode no Cb/Cr image width is used.*/
|
||
#ifdef MRV_MI_DMA_Y_PIC_WIDTH
|
||
#endif /* MRV_MI_DMA_Y_PIC_WIDTH */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: mi_dma_y_llength: Y component original line length (0x000000d0)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: dma_y_llength:*/
|
||
/* Line length of the Y component of the original image in memory */
|
||
/**/
|
||
/* For an uncropped image, where lines follow each other without offset */
|
||
/* (no line stride), line length must match image width.*/
|
||
/**/
|
||
/* For Y component the line length in 4:2:x planar mode must be a multiple of 8,*/
|
||
/* for all other component modes a multiple of 4.*/
|
||
/**/
|
||
/* In planar mode the line length of the Cb and Cr component is assumed according */
|
||
/* to the YCbCr format, i.e. half for 4:2:x and the same size for 4:4:4.*/
|
||
/**/
|
||
/* In semi planar 4:2:x mode the line length of the Cb component (which includes Cr)*/
|
||
/* is assumed the same size.*/
|
||
/**/
|
||
/* In interleave mode no Cb/Cr line length is used.*/
|
||
#ifdef MRV_MI_DMA_Y_LLENGTH
|
||
#endif /* MRV_MI_DMA_Y_LLENGTH */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: mi_dma_y_pic_size: Y component image size (0x000000d4)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: dma_y_pic_size:*/
|
||
/* Image size of the Y component in pixel which has to be the Y line length */
|
||
/* multiplied by the Y image height (dma_y_llength * dma_y_pic_height).*/
|
||
/**/
|
||
/* In planar mode the image size of the Cb and Cr component is assumed according */
|
||
/* to the YCbCr format, i.e. a quarter for 4:2:0, half for 4:2:2 and the same */
|
||
/* for 4:4:4.*/
|
||
/**/
|
||
/* In semi planar mode the image size of the Cb component (which includes Cr)*/
|
||
/* is assumed half for 4:2:0 and the same size for 4:2:2.*/
|
||
/**/
|
||
/* In interleave mode no Cb/Cr image size is used.*/
|
||
#ifdef MRV_MI_DMA_Y_PIC_SIZE
|
||
#endif /* MRV_MI_DMA_Y_PIC_SIZE */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: mi_dma_cb_pic_start_ad: Cb component image start address (0x000000d8)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: dma_cb_pic_start_ad:*/
|
||
/* Image start address of the Cb component */
|
||
/**/
|
||
/* Note:*/
|
||
/* - Must be multiple of 2 in semi-planar mode.*/
|
||
#ifdef MRV_MI_DMA_CB_PIC_START_AD
|
||
#endif /* MRV_MI_DMA_CB_PIC_START_AD */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: mi_dma_cr_pic_start_ad: Cr component image start address (0x000000e8)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: dma_cr_pic_start_ad:*/
|
||
/* Image start address of the Cr component */
|
||
#ifdef MRV_MI_DMA_CR_PIC_START_AD
|
||
#endif /* MRV_MI_DMA_CR_PIC_START_AD */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: mi_imsc: Interrupt Mask Register (0x000000f8)
|
||
* mi_ris : Raw Interrupt Status Register (0x000000fc)
|
||
* mi_mis : Masked Interrupt Status Register (0x00000100)
|
||
* mi_icr : Interrupt Clear Register (0x00000104)
|
||
* mi_isr : Interrupt Set Register (0x00000108)
|
||
*
|
||
* ('1': interrupt active, '0': interrupt masked)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: dma_ready:*/
|
||
/* Mask bit for dma ready interrupt */
|
||
#ifndef MRV_MI_DMA_READY
|
||
#define MRV_MI_DMA_READY_MASK 0
|
||
#endif /* MRV_MI_DMA_READY */
|
||
/* Slice: wrap_sp_cr:*/
|
||
/* Mask bit for self picture Cr address wrap interrupt */
|
||
#ifndef MRV_MI_WRAP_SP_CR
|
||
#define MRV_MI_WRAP_SP_CR_MASK 0
|
||
#endif /* MRV_MI_WRAP_SP_CR */
|
||
/* Slice: wrap_sp_cb:*/
|
||
/* Mask bit for self picture Cb address wrap interrupt */
|
||
#ifndef MRV_MI_WRAP_SP_CB
|
||
#define MRV_MI_WRAP_SP_CB_MASK 0
|
||
#endif /* MRV_MI_WRAP_SP_CB */
|
||
/* Slice: wrap_sp_y:*/
|
||
/* Mask bit for self picture Y address wrap interrupt */
|
||
#ifndef MRV_MI_WRAP_SP_Y
|
||
#define MRV_MI_WRAP_SP_Y_MASK 0
|
||
#endif /* MRV_MI_WRAP_SP_Y */
|
||
/* Slice: wrap_mp_cr:*/
|
||
/* Mask bit for main picture Cr address wrap interrupt */
|
||
#ifndef MRV_MI_WRAP_MP_CR
|
||
#define MRV_MI_WRAP_MP_CR_MASK 0
|
||
#endif /* MRV_MI_WRAP_MP_CR */
|
||
/* Slice: wrap_mp_cb:*/
|
||
/* Mask bit for main picture Cb address wrap interrupt */
|
||
#ifndef MRV_MI_WRAP_MP_CB
|
||
#define MRV_MI_WRAP_MP_CB_MASK 0
|
||
#endif /* MRV_MI_WRAP_MP_CB */
|
||
/* Slice: wrap_mp_y:*/
|
||
/* Mask bit for main picture Y address wrap interrupt */
|
||
#ifndef MRV_MI_WRAP_MP_Y
|
||
#define MRV_MI_WRAP_MP_Y_MASK 0
|
||
#endif /* MRV_MI_WRAP_MP_Y */
|
||
/* Slice: fill_mp_y:*/
|
||
/* Mask bit for fill level interrupt of main picture Y,*/
|
||
/* JPEG or raw data */
|
||
#ifndef MRV_MI_FILL_MP_Y
|
||
#define MRV_MI_FILL_MP_Y_MASK 0
|
||
#endif /* MRV_MI_FILL_MP_Y */
|
||
/* Slice: mblk_line:*/
|
||
/* Mask bit for makroblock line interrupt of main picture */
|
||
/* (16 lines of Y, 8 lines of Cb and 8 lines of Cr are written */
|
||
/* into RAM)*/
|
||
#ifndef MRV_MI_MBLK_LINE
|
||
#define MRV_MI_MBLK_LINE_MASK 0
|
||
#endif /* MRV_MI_MBLK_LINE */
|
||
/* Slice: sp_frame_end:*/
|
||
/* Mask self picture end of frame interrupt */
|
||
#ifndef MRV_MI_SP_FRAME_END
|
||
#define MRV_MI_SP_FRAME_END_MASK 0
|
||
#endif /* MRV_MI_SP_FRAME_END */
|
||
/* Slice: mp_frame_end:*/
|
||
/* Mask main picture end of frame interrupt */
|
||
#ifndef MRV_MI_MP_FRAME_END
|
||
#define MRV_MI_MP_FRAME_END_MASK 0
|
||
#endif /* MRV_MI_MP_FRAME_END */
|
||
/* combination of all interrupt lines */
|
||
#define MRV_MI_ALL_IRQS
|
||
#define MRV_MI_ALL_IRQS_MASK \
|
||
(0 \
|
||
| MRV_MI_DMA_READY_MASK \
|
||
| MRV_MI_AHB_ERROR_MASK \
|
||
| MRV_MI_WRAP_SP_CR_MASK \
|
||
| MRV_MI_WRAP_SP_CB_MASK \
|
||
| MRV_MI_WRAP_SP_Y_MASK \
|
||
| MRV_MI_WRAP_MP_CR_MASK \
|
||
| MRV_MI_WRAP_MP_CB_MASK \
|
||
| MRV_MI_WRAP_MP_Y_MASK \
|
||
| MRV_MI_FILL_MP_Y_MASK \
|
||
| MRV_MI_MBLK_LINE_MASK \
|
||
| MRV_MI_SP_FRAME_END_MASK \
|
||
| MRV_MI_DMA_FRAME_END_MASK \
|
||
| MRV_MI_MP_FRAME_END_MASK \
|
||
)
|
||
#define MRV_MI_ALL_IRQS_SHIFT 0U
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: mi_status : MI Status Register (0x0000010c)
|
||
* mi_status_clr: MI Status Clear Register (0x00000110)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: sp_cr_fifo_full:*/
|
||
/* FIFO full flag of Cr FIFO in self path asserted since last clear */
|
||
#ifndef MRV_MI_SP_CR_FIFO_FULL
|
||
#define MRV_MI_SP_CR_FIFO_FULL_MASK 0U
|
||
#endif /* MRV_MI_SP_CR_FIFO_FULL */
|
||
/* Slice: sp_cb_fifo_full:*/
|
||
/* FIFO full flag of Cb FIFO in self path asserted since last clear */
|
||
#ifndef MRV_MI_SP_CB_FIFO_FULL
|
||
#define MRV_MI_SP_CB_FIFO_FULL_MASK 0U
|
||
#endif /* MRV_MI_SP_CB_FIFO_FULL */
|
||
/* Slice: sp_y_fifo_full:*/
|
||
/* FIFO full flag of Y FIFO in self path asserted since last clear */
|
||
#ifndef MRV_MI_SP_Y_FIFO_FULL
|
||
#define MRV_MI_SP_Y_FIFO_FULL_MASK 0U
|
||
#endif /* MRV_MI_SP_Y_FIFO_FULL */
|
||
/* Slice: mp_cr_fifo_full:*/
|
||
/* FIFO full flag of Cr FIFO in main path asserted since last clear */
|
||
#ifndef MRV_MI_MP_CR_FIFO_FULL
|
||
#define MRV_MI_MP_CR_FIFO_FULL_MASK 0U
|
||
#endif /* MRV_MI_MP_CR_FIFO_FULL */
|
||
/* Slice: mp_cb_fifo_full:*/
|
||
/* FIFO full flag of Cb FIFO in main path asserted since last clear */
|
||
#ifndef MRV_MI_MP_CB_FIFO_FULL
|
||
#define MRV_MI_MP_CB_FIFO_FULL_MASK 0U
|
||
#endif /* MRV_MI_MP_CB_FIFO_FULL */
|
||
/* Slice: mp_y_fifo_full:*/
|
||
/* FIFO full flag of Y FIFO in main path asserted since last clear */
|
||
#ifndef MRV_MI_MP_Y_FIFO_FULL
|
||
#define MRV_MI_MP_Y_FIFO_FULL_MASK 0U
|
||
#endif /* MRV_MI_MP_Y_FIFO_FULL */
|
||
/* combination of all MI status lines */
|
||
#define MRV_MI_ALL_STAT
|
||
#define MRV_MI_ALL_STAT_MASK \
|
||
(0 \
|
||
| MRV_MI_SP_CR_FIFO_FULL_MASK \
|
||
| MRV_MI_SP_CB_FIFO_FULL_MASK \
|
||
| MRV_MI_SP_Y_FIFO_FULL_MASK \
|
||
| MRV_MI_MP_CR_FIFO_FULL_MASK \
|
||
| MRV_MI_MP_CB_FIFO_FULL_MASK \
|
||
| MRV_MI_MP_Y_FIFO_FULL_MASK \
|
||
)
|
||
#define MRV_MI_ALL_STAT_SHIFT 0U
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: mi_sp_y_pic_width: Y component image width (0x00000114)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: sp_y_pic_width:*/
|
||
/* Image width of the self picture Y component or RGB picture in pixel.*/
|
||
/**/
|
||
/* For YCbCr 4:2:x and RGB 565 the image width must be a multiple of 2.*/
|
||
/* If no line stride is used but flipping required, the image width must be */
|
||
/* a multiple of 8 for 4:2:x planar or 4 for 4:4:4 planar/4:2:x semi planar.*/
|
||
/**/
|
||
/* There are no restrictions for RGB 888/666.*/
|
||
/**/
|
||
/* In planar mode the image width of the Cb and Cr component is assumed according */
|
||
/* to the YCbCr format, i.e. half for 4:2:x and the same size for 4:4:4.*/
|
||
/**/
|
||
/* In semi planar 4:2:x mode the image width of the Cb component (which includes Cr)*/
|
||
/* is assumed the same size.*/
|
||
/**/
|
||
/* In interleave mode no Cb/Cr image width is used.*/
|
||
/* Note:*/
|
||
/* - Image width always refers to the picture width of the output image. This is */
|
||
/* particularly important when rotating.*/
|
||
/**/
|
||
/* Note:*/
|
||
/* - Programmed value becomes effective immediately. So write to the register */
|
||
/* only if no picture data is sent to the self path.*/
|
||
#ifdef MRV_MI_SP_Y_PIC_WIDTH
|
||
#endif /* MRV_MI_SP_Y_PIC_WIDTH */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: mi_sp_y_pic_height: Y component image height (0x00000118)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: sp_y_pic_height:*/
|
||
/* Image height of the y component or RGB picture in pixel.*/
|
||
/**/
|
||
/* In planar and semi planar mode the image width of the cb and cr component */
|
||
/* is assumed according to the YCbCr format, i.e. half for 4:2:0 and the same */
|
||
/* for 4:2:2 and 4:4:4.*/
|
||
/**/
|
||
/* Note:*/
|
||
/* - Image height always refers to the picture height of the output image.*/
|
||
/* This is particularly important when rotating.*/
|
||
/**/
|
||
/* Note:*/
|
||
/* - Programmed value becomes effective immediately. So write to the register */
|
||
/* only if no picture data is sent to the self path.*/
|
||
#ifdef MRV_MI_SP_Y_PIC_HEIGHT
|
||
#endif /* MRV_MI_SP_Y_PIC_HEIGHT */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: mi_sp_y_pic_size: Y component image size (0x0000011c)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: sp_y_pic_size:*/
|
||
/* Image size of the Y component or RGB picture in pixel which has to be the */
|
||
/* Y line length multiplied by the Y image height (sp_y_llength * sp_y_pic_height).*/
|
||
/**/
|
||
/* In planar mode the image size of the Cb and Cr component is assumed according */
|
||
/* to the YCbCr format, i.e. a quarter for 4:2:0, half for 4:2:2 and the same for */
|
||
/* 4:4:4.*/
|
||
/**/
|
||
/* In semi planar mode the image size of the Cb and Cr component is assumed half */
|
||
/* for 4:2:0 and the same size for 4:2:2.*/
|
||
/**/
|
||
/* Note:*/
|
||
/* - Programmed value becomes effective immediately. So write to the register only */
|
||
/* if no picture data is sent to the self path.*/
|
||
#ifdef MRV_MI_SP_Y_PIC_SIZE
|
||
#endif /* MRV_MI_SP_Y_PIC_SIZE */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: mi_dma_ctrl: DMA control register (0x00000120)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: dma_rgb_format:*/
|
||
/* Selects RGB Bayer data of read DMA picture */
|
||
/**/
|
||
/* 00: no DMA RGB Bayer data */
|
||
/* 01: 8 bit RGB Bayer data */
|
||
/* 10: 16 bit RGB Bayer data (12 bit used)*/
|
||
/**/
|
||
/* bytes are organized MSB first and 4 lower bits of LSB remain unused:*/
|
||
/* byte_even -> bayer[11:4], byte_odd[7:4] -> bayer[3:0]*/
|
||
/**/
|
||
/* 11: reserved.*/
|
||
#ifdef MRV_MI_DMA_RGB_FORMAT
|
||
#define MRV_MI_DMA_RGB_FORMAT_NO_DATA 0
|
||
#define MRV_MI_DMA_RGB_FORMAT_8BIT_BAYER 1
|
||
#define MRV_MI_DMA_RGB_FORMAT_16BIT_BAYER 2
|
||
#endif /* MRV_MI_DMA_RGB_FORMAT */
|
||
/* Slice: dma_frame_end_disable:*/
|
||
/* Suppresses v_end so that no frame end can be detected by following */
|
||
/* instances. Note: The dma_ready interrupt is raised as usual, but the */
|
||
/* dma_frame_end interrupt will not be generated until v_end has been */
|
||
/* enabled again.*/
|
||
#ifdef MRV_MI_DMA_FRAME_END_DISABLE
|
||
#endif /* MRV_MI_DMA_FRAME_END_DISABLE */
|
||
/* Slice: dma_continuous_en:*/
|
||
/* Enables continuous mode. If set the same frame is read back over and */
|
||
/* over. A start pulse on dma_start is needed only for the first time.*/
|
||
/* To stop continuous mode reset this bit (takes effect after the next */
|
||
/* frame end) or execute a soft reset. This bit is intended to be used */
|
||
/* in conjunction with the Superimpose feature.*/
|
||
#ifdef MRV_MI_DMA_CONTINUOUS_EN
|
||
#endif /* MRV_MI_DMA_CONTINUOUS_EN */
|
||
/* Slice: dma_byte_swap:*/
|
||
/* Enables change of DMA byte order of the 32 bit input word at read port */
|
||
/* 1: byte order is mirrored but the bit order within one byte doesnt change */
|
||
/* 0: no byte mirroring */
|
||
#ifdef MRV_MI_DMA_BYTE_SWAP
|
||
#endif /* MRV_MI_DMA_BYTE_SWAP */
|
||
/* Slice: dma_inout_format:*/
|
||
/* Selects input/output format of DMA picture.*/
|
||
/* 11: YCbCr 4:4:4 */
|
||
/* 10: YCbCr 4:2:2 */
|
||
/* 01: YCbCr 4:2:0 */
|
||
/* 00: YCbCr 4:0:0 */
|
||
#ifdef MRV_MI_DMA_INOUT_FORMAT
|
||
#define MRV_MI_DMA_INOUT_FORMAT_YUV444 3 /* 11: YCbCr 4:4:4 */
|
||
#define MRV_MI_DMA_INOUT_FORMAT_YUV422 2 /* 10: YCbCr 4:2:2 */
|
||
#define MRV_MI_DMA_INOUT_FORMAT_YUV420 1 /* 01: YCbCr 4:2:0 */
|
||
#define MRV_MI_DMA_INOUT_FORMAT_YUV400 0 /* 00: YCbCr 4:0:0 */
|
||
#endif /* MRV_MI_DMA_INOUT_FORMAT */
|
||
/* Slice: dma_read_format:*/
|
||
/* Defines how YCbCr picture data is read from memory.*/
|
||
/* 00: planar */
|
||
/* 01: semi planar, for YCbCr 4:2:x */
|
||
/* 10: interleaved (combined), for YCbCr 4:2:2 and RGB only */
|
||
/* 11: reserved */
|
||
#ifdef MRV_MI_DMA_READ_FORMAT
|
||
#define MRV_MI_DMA_READ_FORMAT_PLANAR 0 /* 00: planar */
|
||
#define MRV_MI_DMA_READ_FORMAT_SEMIPLANAR 1 /* 01: semi planar, for YCbCr 4:2:x */
|
||
#define MRV_MI_DMA_READ_FORMAT_INTERLEAVED 2 /* 10: interleaved (combined), for YCbCr 4:2:2 only */
|
||
#endif /* MRV_MI_DMA_READ_FORMAT */
|
||
/* Slice: dma_burst_len_chrom:*/
|
||
/* Burst length for Cb or Cr data affecting DMA read port.*/
|
||
/* 00: 4-beat bursts */
|
||
/* 01: 8-beat bursts */
|
||
/* 10: 16-beat bursts */
|
||
/* 11: reserved */
|
||
/* Ignored if 8- or 16-beat bursts are not supported.*/
|
||
#ifdef MRV_MI_DMA_BURST_LEN_CHROM
|
||
#define MRV_MI_DMA_BURST_LEN_CHROM_4 0 /* 0: 4-beat bursts */
|
||
#define MRV_MI_DMA_BURST_LEN_CHROM_8 1 /* 1: 8-beat bursts */
|
||
#define MRV_MI_DMA_BURST_LEN_CHROM_16 2 /* 2: 16-beat bursts */
|
||
#endif /* MRV_MI_DMA_BURST_LEN_CHROM */
|
||
/* Slice: dma_burst_len_lum:*/
|
||
/* Burst length for Y data affecting DMA read port.*/
|
||
/* 00: 4-beat bursts */
|
||
/* 01: 8-beat bursts */
|
||
/* 10: 16-beat bursts */
|
||
/* 11: reserved */
|
||
/* Ignored if 8- or 16-beat bursts are not supported.*/
|
||
#ifdef MRV_MI_DMA_BURST_LEN_LUM
|
||
#define MRV_MI_DMA_BURST_LEN_LUM_4 0 /* 0: 4-beat bursts */
|
||
#define MRV_MI_DMA_BURST_LEN_LUM_8 1 /* 1: 8-beat bursts */
|
||
#define MRV_MI_DMA_BURST_LEN_LUM_16 2 /* 2: 16-beat bursts */
|
||
#endif /* MRV_MI_DMA_BURST_LEN_LUM */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: mi_dma_start: DMA start register (0x00000124)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: dma_start:*/
|
||
/* Enables DMA access. Additionally main or self path has to be enabled separately.*/
|
||
#ifdef MRV_MI_DMA_START
|
||
#endif /* MRV_MI_DMA_START */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: mi_dma_status: DMA status register (0x00000128)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: dma_active:*/
|
||
/* If set DMA access is active.*/
|
||
#ifdef MRV_MI_DMA_ACTIVE
|
||
#endif /* MRV_MI_DMA_ACTIVE */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: mi_pixel_cnt: Counter value for defect pixel list (0x0000012c)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: pix_cnt:*/
|
||
/* Counter value specifies the number of pixels of the defect pixel list */
|
||
/* generated by DPCC of the last transmitted frame. Updated at frame end.*/
|
||
/**/
|
||
/* A soft reset will set the counter to zero.*/
|
||
#ifdef MRV_MI_PIX_CNT
|
||
#endif /* MRV_MI_PIX_CNT */
|
||
#ifdef ISP_MI_HANDSHAKE_NANO
|
||
/* Nano handshake */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_handshake_ctrl_0: Nano handshake functions (0x0000014C)
|
||
*
|
||
*****************************************************************************/
|
||
/*! Slice: mp_handshake_en: */
|
||
/*! Enable mp handshake function for MI MP */
|
||
#ifdef MRV_MI_MP_HANDSHK_EN
|
||
#define MRV_MI_MP_HANDSHK_EN_DISABLE 0 /* HANDSHAKE disable */
|
||
#define MRV_MI_MP_HANDSHK_EN_ENABLE 1 /* HANDSHAKE enable, active high */
|
||
#endif
|
||
/*! Slice: mp_handshk_storage_format */
|
||
/*! Define how YCbCr picture data is stored in memory */
|
||
/*! 00: Planar */
|
||
/*! 01: Semi planar, for YCbCr4:2:x */
|
||
/*! 10: Interleaved(combiled), for YCbCr 4:2:2 only or RAW format.*/
|
||
/*! 11: not support */
|
||
#ifdef MRV_MI_MP_HANDSHK_STORAGE_FORMAT
|
||
#define MRV_MI_MP_HANDSHK_STORAGE_FORMAT_PLANAR 0 /* 00: Planar */
|
||
#define MRV_MI_MP_HANDSHK_STORAGE_FORMAT_SEMIPLANAR 1 /* 01: Semi-Planar */
|
||
#define MRV_MI_MP_HANDSHK_STORAGE_FORMAT_INTERLEAVED 2 /* 10: Interleaved */
|
||
#endif
|
||
/*! Slice: mp_handshk_data_format */
|
||
/*! Defines the video format */
|
||
/*! 00: RAW format */
|
||
/*! 01: reserved */
|
||
/*! 10: YUV 422 */
|
||
/*! 11: YUV 420 */
|
||
#ifdef MRV_MI_MP_HANDSHK_DATA_FORMAT
|
||
#define MRV_MI_MP_HANDSHK_DATA_FORMAT_RAW 0 /* 00: raw format */
|
||
#define MRV_MI_MP_HANDSHK_DATA_FORMAT_YUV422 2 /* 10: YUV422 */
|
||
#define MRV_MI_MP_HANDSHK_DATA_FORMAT_YUV420 3 /* 11: YUV420 */
|
||
#endif
|
||
/*! Slice: mp_handshk_slice_size */
|
||
/*! Defines the slice size to generate handshake signals, minus 1 is used */
|
||
#ifdef MRV_MI_MP_HANDSHK_SLICE_SIZE
|
||
#endif
|
||
/*! Slice: mp_handshk_slice_buf_size */
|
||
/*! Defines the circular buffer size in number of defined slices per buffer, minus 1 is used */
|
||
#ifdef MRV_MI_MP_HANDSHK_SLICE_BUF_SIZE
|
||
#endif
|
||
/*! Slice: mp_handshk_ack_count */
|
||
/*! Defines the acknowledage is not received in the defined cycles, it will generate handshake interrupt.*/
|
||
#ifdef MRV_MI_MP_HANDSHK_ACK_COUNT
|
||
#endif
|
||
#endif
|
||
#ifdef ISP_MI_ALIGN_NANO
|
||
/* MI output Alignment */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: mi_output_alignment: Nano MI output alignment (0x0000015C)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: mp_lsb_alignment:*/
|
||
/*! msb/lsb align for raw 10 and raw 12 formats control */
|
||
/*! 0: MSB aligned for RAW10 and RAW12 formats */
|
||
/*! 1: LSB aligned for RAW10 and RAW12 formats */
|
||
#ifdef MRV_MI_LSB_ALIGNMENT
|
||
#define MRV_MI_LSB_ALIGNMENT_MSB 0 /* MSB aligned for raw 10 and raw 12 formats */
|
||
#define MRV_MI_LSB_ALIGNMENT_LSB 1 /* LSB aligned for raw 10 and raw 12 formats */
|
||
#endif
|
||
#endif
|
||
#ifdef ISP_MI_BYTESWAP
|
||
/*! Slice mp_byte_swap:*/
|
||
/*! swap bytes for ISP Nano */
|
||
/*! bit 0 to swap bytes */
|
||
/*! bit 1 to swap words */
|
||
/*! bit 2 to swap dwords */
|
||
/*! 3'b001: ABCDEFGH => BADCFEHG */
|
||
/*! 3'b000: ABCDEFGH => ABCDEFGH */
|
||
/*! 3'b010: ABCDEFGH => CDABGHEF */
|
||
/*! 3'b011: ABCDEFGH => DCBAHGFE */
|
||
/*! 3'b100: ABCDEFGH => EFGHABCD */
|
||
/*! 3'b101: ABCDEFGH => FEHGBADC */
|
||
/*! 3'b110: ABCDEFGH => GHEFCDAB */
|
||
/*! 3'b111: ABCDEFGH => HGFEDCBA */
|
||
#ifdef MRV_MI_MP_BYTE_SWAP
|
||
#define MRV_MI_MP_BYTE_SWAP_NORMAL 0x0 /* normal mode */
|
||
#define MRV_MI_MP_BYTE_SWAP_BYTE 0x1 /* bit 0 to swap bytes */
|
||
#define MRV_MI_MP_BYTE_SWAP_WORD 0x2 /* bit 1 to swap words */
|
||
#define MRV_MI_MP_BYTE_SWAP_DWORD 0x4 /* bit 2 to swap dwords */
|
||
#endif
|
||
#endif
|
||
#ifdef ISP_MI_FIFO_DEPTH_NANO
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: mi_mp_output_fifo_size: Nano MI fifo control (0x00000160)
|
||
*
|
||
*****************************************************************************/
|
||
/*! Slice output_fifo_depth:*/
|
||
/*! Select output FIFO depth setting */
|
||
/*! 00: FULL(2KBytes)*/
|
||
/*! 01: HALF(1KBytes)*/
|
||
/*! 10: 1/4(512Bytes)*/
|
||
/*! 11: 1/8(256Bytes)*/
|
||
#ifdef MRV_MI_OUTOUT_FIFO_DEPTH
|
||
#define MRV_MI_OUTOUT_FIFO_DEPTH_FULL 0 /* FULL(2KBytes) */
|
||
#define MRV_MI_OUTOUT_FIFO_DEPTH_HALF 1 /* HALF(1KBytes) */
|
||
#define MRV_MI_OUTOUT_FIFO_DEPTH_1_4 2 /* 1/4(512Bytes) */
|
||
#define MRV_MI_OUTOUT_FIFO_DEPTH_1_8 3 /* 1/8(256Bytes) */
|
||
#endif
|
||
#endif
|
||
/*****************************************************************************/
|
||
/* JPEG Encoder Registers */
|
||
/*****************************************************************************/
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: jpe_gen_header: command to start stream header generation (0x0000)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: gen_header:*/
|
||
/* "1" = Start command to generate stream header */
|
||
/* auto reset to zero after one clock cycle */
|
||
#ifdef MRV_JPE_GEN_HEADER
|
||
#endif /* MRV_JPE_GEN_HEADER */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: jpe_encode: Start command to start JFIF stream encoding (0x0004)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: encode:*/
|
||
/* "1" = Start command to start JFIF stream encoding;*/
|
||
/* auto reset to zero after one clock cycle.*/
|
||
/* This bit is write-only: reading result is always zero!*/
|
||
#ifdef MRV_JPE_ENCODE
|
||
#endif /* MRV_JPE_ENCODE */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: jpe_init: Automatic configuration update (INIT) (0x0008)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: JP_INIT:*/
|
||
/* "1" = Immediate start of JPEG encoder.*/
|
||
/**/
|
||
/* This bit has to be set after "Encode" to start the JPEG encoder. The "Encode"*/
|
||
/* command becomes active either with JP_INIT or with the input signal "CFG_UPD".*/
|
||
/* auto reset to zero after one clock cycle !!!*/
|
||
#ifdef MRV_JPE_JP_INIT
|
||
#endif /* MRV_JPE_JP_INIT */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: jpe_y_scale_en: Y value scaling control register (0x0000000c)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: y_scale_en:*/
|
||
/* Y scale flag */
|
||
/* 1: scaling Y input from [16..235] to [0..255]*/
|
||
/* 0: no Y input scaling */
|
||
#ifdef MRV_JPE_Y_SCALE_EN
|
||
#endif /* MRV_JPE_Y_SCALE_EN */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: jpe_cbcr_scale_en: Cb/Cr value scaling control register (0x00000010)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: cbcr_scale_en:*/
|
||
/* Cb/Cr scale flag */
|
||
/* 1: scaling Cb/Cr input from [16..240] to [0..255]*/
|
||
/* 0: no Cb/Cr input scaling */
|
||
#ifdef MRV_JPE_CBCR_SCALE_EN
|
||
#endif /* MRV_JPE_CBCR_SCALE_EN */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: jpe_table_flush: header generation debug register (0x00000014)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: table_flush:*/
|
||
/* header generation debug control flag */
|
||
/* (controls transmission of last header bytes if the 64 bit output buffer */
|
||
/* is not completely filled)*/
|
||
/* 1: immediately transmit last header bytes */
|
||
/* 0: wait for encoded image data to fill output buffer */
|
||
#ifdef MRV_JPE_TABLE_FLUSH
|
||
#endif /* MRV_JPE_TABLE_FLUSH */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: jpe_enc_hsize: JPEG codec horizontal image size for encoding
|
||
* (0x00000018)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: enc_hsize:*/
|
||
/* JPEG codec horizontal image size for R2B and SGEN blocks */
|
||
#ifdef MRV_JPE_ENC_HSIZE
|
||
#endif /* MRV_JPE_ENC_HSIZE */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: jpe_enc_vsize: JPEG codec vertical image size for encoding
|
||
* (0x0000001c)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: enc_vsize:*/
|
||
/* JPEG codec vertical image size for R2B and SGEN blocks */
|
||
#ifdef MRV_JPE_ENC_VSIZE
|
||
#endif /* MRV_JPE_ENC_VSIZE */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: jpe_pic_format: JPEG picture encoding format (0x00000020)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: enc_pic_format:*/
|
||
/* "0:0:1" = 4:2:2 format */
|
||
/* "1:x:x" = 4:0:0 format */
|
||
#ifdef MRV_JPE_ENC_PIC_FORMAT
|
||
#define MRV_JPE_ENC_PIC_FORMAT_422 1 /* "0:0:1" = 4:2:2 format */
|
||
#define MRV_JPE_ENC_PIC_FORMAT_400 4 /* "1:x:x" = 4:0:0 format */
|
||
#endif /* MRV_JPE_ENC_PIC_FORMAT */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: jpe_restart_interval: restart marker insertion register (0x0024)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: restart_interval:*/
|
||
/* No of MCU in reset interval via host */
|
||
#ifdef MRV_JPE_RESTART_INTERVAL
|
||
#endif /* MRV_JPE_RESTART_INTERVAL */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: jpe_tq_y_select: Q- table selector 0, quant. table for Y
|
||
* component (0x00000028)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: tq0_select:*/
|
||
/* "00" = qtable 0 */
|
||
/* "01" = qtable 1 */
|
||
/* "10" = qtable 2 */
|
||
/* "11" = qtable 3 */
|
||
#ifdef MRV_JPE_TQ0_SELECT
|
||
#endif /* MRV_JPE_TQ0_SELECT */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: jpe_tq_u_select: Q- table selector 1, quant. table for U
|
||
* component (0x0000002c)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: tq1_select:*/
|
||
/* "00" = qtable 0 */
|
||
/* "01" = qtable 1 */
|
||
/* "10" = qtable 2 */
|
||
/* "11" = qtable 3 */
|
||
#ifdef MRV_JPE_TQ1_SELECT
|
||
#endif /* MRV_JPE_TQ1_SELECT */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: jpe_tq_v_select: Q- table selector 2, quant. table for V
|
||
* component (0x00000030)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: tq2_select:*/
|
||
/* "00" = qtable 0 */
|
||
/* "01" = qtable 1 */
|
||
/* "10" = qtable 2 */
|
||
/* "11" = qtable 3 */
|
||
#ifdef MRV_JPE_TQ2_SELECT
|
||
#endif /* MRV_JPE_TQ2_SELECT */
|
||
#define MRV_JPE_TQ_SELECT_TAB3 3 /* "11": qtable 3 */
|
||
#define MRV_JPE_TQ_SELECT_TAB2 2 /* "10": qtable 2 */
|
||
#define MRV_JPE_TQ_SELECT_TAB1 1 /* "01": qtable 1 */
|
||
#define MRV_JPE_TQ_SELECT_TAB0 0 /* "00": qtable 0 */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: jpe_dc_table_select: Huffman table selector for DC values
|
||
* (0x00000034)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: dc_table_select_v:*/
|
||
/* "0" = dc table 0; color component 2 (V)*/
|
||
/* "1" = dc table 1; color component 2 (V)*/
|
||
#ifdef MRV_JPE_DC_TABLE_SELECT_V
|
||
#endif /* MRV_JPE_DC_TABLE_SELECT_V */
|
||
/* Slice: dc_table_select_u:*/
|
||
/* "0" = dc table 0; color component 1 (U)*/
|
||
/* "1" = dc table 1; color component 1 (U)*/
|
||
#ifdef MRV_JPE_DC_TABLE_SELECT_U
|
||
#endif /* MRV_JPE_DC_TABLE_SELECT_U */
|
||
/* Slice: dc_table_select_y:*/
|
||
/* "0" = dc table 0; color component 0 (Y)*/
|
||
/* "1" = dc table 1; color component 0 (Y)*/
|
||
#ifdef MRV_JPE_DC_TABLE_SELECT_Y
|
||
#endif /* MRV_JPE_DC_TABLE_SELECT_Y */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: jpe_ac_table_select: Huffman table selector for AC values
|
||
* (0x00000038)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: ac_table_select_v:*/
|
||
/* "0" = ac table 0; component 2 (V)*/
|
||
/* "1" = ac table 1; component 2 (V)*/
|
||
#ifdef MRV_JPE_AC_TABLE_SELECT_V
|
||
#endif /* MRV_JPE_AC_TABLE_SELECT_V */
|
||
/* Slice: ac_table_select_u:*/
|
||
/* "0" = ac table 0; component 1 (U)*/
|
||
/* "1" = ac table 1; component 1 (U)*/
|
||
#ifdef MRV_JPE_AC_TABLE_SELECT_U
|
||
#endif /* MRV_JPE_AC_TABLE_SELECT_U */
|
||
/* Slice: ac_table_select_y:*/
|
||
/* "0" = ac table 0; component 0 (Y)*/
|
||
/* "1" = ac table 1; component 0 (Y)*/
|
||
#ifdef MRV_JPE_AC_TABLE_SELECT_Y
|
||
#endif /* MRV_JPE_AC_TABLE_SELECT_Y */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: jpe_table_data: table programming register (0x0000003c)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: table_wdata_h:*/
|
||
/* Table data MSB */
|
||
#ifdef MRV_JPE_TABLE_WDATA_H
|
||
#endif /* MRV_JPE_TABLE_WDATA_H */
|
||
/* Slice: table_wdata_l:*/
|
||
/* Table data LSB */
|
||
#ifdef MRV_JPE_TABLE_WDATA_L
|
||
#endif /* MRV_JPE_TABLE_WDATA_L */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: jpe_table_id: table programming select register (0x00000040)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: table_id:*/
|
||
/* select table */
|
||
/* "0000" : Q-table 0 */
|
||
/* "0001" : Q-table 1 */
|
||
/* "0010" : Q-table 2 */
|
||
/* "0011" : Q-table 3 */
|
||
/* "0100" : VLC DC-table 0 */
|
||
/* "0101" : VLC AC-table 0 */
|
||
/* "0110" : VLC DC-table 1 */
|
||
/* "0111" : VLC AC-table 1 */
|
||
/* "1xxx" : reserved for debug */
|
||
#ifdef MRV_JPE_TABLE_ID
|
||
#define MRV_JPE_TABLE_ID_QUANT0 0 /* "0000" : Q-table 0 */
|
||
#define MRV_JPE_TABLE_ID_QUANT1 1 /* "0001" : Q-table 1 */
|
||
#define MRV_JPE_TABLE_ID_QUANT2 2 /* "0010" : Q-table 2 */
|
||
#define MRV_JPE_TABLE_ID_QUANT3 3 /* "0011" : Q-table 3 */
|
||
#define MRV_JPE_TABLE_ID_VLC_DC0 4 /* "0100" : VLC DC-table 0 */
|
||
#define MRV_JPE_TABLE_ID_VLC_AC0 5 /* "0101" : VLC AC-table 0 */
|
||
#define MRV_JPE_TABLE_ID_VLC_DC1 6 /* "0110" : VLC DC-table 1 */
|
||
#define MRV_JPE_TABLE_ID_VLC_AC1 7 /* "0111" : VLC AC-table 1 */
|
||
#endif /* MRV_JPE_TABLE_ID */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: jpe_tac0_len: Huffman AC table 0 length (0x0044)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: tac0_len:*/
|
||
/* Huffman table length for ac0 table */
|
||
#ifdef MRV_JPE_TAC0_LEN
|
||
#endif /* MRV_JPE_TAC0_LEN */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: jpe_tdc0_len: Huffman DC table 0 length (0x00000048)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: tdc0_len:*/
|
||
/* Huffman table length for dc0 table */
|
||
#ifdef MRV_JPE_TDC0_LEN
|
||
#endif /* MRV_JPE_TDC0_LEN */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: jpe_tac1_len: Huffman AC table 1 length (0x0000004c)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: tac1_len:*/
|
||
/* Huffman table length for ac1 table */
|
||
#ifdef MRV_JPE_TAC1_LEN
|
||
#endif /* MRV_JPE_TAC1_LEN */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: jpe_tdc1_len: Huffman DC table 1 length (0x00000050)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: tdc1_len:*/
|
||
/* Huffman table length for dc1 table */
|
||
#ifdef MRV_JPE_TDC1_LEN
|
||
#endif /* MRV_JPE_TDC1_LEN */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: jpe_encoder_busy: encoder status flag (0x00000058)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: codec_busy:*/
|
||
/* Bit 0 = "1" : JPEG codec in process */
|
||
#ifdef MRV_JPE_CODEC_BUSY
|
||
#endif /* MRV_JPE_CODEC_BUSY */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: jpe_header_mode: header mode definition (0x0000005c)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: header_mode:*/
|
||
/* "00" = no header */
|
||
/* "01" = reserved */
|
||
/* "10" = JFIF 1.02 header */
|
||
/* "11" = reserved */
|
||
#ifdef MRV_JPE_HEADER_MODE
|
||
#define MRV_JPE_HEADER_MODE_NONE 0 /* "00" = no APPn header */
|
||
#define MRV_JPE_HEADER_MODE_JFIF 2 /* "10" = JFIF header */
|
||
#endif /* MRV_JPE_HEADER_MODE */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: jpe_encode_mode: encode mode (0x00000060)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: encode_mode:*/
|
||
/* Always "1", because this is the encoder only edition */
|
||
#ifdef MRV_JPE_ENCODE_MODE
|
||
#endif /* MRV_JPE_ENCODE_MODE */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: jpe_debug: debug information register (0x00000064)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: deb_bad_table_access:*/
|
||
/* Debug signal only (set if an access to the TABLE_DATA or to the TABLE_ID */
|
||
/* register is performed, when the JPEG_ENCODER is busy. In this case a default */
|
||
/* PVCI Acknowledge is generated. Thus the configuration bus is not blocked)*/
|
||
#ifdef MRV_JPE_DEB_BAD_TABLE_ACCESS
|
||
#endif /* MRV_JPE_DEB_BAD_TABLE_ACCESS */
|
||
/* Slice: deb_vlc_table_busy:*/
|
||
/* Debug signal only (vlc access to huff-tables)*/
|
||
#ifdef MRV_JPE_DEB_VLC_TABLE_BUSY
|
||
#endif /* MRV_JPE_DEB_VLC_TABLE_BUSY */
|
||
/* Slice: deb_r2b_memory_full:*/
|
||
/* Debug signal only (line memory status of r2b)*/
|
||
#ifdef MRV_JPE_DEB_R2B_MEMORY_FULL
|
||
#endif /* MRV_JPE_DEB_R2B_MEMORY_FULL */
|
||
/* Slice: deb_vlc_encode_busy:*/
|
||
/* Debug signal only (vlc encode processing active)*/
|
||
#ifdef MRV_JPE_DEB_VLC_ENCODE_BUSY
|
||
#endif /* MRV_JPE_DEB_VLC_ENCODE_BUSY */
|
||
/* Slice: deb_qiq_table_acc:*/
|
||
/* Debug signal only (QIQ table access)*/
|
||
#ifdef MRV_JPE_DEB_QIQ_TABLE_ACC
|
||
#endif /* MRV_JPE_DEB_QIQ_TABLE_ACC */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: jpe_error_imr: JPEG error interrupt mask register (0x00000068)
|
||
* jpe_error_ris: JPEG error raw interrupt status register (0x0000006c)
|
||
* jpe_error_mis: JPEG error masked interrupt status register (0x00000070)
|
||
* jpe_error_icr: JPEG error interrupt set register (0x00000074)
|
||
* jpe_error_isr: JPEG error interrupt clear register (0x00000078)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: vlc_table_err:*/
|
||
/* "1" = interrupt is activated (masked in)*/
|
||
#ifdef MRV_JPE_VLC_TABLE_ERR
|
||
#endif /* MRV_JPE_VLC_TABLE_ERR */
|
||
/* Slice: r2b_IMG_size_err:*/
|
||
/* "1" = interrupt is activated (masked in)*/
|
||
#ifdef MRV_JPE_R2B_IMG_SIZE_ERR
|
||
#endif /* MRV_JPE_R2B_IMG_SIZE_ERR */
|
||
/* Slice: DCT_ERR:*/
|
||
/* "1" = interrupt is activated (masked in)*/
|
||
#ifdef MRV_JPE_DCT_ERR
|
||
#endif /* MRV_JPE_DCT_ERR */
|
||
/* Slice: vlc_symbol_err:*/
|
||
/* "1" = interrupt is activated (masked in)*/
|
||
#ifdef MRV_JPE_VLC_SYMBOL_ERR
|
||
#endif /* MRV_JPE_VLC_SYMBOL_ERR */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: jpe_status_imr: JPEG status interrupt mask register (0x0000007c)
|
||
* jpe_status_ris: JPEG status raw interrupt status register (0x00000080)
|
||
* jpe_status_mis: JPEG status masked interrupt status register (0x00000084)
|
||
* jpe_status_icr: JPEG status interrupt clear register (0x00000088)
|
||
* jpe_status_isr: JPEG status interrupt set register (0x0000008c)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: gen_header_done:*/
|
||
/* "1" = interrupt is activated (masked in)*/
|
||
#ifdef MRV_JPE_GEN_HEADER_DONE
|
||
#endif /* MRV_JPE_GEN_HEADER_DONE */
|
||
/* Slice: encode_done:*/
|
||
/* "1" = interrupt is activated (masked in)*/
|
||
#ifdef MRV_JPE_ENCODE_DONE
|
||
#endif /* MRV_JPE_ENCODE_DONE */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: jpe_config: JPEG configuration register (0x00000090)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: speedview_en:*/
|
||
/* 1: speed view enabled */
|
||
/* 0: speed view disabled */
|
||
#ifdef MRV_JPE_SPEEDVIEW_EN
|
||
#define MRV_JPE_SPEEDVIEW_EN_DISABLE 0 /* "0": JPEG Stream Encoding according to JPEG standard */
|
||
#define MRV_JPE_SPEEDVIEW_EN_ENABLE 1 /* "1": SpeedView JPEG Stream Encoding enabled */
|
||
#endif /* MRV_JPE_SPEEDVIEW_EN */
|
||
/* Slice: cont_mode:*/
|
||
/* Encoder continous mode */
|
||
/* "00": encoder stops at frame end (corresponds to former behavior)*/
|
||
/* "01": encoder starts automatically to encode the next frame */
|
||
/* "10": unused */
|
||
/* "11": encoder first generates next header and then encodes automatically the next frame */
|
||
/* These settings are checked after encoding one frame. They are not auto-reset by hardware.*/
|
||
#ifdef MRV_JPE_CONT_MODE
|
||
#define MRV_JPE_CONT_MODE_STOP 0 /* "00": encoder stops at frame end (corresponds to former behavior) */
|
||
#define MRV_JPE_CONT_MODE_NEXT 1 /* "01": encoder starts automatically to encode the next frame */
|
||
#define MRV_JPE_CONT_MODE_HEADER 3 /* "11": encoder first generates next header and then encodes automatically the next frame */
|
||
#endif /* MRV_JPE_CONT_MODE */
|
||
/*****************************************************************************/
|
||
/* MIPI Registers */
|
||
/*****************************************************************************/
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: mipi_ctrl: global control register (0x0000)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: S_ENABLE_CLK */
|
||
/* 1: enable sensor clock lane (DEFAULT)*/
|
||
/* 0: disable sensor clock lane */
|
||
#ifdef MRV_MIPI_S_ENABLE_CLK
|
||
#endif /* MRV_MIPI_S_ENABLE_CLK */
|
||
/* Slice: ERR_SOT_SYNC_HS_SKIP:*/
|
||
/* 1: data within the current transmission is skipped if ErrSotSyncHS is detected (default)*/
|
||
/* 0: ErrSotSyncHS does not affect transmission */
|
||
#ifdef MRV_MIPI_ERR_SOT_SYNC_HS_SKIP
|
||
#endif /* MRV_MIPI_ERR_SOT_SYNC_HS_SKIP */
|
||
/* Slice: ERR_SOT_HS_SKIP:*/
|
||
/* 1: data within the current transmission is skipped if ErrSotHS is detected */
|
||
/* 0: ErrSotHS does not affect transmission (default)*/
|
||
#ifdef MRV_MIPI_ERR_SOT_HS_SKIP
|
||
#endif /* MRV_MIPI_ERR_SOT_HS_SKIP */
|
||
/* Slice: NUM_LANES:*/
|
||
/* 00: Lane 1 is used;*/
|
||
/* 01: Lanes 1 and 2 are used;*/
|
||
/* 10: Lanes 1...3 are used;*/
|
||
/* 11: Lanes 1...4 are used */
|
||
#ifdef MRV_MIPI_NUM_LANES
|
||
#define MRV_MIPI_NUM_LANES_1 0 /* 00: Lane 1 is used */
|
||
#define MRV_MIPI_NUM_LANES_2 1 /* 01: Lanes 1 and 2 are used */
|
||
#define MRV_MIPI_NUM_LANES_3 2 /* 10: Lanes 1...3 are used */
|
||
#define MRV_MIPI_NUM_LANES_4 3 /* 11: Lanes 1...4 are used */
|
||
#endif /* MRV_MIPI_NUM_LANES */
|
||
/* Slice: SHUTDOWN_LANE:*/
|
||
/* Shutdown Lane Module. Content of this register is directly connected to the output signal shutdown[n-1:0]*/
|
||
#ifdef MRV_MIPI_SHUTDOWN_LANE
|
||
#define MRV_MIPI_SHUTDOWN_LANE_1 1 /* 0001: shutdown lane 1 */
|
||
#define MRV_MIPI_SHUTDOWN_LANE_2 2 /* 0010: shutdown lane 1 */
|
||
#define MRV_MIPI_SHUTDOWN_LANE_3 4 /* 0100: shutdown lane 1 */
|
||
#define MRV_MIPI_SHUTDOWN_LANE_4 8 /* 1000: shutdown lane 1 */
|
||
#endif /* MRV_MIPI_SHUTDOWN_LANE */
|
||
/* Slice: FLUSH_FIFO:*/
|
||
/* writing '1' resets the write- and read pointers of the additional data fifo.*/
|
||
#ifdef MRV_MIPI_FLUSH_FIFO
|
||
#endif /* MRV_MIPI_FLUSH_FIFO */
|
||
/* Slice: OUTPUT_ENA:*/
|
||
/* 1: output to add data fifo and to output interface is enabled */
|
||
#ifdef MRV_MIPI_OUTPUT_ENA
|
||
#endif /* MRV_MIPI_OUTPUT_ENA */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: mipi_status: global status register (0x0004)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: S_ULP_ACTIVE_NOT_CLK:*/
|
||
/* sensor clock lane is in ULP state. This register is directly connected to the synchronized input signal "s_ulpsactivenotclk"*/
|
||
#ifdef MRV_MIPI_S_ULP_ACTIVE_NOT_CLK
|
||
#endif /* MRV_MIPI_S_ULP_ACTIVE_NOT_CLK */
|
||
/* Slice: S_STOPSTATE_CLK:*/
|
||
/* sensor clock lane is in stopstate. This register is directly connected to the synchronized input signal "s_stopstateclk"*/
|
||
#ifdef MRV_MIPI_S_STOPSTATE_CLK
|
||
#endif /* MRV_MIPI_S_STOPSTATE_CLK */
|
||
/* Slice: STOPSTATE:*/
|
||
/* Lane is in stopstate. This register is directly connected to the synchronized input signal stopstate[n-1:0]*/
|
||
#ifdef MRV_MIPI_STOPSTATE
|
||
#endif /* MRV_MIPI_STOPSTATE */
|
||
/* Slice: ADD_DATA_AVAIL:*/
|
||
/* 1: additional data fifo contains data */
|
||
/* 0: additional data fifo is empty */
|
||
#ifdef MRV_MIPI_ADD_DATA_AVAIL
|
||
#endif /* MRV_MIPI_ADD_DATA_AVAIL */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: mipi_imsc: Interrupt mask (0x00000008)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: IMSC_GEN_SHORT_PACK:*/
|
||
/* enable interrupt (1) or mask out (0)*/
|
||
#ifndef MRV_MIPI_IMSC_GEN_SHORT_PACK
|
||
#define MRV_MIPI_IMSC_GEN_SHORT_PACK_MASK 0
|
||
#endif /* MRV_MIPI_IMSC_GEN_SHORT_PACK */
|
||
/* Slice: IMSC_ADD_DATA_FILL_LEVEL:*/
|
||
/* enable interrupt (1) or mask out (0)*/
|
||
#ifndef MRV_MIPI_IMSC_ADD_DATA_FILL_LEVEL
|
||
#define MRV_MIPI_IMSC_ADD_DATA_FILL_LEVEL_MASK 0
|
||
#endif /* MRV_MIPI_IMSC_ADD_DATA_FILL_LEVEL */
|
||
/* Slice: IMSC_ADD_DATA_OVFLW:*/
|
||
/* enable interrupt (1) or mask out (0)*/
|
||
#ifndef MRV_MIPI_IMSC_ADD_DATA_OVFLW
|
||
#endif /* MRV_MIPI_IMSC_ADD_DATA_OVFLW */
|
||
/* Slice: IMSC_FRAME_END:*/
|
||
/* enable interrupt (1) or mask out (0)*/
|
||
#ifndef MRV_MIPI_IMSC_FRAME_END
|
||
#define MRV_MIPI_IMSC_FRAME_END_MASK 0
|
||
#endif /* MRV_MIPI_IMSC_ADD_DATA_OVFLW */
|
||
/* Slice: IMSC_ERR_CS:*/
|
||
/* enable interrupt (1) or mask out (0)*/
|
||
#ifndef MRV_MIPI_IMSC_ERR_CS
|
||
#define MRV_MIPI_IMSC_ERR_CS_MASK 0
|
||
#endif /* MRV_MIPI_IMSC_ERR_CS */
|
||
/* Slice: IMSC_ERR_ECC1:*/
|
||
/* enable interrupt (1) or mask out (0)*/
|
||
#ifndef MRV_MIPI_IMSC_ERR_ECC1
|
||
#define MRV_MIPI_IMSC_ERR_ECC1_MASK 0
|
||
#endif /* MRV_MIPI_IMSC_ERR_ECC1 */
|
||
/* Slice: IMSC_ERR_ECC2:*/
|
||
/* enable interrupt (1) or mask out (0)*/
|
||
#ifndef MRV_MIPI_IMSC_ERR_ECC2
|
||
#define MRV_MIPI_IMSC_ERR_ECC2_MASK 0
|
||
#endif /* MRV_MIPI_IMSC_ERR_ECC2 */
|
||
/* Slice: IMSC_ERR_PROTOCOL:*/
|
||
/* enable interrupt (1) or mask out (0)*/
|
||
#ifndef MRV_MIPI_IMSC_ERR_PROTOCOL
|
||
#define MRV_MIPI_IMSC_ERR_PROTOCOL_MASK 0
|
||
#endif /* MRV_MIPI_IMSC_ERR_PROTOCOL */
|
||
/* Slice: IMSC_ERR_CONTROL:*/
|
||
/* enable interrupt (1) or mask out (0) (one bit for each lane)*/
|
||
#ifndef MRV_MIPI_IMSC_ERR_CONTROL
|
||
#define MRV_MIPI_IMSC_ERR_CONTROL_MASK 0
|
||
#endif /* MRV_MIPI_IMSC_ERR_CONTROL */
|
||
/* Slice: IMSC_ERR_EOT_SYNC:*/
|
||
/* enable interrupt (1) or mask out (0) (one bit for each lane)*/
|
||
#ifndef MRV_MIPI_IMSC_ERR_EOT_SYNC
|
||
#define MRV_MIPI_IMSC_ERR_EOT_SYNC_MASK 0
|
||
#endif /* MRV_MIPI_IMSC_ERR_EOT_SYNC */
|
||
/* Slice: IMSC_ERR_SOT_SYNC:*/
|
||
/* enable interrupt (1) or mask out (0) (one bit for each lane)*/
|
||
#ifndef MRV_MIPI_IMSC_ERR_SOT_SYNC
|
||
#define MRV_MIPI_IMSC_ERR_SOT_SYNC_MASK 0
|
||
#endif /* MRV_MIPI_IMSC_ERR_SOT_SYNC */
|
||
/* Slice: IMSC_ERR_SOT:*/
|
||
/* enable interrupt (1) or mask out (0) (one bit for each lane)*/
|
||
#ifndef MRV_MIPI_IMSC_ERR_SOT
|
||
#define MRV_MIPI_IMSC_ERR_SOT_MASK 0
|
||
#endif /* MRV_MIPI_IMSC_ERR_SOT */
|
||
/* Slice: IMSC_SYNC_FIFO_OVFLW:*/
|
||
/* enable interrupt (1) or mask out (0) (one bit for each lane)*/
|
||
#ifndef MRV_MIPI_IMSC_SYNC_FIFO_OVFLW
|
||
#define MRV_MIPI_IMSC_SYNC_FIFO_OVFLW_MASK 0
|
||
#endif /* MRV_MIPI_IMSC_SYNC_FIFO_OVFLW */
|
||
/* combination of all interrupt lines */
|
||
#define MRV_MIPI_IMSC_ALL_IRQS
|
||
#define MRV_MIPI_IMSC_ALL_IRQS_MASK \
|
||
(MRV_MIPI_IMSC_ADD_DATA_FILL_LEVEL_MASK \
|
||
| MRV_MIPI_IMSC_ADD_DATA_OVFLW_MASK \
|
||
| MRV_MIPI_IMSC_FRAME_END_MASK \
|
||
| MRV_MIPI_IMSC_ERR_CS_MASK \
|
||
| MRV_MIPI_IMSC_ERR_ECC1_MASK \
|
||
| MRV_MIPI_IMSC_ERR_ECC2_MASK \
|
||
| MRV_MIPI_IMSC_ERR_PROTOCOL_MASK \
|
||
| MRV_MIPI_IMSC_ERR_CONTROL_MASK \
|
||
| MRV_MIPI_IMSC_ERR_EOT_SYNC_MASK \
|
||
| MRV_MIPI_IMSC_ERR_SOT_SYNC_MASK \
|
||
| MRV_MIPI_IMSC_ERR_SOT_MASK \
|
||
| MRV_MIPI_IMSC_SYNC_FIFO_OVFLW_MASK \
|
||
)
|
||
#define MRV_MIPI_IMSC_ALL_IRQS_SHIFT 0
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: mipi_ris: Raw interrupt status (0x0000000c)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: RIS_GEN_SHORT_PACK:*/
|
||
/* enable interrupt (1) or mask out (0)*/
|
||
#ifndef MRV_MIPI_RIS_GEN_SHORT_PACK
|
||
#define MRV_MIPI_RIS_GEN_SHORT_PACK_MASK 0
|
||
#endif /* MRV_MIPI_RIS_GEN_SHORT_PACK */
|
||
/* Slice: RIS_ADD_DATA_FILL_LEVEL:*/
|
||
/* enable interrupt (1) or mask out (0)*/
|
||
#ifndef MRV_MIPI_RIS_ADD_DATA_FILL_LEVEL
|
||
#define MRV_MIPI_RIS_ADD_DATA_FILL_LEVEL_MASK 0
|
||
#endif /* MRV_MIPI_RIS_ADD_DATA_FILL_LEVEL */
|
||
/* Slice: RIS_ADD_DATA_OVFLW:*/
|
||
/* enable interrupt (1) or mask out (0)*/
|
||
#ifndef MRV_MIPI_RIS_ADD_DATA_OVFLW
|
||
#endif /* MRV_MIPI_RIS_ADD_DATA_OVFLW */
|
||
/* Slice: RIS_FRAME_END:*/
|
||
/* enable interrupt (1) or mask out (0)*/
|
||
#ifndef MRV_MIPI_RIS_FRAME_END
|
||
#define MRV_MIPI_RIS_FRAME_END_MASK 0
|
||
#endif /* MRV_MIPI_RIS_ADD_DATA_OVFLW */
|
||
/* Slice: RIS_ERR_CS:*/
|
||
/* enable interrupt (1) or mask out (0)*/
|
||
#ifndef MRV_MIPI_RIS_ERR_CS
|
||
#define MRV_MIPI_RIS_ERR_CS_MASK 0
|
||
#endif /* MRV_MIPI_RIS_ERR_CS */
|
||
/* Slice: RIS_ERR_ECC1:*/
|
||
/* enable interrupt (1) or mask out (0)*/
|
||
#ifndef MRV_MIPI_RIS_ERR_ECC1
|
||
#define MRV_MIPI_RIS_ERR_ECC1_MASK 0
|
||
#endif /* MRV_MIPI_RIS_ERR_ECC1 */
|
||
/* Slice: RIS_ERR_ECC2:*/
|
||
/* enable interrupt (1) or mask out (0)*/
|
||
#ifndef MRV_MIPI_RIS_ERR_ECC2
|
||
#define MRV_MIPI_RIS_ERR_ECC2_MASK 0
|
||
#endif /* MRV_MIPI_RIS_ERR_ECC2 */
|
||
/* Slice: RIS_ERR_PROTOCOL:*/
|
||
/* enable interrupt (1) or mask out (0)*/
|
||
#ifndef MRV_MIPI_RIS_ERR_PROTOCOL
|
||
#define MRV_MIPI_RIS_ERR_PROTOCOL_MASK 0
|
||
#endif /* MRV_MIPI_RIS_ERR_PROTOCOL */
|
||
/* Slice: RIS_ERR_CONTROL:*/
|
||
/* enable interrupt (1) or mask out (0) (one bit for each lane)*/
|
||
#ifndef MRV_MIPI_RIS_ERR_CONTROL
|
||
#define MRV_MIPI_RIS_ERR_CONTROL_MASK 0
|
||
#endif /* MRV_MIPI_RIS_ERR_CONTROL */
|
||
/* Slice: RIS_ERR_EOT_SYNC:*/
|
||
/* enable interrupt (1) or mask out (0) (one bit for each lane)*/
|
||
#ifndef MRV_MIPI_RIS_ERR_EOT_SYNC
|
||
#define MRV_MIPI_RIS_ERR_EOT_SYNC_MASK 0
|
||
#endif /* MRV_MIPI_RIS_ERR_EOT_SYNC */
|
||
/* Slice: RIS_ERR_SOT_SYNC:*/
|
||
/* enable interrupt (1) or mask out (0) (one bit for each lane)*/
|
||
#ifndef MRV_MIPI_RIS_ERR_SOT_SYNC
|
||
#define MRV_MIPI_RIS_ERR_SOT_SYNC_MASK 0
|
||
#endif /* MRV_MIPI_RIS_ERR_SOT_SYNC */
|
||
/* Slice: RIS_ERR_SOT:*/
|
||
/* enable interrupt (1) or mask out (0) (one bit for each lane)*/
|
||
#ifndef MRV_MIPI_RIS_ERR_SOT
|
||
#define MRV_MIPI_RIS_ERR_SOT_MASK 0
|
||
#endif /* MRV_MIPI_RIS_ERR_SOT */
|
||
/* Slice: RIS_SYNC_FIFO_OVFLW:*/
|
||
/* enable interrupt (1) or mask out (0) (one bit for each lane)*/
|
||
#ifndef MRV_MIPI_RIS_SYNC_FIFO_OVFLW
|
||
#define MRV_MIPI_RIS_SYNC_FIFO_OVFLW_MASK 0
|
||
#endif /* MRV_MIPI_RIS_SYNC_FIFO_OVFLW */
|
||
/* combination of all interrupt lines */
|
||
#define MRV_MIPI_RIS_ALL_IRQS
|
||
#define MRV_MIPI_RIS_ALL_IRQS_MASK \
|
||
(MRV_MIPI_RIS_ADD_DATA_FILL_LEVEL_MASK \
|
||
| MRV_MIPI_RIS_ADD_DATA_OVFLW_MASK \
|
||
| MRV_MIPI_RIS_FRAME_END_MASK \
|
||
| MRV_MIPI_RIS_ERR_CS_MASK \
|
||
| MRV_MIPI_RIS_ERR_ECC1_MASK \
|
||
| MRV_MIPI_RIS_ERR_ECC2_MASK \
|
||
| MRV_MIPI_RIS_ERR_PROTOCOL_MASK \
|
||
| MRV_MIPI_RIS_ERR_CONTROL_MASK \
|
||
| MRV_MIPI_RIS_ERR_EOT_SYNC_MASK \
|
||
| MRV_MIPI_RIS_ERR_SOT_SYNC_MASK \
|
||
| MRV_MIPI_RIS_ERR_SOT_MASK \
|
||
| MRV_MIPI_RIS_SYNC_FIFO_OVFLW_MASK \
|
||
)
|
||
#define MRV_MIPI_RIS_ALL_IRQS_SHIFT 0
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: mipi_mis: Masked interrupt status (0x00000010)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: MIS_GEN_SHORT_PACK:*/
|
||
/* enable interrupt (1) or mask out (0)*/
|
||
#ifndef MRV_MIPI_MIS_GEN_SHORT_PACK
|
||
#define MRV_MIPI_MIS_GEN_SHORT_PACK_MASK 0
|
||
#endif /* MRV_MIPI_MIS_GEN_SHORT_PACK */
|
||
/* Slice: MIS_ADD_DATA_FILL_LEVEL:*/
|
||
/* enable interrupt (1) or mask out (0)*/
|
||
#ifndef MRV_MIPI_MIS_ADD_DATA_FILL_LEVEL
|
||
#define MRV_MIPI_MIS_ADD_DATA_FILL_LEVEL_MASK 0
|
||
#endif /* MRV_MIPI_MIS_ADD_DATA_FILL_LEVEL */
|
||
/* Slice: MIS_ADD_DATA_OVFLW:*/
|
||
/* enable interrupt (1) or mask out (0)*/
|
||
#ifndef MRV_MIPI_MIS_ADD_DATA_OVFLW
|
||
#endif /* MRV_MIPI_MIS_ADD_DATA_OVFLW */
|
||
/* Slice: MIS_FRAME_END:*/
|
||
/* enable interrupt (1) or mask out (0)*/
|
||
#ifndef MRV_MIPI_MIS_FRAME_END
|
||
#define MRV_MIPI_MIS_FRAME_END_MASK 0
|
||
#endif /* MRV_MIPI_MIS_ADD_DATA_OVFLW */
|
||
/* Slice: MIS_ERR_CS:*/
|
||
/* enable interrupt (1) or mask out (0)*/
|
||
#ifndef MRV_MIPI_MIS_ERR_CS
|
||
#define MRV_MIPI_MIS_ERR_CS_MASK 0
|
||
#endif /* MRV_MIPI_MIS_ERR_CS */
|
||
/* Slice: MIS_ERR_ECC1:*/
|
||
/* enable interrupt (1) or mask out (0)*/
|
||
#ifndef MRV_MIPI_MIS_ERR_ECC1
|
||
#define MRV_MIPI_MIS_ERR_ECC1_MASK 0
|
||
#endif /* MRV_MIPI_MIS_ERR_ECC1 */
|
||
/* Slice: MIS_ERR_ECC2:*/
|
||
/* enable interrupt (1) or mask out (0)*/
|
||
#ifndef MRV_MIPI_MIS_ERR_ECC2
|
||
#define MRV_MIPI_MIS_ERR_ECC2_MASK 0
|
||
#endif /* MRV_MIPI_MIS_ERR_ECC2 */
|
||
/* Slice: MIS_ERR_PROTOCOL:*/
|
||
/* enable interrupt (1) or mask out (0)*/
|
||
#ifndef MRV_MIPI_MIS_ERR_PROTOCOL
|
||
#define MRV_MIPI_MIS_ERR_PROTOCOL_MASK 0
|
||
#endif /* MRV_MIPI_MIS_ERR_PROTOCOL */
|
||
/* Slice: MIS_ERR_CONTROL:*/
|
||
/* enable interrupt (1) or mask out (0) (one bit for each lane)*/
|
||
#ifndef MRV_MIPI_MIS_ERR_CONTROL
|
||
#define MRV_MIPI_MIS_ERR_CONTROL_MASK 0
|
||
#endif /* MRV_MIPI_MIS_ERR_CONTROL */
|
||
/* Slice: MIS_ERR_EOT_SYNC:*/
|
||
/* enable interrupt (1) or mask out (0) (one bit for each lane)*/
|
||
#ifndef MRV_MIPI_MIS_ERR_EOT_SYNC
|
||
#define MRV_MIPI_MIS_ERR_EOT_SYNC_MASK 0
|
||
#endif /* MRV_MIPI_MIS_ERR_EOT_SYNC */
|
||
/* Slice: MIS_ERR_SOT_SYNC:*/
|
||
/* enable interrupt (1) or mask out (0) (one bit for each lane)*/
|
||
#ifndef MRV_MIPI_MIS_ERR_SOT_SYNC
|
||
#define MRV_MIPI_MIS_ERR_SOT_SYNC_MASK 0
|
||
#endif /* MRV_MIPI_MIS_ERR_SOT_SYNC */
|
||
/* Slice: MIS_ERR_SOT:*/
|
||
/* enable interrupt (1) or mask out (0) (one bit for each lane)*/
|
||
#ifndef MRV_MIPI_MIS_ERR_SOT
|
||
#define MRV_MIPI_MIS_ERR_SOT_MASK 0
|
||
#endif /* MRV_MIPI_MIS_ERR_SOT */
|
||
/* Slice: MIS_SYNC_FIFO_OVFLW:*/
|
||
/* enable interrupt (1) or mask out (0) (one bit for each lane)*/
|
||
#ifndef MRV_MIPI_MIS_SYNC_FIFO_OVFLW
|
||
#define MRV_MIPI_MIS_SYNC_FIFO_OVFLW_MASK 0
|
||
#endif /* MRV_MIPI_MIS_SYNC_FIFO_OVFLW */
|
||
/* combination of all interrupt lines */
|
||
#define MRV_MIPI_MIS_ALL_IRQS
|
||
#define MRV_MIPI_MIS_ALL_IRQS_MASK \
|
||
(MRV_MIPI_MIS_ADD_DATA_FILL_LEVEL_MASK \
|
||
| MRV_MIPI_MIS_ADD_DATA_OVFLW_MASK \
|
||
| MRV_MIPI_MIS_FRAME_END_MASK \
|
||
| MRV_MIPI_MIS_ERR_CS_MASK \
|
||
| MRV_MIPI_MIS_ERR_ECC1_MASK \
|
||
| MRV_MIPI_MIS_ERR_ECC2_MASK \
|
||
| MRV_MIPI_MIS_ERR_PROTOCOL_MASK \
|
||
| MRV_MIPI_MIS_ERR_CONTROL_MASK \
|
||
| MRV_MIPI_MIS_ERR_EOT_SYNC_MASK \
|
||
| MRV_MIPI_MIS_ERR_SOT_SYNC_MASK \
|
||
| MRV_MIPI_MIS_ERR_SOT_MASK \
|
||
| MRV_MIPI_MIS_SYNC_FIFO_OVFLW_MASK \
|
||
)
|
||
#define MRV_MIPI_MIS_ALL_IRQS_SHIFT 0
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: mipi_icr: Interrupt clear register (0x00000014)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: ICR_GEN_SHORT_PACK:*/
|
||
/* enable interrupt (1) or mask out (0)*/
|
||
#ifndef MRV_MIPI_ICR_GEN_SHORT_PACK
|
||
#define MRV_MIPI_ICR_GEN_SHORT_PACK_MASK 0
|
||
#endif /* MRV_MIPI_ICR_GEN_SHORT_PACK */
|
||
/* Slice: ICR_ADD_DATA_FILL_LEVEL:*/
|
||
/* enable interrupt (1) or mask out (0)*/
|
||
#ifndef MRV_MIPI_ICR_ADD_DATA_FILL_LEVEL
|
||
#define MRV_MIPI_ICR_ADD_DATA_FILL_LEVEL_MASK 0
|
||
#endif /* MRV_MIPI_ICR_ADD_DATA_FILL_LEVEL */
|
||
/* Slice: ICR_ADD_DATA_OVFLW:*/
|
||
/* enable interrupt (1) or mask out (0)*/
|
||
#ifndef MRV_MIPI_ICR_ADD_DATA_OVFLW
|
||
#endif /* MRV_MIPI_ICR_ADD_DATA_OVFLW */
|
||
/* Slice: ICR_FRAME_END:*/
|
||
/* enable interrupt (1) or mask out (0)*/
|
||
#ifndef MRV_MIPI_ICR_FRAME_END
|
||
#define MRV_MIPI_ICR_FRAME_END_MASK 0
|
||
#endif /* MRV_MIPI_ICR_ADD_DATA_OVFLW */
|
||
/* Slice: ICR_ERR_CS:*/
|
||
/* enable interrupt (1) or mask out (0)*/
|
||
#ifndef MRV_MIPI_ICR_ERR_CS
|
||
#define MRV_MIPI_ICR_ERR_CS_MASK 0
|
||
#endif /* MRV_MIPI_ICR_ERR_CS */
|
||
/* Slice: ICR_ERR_ECC1:*/
|
||
/* enable interrupt (1) or mask out (0)*/
|
||
#ifndef MRV_MIPI_ICR_ERR_ECC1
|
||
#define MRV_MIPI_ICR_ERR_ECC1_MASK 0
|
||
#endif /* MRV_MIPI_ICR_ERR_ECC1 */
|
||
/* Slice: ICR_ERR_ECC2:*/
|
||
/* enable interrupt (1) or mask out (0)*/
|
||
#ifndef MRV_MIPI_ICR_ERR_ECC2
|
||
#define MRV_MIPI_ICR_ERR_ECC2_MASK 0
|
||
#endif /* MRV_MIPI_ICR_ERR_ECC2 */
|
||
/* Slice: ICR_ERR_PROTOCOL:*/
|
||
/* enable interrupt (1) or mask out (0)*/
|
||
#ifndef MRV_MIPI_ICR_ERR_PROTOCOL
|
||
#define MRV_MIPI_ICR_ERR_PROTOCOL_MASK 0
|
||
#endif /* MRV_MIPI_ICR_ERR_PROTOCOL */
|
||
/* Slice: ICR_ERR_CONTROL:*/
|
||
/* enable interrupt (1) or mask out (0) (one bit for each lane)*/
|
||
#ifndef MRV_MIPI_ICR_ERR_CONTROL
|
||
#define MRV_MIPI_ICR_ERR_CONTROL_MASK 0
|
||
#endif /* MRV_MIPI_ICR_ERR_CONTROL */
|
||
/* Slice: ICR_ERR_EOT_SYNC:*/
|
||
/* enable interrupt (1) or mask out (0) (one bit for each lane)*/
|
||
#ifndef MRV_MIPI_ICR_ERR_EOT_SYNC
|
||
#define MRV_MIPI_ICR_ERR_EOT_SYNC_MASK 0
|
||
#endif /* MRV_MIPI_ICR_ERR_EOT_SYNC */
|
||
/* Slice: ICR_ERR_SOT_SYNC:*/
|
||
/* enable interrupt (1) or mask out (0) (one bit for each lane)*/
|
||
#ifndef MRV_MIPI_ICR_ERR_SOT_SYNC
|
||
#define MRV_MIPI_ICR_ERR_SOT_SYNC_MASK 0
|
||
#endif /* MRV_MIPI_ICR_ERR_SOT_SYNC */
|
||
/* Slice: ICR_ERR_SOT:*/
|
||
/* enable interrupt (1) or mask out (0) (one bit for each lane)*/
|
||
#ifndef MRV_MIPI_ICR_ERR_SOT
|
||
#define MRV_MIPI_ICR_ERR_SOT_MASK 0
|
||
#endif /* MRV_MIPI_ICR_ERR_SOT */
|
||
/* Slice: ICR_SYNC_FIFO_OVFLW:*/
|
||
/* enable interrupt (1) or mask out (0) (one bit for each lane)*/
|
||
#ifndef MRV_MIPI_ICR_SYNC_FIFO_OVFLW
|
||
#define MRV_MIPI_ICR_SYNC_FIFO_OVFLW_MASK 0
|
||
#endif /* MRV_MIPI_ICR_SYNC_FIFO_OVFLW */
|
||
/* combination of all interrupt lines */
|
||
#define MRV_MIPI_ICR_ALL_IRQS
|
||
#define MRV_MIPI_ICR_ALL_IRQS_MASK \
|
||
(MRV_MIPI_ICR_ADD_DATA_FILL_LEVEL_MASK \
|
||
| MRV_MIPI_ICR_ADD_DATA_OVFLW_MASK \
|
||
| MRV_MIPI_ICR_FRAME_END_MASK \
|
||
| MRV_MIPI_ICR_ERR_CS_MASK \
|
||
| MRV_MIPI_ICR_ERR_ECC1_MASK \
|
||
| MRV_MIPI_ICR_ERR_ECC2_MASK \
|
||
| MRV_MIPI_ICR_ERR_PROTOCOL_MASK \
|
||
| MRV_MIPI_ICR_ERR_CONTROL_MASK \
|
||
| MRV_MIPI_ICR_ERR_EOT_SYNC_MASK \
|
||
| MRV_MIPI_ICR_ERR_SOT_SYNC_MASK \
|
||
| MRV_MIPI_ICR_ERR_SOT_MASK \
|
||
| MRV_MIPI_ICR_SYNC_FIFO_OVFLW_MASK \
|
||
)
|
||
#define MRV_MIPI_ICR_ALL_IRQS_SHIFT 0
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: mipi_isr: Interrupt set register (0x00000018)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: ISR_GEN_SHORT_PACK:*/
|
||
/* enable interrupt (1) or mask out (0)*/
|
||
#ifndef MRV_MIPI_ISR_GEN_SHORT_PACK
|
||
#define MRV_MIPI_ISR_GEN_SHORT_PACK_MASK 0
|
||
#endif /* MRV_MIPI_ISR_GEN_SHORT_PACK */
|
||
/* Slice: ISR_ADD_DATA_FILL_LEVEL:*/
|
||
/* enable interrupt (1) or mask out (0)*/
|
||
#ifndef MRV_MIPI_ISR_ADD_DATA_FILL_LEVEL
|
||
#define MRV_MIPI_ISR_ADD_DATA_FILL_LEVEL_MASK 0
|
||
#endif /* MRV_MIPI_ISR_ADD_DATA_FILL_LEVEL */
|
||
/* Slice: ISR_ADD_DATA_OVFLW:*/
|
||
/* enable interrupt (1) or mask out (0)*/
|
||
#ifndef MRV_MIPI_ISR_ADD_DATA_OVFLW
|
||
#endif /* MRV_MIPI_ISR_ADD_DATA_OVFLW */
|
||
/* Slice: ISR_FRAME_END:*/
|
||
/* enable interrupt (1) or mask out (0)*/
|
||
#ifndef MRV_MIPI_ISR_FRAME_END
|
||
#define MRV_MIPI_ISR_FRAME_END_MASK 0
|
||
#endif /* MRV_MIPI_ISR_ADD_DATA_OVFLW */
|
||
/* Slice: ISR_ERR_CS:*/
|
||
/* enable interrupt (1) or mask out (0)*/
|
||
#ifndef MRV_MIPI_ISR_ERR_CS
|
||
#define MRV_MIPI_ISR_ERR_CS_MASK 0
|
||
#endif /* MRV_MIPI_ISR_ERR_CS */
|
||
/* Slice: ISR_ERR_ECC1:*/
|
||
/* enable interrupt (1) or mask out (0)*/
|
||
#ifndef MRV_MIPI_ISR_ERR_ECC1
|
||
#define MRV_MIPI_ISR_ERR_ECC1_MASK 0
|
||
#endif /* MRV_MIPI_ISR_ERR_ECC1 */
|
||
/* Slice: ISR_ERR_ECC2:*/
|
||
/* enable interrupt (1) or mask out (0)*/
|
||
#ifndef MRV_MIPI_ISR_ERR_ECC2
|
||
#define MRV_MIPI_ISR_ERR_ECC2_MASK 0
|
||
#endif /* MRV_MIPI_ISR_ERR_ECC2 */
|
||
/* Slice: ISR_ERR_PROTOCOL:*/
|
||
/* enable interrupt (1) or mask out (0)*/
|
||
#ifndef MRV_MIPI_ISR_ERR_PROTOCOL
|
||
#define MRV_MIPI_ISR_ERR_PROTOCOL_MASK 0
|
||
#endif /* MRV_MIPI_ISR_ERR_PROTOCOL */
|
||
/* Slice: ISR_ERR_CONTROL:*/
|
||
/* enable interrupt (1) or mask out (0) (one bit for each lane)*/
|
||
#ifndef MRV_MIPI_ISR_ERR_CONTROL
|
||
#define MRV_MIPI_ISR_ERR_CONTROL_MASK 0
|
||
#endif /* MRV_MIPI_ISR_ERR_CONTROL */
|
||
/* Slice: ISR_ERR_EOT_SYNC:*/
|
||
/* enable interrupt (1) or mask out (0) (one bit for each lane)*/
|
||
#ifndef MRV_MIPI_ISR_ERR_EOT_SYNC
|
||
#define MRV_MIPI_ISR_ERR_EOT_SYNC_MASK 0
|
||
#endif /* MRV_MIPI_ISR_ERR_EOT_SYNC */
|
||
/* Slice: ISR_ERR_SOT_SYNC:*/
|
||
/* enable interrupt (1) or mask out (0) (one bit for each lane)*/
|
||
#ifndef MRV_MIPI_ISR_ERR_SOT_SYNC
|
||
#define MRV_MIPI_ISR_ERR_SOT_SYNC_MASK 0
|
||
#endif /* MRV_MIPI_ISR_ERR_SOT_SYNC */
|
||
/* Slice: ISR_ERR_SOT:*/
|
||
/* enable interrupt (1) or mask out (0) (one bit for each lane)*/
|
||
#ifndef MRV_MIPI_ISR_ERR_SOT
|
||
#define MRV_MIPI_ISR_ERR_SOT_MASK 0
|
||
#endif /* MRV_MIPI_ISR_ERR_SOT */
|
||
/* Slice: ISR_SYNC_FIFO_OVFLW:*/
|
||
/* enable interrupt (1) or mask out (0) (one bit for each lane)*/
|
||
#ifndef MRV_MIPI_ISR_SYNC_FIFO_OVFLW
|
||
#define MRV_MIPI_ISR_SYNC_FIFO_OVFLW_MASK 0
|
||
#endif /* MRV_MIPI_ISR_SYNC_FIFO_OVFLW */
|
||
/* combination of all interrupt lines */
|
||
#define MRV_MIPI_ISR_ALL_IRQS
|
||
#define MRV_MIPI_ISR_ALL_IRQS_MASK \
|
||
(MRV_MIPI_ISR_ADD_DATA_FILL_LEVEL_MASK \
|
||
| MRV_MIPI_ISR_ADD_DATA_OVFLW_MASK \
|
||
| MRV_MIPI_ISR_FRAME_END_MASK \
|
||
| MRV_MIPI_ISR_ERR_CS_MASK \
|
||
| MRV_MIPI_ISR_ERR_ECC1_MASK \
|
||
| MRV_MIPI_ISR_ERR_ECC2_MASK \
|
||
| MRV_MIPI_ISR_ERR_PROTOCOL_MASK \
|
||
| MRV_MIPI_ISR_ERR_CONTROL_MASK \
|
||
| MRV_MIPI_ISR_ERR_EOT_SYNC_MASK \
|
||
| MRV_MIPI_ISR_ERR_SOT_SYNC_MASK \
|
||
| MRV_MIPI_ISR_ERR_SOT_MASK \
|
||
| MRV_MIPI_ISR_SYNC_FIFO_OVFLW_MASK \
|
||
)
|
||
#define MRV_MIPI_ISR_ALL_IRQS_SHIFT 0
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: mipi_cur_data_id: Current Data Identifier (0x0000001c)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: VIRTUAL_CHANNEL:*/
|
||
/* virtual channel of currently received packet */
|
||
#ifdef MRV_MIPI_VIRTUAL_CHANNEL
|
||
#endif /* MRV_MIPI_VIRTUAL_CHANNEL */
|
||
/* Slice: DATA_TYPE:*/
|
||
/* data type of currently received packet */
|
||
#ifdef MRV_MIPI_DATA_TYPE
|
||
#endif /* MRV_MIPI_DATA_TYPE */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: mipi_img_data_sel: Image Data Selector (0x00000020)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: VIRTUAL_CHANNEL_SEL:*/
|
||
/* virtual channel selector for image data output */
|
||
#ifdef MRV_MIPI_VIRTUAL_CHANNEL_SEL
|
||
#endif /* MRV_MIPI_VIRTUAL_CHANNEL_SEL */
|
||
/* Slice: DATA_TYPE_SEL:*/
|
||
/* data type selector for image data output:*/
|
||
/* 0x08...0x0F: generic short packets */
|
||
/* 0x12: embedded 8-bit data */
|
||
/* 0x18: YUV 420 8-bit */
|
||
/* 0x19: YUV 420 10-bit */
|
||
/* 0x1A: Legacy YUV 420 8-bit */
|
||
/* 0x1C: YUV 420 8-bit (CSPS)*/
|
||
/* 0x1D: YUV 420 10-bit (CSPS)*/
|
||
/* 0x1E: YUV 422 8-bit */
|
||
/* 0x1F: YUV 422 10-bit */
|
||
/* 0x20: RGB 444 */
|
||
/* 0x21: RGB 555 */
|
||
/* 0x22: RGB 565 */
|
||
/* 0x23: RGB 666 */
|
||
/* 0x24: RGB 888 */
|
||
/* 0x28: RAW 6 */
|
||
/* 0x29: RAW 7 */
|
||
/* 0x2A: RAW 8 */
|
||
/* 0x2B: RAW 10 */
|
||
/* 0x2C: RAW 12 */
|
||
/* 0x30...0x37: User Defined Byte-based data */
|
||
#ifdef MRV_MIPI_DATA_TYPE_SEL
|
||
#define MRV_MIPI_DATA_TYPE_SEL_YUV420_8BIT 24 /* 0x18 YUV 420 8-bit */
|
||
#define MRV_MIPI_DATA_TYPE_SEL_YUV420_10BIT 25 /* 0x19 YUV 420 10-bit */
|
||
#define MRV_MIPI_DATA_TYPE_SEL_YUV420_8BIT_LEGACY 26 /* 0x1A Legacy YUV 420 8-bit */
|
||
#define MRV_MIPI_DATA_TYPE_SEL_YUV420_8BIT_CSPS 28 /* 0x1C YUV 420 8-bit (CSPS) */
|
||
#define MRV_MIPI_DATA_TYPE_SEL_YUV420_10BIT_CSPS 29 /* 0x1D YUV 420 10-bit (CSPS) */
|
||
#define MRV_MIPI_DATA_TYPE_SEL_YUV422_8BIT 30 /* 0x1E YUV 422 8-bit */
|
||
#define MRV_MIPI_DATA_TYPE_SEL_YUV422_10BIT 31 /* 0x1F YUV 422 10-bit */
|
||
#define MRV_MIPI_DATA_TYPE_SEL_RGB444 32 /* 0x20 RGB 444 */
|
||
#define MRV_MIPI_DATA_TYPE_SEL_RGB555 33 /* 0x21 RGB 555 */
|
||
#define MRV_MIPI_DATA_TYPE_SEL_RGB565 34 /* 0x22 RGB 565 */
|
||
#define MRV_MIPI_DATA_TYPE_SEL_RGB666 35 /* 0x23 RGB 666 */
|
||
#define MRV_MIPI_DATA_TYPE_SEL_RGB888 36 /* 0x24 RGB 888 */
|
||
#define MRV_MIPI_DATA_TYPE_SEL_RAW6 40 /* 0x28 RAW 6 */
|
||
#define MRV_MIPI_DATA_TYPE_SEL_RAW7 41 /* 0x29 RAW 7 */
|
||
#define MRV_MIPI_DATA_TYPE_SEL_RAW8 42 /* 0x2A RAW 8 */
|
||
#define MRV_MIPI_DATA_TYPE_SEL_RAW10 43 /* 0x2B RAW 10 */
|
||
#define MRV_MIPI_DATA_TYPE_SEL_RAW12 44 /* 0x2C RAW 12 */
|
||
#define MRV_MIPI_DATA_TYPE_SEL_USER1 48 /* 0x30...0x37 User Defined Byte-based data */
|
||
#define MRV_MIPI_DATA_TYPE_SEL_USER2 49 /* 0x30...0x37 User Defined Byte-based data */
|
||
#define MRV_MIPI_DATA_TYPE_SEL_USER3 50 /* 0x30...0x37 User Defined Byte-based data */
|
||
#define MRV_MIPI_DATA_TYPE_SEL_USER4 51 /* 0x30...0x37 User Defined Byte-based data */
|
||
#define MRV_MIPI_DATA_TYPE_SEL_USER5 52 /* 0x30...0x37 User Defined Byte-based data */
|
||
#define MRV_MIPI_DATA_TYPE_SEL_USER6 53 /* 0x30...0x37 User Defined Byte-based data */
|
||
#define MRV_MIPI_DATA_TYPE_SEL_USER7 54 /* 0x30...0x37 User Defined Byte-based data */
|
||
#define MRV_MIPI_DATA_TYPE_SEL_USER8 55 /* 0x30...0x37 User Defined Byte-based data */
|
||
#endif /* MRV_MIPI_DATA_TYPE_SEL */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: mipi_add_data_sel_1: Additional Data Selector 1 (0x00000024)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: ADD_DATA_VC_1:*/
|
||
/* virtual channel selector for additional data output */
|
||
#ifdef MRV_MIPI_ADD_DATA_VC_1
|
||
#endif /* MRV_MIPI_ADD_DATA_VC_1 */
|
||
/* Slice: ADD_DATA_TYPE_1:*/
|
||
/* data type selector for additional data output */
|
||
#ifdef MRV_MIPI_ADD_DATA_TYPE_1
|
||
#endif /* MRV_MIPI_ADD_DATA_TYPE_1 */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: mipi_add_data_sel_2: Additional Data Selector 2 (0x00000028)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: ADD_DATA_VC_2:*/
|
||
/* virtual channel selector for additional data output */
|
||
#ifdef MRV_MIPI_ADD_DATA_VC_2
|
||
#endif /* MRV_MIPI_ADD_DATA_VC_2 */
|
||
/* Slice: ADD_DATA_TYPE_2:*/
|
||
/* data type selector for additional data output */
|
||
#ifdef MRV_MIPI_ADD_DATA_TYPE_2
|
||
#endif /* MRV_MIPI_ADD_DATA_TYPE_2 */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: mipi_add_data_sel_3: Additional Data Selector 3 (0x0000002c)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: ADD_DATA_VC_3:*/
|
||
/* virtual channel selector for additional data output */
|
||
#ifdef MRV_MIPI_ADD_DATA_VC_3
|
||
#endif /* MRV_MIPI_ADD_DATA_VC_3 */
|
||
/* Slice: ADD_DATA_TYPE_3:*/
|
||
/* data type selector for additional data output */
|
||
#ifdef MRV_MIPI_ADD_DATA_TYPE_3
|
||
#endif /* MRV_MIPI_ADD_DATA_TYPE_3 */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: mipi_add_data_sel_4: Additional Data Selector 4 (0x00000030)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: ADD_DATA_VC_4:*/
|
||
/* virtual channel selector for additional data output */
|
||
#ifdef MRV_MIPI_ADD_DATA_VC_4
|
||
#endif /* MRV_MIPI_ADD_DATA_VC_4 */
|
||
/* Slice: ADD_DATA_TYPE_4:*/
|
||
/* data type selector for additional data output */
|
||
#ifdef MRV_MIPI_ADD_DATA_TYPE_4
|
||
#endif /* MRV_MIPI_ADD_DATA_TYPE_4 */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: mipi_add_data_fifo: Additional Data Fifo (0x00000034)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: ADD_DATA_FIFO:*/
|
||
/* lowest 4 bytes in additional data fifo;*/
|
||
/* reading increments fifo read pointer.*/
|
||
/* First embedded data byte will be written to bits 7:0 of 32-bit data word, second data byte written to 15:8 etc.*/
|
||
#ifdef MRV_MIPI_ADD_DATA_FIFO
|
||
#endif /* MRV_MIPI_ADD_DATA_FIFO */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: mipi_add_data_fill_level: additional data fifo fill level
|
||
* (0x00000038)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: ADD_DATA_FILL_LEVEL:*/
|
||
/* FIFO level in dwords for triggering the FILL_LEVEL interrupt,*/
|
||
/* must be 32-bit aligned (bit 0 and bit 1 are hard wired to "00")*/
|
||
#ifdef MRV_MIPI_ADD_DATA_FILL_LEVEL
|
||
#endif /* MRV_MIPI_ADD_DATA_FILL_LEVEL */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: mipi_compressed_mode: controls processing of compressed raw data
|
||
* types (0x0000003c)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: predictor_sel:*/
|
||
/* predictor to be used:*/
|
||
/* 0: predictor 1 */
|
||
/* 1: predictor 2 */
|
||
#ifdef MRV_MIPI_PREDICTOR_SEL
|
||
#define MRV_MIPI_PREDICTOR_SEL_1 0 /* 0: predictor 1 */
|
||
#define MRV_MIPI_PREDICTOR_SEL_2 1 /* 1: predictor 2 */
|
||
#endif /* MRV_MIPI_PREDICTOR_SEL */
|
||
/* Slice: MRV_MIPI_COMP_SCHEME:*/
|
||
/* Compressed raw data types */
|
||
/* 000: 12-8-12 */
|
||
/* 001: 12-8-12 */
|
||
/* 010: 12-8-12 */
|
||
/* 011: 10-8-10 */
|
||
/* 100: 10-7-10 */
|
||
/* 101: 10-6-10 */
|
||
#ifdef MRV_MIPI_COMP_SCHEME
|
||
#define MRV_MIPI_COMP_SCHEME_12_8_12 0 /* 000: 12-8-12 */
|
||
#define MRV_MIPI_COMP_SCHEME_12_7_12 1 /* 001: 12-8-12 */
|
||
#define MRV_MIPI_COMP_SCHEME_12_6_12 2 /* 010: 12-8-12 */
|
||
#define MRV_MIPI_COMP_SCHEME_10_8_10 3 /* 011: 10-8-10 */
|
||
#define MRV_MIPI_COMP_SCHEME_10_7_10 4 /* 100: 10-7-10 */
|
||
#define MRV_MIPI_COMP_SCHEME_10_6_10 5 /* 101: 10-6-10 */
|
||
#endif /* MRV_MIPI_COMP_SCHEME */
|
||
/* Slice: compress_en:*/
|
||
/* 1: enable compressed mode processing */
|
||
/* 0: disable compressed mode */
|
||
#ifdef MRV_MIPI_COMPRESS_EN
|
||
#endif /* MRV_MIPI_COMPRESS_EN */
|
||
/*****************************************************************************/
|
||
/* ISP Image Stabilization Registers */
|
||
/*****************************************************************************/
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_is_ctrl: Image Stabilization Control Register (0x00000000)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: is_en:*/
|
||
/* 1: image stabilization switched on */
|
||
/* 0: image stabilization switched off */
|
||
#ifdef MRV_IS_IS_EN
|
||
#define MRV_IS_IS_EN_PROCESS 1
|
||
#define MRV_IS_IS_EN_BYPASS 0
|
||
#endif /* MRV_IS_IS_EN */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_is_recenter: Recenter register (0x00000004)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: is_recenter:*/
|
||
/* 000: recenter feature switched off */
|
||
/* 1..7: recentering by (cur_h/v_offs-H/V_OFFS)/2^RECENTER */
|
||
#ifdef MRV_IS_IS_RECENTER
|
||
#define MRV_IS_IS_RECENTER_MAX (MRV_IS_IS_RECENTER_MASK >> MRV_IS_IS_RECENTER_SHIFT)
|
||
#endif /* MRV_IS_IS_RECENTER */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_is_h_offs: Horizontal offset of output window (0x00000008)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: is_h_offs:*/
|
||
/* horizontal picture offset in pixel */
|
||
#ifdef MRV_IS_IS_H_OFFS
|
||
#define MRV_IS_IS_H_OFFS_MAX (MRV_IS_IS_H_OFFS_MASK >> MRV_IS_IS_H_OFFS_SHIFT)
|
||
#endif /* MRV_IS_IS_H_OFFS */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_is_v_offs: Vertical offset of output window (0x0000000c)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: is_v_offs:*/
|
||
/* vertical picture offset in lines */
|
||
#ifdef MRV_IS_IS_V_OFFS
|
||
#define MRV_IS_IS_V_OFFS_MAX (MRV_IS_IS_V_OFFS_MASK >> MRV_IS_IS_V_OFFS_SHIFT)
|
||
#endif /* MRV_IS_IS_V_OFFS */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_is_h_size: Output horizontal picture size (0x00000010)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: is_h_size:*/
|
||
/* horizontal picture size in pixel */
|
||
/* if ISP_MODE is set to */
|
||
/* 001-(ITU-R BT.656 YUV),*/
|
||
/* 010-(ITU-R BT.601 YUV),*/
|
||
/* 011-(ITU-R BT.601 Bayer RGB),*/
|
||
/* 101-(ITU-R BT.656 Bayer RGB)*/
|
||
/* only even numbers are accepted, because complete quadruples of YUYV(YCbYCr)*/
|
||
/* are needed for the following modules. If an odd size is programmed the value */
|
||
/* will be truncated to even size.*/
|
||
#ifdef MRV_IS_IS_H_SIZE
|
||
#define MRV_IS_IS_H_SIZE_MAX (MRV_IS_IS_H_SIZE_MASK >> MRV_IS_IS_H_SIZE_SHIFT)
|
||
#endif /* MRV_IS_IS_H_SIZE */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_is_v_size: Output vertical picture size (0x00000014)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: is_v_size:*/
|
||
/* vertical picture size in lines */
|
||
#ifdef MRV_IS_IS_V_SIZE
|
||
#define MRV_IS_IS_V_SIZE_MAX (MRV_IS_IS_V_SIZE_MASK >> MRV_IS_IS_V_SIZE_SHIFT)
|
||
#endif /* MRV_IS_IS_V_SIZE */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_is_max_dx: Maximum Horizontal Displacement (0x00000018)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: is_max_dx:*/
|
||
/* maximum allowed accumulated horizontal displacement in pixels */
|
||
#ifdef MRV_IS_IS_MAX_DX
|
||
#define MRV_IS_IS_MAX_DX_MAX (MRV_IS_IS_MAX_DX_MASK >> MRV_IS_IS_MAX_DX_SHIFT)
|
||
#endif /* MRV_IS_IS_MAX_DX */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_is_max_dy: Maximum Vertical Displacement (0x0000001c)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: is_max_dy:*/
|
||
/* maximum allowed accumulated vertical displacement in lines */
|
||
#ifdef MRV_IS_IS_MAX_DY
|
||
#define MRV_IS_IS_MAX_DY_MAX (MRV_IS_IS_MAX_DY_MASK >> MRV_IS_IS_MAX_DY_SHIFT)
|
||
#endif /* MRV_IS_IS_MAX_DY */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_is_displace: Camera displacement (0x00000020)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: dy:*/
|
||
/* ISP_IS will compensate for vertical camera displacement of DY lines in the next frame */
|
||
#ifdef MRV_IS_DY
|
||
#define MRV_IS_DY_MAX 0x000007FF
|
||
#define MRV_IS_DY_MIN (~MRV_IS_DY_MAX)
|
||
#endif /* MRV_IS_DY */
|
||
/* Slice: dx:*/
|
||
/* ISP_IS will compensate for horizontal camera displacement of DX pixels in the next frame */
|
||
#ifdef MRV_IS_DX
|
||
#define MRV_IS_DX_MAX 0x000007FF
|
||
#define MRV_IS_DX_MIN (~MRV_IS_DX_MAX)
|
||
#endif /* MRV_IS_DX */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_is_h_offs_shd: current horizontal offset of output window
|
||
* (shadow register) (0x00000024)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: is_h_offs_shd:*/
|
||
/* current horizonatl picture offset in lines */
|
||
#ifdef MRV_IS_IS_H_OFFS_SHD
|
||
#endif /* MRV_IS_IS_H_OFFS_SHD */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_is_v_offs_shd: current vertical offset of output window
|
||
* (shadow register) (0x00000028)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: is_v_offs_shd:*/
|
||
/* current vertical picture offset in lines */
|
||
#ifdef MRV_IS_IS_V_OFFS_SHD
|
||
#endif /* MRV_IS_IS_V_OFFS_SHD */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_is_h_size_shd: current output horizontal picture size
|
||
* (shadow register) (0x0000002c)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: isp_h_size_shd:*/
|
||
/* current horizontal picture size in pixel */
|
||
#ifdef MRV_IS_ISP_H_SIZE_SHD
|
||
#endif /* MRV_IS_ISP_H_SIZE_SHD */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_is_v_size_shd: current output vertical picture size
|
||
* (shadow register) (0x00000030)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: isp_v_size_shd:*/
|
||
/* vertical picture size in lines */
|
||
#ifdef MRV_IS_ISP_V_SIZE_SHD
|
||
#endif /* MRV_IS_ISP_V_SIZE_SHD */
|
||
/*****************************************************************************/
|
||
/* ISP Histogram Module Registers */
|
||
/*****************************************************************************/
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_hist_prop: Histogram properties (0x00000000)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: stepsize:*/
|
||
/* histogram predivider, process every (stepsize)th pixel, all other pixels are skipped */
|
||
/* 0,1,2: not allowed */
|
||
/* 3: process every third input pixel */
|
||
/* 4: process every fourth input pixel */
|
||
/* ...*/
|
||
/* 7FH: process every 127th pixel */
|
||
#ifdef MRV_HIST_STEPSIZE
|
||
#define MRV_HIST_STEPSIZE_MIN 0x00000003
|
||
#define MRV_HIST_STEPSIZE_MAX 0x0000007F
|
||
#endif /* MRV_HIST_STEPSIZE */
|
||
/* Slice: hist_mode:*/
|
||
/* histogram mode, luminance is taken at ISP output before output formatter,*/
|
||
/* RGB is taken at xtalk output */
|
||
/**/
|
||
/* 7, 6: must not be used */
|
||
/* 5: Y (luminance) histogram */
|
||
/* 4: B histogram */
|
||
/* 3: G histogram */
|
||
/* 2: R histogram */
|
||
/* 1: RGB combined histogram */
|
||
/* 0: disable, no measurements */
|
||
#ifdef MRV_HIST_MODE
|
||
#define MRV_HIST_MODE_MAX 5 /* because 6 and 7 are reserved */
|
||
#define MRV_HIST_MODE_LUM 5 /* 5: Y (luminance) histogram */
|
||
#define MRV_HIST_MODE_B 4 /* 4: B histogram */
|
||
#define MRV_HIST_MODE_G 3 /* 3: G histogram */
|
||
#define MRV_HIST_MODE_R 2 /* 2: R histogram */
|
||
#define MRV_HIST_MODE_RGB 1 /* 1: RGB combined histogram */
|
||
#define MRV_HIST_MODE_NONE 0 /* 0: disable, no measurements */
|
||
#endif /* MRV_HIST_MODE */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_hist_h_offs: Histogram window horizontal offset for first
|
||
* window of 25 sub-windows (0x00000004)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: hist_h_offset:*/
|
||
/* Horizontal offset of first window in pixels.*/
|
||
#ifdef MRV_HIST_H_OFFSET
|
||
#endif /* MRV_HIST_H_OFFSET */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_hist_v_offs: Histogram window vertical offset for first
|
||
* window of 25 sub-windows (0x00000008)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: hist_v_offset:*/
|
||
/* Vertical offset of first window in pixels.*/
|
||
#ifdef MRV_HIST_V_OFFSET
|
||
#endif /* MRV_HIST_V_OFFSET */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_hist_h_size: Horizontal (sub-)window size (0x0000000c)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: hist_h_size:*/
|
||
/* Horizontal size in pixels of one sub-window, if histogram version 3 is implemented.*/
|
||
#ifdef MRV_HIST_H_SIZE
|
||
#endif /* MRV_HIST_H_SIZE */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_hist_v_size: Vertical (sub-)window size (0x00000010)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: hist_v_size:*/
|
||
/* Vertical size in lines of one sub-window, if histogram version 3 is implemented.*/
|
||
#ifdef MRV_HIST_V_SIZE
|
||
#endif /* MRV_HIST_V_SIZE */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register array: isp_hist_bin: histogram measurement result bin
|
||
* (0x028 + n*0x4 (n=0..15))
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: hist_bin_n:*/
|
||
/* measured bin count as 16-bit unsigned integer value plus 4 bit fractional part */
|
||
#ifdef MRV_HIST_BIN_N
|
||
#define MRV_HIST_BIN_N_MAX (MRV_HIST_BIN_N_MASK >> MRV_HIST_BIN_N_SHIFT)
|
||
#endif /* MRV_HIST_BIN_N */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_hist_weight_00to30: Weighting factor for sub-windows
|
||
* (0x00000054)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: hist_weight_30:*/
|
||
/* weighting factor for sub-window 30 */
|
||
#ifdef MRV_HIST_WEIGHT_30
|
||
#endif /* MRV_HIST_WEIGHT_30 */
|
||
/* Slice: hist_weight_20:*/
|
||
/* weighting factor for sub-window 20 */
|
||
#ifdef MRV_HIST_WEIGHT_20
|
||
#endif /* MRV_HIST_WEIGHT_20 */
|
||
/* Slice: hist_weight_10:*/
|
||
/* weighting factor for sub-window 10 */
|
||
#ifdef MRV_HIST_WEIGHT_10
|
||
#endif /* MRV_HIST_WEIGHT_10 */
|
||
/* Slice: hist_weight_00:*/
|
||
/* weighting factor for sub-window 00 */
|
||
#ifdef MRV_HIST_WEIGHT_00
|
||
#endif /* MRV_HIST_WEIGHT_00 */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_hist_weight_40to21: Weighting factor for sub-windows
|
||
* (0x00000058)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: hist_weight_21:*/
|
||
/* weighting factor for sub-window 21 */
|
||
#ifdef MRV_HIST_WEIGHT_21
|
||
#endif /* MRV_HIST_WEIGHT_21 */
|
||
/* Slice: hist_weight_11:*/
|
||
/* weighting factor for sub-window 11 */
|
||
#ifdef MRV_HIST_WEIGHT_11
|
||
#endif /* MRV_HIST_WEIGHT_11 */
|
||
/* Slice: hist_weight_01:*/
|
||
/* weighting factor for sub-window 01 */
|
||
#ifdef MRV_HIST_WEIGHT_01
|
||
#endif /* MRV_HIST_WEIGHT_01 */
|
||
/* Slice: hist_weight_40:*/
|
||
/* weighting factor for sub-window 40 */
|
||
#ifdef MRV_HIST_WEIGHT_40
|
||
#endif /* MRV_HIST_WEIGHT_40 */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_hist_weight_31to12: Weighting factor for sub-windows
|
||
* (0x0000005c)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: hist_weight_12:*/
|
||
/* weighting factor for sub-window 12 */
|
||
#ifdef MRV_HIST_WEIGHT_12
|
||
#endif /* MRV_HIST_WEIGHT_12 */
|
||
/* Slice: hist_weight_02:*/
|
||
/* weighting factor for sub-window 02 */
|
||
#ifdef MRV_HIST_WEIGHT_02
|
||
#endif /* MRV_HIST_WEIGHT_02 */
|
||
/* Slice: hist_weight_41:*/
|
||
/* weighting factor for sub-window 41 */
|
||
#ifdef MRV_HIST_WEIGHT_41
|
||
#endif /* MRV_HIST_WEIGHT_41 */
|
||
/* Slice: hist_weight_31:*/
|
||
/* weighting factor for sub-window 31 */
|
||
#ifdef MRV_HIST_WEIGHT_31
|
||
#endif /* MRV_HIST_WEIGHT_31 */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_hist_weight_22to03: Weighting factor for sub-windows
|
||
* (0x00000060)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: hist_weight_03:*/
|
||
/* weighting factor for sub-window 03 */
|
||
#ifdef MRV_HIST_WEIGHT_03
|
||
#endif /* MRV_HIST_WEIGHT_03 */
|
||
/* Slice: hist_weight_42:*/
|
||
/* weighting factor for sub-window 42 */
|
||
#ifdef MRV_HIST_WEIGHT_42
|
||
#endif /* MRV_HIST_WEIGHT_42 */
|
||
/* Slice: hist_weight_32:*/
|
||
/* weighting factor for sub-window 32 */
|
||
#ifdef MRV_HIST_WEIGHT_32
|
||
#endif /* MRV_HIST_WEIGHT_32 */
|
||
/* Slice: hist_weight_22:*/
|
||
/* weighting factor for sub-window 22 */
|
||
#ifdef MRV_HIST_WEIGHT_22
|
||
#endif /* MRV_HIST_WEIGHT_22 */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_hist_weight_13to43: Weighting factor for sub-windows
|
||
* (0x00000064)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: hist_weight_43:*/
|
||
/* weighting factor for sub-window 43 */
|
||
#ifdef MRV_HIST_WEIGHT_43
|
||
#endif /* MRV_HIST_WEIGHT_43 */
|
||
/* Slice: hist_weight_33:*/
|
||
/* weighting factor for sub-window 33 */
|
||
#ifdef MRV_HIST_WEIGHT_33
|
||
#endif /* MRV_HIST_WEIGHT_33 */
|
||
/* Slice: hist_weight_23:*/
|
||
/* weighting factor for sub-window 23 */
|
||
#ifdef MRV_HIST_WEIGHT_23
|
||
#endif /* MRV_HIST_WEIGHT_23 */
|
||
/* Slice: hist_weight_13:*/
|
||
/* weighting factor for sub-window 13 */
|
||
#ifdef MRV_HIST_WEIGHT_13
|
||
#endif /* MRV_HIST_WEIGHT_13 */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_hist_weight_04to34: Weighting factor for sub-windows
|
||
* (0x00000068)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: hist_weight_34:*/
|
||
/* weighting factor for sub-window 34 */
|
||
#ifdef MRV_HIST_WEIGHT_34
|
||
#endif /* MRV_HIST_WEIGHT_34 */
|
||
/* Slice: hist_weight_24:*/
|
||
/* weighting factor for sub-window 24 */
|
||
#ifdef MRV_HIST_WEIGHT_24
|
||
#endif /* MRV_HIST_WEIGHT_24 */
|
||
/* Slice: hist_weight_14:*/
|
||
/* weighting factor for sub-window 14 */
|
||
#ifdef MRV_HIST_WEIGHT_14
|
||
#endif /* MRV_HIST_WEIGHT_14 */
|
||
/* Slice: hist_weight_04:*/
|
||
/* weighting factor for sub-window 04 */
|
||
#ifdef MRV_HIST_WEIGHT_04
|
||
#endif /* MRV_HIST_WEIGHT_04 */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_hist_weight_44: Weighting factor for sub-windows (0x0000006c)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: hist_weight_44:*/
|
||
/* weighting factor for sub-window 44 */
|
||
#ifdef MRV_HIST_WEIGHT_44
|
||
#endif /* MRV_HIST_WEIGHT_44 */
|
||
#define MRV_HIST_WEIGHT_MAX 0x10
|
||
/*****************************************************************************/
|
||
/* ISP Filter Module Registers */
|
||
/*****************************************************************************/
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_filt_mode: mode control register for the filter block
|
||
* (0x00000000)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: stage1_select:*/
|
||
/* Green filter stage 1 select (range 0x0...0x8)*/
|
||
/* 0x0 maximum blurring */
|
||
/* 0x4 Default */
|
||
/* 0x7 minimum blurring */
|
||
/* 0x8 filter stage1 bypass */
|
||
/* For a detailed description refer to chapter "ISP Filter Programming" of user manual */
|
||
#ifdef MRV_FILT_STAGE1_SELECT
|
||
#define MRV_FILT_STAGE1_SELECT_MAX_BLUR 0U /* 0x0 maximum blurring */
|
||
#define MRV_FILT_STAGE1_SELECT_DEFAULT 4U /* 0x4 Default */
|
||
#define MRV_FILT_STAGE1_SELECT_MIN_BLUR 7U /* 0x7 minimum blurring */
|
||
#define MRV_FILT_STAGE1_SELECT_BYPASS 8U /* 0x8 filter stage1 bypass */
|
||
#endif /* MRV_FILT_STAGE1_SELECT */
|
||
/* Slice: filt_chr_h_mode:*/
|
||
/* Chroma filter horizontal mode */
|
||
/* 00 horizontal chroma filter bypass */
|
||
/* 01 horizontal chroma filter 1 static mask = [10 12 10]*/
|
||
/* 10 horizontal chroma filter 2 (dynamic blur1)*/
|
||
/* 11 horizontal chroma filter 3 (dynamic blur2) Default */
|
||
#ifdef MRV_FILT_FILT_CHR_H_MODE
|
||
#define MRV_FILT_FILT_CHR_H_MODE_BYPASS 0U /* 00 horizontal chroma filter bypass */
|
||
#define MRV_FILT_FILT_CHR_H_MODE_STATIC 1U /* 01 horizontal chroma filter 1 static mask = [10 12 10] */
|
||
#define MRV_FILT_FILT_CHR_H_MODE_DYN_1 2U /* 10 horizontal chroma filter 2 (dynamic blur1) */
|
||
#define MRV_FILT_FILT_CHR_H_MODE_DYN_2 3U /* 11 horizontal chroma filter 3 (dynamic blur2) Default */
|
||
#endif /* MRV_FILT_FILT_CHR_H_MODE */
|
||
/* Slice: filt_chr_v_mode:*/
|
||
/* Chroma filter vertical mode */
|
||
/* 00 vertical chroma filter bypass */
|
||
/* 01 vertical chroma filter 1 static [8 16 8]*/
|
||
/* 10 vertical chroma filter 2 static [10 12 10]*/
|
||
/* 11 vertical chroma filter 3 static [12 8 12] Default */
|
||
#ifdef MRV_FILT_FILT_CHR_V_MODE
|
||
#define MRV_FILT_FILT_CHR_V_MODE_BYPASS 0U /* 00 vertical chroma filter bypass */
|
||
#define MRV_FILT_FILT_CHR_V_MODE_STATIC8 1U /* 01 vertical chroma filter 1 static [8 16 8] */
|
||
#define MRV_FILT_FILT_CHR_V_MODE_STATIC10 2U /* 10 vertical chroma filter 2 static [10 12 10] */
|
||
#define MRV_FILT_FILT_CHR_V_MODE_STATIC12 3U /* 11 vertical chroma filter 3 static [12 8 12] Default */
|
||
#endif /* MRV_FILT_FILT_CHR_V_MODE */
|
||
/* Slice: filt_mode:*/
|
||
/* 0 green filter static mode (active filter factor = FILT_FAC_MID)*/
|
||
/* 1 dynamic noise reduction/sharpen Default */
|
||
#ifdef MRV_FILT_FILT_MODE
|
||
#define MRV_FILT_FILT_MODE_STATIC 0U /* 0 green filter static mode (active filter factor = FILT_FAC_MID) */
|
||
#define MRV_FILT_FILT_MODE_DYNAMIC 1U /* 1 dynamic noise reduction/sharpen Default */
|
||
#endif /* MRV_FILT_FILT_MODE */
|
||
/* Slice: filt_enable:*/
|
||
/* 1 enable filter */
|
||
/* 0 bypass filter Default */
|
||
#ifdef MRV_FILT_FILT_ENABLE
|
||
#define MRV_FILT_FILT_ENABLE_PROCESS 1U
|
||
#define MRV_FILT_FILT_ENABLE_BYPASS 0U
|
||
#endif /* MRV_FILT_FILT_ENABLE */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_filt_thresh_bl0: Blurring threshold 0 (0x00000028)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: filt_thresh_bl0:*/
|
||
/* If filt_thresh_bl1 < sum_grad < filt_thresh_bl0 then filt_fac_bl0 is selected */
|
||
#ifdef MRV_FILT_FILT_THRESH_BL0
|
||
#endif /* MRV_FILT_FILT_THRESH_BL0 */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_filt_thresh_bl1: Blurring threshold 1 (0x0000002c)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: filt_thresh_bl1:*/
|
||
/* If sum_grad < filt_thresh_bl1 then filt_fac_bl1 is selected */
|
||
#ifdef MRV_FILT_FILT_THRESH_BL1
|
||
#endif /* MRV_FILT_FILT_THRESH_BL1 */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_filt_thresh_sh0: Sharpening threshold 0 (0x00000030)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: filt_thresh_sh0:*/
|
||
/* If filt_thresh_sh0 < sum_grad < filt_thresh_sh1 then filt_thresh_sh0 is selected */
|
||
#ifdef MRV_FILT_FILT_THRESH_SH0
|
||
#endif /* MRV_FILT_FILT_THRESH_SH0 */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_filt_thresh_sh1: Sharpening threshold 1 (0x00000034)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: filt_thresh_sh1:*/
|
||
/* If filt_thresh_sh1 < sum_grad then filt_thresh_sh1 is selected */
|
||
#ifdef MRV_FILT_FILT_THRESH_SH1
|
||
#endif /* MRV_FILT_FILT_THRESH_SH1 */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_filt_lum_weight: Parameters for luminance weight function
|
||
* (0x00000038)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: lum_weight_gain:*/
|
||
/* Gain select of luminance weight function */
|
||
#ifdef MRV_FILT_LUM_WEIGHT_GAIN
|
||
#endif /* MRV_FILT_LUM_WEIGHT_GAIN */
|
||
/* Slice: lum_weight_kink:*/
|
||
/* Kink position of luminance weight function */
|
||
#ifdef MRV_FILT_LUM_WEIGHT_KINK
|
||
#endif /* MRV_FILT_LUM_WEIGHT_KINK */
|
||
/* Slice: lum_weight_min:*/
|
||
/* Minimum value of luminance weight function */
|
||
#ifdef MRV_FILT_LUM_WEIGHT_MIN
|
||
#endif /* MRV_FILT_LUM_WEIGHT_MIN */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_filt_fac_sh1: filter factor sharp1 (0x0000003c)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: filt_fac_sh1:*/
|
||
/* Filter factor for sharp1 level */
|
||
#ifdef MRV_FILT_FILT_FAC_SH1
|
||
#endif /* MRV_FILT_FILT_FAC_SH1 */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_filt_fac_sh0: filter factor sharp0 (0x00000040)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: filt_fac_sh0:*/
|
||
/* Filter factor for sharp0 level */
|
||
#ifdef MRV_FILT_FILT_FAC_SH0
|
||
#endif /* MRV_FILT_FILT_FAC_SH0 */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_filt_fac_mid: filter factor middle (0x00000044)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: filt_fac_mid:*/
|
||
/* Filter factor for mid level and for static filter mode */
|
||
#ifdef MRV_FILT_FILT_FAC_MID
|
||
#endif /* MRV_FILT_FILT_FAC_MID */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_filt_fac_bl0: Parameter for blur 0 filter (0x00000048)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: filt_fac_bl0:*/
|
||
/* Filter factor for blur 0 level */
|
||
#ifdef MRV_FILT_FILT_FAC_BL0
|
||
#endif /* MRV_FILT_FILT_FAC_BL0 */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_filt_fac_bl1: Parameter for blur 1 filter (0x0000004c)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: filt_fac_bl1:*/
|
||
/* Filter factor for blur 1 level (max blur)*/
|
||
#ifdef MRV_FILT_FILT_FAC_BL1
|
||
#endif /* MRV_FILT_FILT_FAC_BL1 */
|
||
/*****************************************************************************/
|
||
/* ISP Auto Focus Measurement Registers */
|
||
/*****************************************************************************/
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_afm_ctrl: This is the control register for AF measurement
|
||
* unit (0x00000000)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: afm_en:*/
|
||
/* AF measurement enable */
|
||
/* 0: AF measurement is disabled */
|
||
/* 1: AF measurement is enabled */
|
||
/* Writing a 1 to this register starts a new measurement and resets the afm_fin (measurement finished) interrupt to 0.*/
|
||
/* As long as the afm_en is 1, the AFM unit calculates new sharpness values for each frame.*/
|
||
#ifdef MRV_AFM_AFM_EN
|
||
#define MRV_AFM_AFM_EN_ENABLE 1 /* 1: enable AF measurment */
|
||
#define MRV_AFM_AFM_EN_DISABLE 0 /* 0: processing is deactivated, bypass mode is selected */
|
||
#endif /* MRV_AFM_AFM_EN */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_afm_lt_a: Top Left corner of measure window A (0x00000004)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: a_h_l:*/
|
||
/* first pixel of window A (horizontal left row), value must be greater or equal 5 */
|
||
#ifdef MRV_AFM_A_H_L
|
||
#define MRV_AFM_A_H_L_MIN (5U)
|
||
#define MRV_AFM_A_H_L_MAX (MRV_AFM_A_H_L_MASK >> MRV_AFM_A_H_L_SHIFT)
|
||
#endif /* MRV_AFM_A_H_L */
|
||
/* Slice: a_v_t:*/
|
||
/* first line of window A (vertical top line), value must be greater or equal 2 */
|
||
#ifdef MRV_AFM_A_V_T
|
||
#define MRV_AFM_A_V_T_MIN (2U)
|
||
#define MRV_AFM_A_V_T_MAX (MRV_AFM_A_V_T_MASK >> MRV_AFM_A_V_T_SHIFT)
|
||
#endif /* MRV_AFM_A_V_T */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_afm_rb_a: Bottom right corner of measure window A (0x00000008)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: a_h_r:*/
|
||
/* last pixel of window A (horizontal right row)*/
|
||
#ifdef MRV_AFM_A_H_R
|
||
#define MRV_AFM_A_H_R_MIN (5U)
|
||
#define MRV_AFM_A_H_R_MAX (MRV_AFM_A_H_R_MASK >> MRV_AFM_A_H_R_SHIFT)
|
||
#endif /* MRV_AFM_A_H_R */
|
||
/* Slice: a_v_b:*/
|
||
/* last line of window A (vertical bottom line), value must be lower than */
|
||
/* (number of lines -2)*/
|
||
#ifdef MRV_AFM_A_V_B
|
||
#define MRV_AFM_A_V_B_MIN (2U)
|
||
#define MRV_AFM_A_V_B_MAX (MRV_AFM_A_V_B_MASK >> MRV_AFM_A_V_B_SHIFT)
|
||
#endif /* MRV_AFM_A_V_B */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_afm_lt_b: Top left corner of measure window B (0x0000000c)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: b_h_l:*/
|
||
/* first pixel of window B (horizontal left row), value must be greater or equal 5 */
|
||
#ifdef MRV_AFM_B_H_L
|
||
#define MRV_AFM_B_H_L_MIN (5U)
|
||
#define MRV_AFM_B_H_L_MAX (MRV_AFM_B_H_L_MASK >> MRV_AFM_B_H_L_SHIFT)
|
||
#endif /* MRV_AFM_B_H_L */
|
||
/* Slice: b_v_t:*/
|
||
/* first line of window B (vertical top line), value must be greater or equal 2 */
|
||
#ifdef MRV_AFM_B_V_T
|
||
#define MRV_AFM_B_V_T_MIN (2U)
|
||
#define MRV_AFM_B_V_T_MAX (MRV_AFM_B_V_T_MASK >> MRV_AFM_B_V_T_SHIFT)
|
||
#endif /* MRV_AFM_B_V_T */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_afm_rb_b: Bottom right corner of measure window B (0x00000010)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: b_h_r:*/
|
||
/* last pixel of window B (horizontal right row)*/
|
||
#ifdef MRV_AFM_B_H_R
|
||
#define MRV_AFM_B_H_R_MIN (5U)
|
||
#define MRV_AFM_B_H_R_MAX (MRV_AFM_B_H_R_MASK >> MRV_AFM_B_H_R_SHIFT)
|
||
#endif /* MRV_AFM_B_H_R */
|
||
/* Slice: b_v_b:*/
|
||
/* last line of window B (vertical bottom line), value must be lower than */
|
||
/* (number of lines -2)*/
|
||
#ifdef MRV_AFM_B_V_B
|
||
#define MRV_AFM_B_V_B_MIN (2U)
|
||
#define MRV_AFM_B_V_B_MAX (MRV_AFM_B_V_B_MASK >> MRV_AFM_B_V_B_SHIFT)
|
||
#endif /* MRV_AFM_B_V_B */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_afm_lt_c: Top left corner of measure window C (0x00000014)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: c_h_l:*/
|
||
/* first pixel of window C (horizontal left row), value must be greater or equal 5 */
|
||
#ifdef MRV_AFM_C_H_L
|
||
#define MRV_AFM_C_H_L_MIN (5U)
|
||
#define MRV_AFM_C_H_L_MAX (MRV_AFM_C_H_L_MASK >> MRV_AFM_C_H_L_SHIFT)
|
||
#endif /* MRV_AFM_C_H_L */
|
||
/* Slice: c_v_t:*/
|
||
/* first line of window C (vertical top line), value must be greater or equal 2 */
|
||
#ifdef MRV_AFM_C_V_T
|
||
#define MRV_AFM_C_V_T_MIN (2U)
|
||
#define MRV_AFM_C_V_T_MAX (MRV_AFM_C_V_T_MASK >> MRV_AFM_C_V_T_SHIFT)
|
||
#endif /* MRV_AFM_C_V_T */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_afm_rb_c: Bottom right corner of measure window C (0x00000018)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: c_h_r:*/
|
||
/* last pixel of window C (horizontal right row)*/
|
||
#ifdef MRV_AFM_C_H_R
|
||
#define MRV_AFM_C_H_R_MIN (5U)
|
||
#define MRV_AFM_C_H_R_MAX (MRV_AFM_C_H_R_MASK >> MRV_AFM_C_H_R_SHIFT)
|
||
#endif /* MRV_AFM_C_H_R */
|
||
/* Slice: c_v_b:*/
|
||
/* last line of window C (vertical bottom line), value must be lower than */
|
||
/* (number of lines -2)*/
|
||
#ifdef MRV_AFM_C_V_B
|
||
#define MRV_AFM_C_V_B_MIN (2U)
|
||
#define MRV_AFM_C_V_B_MAX (MRV_AFM_C_V_B_MASK >> MRV_AFM_C_V_B_SHIFT)
|
||
#endif /* MRV_AFM_C_V_B */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_afm_thres: Threshold register (0x0000001c)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: afm_thres:*/
|
||
/* AF measurement threshold */
|
||
/* This register defines a threshold which can be used for minimizing the */
|
||
/* influence of noise in the measurement result.*/
|
||
#ifdef MRV_AFM_AFM_THRES
|
||
#endif /* MRV_AFM_AFM_THRES */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_afm_var_shift: Variable shift register (0x00000020)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: lum_var_shift:*/
|
||
/* variable shift for luminance summation */
|
||
/* The lum_var_shift defines the number of bits for the shift operation of the */
|
||
/* value of the current pixel before summation. The shift operation is used to */
|
||
/* avoid a luminance sum overflow.*/
|
||
#ifdef MRV_AFM_LUM_VAR_SHIFT
|
||
#endif /* MRV_AFM_LUM_VAR_SHIFT */
|
||
/* Slice: afm_var_shift:*/
|
||
/* variable shift for AF measurement */
|
||
/* The afm_var_shift defines the number of bits for the shift operation at the */
|
||
/* end of the calculation chain. The shift operation is used to avoid an AF */
|
||
/* measurement sum overflow.*/
|
||
#ifdef MRV_AFM_AFM_VAR_SHIFT
|
||
#endif /* MRV_AFM_AFM_VAR_SHIFT */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_afm_sum_a: Sharpness Value Status Register of Window A (0x0024)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: afm_sum_a:*/
|
||
/* sharpness value of window A */
|
||
#ifdef MRV_AFM_AFM_SUM_A
|
||
#endif /* MRV_AFM_AFM_SUM_A */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_afm_sum_b: Sharpness Value Status Register of Window B (0x0028)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: afm_sum_b:*/
|
||
/* sharpness value of window B */
|
||
#ifdef MRV_AFM_AFM_SUM_B
|
||
#endif /* MRV_AFM_AFM_SUM_B */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_afm_sum_c: Sharpness Value Status Register of Window C (0x002c)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: afm_sum_c:*/
|
||
/* sharpness value of window C */
|
||
#ifdef MRV_AFM_AFM_SUM_C
|
||
#endif /* MRV_AFM_AFM_SUM_C */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_afm_lum_a: Luminance Value Status Register of Window A (0x0030)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: afm_lum_a:*/
|
||
/* luminance value of window A */
|
||
#ifdef MRV_AFM_AFM_LUM_A
|
||
#endif /* MRV_AFM_AFM_LUM_A */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_afm_lum_b: Luminance Value Status Register of Window B (0x0034)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: afm_lum_b:*/
|
||
/* luminance value of window B */
|
||
#ifdef MRV_AFM_AFM_LUM_B
|
||
#endif /* MRV_AFM_AFM_LUM_B */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_afm_lum_c: Luminance Value Status Register of Window C (0x0038)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: afm_lum_c:*/
|
||
/* luminance value of window C */
|
||
#ifdef MRV_AFM_AFM_LUM_C
|
||
#endif /* MRV_AFM_AFM_LUM_C */
|
||
/*****************************************************************************/
|
||
/* ISP Lens Shade Correction Registers */
|
||
/*****************************************************************************/
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_lsc_ctrl: Lens shade control (0x00000000)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: lsc_en:*/
|
||
/* 0: activation request for lens shading correction */
|
||
/* 1: deactivation reqeust for lens shading correction */
|
||
/* Activation/Deactivation is object of a shadowing mechnism. The current */
|
||
/* status is visible at ISP_LSC_STATUS::lsc_enable_status */
|
||
#ifdef MRV_LSC_LSC_EN
|
||
#define MRV_LSC_LSC_EN_ENABLE 1U
|
||
#define MRV_LSC_LSC_EN_DISABLE 0U
|
||
#endif /* MRV_LSC_LSC_EN */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_lsc_r_table_addr: Table RAM Address for red component (0x00000004)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: r_ram_addr:*/
|
||
/* table address in RAM for samples of the R color component.*/
|
||
/* Will be automatically incremented by each read or write access to the table.*/
|
||
/* Valid addresses are in the range 0 to 152 for Bank0 and 153 to 305 for Bank1 */
|
||
/* (if available).*/
|
||
#ifdef MRV_LSC_R_RAM_ADDR
|
||
#define MRV_LSC_R_RAM_ADDR_MIN_BANK0 (0x00000000U)
|
||
#define MRV_LSC_R_RAM_ADDR_MAX_BANK0 (0x00000098U)
|
||
#define MRV_LSC_R_RAM_ADDR_MIN_BANK1 (0x00000099U)
|
||
#define MRV_LSC_R_RAM_ADDR_MAX_BANK1 (0x00000132U)
|
||
#endif /* MRV_LSC_R_RAM_ADDR */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_lsc_gr_table_addr: Table RAM Address for green (red) component
|
||
* (0x00000008)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: gr_ram_addr:*/
|
||
/* table address in RAM for samples of the G_R color component.*/
|
||
/* Will be automatically incremented by each read or write access to the table.*/
|
||
/* Valid addresses are in the range 0 to 152 for Bank0 and 153 to 305 for Bank1 */
|
||
/* (if available).*/
|
||
#ifdef MRV_LSC_GR_RAM_ADDR
|
||
#define MRV_LSC_GR_RAM_ADDR_MIN_BANK0 (0x00000000U)
|
||
#define MRV_LSC_GR_RAM_ADDR_MAX_BANK0 (0x00000098U)
|
||
#define MRV_LSC_GR_RAM_ADDR_MIN_BANK1 (0x00000099U)
|
||
#define MRV_LSC_GR_RAM_ADDR_MAX_BANK1 (0x00000131U)
|
||
#endif /* MRV_LSC_GR_RAM_ADDR */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_lsc_b_table_addr: Table RAM Address for blue component
|
||
* (0x0000000c)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: b_ram_addr:*/
|
||
/* table address in RAM for samples of the B color component.*/
|
||
/* Will be automatically incremented by each read or write access to the table.*/
|
||
/* Valid addresses are in the range 0 to 152 for Bank0 and 153 to 305 for Bank1 */
|
||
/* (if available).*/
|
||
#ifdef MRV_LSC_B_RAM_ADDR
|
||
#define MRV_LSC_B_RAM_ADDR_MIN_BANK0 (0x00000000U)
|
||
#define MRV_LSC_B_RAM_ADDR_MAX_BANK0 (0x00000098U)
|
||
#define MRV_LSC_B_RAM_ADDR_MIN_BANK1 (0x00000099U)
|
||
#define MRV_LSC_B_RAM_ADDR_MAX_BANK1 (0x00000132U)
|
||
#endif /* MRV_LSC_B_RAM_ADDR */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_lsc_gb_table_addr: Table RAM Address for green (blue) component
|
||
* (0x00000010)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: gb_ram_addr:*/
|
||
/* table address in RAM for samples of the G_B color component.*/
|
||
/* Will be automatically incremented by each read or write access to the table.*/
|
||
/* Valid addresses are in the range 0 to 152 for Bank0 and 153 to 305 for Bank1 */
|
||
/* (if available).*/
|
||
#ifdef MRV_LSC_GB_RAM_ADDR
|
||
#define MRV_LSC_GB_RAM_ADDR_MIN_BANK0 (0x00000000U)
|
||
#define MRV_LSC_GB_RAM_ADDR_MAX_BANK0 (0x00000098U)
|
||
#define MRV_LSC_GB_RAM_ADDR_MIN_BANK1 (0x00000099U)
|
||
#define MRV_LSC_GB_RAM_ADDR_MAX_BANK1 (0x00000132U)
|
||
#endif /* MRV_LSC_GB_RAM_ADDR */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_lsc_r_table_data: Sample table red (0x00000014)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: r_sample_1:*/
|
||
/* correction factor at sample point (fixed point number: 2 bits integer with */
|
||
/* 10-bit fractional part, range 1..3.999)*/
|
||
#ifdef MRV_LSC_R_SAMPLE_1
|
||
#endif /* MRV_LSC_R_SAMPLE_1 */
|
||
/* Slice: r_sample_0:*/
|
||
/* correction factor at sample point (fixed point number: 2 bits integer with */
|
||
/* 10-bit fractional part, range 1..3.999)*/
|
||
#ifdef MRV_LSC_R_SAMPLE_0
|
||
#endif /* MRV_LSC_R_SAMPLE_0 */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_lsc_gr_table_data: Sample table green (red) (0x00000018)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: gr_sample_1:*/
|
||
/* correction factor at sample point (fixed point number: 2 bits integer with */
|
||
/* 10-bit fractional part, range 1..3.999)*/
|
||
#ifdef MRV_LSC_GR_SAMPLE_1
|
||
#endif /* MRV_LSC_GR_SAMPLE_1 */
|
||
/* Slice: gr_sample_0:*/
|
||
/* correction factor at sample point (fixed point number: 2 bits integer with */
|
||
/* 10-bit fractional part, range 1..3.999)*/
|
||
#ifdef MRV_LSC_GR_SAMPLE_0
|
||
#endif /* MRV_LSC_GR_SAMPLE_0 */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: Register: isp_lsc_b_table_data: Sample table blue (0x0000001c)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: b_sample_1:*/
|
||
/* correction factor at sample point (fixed point number: 2 bits integer with */
|
||
/* 10-bit fractional part, range 1..3.999)*/
|
||
#ifdef MRV_LSC_B_SAMPLE_1
|
||
#endif /* MRV_LSC_B_SAMPLE_1 */
|
||
/* Slice: b_sample_0:*/
|
||
/* correction factor at sample point (fixed point number: 2 bits integer with */
|
||
/* 10-bit fractional part, range 1..3.999)*/
|
||
#ifdef MRV_LSC_B_SAMPLE_0
|
||
#endif /* MRV_LSC_B_SAMPLE_0 */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_lsc_gb_table_data: Sample table green (blue) (0x00000020)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: gb_sample_1:*/
|
||
/* correction factor at sample point (fixed point number: 2 bits integer with */
|
||
/* 10-bit fractional part, range 1..3.999)*/
|
||
#ifdef MRV_LSC_GB_SAMPLE_1
|
||
#endif /* MRV_LSC_GB_SAMPLE_1 */
|
||
/* Slice: gb_sample_0:*/
|
||
/* correction factor at sample point (fixed point number: 2 bits integer with */
|
||
/* 10-bit fractional part, range 1..3.999)*/
|
||
#ifdef MRV_LSC_GB_SAMPLE_0
|
||
#endif /* MRV_LSC_GB_SAMPLE_0 */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_lsc_xgrad_01: Gradient table x (0x00000024)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: xgrad_1:*/
|
||
/* factor for x-gradient calculation of sector 1 */
|
||
#ifdef MRV_LSC_XGRAD_1
|
||
#endif /* MRV_LSC_XGRAD_1 */
|
||
/* Slice: xgrad_0:*/
|
||
/* factor for x-gradient calculation of sector 0 */
|
||
#ifdef MRV_LSC_XGRAD_0
|
||
#endif /* MRV_LSC_XGRAD_0 */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_lsc_xgrad_23: Gradient table x (0x00000028)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: xgrad_3:*/
|
||
/* factor for x-gradient calculation of sector 3 */
|
||
#ifdef MRV_LSC_XGRAD_3
|
||
#endif /* MRV_LSC_XGRAD_3 */
|
||
/* Slice: xgrad_2:*/
|
||
/* factor for x-gradient calculation of sector 2 */
|
||
#ifdef MRV_LSC_XGRAD_2
|
||
#endif /* MRV_LSC_XGRAD_2 */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_lsc_xgrad_45: Gradient table x (0x0000002c)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: xgrad_5:*/
|
||
/* factor for x-gradient calculation of sector 5 */
|
||
#ifdef MRV_LSC_XGRAD_5
|
||
#endif /* MRV_LSC_XGRAD_5 */
|
||
/* Slice: xgrad_4:*/
|
||
/* factor for x-gradient calculation of sector 4 */
|
||
#ifdef MRV_LSC_XGRAD_4
|
||
#endif /* MRV_LSC_XGRAD_4 */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_lsc_xgrad_67: Gradient table x (0x00000030)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: xgrad_7:*/
|
||
/* factor for x-gradient calculation of sector 7 */
|
||
#ifdef MRV_LSC_XGRAD_7
|
||
#endif /* MRV_LSC_XGRAD_7 */
|
||
/* Slice: xgrad_6:*/
|
||
/* factor for x-gradient calculation of sector 6 */
|
||
#ifdef MRV_LSC_XGRAD_6
|
||
#endif /* MRV_LSC_XGRAD_6 */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_lsc_ygrad_01: Gradient table y (0x00000034)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: ygrad_1:*/
|
||
/* factor for y-gradient calculation of sector 1 */
|
||
#ifdef MRV_LSC_YGRAD_1
|
||
#endif /* MRV_LSC_YGRAD_1 */
|
||
/* Slice: ygrad_0:*/
|
||
/* factor for y-gradient calculation of sector 0 */
|
||
#ifdef MRV_LSC_YGRAD_0
|
||
#endif /* MRV_LSC_YGRAD_0 */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_lsc_ygrad_23: Gradient table y (0x00000038)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: ygrad_3:*/
|
||
/* factor for y-gradient calculation of sector 3 */
|
||
#ifdef MRV_LSC_YGRAD_3
|
||
#endif /* MRV_LSC_YGRAD_3 */
|
||
/* Slice: ygrad_2:*/
|
||
/* factor for y-gradient calculation of sector 2 */
|
||
#ifdef MRV_LSC_YGRAD_2
|
||
#endif /* MRV_LSC_YGRAD_2 */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_lsc_ygrad_45: Gradient table y (0x0000003c)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: ygrad_5:*/
|
||
/* factor for y-gradient calculation of sector 5 */
|
||
#ifdef MRV_LSC_YGRAD_5
|
||
#endif /* MRV_LSC_YGRAD_5 */
|
||
/* Slice: ygrad_4:*/
|
||
/* factor for y-gradient calculation of sector 4 */
|
||
#ifdef MRV_LSC_YGRAD_4
|
||
#endif /* MRV_LSC_YGRAD_4 */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_lsc_ygrad_67: Gradient table y (0x00000040)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: ygrad_7:*/
|
||
/* factor for y-gradient calculation of sector 7 */
|
||
#ifdef MRV_LSC_YGRAD_7
|
||
#endif /* MRV_LSC_YGRAD_7 */
|
||
/* Slice: ygrad_6:*/
|
||
/* factor for y-gradient calculation of sector 6 */
|
||
#ifdef MRV_LSC_YGRAD_6
|
||
#endif /* MRV_LSC_YGRAD_6 */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_lsc_xsize_01: Size table (0x00000044)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: x_sect_size_1:*/
|
||
/* sector size 1 in x-direction */
|
||
#ifdef MRV_LSC_X_SECT_SIZE_1
|
||
#endif /* MRV_LSC_X_SECT_SIZE_1 */
|
||
/* Slice: x_sect_size_0:*/
|
||
/* sector size 0 in x-direction */
|
||
#ifdef MRV_LSC_X_SECT_SIZE_0
|
||
#endif /* MRV_LSC_X_SECT_SIZE_0 */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_lsc_xsize_23: Size table (0x00000048)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: x_sect_size_3:*/
|
||
/* sector size 3 in x-direction */
|
||
#ifdef MRV_LSC_X_SECT_SIZE_3
|
||
#endif /* MRV_LSC_X_SECT_SIZE_3 */
|
||
/* Slice: x_sect_size_2:*/
|
||
/* sector size 2 in x-direction */
|
||
#ifdef MRV_LSC_X_SECT_SIZE_2
|
||
#endif /* MRV_LSC_X_SECT_SIZE_2 */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_lsc_xsize_45: Size table (0x0000004c)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: x_sect_size_5:*/
|
||
/* sector size 5 in x-direction */
|
||
#ifdef MRV_LSC_X_SECT_SIZE_5
|
||
#endif /* MRV_LSC_X_SECT_SIZE_5 */
|
||
/* Slice: x_sect_size_4:*/
|
||
/* sector size 4in x-direction */
|
||
#ifdef MRV_LSC_X_SECT_SIZE_4
|
||
#endif /* MRV_LSC_X_SECT_SIZE_4 */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_lsc_xsize_67: Size table (0x00000050)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: x_sect_size_7:*/
|
||
/* sector size 7 in x-direction */
|
||
#ifdef MRV_LSC_X_SECT_SIZE_7
|
||
#endif /* MRV_LSC_X_SECT_SIZE_7 */
|
||
/* Slice: x_sect_size_6:*/
|
||
/* sector size 6 in x-direction */
|
||
#ifdef MRV_LSC_X_SECT_SIZE_6
|
||
#endif /* MRV_LSC_X_SECT_SIZE_6 */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_lsc_ysize_01: Size table (0x00000054)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: y_sect_size_1:*/
|
||
/* sector size 1 in y-direction */
|
||
#ifdef MRV_LSC_Y_SECT_SIZE_1
|
||
#endif /* MRV_LSC_Y_SECT_SIZE_1 */
|
||
/* Slice: y_sect_size_0:*/
|
||
/* sector size 0 in y-direction */
|
||
#ifdef MRV_LSC_Y_SECT_SIZE_0
|
||
#endif /* MRV_LSC_Y_SECT_SIZE_0 */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_lsc_ysize_23: Size table (0x00000058)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: y_sect_size_3:*/
|
||
/* sector size 3 in y-direction */
|
||
#ifdef MRV_LSC_Y_SECT_SIZE_3
|
||
#endif /* MRV_LSC_Y_SECT_SIZE_3 */
|
||
/* Slice: y_sect_size_2:*/
|
||
/* sector size 2 in y-direction */
|
||
#ifdef MRV_LSC_Y_SECT_SIZE_2
|
||
#endif /* MRV_LSC_Y_SECT_SIZE_2 */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_lsc_ysize_45: Size table (0x0000005c)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: y_sect_size_5:*/
|
||
/* sector size 5 in y-direction */
|
||
#ifdef MRV_LSC_Y_SECT_SIZE_5
|
||
#endif /* MRV_LSC_Y_SECT_SIZE_5 */
|
||
/* Slice: y_sect_size_4:*/
|
||
/* sector size 4 in y-direction */
|
||
#ifdef MRV_LSC_Y_SECT_SIZE_4
|
||
#endif /* MRV_LSC_Y_SECT_SIZE_4 */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_lsc_ysize_67: Size table (0x00000060)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: y_sect_size_7:*/
|
||
/* sector size 7 in y-direction */
|
||
#ifdef MRV_LSC_Y_SECT_SIZE_7
|
||
#endif /* MRV_LSC_Y_SECT_SIZE_7 */
|
||
/* Slice: y_sect_size_6:*/
|
||
/* sector size 6 in y-direction */
|
||
#ifdef MRV_LSC_Y_SECT_SIZE_6
|
||
#endif /* MRV_LSC_Y_SECT_SIZE_6 */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_lsc_table_sel: Lens shade table set selection (0x00000064)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: table_sel:*/
|
||
/* 0: next active tables set is table set 0.*/
|
||
/* 1: next active tables set is table set 1.*/
|
||
/* Table selection is object of a shadowing mechnism. The current status is */
|
||
/* visible at ISP_LSC_STATUS::active_table.*/
|
||
#ifdef MRV_LSC_TABLE_SEL
|
||
#define MRV_LSC_TABLE_SEL_BANK0 (0U)
|
||
#define MRV_LSC_TABLE_SEL_BANK1 (1U)
|
||
#endif /* MRV_LSC_TABLE_SEL */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_lsc_status: Lens shade status (0x00000068)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: active_table:*/
|
||
/* 0: currently active tables set is table set 0 */
|
||
/* 1: currently active tables set is table set 1 */
|
||
#ifdef MRV_LSC_ACTIVE_TABLE
|
||
#define MRV_LSC_ACTIVE_TABLE_BANK0 (0U)
|
||
#define MRV_LSC_ACTIVE_TABLE_BANK1 (1U)
|
||
#endif /* MRV_LSC_ACTIVE_TABLE */
|
||
/* Slice: lsc_en_status:*/
|
||
/* 0: lens shading correction is currently off */
|
||
/* 1: lens shading correction is currently on */
|
||
#ifdef MRV_LSC_LSC_EN_STATUS
|
||
#endif /* MRV_LSC_LSC_EN_STATUS */
|
||
/*****************************************************************************/
|
||
/* ISP Chromatic Aberration Correction Registers */
|
||
/*****************************************************************************/
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_cac_ctrl: Control register for chromatic aberration
|
||
* correction (0x00000000)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: h_clip_mode:*/
|
||
/* Defines the maximum red/blue pixel shift in horizontal direction at pixel */
|
||
/* positions, that require a larger displacement, the maximum shift value is */
|
||
/* used instead (vector clipping)*/
|
||
/**/
|
||
/* 0: Set horizontal vector clipping to +/-4 pixel displacement (Default)*/
|
||
/* 1: Set horizontal vector clipping to +/-4 or +/-5 pixel displacement */
|
||
/* depending on pixel position inside the Bayer raster (dynamic switching */
|
||
/* between +/-4 and +/-5)*/
|
||
#ifdef MRV_CAC_H_CLIP_MODE
|
||
#define MRV_CAC_H_CLIP_MODE_FIX4 0 /* 0: Set horizontal vector clipping */
|
||
/* to +/-4 pixel displacement (Default) */
|
||
#define MRV_CAC_H_CLIP_MODE_DYN5 1 /* 1: Set horizontal vector clipping */
|
||
/* to +/-4 or +/-5 pixel displacement depending on */
|
||
/* pixel position inside the Bayer raster */
|
||
/* (dynamic switching between +/-4 and +/-5) */
|
||
#endif /* MRV_CAC_H_CLIP_MODE */
|
||
/* Slice: v_clip_mode:*/
|
||
/* Defines the maximum red/blue pixel shift in vertical direction */
|
||
/* 00: Set vertical vector clipping to +/-2 pixel ; fix filter_enable (Default)*/
|
||
/* 01: Set vertical vector clipping to +/-3 pixel; dynamic filter_enable for */
|
||
/* chroma low pass filter */
|
||
/* 10: Set vertical vector clipping +/-3 or +/-4 pixel displacement depending */
|
||
/* on pixel position inside the Bayer raster (dynamic switching between +/-3 and +/-4)*/
|
||
/* 11: reserved */
|
||
#ifdef MRV_CAC_V_CLIP_MODE
|
||
#define MRV_CAC_V_CLIP_MODE_FIX2 0 /* 00: Set vertical vector clipping to +/-2 pixel; */
|
||
/* fix filter_enable (Default) */
|
||
#define MRV_CAC_V_CLIP_MODE_FIX3 1 /* 01: Set vertical vector clipping to +/-3 pixel; */
|
||
/* dynamic filter_enable for chroma low pass filter */
|
||
#define MRV_CAC_V_CLIP_MODE_DYN4 2 /* 10: Set vertical vector clipping +/-3 or +/-4 pixel */
|
||
/* displacement depending on pixel position inside */
|
||
/* the Bayer raster (dynamic switching between +/-3 and +/-4) */
|
||
#endif /* MRV_CAC_V_CLIP_MODE */
|
||
/* Slice: cac_en:*/
|
||
/* 0: chromatic aberration correction off */
|
||
/* 1: chromatic aberration correction on */
|
||
#ifdef MRV_CAC_CAC_EN
|
||
#define MRV_CAC_CAC_EN_PROCESS 1
|
||
#define MRV_CAC_CAC_EN_BYPASS 0
|
||
#endif /* MRV_CAC_CAC_EN */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_cac_count_start: Preload values for CAC pixel and line
|
||
* counter (0x00000004)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: v_count_start:*/
|
||
/* 12 bit v_count preload value (range 4095 ... 1) of the vertical CAC line */
|
||
/* counter. Before frame start v_count has to be preloaded with */
|
||
/* (v_size/2 + v_center_offset), with v_size the image height and v_center_offset */
|
||
/* the vertical distance between image center and optical center.*/
|
||
/**/
|
||
/* After frame start the v_count decrements with every line until a value of zero */
|
||
/* is reached for the line in the optical center. Than the v_sign bit toggles and */
|
||
/* the v_counter decrements with every line until end of frame.*/
|
||
#ifdef MRV_CAC_V_COUNT_START
|
||
#define MRV_CAC_V_COUNT_START_MIN 1
|
||
#define MRV_CAC_V_COUNT_START_MAX (MRV_CAC_V_COUNT_START_MASK >> MRV_CAC_V_COUNT_START_SHIFT)
|
||
#endif /* MRV_CAC_V_COUNT_START */
|
||
/* Slice: h_count_start:*/
|
||
/* 12 bit h_count preload value (range 4095 .. 1) of the horizontal CAC pixel */
|
||
/* counter. Before line start h_count has to be preloaded with (h_size/2 + h_center_offset),*/
|
||
/* with h_size the image width and h_center_offset the horizontal distance between image */
|
||
/* center and optical center.*/
|
||
/**/
|
||
/* After line start the h_count decrements with every pixel until a value of zero is */
|
||
/* reached for the column in the optical center. Than the h_sign bit toggles and the */
|
||
/* h_counter increments with every pixel until end of line.*/
|
||
#ifdef MRV_CAC_H_COUNT_START
|
||
#define MRV_CAC_H_COUNT_START_MIN 1
|
||
#define MRV_CAC_H_COUNT_START_MAX (MRV_CAC_H_COUNT_START_MASK >> MRV_CAC_H_COUNT_START_SHIFT)
|
||
#endif /* MRV_CAC_H_COUNT_START */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_cac_a: Linear Parameters for radial shift calculation (0x00000008)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: A_Blue:*/
|
||
/* Parameter A_Blue for radial blue shift calculation, according to */
|
||
/* (A_Blue * r + B_Blue * r^2 + C_Blue * r^3).*/
|
||
/* It is a 9 bit twos complement integer with 4 fractional digits value and */
|
||
/* value range from -16 up to 15.9375.*/
|
||
#ifdef MRV_CAC_A_BLUE
|
||
#define MRV_CAC_A_BLUE_MAX (MRV_CAC_A_BLUE_MASK >> (MRV_CAC_A_BLUE_SHIFT))
|
||
#define MRV_CAC_A_BLUE_MIN 0
|
||
#endif /* MRV_CAC_A_BLUE */
|
||
/* Slice: A_Red:*/
|
||
/* Parameter A_Red for radial red shift calculation, according to */
|
||
/* (A_Red * r + B_Red * r^2 + C_Red * r^3).*/
|
||
/* It is a 9 bit twos complement integer with 4 fractional digits value and */
|
||
/* value range from -16 up to 15.9375.*/
|
||
#ifdef MRV_CAC_A_RED
|
||
#define MRV_CAC_A_RED_MAX (MRV_CAC_A_RED_MASK >> (MRV_CAC_A_RED_SHIFT))
|
||
#define MRV_CAC_A_RED_MIN 0
|
||
#endif /* MRV_CAC_A_RED */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_cac_b: Square Parameters for radial shift calculation (0x0000000c)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: B_Blue:*/
|
||
/* Parameter B_Blue for radial blue shift calculation, according to */
|
||
/* (A_Blue * r + B_Blue * r^2 + C_Blue * r^3).*/
|
||
/* It is a 9 bit twos complement integer with 4 fractional digits value and */
|
||
/* value range from -16 up to 15.9375.*/
|
||
#ifdef MRV_CAC_B_BLUE
|
||
#define MRV_CAC_B_BLUE_MAX (MRV_CAC_B_BLUE_MASK >> (MRV_CAC_B_BLUE_SHIFT))
|
||
#define MRV_CAC_B_BLUE_MIN 0
|
||
#endif /* MRV_CAC_B_BLUE */
|
||
/* Slice: B_Red:*/
|
||
/* Parameter B_Red for radial red shift calculation, according to */
|
||
/* (A_Red * r + B_Red * r^2 + C_Red * r^3).*/
|
||
/* It is a 9 bit twos complement integer with 4 fractional digits value and */
|
||
/* value range from -16 up to 15.9375.*/
|
||
#ifdef MRV_CAC_B_RED
|
||
#define MRV_CAC_B_RED_MAX (MRV_CAC_B_RED_MASK >> (MRV_CAC_B_RED_SHIFT))
|
||
#define MRV_CAC_B_RED_MIN 0
|
||
#endif /* MRV_CAC_B_RED */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_cac_c: Cubical Parameters for radial shift calculation (0x00000010)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: C_Blue:*/
|
||
/* Parameter C_Blue for radial blue shift calculation, according to */
|
||
/* (A_Blue * r + B_Blue * r^2 + C_Blue * r^3).*/
|
||
/* It is a 9 bit twos complement integer with 4 fractional digits value and */
|
||
/* value range from -16 up to 15.9375.*/
|
||
#ifdef MRV_CAC_C_BLUE
|
||
#define MRV_CAC_C_BLUE_MAX (MRV_CAC_C_BLUE_MASK >> (MRV_CAC_C_BLUE_SHIFT))
|
||
#define MRV_CAC_C_BLUE_MIN 0
|
||
#endif /* MRV_CAC_C_BLUE */
|
||
/* Slice: C_Red:*/
|
||
/* Parameter C_Red for radial red shift calculation, according to */
|
||
/* (A_Red * r + B_Red * r^2 + C_Red * r^3).*/
|
||
/* It is a 9 bit twos complement integer with 4 fractional digits value and */
|
||
/* value range from -16 up to 15.9375.*/
|
||
#ifdef MRV_CAC_C_RED
|
||
#define MRV_CAC_C_RED_MAX (MRV_CAC_C_RED_MASK >> (MRV_CAC_C_RED_SHIFT))
|
||
#define MRV_CAC_C_RED_MIN 0
|
||
#endif /* MRV_CAC_C_RED */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_cac_x_norm: Normalization parameters for calculation of image
|
||
* coordinate x_d relative to optical center (0x00000014)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: x_ns:*/
|
||
/* Horizontal normalization shift parameter x_ns (4 bit unsigned integer)*/
|
||
/* in equation x_d[7:0] = (((h_count <% 4) %> x_ns) * x_nf) >> 5 */
|
||
#ifdef MRV_CAC_X_NS
|
||
#define MRV_CAC_X_NS_MIN 0
|
||
#define MRV_CAC_X_NS_MAX (MRV_CAC_X_NS_MASK >> MRV_CAC_X_NS_SHIFT)
|
||
#endif /* MRV_CAC_X_NS */
|
||
/* Slice: x_nf:*/
|
||
/* Horizontal scaling or normalization factor x_nf (5 bit unsigned integer)*/
|
||
/* range 0 .. 31 in equation x_d[7:0] = (((h_count <% 4) %> x_ns) * x_nf) >> 5 */
|
||
#ifdef MRV_CAC_X_NF
|
||
#define MRV_CAC_X_NF_MIN 0
|
||
#define MRV_CAC_X_NF_MAX 31
|
||
#endif /* MRV_CAC_X_NF */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_cac_y_norm: Normalization parameters for calculation of image
|
||
* coordinate y_d relative to optical center (0x00000018)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: y_ns:*/
|
||
/* Vertical normalization shift parameter y_ns (4 bit unsigned integer)*/
|
||
/* in equation y_d[7:0] = (((v_count <% 4) %> y_ns) * y_nf) >> 5 */
|
||
#ifdef MRV_CAC_Y_NS
|
||
#define MRV_CAC_Y_NS_MIN 0
|
||
#define MRV_CAC_Y_NS_MAX (MRV_CAC_Y_NS_MASK >> MRV_CAC_Y_NS_SHIFT)
|
||
#endif /* MRV_CAC_Y_NS */
|
||
/* Slice: y_nf:*/
|
||
/* Vertical scaling or normalization factor y_nf (5 bit unsigned integer)*/
|
||
/* range 0 .. 31 in equation y_d[7:0] = (((v_count <% 4) %> y_ns) * y_nf) >> 5 */
|
||
#ifdef MRV_CAC_Y_NF
|
||
#define MRV_CAC_Y_NF_MIN 0
|
||
#define MRV_CAC_Y_NF_MAX 31
|
||
#endif /* MRV_CAC_Y_NF */
|
||
/*****************************************************************************/
|
||
/* ISP Exposure Measurement Registers */
|
||
/*****************************************************************************/
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_exp_ctrl: Exposure control (0x00000000)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: exp_meas_mode:*/
|
||
/* '1' luminance calculation according to Y=(R+G+B) x 0.332 (85/256)*/
|
||
/* '0' luminance calculation according to Y=16+0.25R+0.5G+0.1094B */
|
||
#ifdef MRV_AE_EXP_MEAS_MODE
|
||
#define MRV_AE_EXP_MEAS_MODE_1 1 /* '1' luminance calculation according to Y=(R+G+B) x 0.332 (85/256) */
|
||
#define MRV_AE_EXP_MEAS_MODE_0 0 /* '0' luminance calculation according to Y=16+0.25R+0.5G+0.1094B */
|
||
#endif /* MRV_AE_EXP_MEAS_MODE */
|
||
/* Slice: autostop:*/
|
||
/* '1' stop measuring after a complete frame */
|
||
/* '0' continous measurement */
|
||
#ifdef MRV_AE_AUTOSTOP
|
||
#define MRV_AE_AUTOSTOP_STOP_MEASURING 1 /* stop measuring after a complete frame */
|
||
#define MRV_AE_AUTOSTOP_CONTINOUS_MEASURING 0 /* don't stop measurement, continoue with next frame */
|
||
#endif /* MRV_AE_AUTOSTOP */
|
||
/* Slice: exp_start:*/
|
||
/* '1' start measuring a frame. The exp block will reset this bit and halt */
|
||
/* after completing one frame, if bit "autostop" is set to '1'.*/
|
||
#ifdef MRV_AE_EXP_START
|
||
#define MRV_AE_EXP_START_PROCESS 1 /* 1: processing is activated */
|
||
#define MRV_AE_EXP_START_BYPASS 0 /* 0: processing is deactivated, bypass mode is selected */
|
||
#endif /* MRV_AE_EXP_START */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_exp_h_offset: Horizontal offset for first block (0x00000004)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: isp_exp_h_offset:*/
|
||
/* Horizontal offset of first block in pixels.*/
|
||
/* 0 <= value <= 3920 */
|
||
#ifdef MRV_AE_ISP_EXP_H_OFFSET
|
||
#define MRV_AE_ISP_EXP_H_OFFSET_MIN 0x00000000
|
||
#define MRV_AE_ISP_EXP_H_OFFSET_MAX 0x00000F50 /* 4096-176 */
|
||
#endif /* MRV_AE_ISP_EXP_H_OFFSET */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_exp_v_offset: Vertical offset for first block (0x00000008)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: isp_exp_v_offset:*/
|
||
/* Vertical offset of first block in pixels.*/
|
||
/* 0 <= value <= 1806 */
|
||
#ifdef MRV_AE_ISP_EXP_V_OFFSET
|
||
#define MRV_AE_ISP_EXP_V_OFFSET_MIN 0x00000000
|
||
#define MRV_AE_ISP_EXP_V_OFFSET_MAX 0x00000B74 /* 3072-140 */
|
||
#endif /* MRV_AE_ISP_EXP_V_OFFSET */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_exp_h_size: Horizontal size of one block (0x0000000c)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: isp_exp_h_size:*/
|
||
/* Horizontal size in pixels of one block.*/
|
||
/* 35 <= value <= 516 */
|
||
#ifdef MRV_AE_ISP_EXP_H_SIZE
|
||
#define MRV_AE_ISP_EXP_H_SIZE_MIN 0x00000023
|
||
#define MRV_AE_ISP_EXP_H_SIZE_MAX 0x00000333
|
||
#endif /* MRV_AE_ISP_EXP_H_SIZE */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_exp_v_size: Vertical size of one block (0x00000010)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: isp_exp_v_size:*/
|
||
/* Vertical size in pixels of one block.*/
|
||
/* 28 <= value <= 390 */
|
||
#ifdef MRV_AE_ISP_EXP_V_SIZE
|
||
#define MRV_AE_ISP_EXP_V_SIZE_VALID_MASK (MRV_AE_ISP_EXP_V_SIZE_MASK & ~0x00000001)
|
||
#define MRV_AE_ISP_EXP_V_SIZE_MIN 0x0000001C
|
||
#define MRV_AE_ISP_EXP_V_SIZE_MAX 0x00000266
|
||
#endif /* MRV_AE_ISP_EXP_V_SIZE */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_exp_mean_00: Mean luminance value of block 00 (0x00000014)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: isp_exp_mean_00:*/
|
||
/* Mean luminance value of block 00 (x,y)*/
|
||
#ifdef MRV_AE_ISP_EXP_MEAN_00
|
||
#endif /* MRV_AE_ISP_EXP_MEAN_00 */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_exp_mean_10: Mean luminance value of block 10 (0x00000018)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: isp_exp_mean_10:*/
|
||
/* Mean luminance value of block 10 (x,y)*/
|
||
#ifdef MRV_AE_ISP_EXP_MEAN_10
|
||
#endif /* MRV_AE_ISP_EXP_MEAN_10 */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_exp_mean_20: Mean luminance value of block 20 (0x0000001c)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: isp_exp_mean_20:*/
|
||
/* Mean luminance value of block 20 (x,y)*/
|
||
#ifdef MRV_AE_ISP_EXP_MEAN_20
|
||
#endif /* MRV_AE_ISP_EXP_MEAN_20 */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_exp_mean_30: Mean luminance value of block 30 (0x00000020)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: isp_exp_mean_30:*/
|
||
/* Mean luminance value of block 30 (x,y)*/
|
||
#ifdef MRV_AE_ISP_EXP_MEAN_30
|
||
#endif /* MRV_AE_ISP_EXP_MEAN_30 */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_exp_mean_40: Mean luminance value of block 40 (0x00000024)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: isp_exp_mean_40:*/
|
||
/* Mean luminance value of block 40 (x,y)*/
|
||
#ifdef MRV_AE_ISP_EXP_MEAN_40
|
||
#endif /* MRV_AE_ISP_EXP_MEAN_40 */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_exp_mean_01: Mean luminance value of block 01 (0x00000028)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: isp_exp_mean_01:*/
|
||
/* Mean luminance value of block 01 (x,y)*/
|
||
#ifdef MRV_AE_ISP_EXP_MEAN_01
|
||
#endif /* MRV_AE_ISP_EXP_MEAN_01 */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_exp_mean_11: Mean luminance value of block 11 (0x0000002c)
|
||
*
|
||
*****************************************************************************/
|
||
/* Register: isp_exp_mean_11: Mean luminance value of block 11 (0x0000002c)*/
|
||
/* Slice: isp_exp_mean_11:*/
|
||
/* Mean luminance value of block 11 (x,y)*/
|
||
#ifdef MRV_AE_ISP_EXP_MEAN_11
|
||
#endif /* MRV_AE_ISP_EXP_MEAN_11 */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_exp_mean_21: Mean luminance value of block 21 (0x00000030)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: isp_exp_mean_21:*/
|
||
/* Mean luminance value of block 21 (x,y)*/
|
||
#ifdef MRV_AE_ISP_EXP_MEAN_21
|
||
#endif /* MRV_AE_ISP_EXP_MEAN_21 */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_exp_mean_31: Mean luminance value of block 31 (0x00000034)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: isp_exp_mean_31:*/
|
||
/* Mean luminance value of block 31 (x,y)*/
|
||
#ifdef MRV_AE_ISP_EXP_MEAN_31
|
||
#endif /* MRV_AE_ISP_EXP_MEAN_31 */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_exp_mean_41: Mean luminance value of block 41 (0x00000038)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: isp_exp_mean_41:*/
|
||
/* Mean luminance value of block 41 (x,y)*/
|
||
#ifdef MRV_AE_ISP_EXP_MEAN_41
|
||
#endif /* MRV_AE_ISP_EXP_MEAN_41 */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_exp_mean_02: Mean luminance value of block 02 (0x0000003c)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: isp_exp_mean_02:*/
|
||
/* Mean luminance value of block 02 (x,y)*/
|
||
#ifdef MRV_AE_ISP_EXP_MEAN_02
|
||
#endif /* MRV_AE_ISP_EXP_MEAN_02 */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_exp_mean_12: Mean luminance value of block 12 (0x00000040)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: isp_exp_mean_12:*/
|
||
/* Mean luminance value of block 12 (x,y)*/
|
||
#ifdef MRV_AE_ISP_EXP_MEAN_12
|
||
#endif /* MRV_AE_ISP_EXP_MEAN_12 */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_exp_mean_22: Mean luminance value of block 22 (0x00000044)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: isp_exp_mean_22:*/
|
||
/* Mean luminance value of block 22 (x,y)*/
|
||
#ifdef MRV_AE_ISP_EXP_MEAN_22
|
||
#endif /* MRV_AE_ISP_EXP_MEAN_22 */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_exp_mean_32: Mean luminance value of block 32 (0x00000048)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: isp_exp_mean_32:*/
|
||
/* Mean luminance value of block 32 (x,y)*/
|
||
#ifdef MRV_AE_ISP_EXP_MEAN_32
|
||
#endif /* MRV_AE_ISP_EXP_MEAN_32 */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_exp_mean_42: Mean luminance value of block 42 (0x0000004c)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: isp_exp_mean_42:*/
|
||
/* Mean luminance value of block 42 (x,y)*/
|
||
#ifdef MRV_AE_ISP_EXP_MEAN_42
|
||
#endif /* MRV_AE_ISP_EXP_MEAN_42 */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_exp_mean_03: Mean luminance value of block 03 (0x00000050)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: isp_exp_mean_03:*/
|
||
/* Mean luminance value of block 03 (x,y)*/
|
||
#ifdef MRV_AE_ISP_EXP_MEAN_03
|
||
#endif /* MRV_AE_ISP_EXP_MEAN_03 */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_exp_mean_13: Mean luminance value of block 13 (0x00000054)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: isp_exp_mean_13:*/
|
||
/* Mean luminance value of block 13 (x,y)*/
|
||
#ifdef MRV_AE_ISP_EXP_MEAN_13
|
||
#endif /* MRV_AE_ISP_EXP_MEAN_13 */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_exp_mean_23: Mean luminance value of block 23 (0x00000058)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: isp_exp_mean_23:*/
|
||
/* Mean luminance value of block 23 (x,y)*/
|
||
#ifdef MRV_AE_ISP_EXP_MEAN_23
|
||
#endif /* MRV_AE_ISP_EXP_MEAN_23 */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_exp_mean_33: Mean luminance value of block 33 (0x0000005c)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: isp_exp_mean_33:*/
|
||
/* Mean luminance value of block 33 (x,y)*/
|
||
#ifdef MRV_AE_ISP_EXP_MEAN_33
|
||
#endif /* MRV_AE_ISP_EXP_MEAN_33 */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_exp_mean_43: Mean luminance value of block 43 (0x00000060)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: isp_exp_mean_43:*/
|
||
/* Mean luminance value of block 43 (x,y)*/
|
||
#ifdef MRV_AE_ISP_EXP_MEAN_43
|
||
#endif /* MRV_AE_ISP_EXP_MEAN_43 */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_exp_mean_04: Mean luminance value of block 04 (0x00000064)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: isp_exp_mean_04:*/
|
||
/* Mean luminance value of block 04 (x,y)*/
|
||
#ifdef MRV_AE_ISP_EXP_MEAN_04
|
||
#endif /* MRV_AE_ISP_EXP_MEAN_04 */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_exp_mean_14: Mean luminance value of block 14 (0x00000068)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: isp_exp_mean_14:*/
|
||
/* Mean luminance value of block 14 (x,y)*/
|
||
#ifdef MRV_AE_ISP_EXP_MEAN_14
|
||
#endif /* MRV_AE_ISP_EXP_MEAN_14 */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_exp_mean_24: Mean luminance value of block 24 (0x0000006c)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: isp_exp_mean_24:*/
|
||
/* Mean luminance value of block 24 (x,y)*/
|
||
#ifdef MRV_AE_ISP_EXP_MEAN_24
|
||
#endif /* MRV_AE_ISP_EXP_MEAN_24 */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_exp_mean_34: Mean luminance value of block 34 (0x00000070)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: isp_exp_mean_34:*/
|
||
/* Mean luminance value of block 34 (x,y)*/
|
||
#ifdef MRV_AE_ISP_EXP_MEAN_34
|
||
#endif /* MRV_AE_ISP_EXP_MEAN_34 */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_exp_mean_44: Mean luminance value of block 44 (0x00000074)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: isp_exp_mean_44:*/
|
||
/* Mean luminance value of block 44 (x,y)*/
|
||
#ifdef MRV_AE_ISP_EXP_MEAN_44
|
||
#endif /* MRV_AE_ISP_EXP_MEAN_44 */
|
||
/*****************************************************************************/
|
||
/* ISP Black Level Subtraction Registers */
|
||
/*****************************************************************************/
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_bls_ctrl: global control register (0x00000000)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: WINDOW_ENABLE:*/
|
||
/* 0: no measuring is performed */
|
||
/* 1: only window 1 is measured */
|
||
/* 2: only window 2 is measured */
|
||
/* 3: both windows are measured */
|
||
#ifdef MRV_BLS_WINDOW_ENABLE
|
||
#define MRV_BLS_WINDOW_ENABLE_NONE 0U /* 0: no measuring is performed */
|
||
#define MRV_BLS_WINDOW_ENABLE_WND1 1U /* 1: only window 1 is measured */
|
||
#define MRV_BLS_WINDOW_ENABLE_WND2 2U /* 2: only window 2 is measured */
|
||
#define MRV_BLS_WINDOW_ENABLE_BOTH 3U /* 3: both windows are measured */
|
||
#define MRV_BLS_WINDOW_ENABLE_WND1_MASK 0x00000004U
|
||
#define MRV_BLS_WINDOW_ENABLE_WND1_SHIFT 2U
|
||
#define MRV_BLS_WINDOW_ENABLE_WND2_MASK 0x00000008U
|
||
#define MRV_BLS_WINDOW_ENABLE_WND2_SHIFT 3U
|
||
#endif /* MRV_BLS_WINDOW_ENABLE */
|
||
/* Slice: BLS_MODE:*/
|
||
/* 1: subtract measured values */
|
||
/* 0: subtract fixed values */
|
||
#ifdef MRV_BLS_BLS_MODE
|
||
#define MRV_BLS_BLS_MODE_MEAS 1U /* 1: subtract measured values */
|
||
#define MRV_BLS_BLS_MODE_FIX 0U /* 0: subtract fixed values */
|
||
#endif /* MRV_BLS_BLS_MODE */
|
||
/* Slice: BLS_ENABLE:*/
|
||
/* 1: black level subtraction is enabled */
|
||
/* 0: bypass the black level processing */
|
||
#ifdef MRV_BLS_BLS_ENABLE
|
||
#define MRV_BLS_BLS_ENABLE_PROCESS 1U /* 1: black level subtraction is enabled */
|
||
#define MRV_BLS_BLS_ENABLE_BYPASS 0U /* 0: bypass the black level processing */
|
||
#endif /* MRV_BLS_BLS_ENABLE */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_bls_samples: samples register (0x00000004)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: BLS_SAMPLES:*/
|
||
/* This number to the power of two gives the number of measure samples for */
|
||
/* each Bayer position. Range 0x00: 2^0=1 to 0x12: 2^18=262144. This number */
|
||
/* is also the divider for the accumulator for each Bayer position.*/
|
||
/**/
|
||
/* The accumulation will be stopped, if the number of measured pixels for the */
|
||
/* current Bayer position is equal to the number of samples.*/
|
||
/**/
|
||
/* The measure windows must be positioned that way that the number of included */
|
||
/* pixels of each Bayer position included by both windows is equal or greater */
|
||
/* than the number of measure samples calculated by 2^BLS_SAMPLES !*/
|
||
/**/
|
||
/* NOTE:*/
|
||
/* - The number of pixels of one Bayer position is 1/4 of the number of all */
|
||
/* Pixels included by the measure windows.*/
|
||
#ifdef MRV_BLS_BLS_SAMPLES
|
||
#define MRV_BLS_BLS_SAMPLES_MAX (0x00000014U) /* maximum is 2^20 = 1048576 */
|
||
#endif /* MRV_BLS_BLS_SAMPLES */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_bls_h1_start: window 1 horizontal start (0x00000008)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: BLS_H1_START:*/
|
||
/* Black pixel window 1 horizontal start position */
|
||
#ifdef MRV_BLS_BLS_H1_START
|
||
#define MRV_BLS_BLS_H1_START_MAX (MRV_BLS_BLS_H1_START_MASK >> MRV_BLS_BLS_H1_START_SHIFT)
|
||
#endif /* MRV_BLS_BLS_H1_START */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_bls_h1_stop: window 1 horizontal stop (0x0000000c)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: BLS_H1_STOP:*/
|
||
/* Black pixel window 1 horizontal stop position */
|
||
#ifdef MRV_BLS_BLS_H1_STOP
|
||
#define MRV_BLS_BLS_H1_STOP_MAX (MRV_BLS_BLS_H1_STOP_MASK >> MRV_BLS_BLS_H1_STOP_SHIFT)
|
||
#endif /* MRV_BLS_BLS_H1_STOP */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_bls_v1_start: window 1 vertical start (0x00000010)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: BLS_V1_START:*/
|
||
/* Black pixel window 1 vertical start position */
|
||
#ifdef MRV_BLS_BLS_V1_START
|
||
#define MRV_BLS_BLS_V1_START_MAX (MRV_BLS_BLS_V1_START_MASK >> MRV_BLS_BLS_V1_START_SHIFT)
|
||
#endif /* MRV_BLS_BLS_V1_START */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_bls_v1_stop: window 1 vertical stop (0x00000014)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: BLS_V1_STOP:*/
|
||
/* Black pixel window 1 vertical stop position */
|
||
#ifdef MRV_BLS_BLS_V1_STOP
|
||
#define MRV_BLS_BLS_V1_STOP_MAX (MRV_BLS_BLS_V1_STOP_MASK >> MRV_BLS_BLS_V1_STOP_SHIFT)
|
||
#endif /* MRV_BLS_BLS_V1_STOP */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_bls_h2_start: window 2 horizontal start (0x00000018)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: BLS_H2_START:*/
|
||
/* Black pixel window 2 horizontal start position */
|
||
#ifdef MRV_BLS_BLS_H2_START
|
||
#define MRV_BLS_BLS_H2_START_MAX (MRV_BLS_BLS_H2_START_MASK >> MRV_BLS_BLS_H2_START_SHIFT)
|
||
#endif /* MRV_BLS_BLS_H2_START */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_bls_h2_stop: window 2 horizontal stop (0x0000001c)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: BLS_H2_STOP:*/
|
||
/* Black pixel window 2 horizontal stop position */
|
||
#ifdef MRV_BLS_BLS_H2_STOP
|
||
#define MRV_BLS_BLS_H2_STOP_MAX (MRV_BLS_BLS_H2_STOP_MASK >> MRV_BLS_BLS_H2_STOP_SHIFT)
|
||
#endif /* MRV_BLS_BLS_H2_STOP */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_bls_v2_start: window 2 vertical start (0x00000020)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: BLS_V2_START:*/
|
||
/* Black pixel window 2 vertical start position */
|
||
#ifdef MRV_BLS_BLS_V2_START
|
||
#define MRV_BLS_BLS_V2_START_MAX (MRV_BLS_BLS_V2_START_MASK >> MRV_BLS_BLS_V2_START_SHIFT)
|
||
#endif /* MRV_BLS_BLS_V2_START */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_bls_v2_stop: window 2 vertical stop (0x00000024)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: BLS_V2_STOP:*/
|
||
/* Black pixel window 2 vertical stop position */
|
||
#ifdef MRV_BLS_BLS_V2_STOP
|
||
#define MRV_BLS_BLS_V2_STOP_MAX (MRV_BLS_BLS_V2_STOP_MASK >> MRV_BLS_BLS_V2_STOP_SHIFT)
|
||
#endif /* MRV_BLS_BLS_V2_STOP */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_bls_a_fixed: fixed black level A (0x00000028)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: BLS_A_FIXED:*/
|
||
/* Fixed black level for A pixels signed */
|
||
/* two's complement, value range from -4096 to +4095,*/
|
||
/* a positive value will be subtracted from the pixel values */
|
||
#ifdef MRV_BLS_BLS_A_FIXED
|
||
#endif /* MRV_BLS_BLS_A_FIXED */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_bls_b_fixed: fixed black level B (0x0000002c)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: BLS_B_FIXED:*/
|
||
/* Fixed black level for B pixels signed */
|
||
/* two's complement, value range from -4096 to +4095 */
|
||
#ifdef MRV_BLS_BLS_B_FIXED
|
||
#endif /* MRV_BLS_BLS_B_FIXED */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_bls_c_fixed: fixed black level C (0x00000030)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: BLS_C_FIXED:*/
|
||
/* Fixed black level for C pixels signed */
|
||
/* two's complement, value range from -4096 to +4095 */
|
||
#ifdef MRV_BLS_BLS_C_FIXED
|
||
#endif /* MRV_BLS_BLS_C_FIXED */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_bls_d_fixed: fixed black level D (0x00000034)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: BLS_D_FIXED:*/
|
||
/* Fixed black level for D pixels - signed */
|
||
/* two's complement, value range from -4096 to +4095 */
|
||
#ifdef MRV_BLS_BLS_D_FIXED
|
||
#endif /* MRV_BLS_BLS_D_FIXED */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_bls_a_measured: measured black level A (0x00000038)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: BLS_A_MEASURED:*/
|
||
/* Measured black level for A pixels */
|
||
#ifdef MRV_BLS_BLS_A_MEASURED
|
||
#endif /* MRV_BLS_BLS_A_MEASURED */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_bls_b_measured: measured black level B (0x0000003c)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: BLS_B_MEASURED:*/
|
||
/* Measured black level for B pixels */
|
||
#ifdef MRV_BLS_BLS_B_MEASURED
|
||
#endif /* MRV_BLS_BLS_B_MEASURED */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_bls_c_measured: measured black level C (0x00000040)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: BLS_C_MEASURED:*/
|
||
/* Measured black level for C pixels */
|
||
#ifdef MRV_BLS_BLS_C_MEASURED
|
||
#endif /* MRV_BLS_BLS_C_MEASURED */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_bls_d_measured: measured black level D (0x00000044)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: BLS_D_MEASURED:*/
|
||
/* Measured black level for D pixels */
|
||
#ifdef MRV_BLS_BLS_D_MEASURED
|
||
#endif /* MRV_BLS_BLS_D_MEASURED */
|
||
/*****************************************************************************/
|
||
/* ISP Denoising Pre-Filter Registers */
|
||
/*****************************************************************************/
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_dpf_mode: Mode control for Denoising Pre-Filter block
|
||
* (0x00000000)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: USE_NF_GAIN:*/
|
||
/* 1: dpf_nf_gain's will be used */
|
||
/* 0: external AWB gains will be used *Default**/
|
||
#ifdef MRV_DPF_USE_NF_GAIN
|
||
#endif /* MRV_DPF_USE_NF_GAIN */
|
||
/* Slice: LSC_GAIN_COMP:*/
|
||
/* 1: LSC gain will be processed */
|
||
/* 0: LSC gain will not be processed *Default**/
|
||
#ifdef MRV_DPF_LSC_GAIN_COMP
|
||
#endif /* MRV_DPF_LSC_GAIN_COMP */
|
||
/* Slice: AWB_GAIN_COMP:*/
|
||
/* 1: AWB gain or internal dpf_nf_gain will be processed */
|
||
/* 0: AWB gain or internal dpf_nf_gain will not be processed *Default**/
|
||
#ifdef MRV_DPF_AWB_GAIN_COMP
|
||
#endif /* MRV_DPF_AWB_GAIN_COMP */
|
||
/* Slice: NLL_SEGMENTATION:*/
|
||
/* 1: optimized logarithmic like segmentation for Noise Level Lookup (NLL)*/
|
||
/* 0: equidistant segmentation for NLL *Default**/
|
||
#ifdef MRV_DPF_NLL_SEGMENTATION
|
||
#endif /* MRV_DPF_NLL_SEGMENTATION */
|
||
/* Slice: RB_FILTER_SIZE:*/
|
||
/* 1: Red and Blue filter kernel size of 9x9 (5x5 active) pixels */
|
||
/* 0: Wide Red and Blue filter kernel size of 13x9 (7x5 active) pixels *Default**/
|
||
#ifdef MRV_DPF_RB_FILTER_SIZE
|
||
#endif /* MRV_DPF_RB_FILTER_SIZE */
|
||
/* Slice: R_FILTER_OFF:*/
|
||
/* 1: disable filter processing for red pixels (R)*/
|
||
/* 0: filter R pixels *Default**/
|
||
#ifdef MRV_DPF_R_FILTER_OFF
|
||
#endif /* MRV_DPF_R_FILTER_OFF */
|
||
/* Slice: GR_FILTER_OFF:*/
|
||
/* 1: disable filter processing for green pixels in green/red lines (GR)*/
|
||
/* 0: filter GR pixels *Default**/
|
||
#ifdef MRV_DPF_GR_FILTER_OFF
|
||
#endif /* MRV_DPF_GR_FILTER_OFF */
|
||
/* Slice: GB_FILTER_OFF:*/
|
||
/* 1: disable filter processing for green pixels in green/blue lines (GB)*/
|
||
/* 0: filter GB pixels *Default**/
|
||
#ifdef MRV_DPF_GB_FILTER_OFF
|
||
#endif /* MRV_DPF_GB_FILTER_OFF */
|
||
/* Slice: B_FILTER_OFF:*/
|
||
/* 1: disable filter processing for blue pixels (B)*/
|
||
/* 0: filter B pixels *Default**/
|
||
#ifdef MRV_DPF_B_FILTER_OFF
|
||
#endif /* MRV_DPF_B_FILTER_OFF */
|
||
/* Slice: DPF_ENABLE:*/
|
||
/* 1: enable dpf */
|
||
/* 0: bypass dpf *Default**/
|
||
#ifdef MRV_DPF_DPF_ENABLE
|
||
#endif /* MRV_DPF_DPF_ENABLE */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_dpf_strength_r: filter strength of the RED filter (0x00000004)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: INV_WEIGHT_R:*/
|
||
/* Filter strength of the filter is determined by weight. Default is a */
|
||
/* weight of 1. A higher weight increases the filter strength. In this */
|
||
/* register the unsigned 8 bit value 64/weight is stored.*/
|
||
/**/
|
||
/* The following values show examples:*/
|
||
/* weight=0.251 -> 255, weight=0.5 -> 128,*/
|
||
/* weight=1 -> 64 *default**/
|
||
/* weight=1.25 -> 51, weight=1.5 -> 42,*/
|
||
/* weight=1.75 -> 37, weight=2 -> 32 */
|
||
#ifdef MRV_DPF_INV_WEIGHT_R
|
||
#endif /* MRV_DPF_INV_WEIGHT_R */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_dpf_strength_g: filter strength of the GREEN filter (0x00000008)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: INV_WEIGHT_G:*/
|
||
/* Filter strength of the filter is determined by weight. Default is a */
|
||
/* weight of 1. A higher weight increases the filter strength. In this */
|
||
/* register the unsigned 8 bit value 64/weight is stored.*/
|
||
/**/
|
||
/* The following values show examples:*/
|
||
/* weight=0.251 -> 255, weight=0.5 -> 128,*/
|
||
/* weight=1 -> 64 *default**/
|
||
/* weight=1.25 -> 51, weight=1.5 -> 42,*/
|
||
/* weight=1.75 -> 37, weight=2 -> 32 */
|
||
#ifdef MRV_DPF_INV_WEIGHT_G
|
||
#endif /* MRV_DPF_INV_WEIGHT_G */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_dpf_strength_b: filter strength of the BLUE filter (0x0000000c)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: INV_WEIGHT_B:*/
|
||
/* Filter strength of the filter is determined by weight. Default is a */
|
||
/* weight of 1. A higher weight increases the filter strength. In this */
|
||
/* register the unsigned 8 bit value 64/weight is stored.*/
|
||
/**/
|
||
/* The following values show examples:*/
|
||
/* weight=0.251 -> 255, weight=0.5 -> 128,*/
|
||
/* weight=1 -> 64 *default**/
|
||
/* weight=1.25 -> 51, weight=1.5 -> 42,*/
|
||
/* weight=1.75 -> 37, weight=2 -> 32 */
|
||
#ifdef MRV_DPF_INV_WEIGHT_B
|
||
#endif /* MRV_DPF_INV_WEIGHT_B */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_dpf_s_weight_g_1_4: Spatial Weights green channel 1 2 3 4
|
||
* (0x00000010)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: S_WEIGHT_G4:*/
|
||
/* Filter Coefficient green channel S_WEIGHT_G4 */
|
||
/* 5 bit unsigned, value range 1/16 to 16/16 */
|
||
/* Default value is 16/16 (*Default*)*/
|
||
#ifdef MRV_DPF_S_WEIGHT_G4
|
||
#endif /* MRV_DPF_S_WEIGHT_G4 */
|
||
/* Slice: S_WEIGHT_G3:*/
|
||
/* Filter Coefficient green channel S_WEIGHT_G3 */
|
||
/* 5 bit unsigned, value range 1/16 to 16/16 */
|
||
/* Default value is 16/16 (*Default*)*/
|
||
#ifdef MRV_DPF_S_WEIGHT_G3
|
||
#endif /* MRV_DPF_S_WEIGHT_G3 */
|
||
/* Slice: S_WEIGHT_G2:*/
|
||
/* Filter Coefficient green channel S_WEIGHT_G2 */
|
||
/* 5 bit unsigned, value range 1/16 to 16/16 */
|
||
/* Default value is 16/16 (*Default*)*/
|
||
#ifdef MRV_DPF_S_WEIGHT_G2
|
||
#endif /* MRV_DPF_S_WEIGHT_G2 */
|
||
/* Slice: S_WEIGHT_G1:*/
|
||
/* Filter Coefficient green channel S_WEIGHT_G1 */
|
||
/* 5 bit unsigned, value range 1/16 to 16/16 */
|
||
/* Default value is 16/16 (*Default*)*/
|
||
#ifdef MRV_DPF_S_WEIGHT_G1
|
||
#endif /* MRV_DPF_S_WEIGHT_G1 */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_dpf_s_weight_g_5_6: Spatial Weights green channel 5 6
|
||
* (0x00000014)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: S_WEIGHT_G6:*/
|
||
/* Filter Coefficient green channel S_WEIGHT_G6 */
|
||
/* 5 bit unsigned, value range 1/16 to 16/16 */
|
||
/* Default value is 16/16 (*Default*)*/
|
||
#ifdef MRV_DPF_S_WEIGHT_G6
|
||
#endif /* MRV_DPF_S_WEIGHT_G6 */
|
||
/* Slice: S_WEIGHT_G5:*/
|
||
/* Filter Coefficient green channel S_WEIGHT_G5 */
|
||
/* 5 bit unsigned, value range 1/16 to 16/16 */
|
||
/* Default value is 16/16 (*Default*)*/
|
||
#ifdef MRV_DPF_S_WEIGHT_G5
|
||
#endif /* MRV_DPF_S_WEIGHT_G5 */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_dpf_s_weight_rb_1_4: Spatial Weights red/blue channels 1 2 3 4
|
||
* (0x00000018)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: S_WEIGHT_RB4:*/
|
||
/* Filter Coefficient red/blue channels S_WEIGHT_RB4 */
|
||
/* 5 bit unsigned, value range 1/16 to 16/16 */
|
||
/* Default value is 16/16 (*Default*)*/
|
||
#ifdef MRV_DPF_S_WEIGHT_RB4
|
||
#endif /* MRV_DPF_S_WEIGHT_RB4 */
|
||
/* Slice: S_WEIGHT_RB3:*/
|
||
/* Filter Coefficient red/blue channels S_WEIGHT_RB3 */
|
||
/* 5 bit unsigned, value range 1/16 to 16/16 */
|
||
/* Default value is 16/16 (*Default*)*/
|
||
#ifdef MRV_DPF_S_WEIGHT_RB3
|
||
#endif /* MRV_DPF_S_WEIGHT_RB3 */
|
||
/* Slice: S_WEIGHT_RB2:*/
|
||
/* Filter Coefficient red/blue channels S_WEIGHT_RB2 */
|
||
/* 5 bit unsigned, value range 1/16 to 16/16 */
|
||
/* Default value is 16/16 (*Default*)*/
|
||
#ifdef MRV_DPF_S_WEIGHT_RB2
|
||
#endif /* MRV_DPF_S_WEIGHT_RB2 */
|
||
/* Slice: S_WEIGHT_RB1:*/
|
||
/* Filter Coefficient red/blue channels S_WEIGHT_RB1 */
|
||
/* 5 bit unsigned, value range 1/16 to 16/16 */
|
||
/* Default value is 16/16 (*Default*)*/
|
||
#ifdef MRV_DPF_S_WEIGHT_RB1
|
||
#endif /* MRV_DPF_S_WEIGHT_RB1 */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_dpf_s_weight_rb_5_6: Spatial Weights red/blue channels 5 6
|
||
* (0x0000001c)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: S_WEIGHT_RB6:*/
|
||
/* Filter Coefficient red/blue channels S_WEIGHT_RB6 */
|
||
/* 5 bit unsigned, value range 1/16 to 16/16 */
|
||
/* Default value is 16/16 (*Default*)*/
|
||
#ifdef MRV_DPF_S_WEIGHT_RB6
|
||
#endif /* MRV_DPF_S_WEIGHT_RB6 */
|
||
/* Slice: S_WEIGHT_RB5:*/
|
||
/* Filter Coefficient red/blue channels S_WEIGHT_RB5 */
|
||
/* 5 bit unsigned, value range 1/16 to 16/16 */
|
||
/* Default value is 16/16 (*Default*)*/
|
||
#ifdef MRV_DPF_S_WEIGHT_RB5
|
||
#endif /* MRV_DPF_S_WEIGHT_RB5 */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register array: isp_dpf_nll_coeff: Noise Level Lookup Coefficient
|
||
* (0x0040 + n*0x4 (n=0..16))
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: nll_coeff_n:*/
|
||
/* Noise Level Lookup Table Coefficient nll_coeff_n */
|
||
/* 10 bit unsigned, value range 1/1024 to 1023/1024 (*Default*)*/
|
||
#ifdef MRV_DPF_NLL_COEFF_N
|
||
#endif /* MRV_DPF_NLL_COEFF_N */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_dpf_nf_gain_r: noise function gain for red pixels (0x00000064)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: DPF_NF_GAIN_R:*/
|
||
/* Noise Function (NF) Gain that replaces the AWB gain for red pixels.*/
|
||
/* 12 bit unsigned integer format: gain=1 -> 0x100 */
|
||
#ifdef MRV_DPF_DPF_NF_GAIN_R
|
||
#endif /* MRV_DPF_DPF_NF_GAIN_R */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_dpf_nf_gain_gr: noise function gain for green in red pixels
|
||
* (0x00000068)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: DPF_NF_GAIN_GR:*/
|
||
/* Noise Function (NF) Gain that replaces the AWB gain for green pixels in a */
|
||
/* red line.*/
|
||
/* 12 bit unsigned integer format: gain=1 -> 0x100 */
|
||
#ifdef MRV_DPF_DPF_NF_GAIN_GR
|
||
#endif /* MRV_DPF_DPF_NF_GAIN_GR */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_dpf_nf_gain_gb: noise function gain for green in blue pixels
|
||
* (0x0000006c)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: DPF_NF_GAIN_GB:*/
|
||
/* Noise Function (NF) Gain that replaces the AWB gain for green pixels in a */
|
||
/* blue line.*/
|
||
/* 12 bit unsigned integer format: gain=1 -> 0x100 */
|
||
#ifdef MRV_DPF_DPF_NF_GAIN_GB
|
||
#endif /* MRV_DPF_DPF_NF_GAIN_GB */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_dpf_nf_gain_b: noise function gain for blue pixels (0x00000070)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: DPF_NF_GAIN_B:*/
|
||
/* Noise Function (NF) Gain that replaces the AWB gain for blue pixels.*/
|
||
/* 12 bit unsigned integer format: gain=1 -> 0x100 */
|
||
#ifdef MRV_DPF_DPF_NF_GAIN_B
|
||
#endif /* MRV_DPF_DPF_NF_GAIN_B */
|
||
/*****************************************************************************/
|
||
/* ISP Defect Pixel Cluster Correction Registers */
|
||
/*****************************************************************************/
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_dpcc_mode: mode control for DPCC block (0x0000)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: STAGE1_ENABLE:*/
|
||
/* 1: enable stage1 *Default**/
|
||
/* 0: bypass stage1 */
|
||
#ifdef MRV_DPCC_STAGE1_ENABLE
|
||
#endif /* MRV_DPCC_STAGE1_ENABLE */
|
||
/* Slice: GRAYSCALE_MODE:*/
|
||
/* 1: enable gray scale data input from black and white sensors (without color filter array)*/
|
||
/* 0: BAYER DATA INPUT *Default**/
|
||
#ifdef MRV_DPCC_GRAYSCALE_MODE
|
||
#endif /* MRV_DPCC_GRAYSCALE_MODE */
|
||
/* Slice: ISP_DPCC_enable:*/
|
||
/* 1: enable DPCC */
|
||
/* 0: bypass DPCC *Default**/
|
||
#ifdef MRV_DPCC_ISP_DPCC_ENABLE
|
||
#endif /* MRV_DPCC_ISP_DPCC_ENABLE */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_dpcc_output_mode: interpolation mode for correction unit
|
||
* (0x00000004)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: STAGE1_RB_3x3:*/
|
||
/* 1: stage1 red/blue 9 pixel (3x3) output median */
|
||
/* 0: stage1 red/blue 4 or 5 pixel output median *Default**/
|
||
#ifdef MRV_DPCC_STAGE1_RB_3X3
|
||
#endif /* MRV_DPCC_STAGE1_RB_3X3 */
|
||
/* Slice: STAGE1_G_3x3:*/
|
||
/* 1: stage1 green 9 pixel (3x3) output median */
|
||
/* 0: stage1 green 4 or 5 pixel output median *Default**/
|
||
#ifdef MRV_DPCC_STAGE1_G_3X3
|
||
#endif /* MRV_DPCC_STAGE1_G_3X3 */
|
||
/* Slice: STAGE1_INCL_RB_CENTER:*/
|
||
/* 1: stage1 include center pixel for red/blue output median 2x2+1 */
|
||
/* *Default* 0: stage1 do not include center pixel for red/blue output median 2x2 */
|
||
#ifdef MRV_DPCC_STAGE1_INCL_RB_CENTER
|
||
#endif /* MRV_DPCC_STAGE1_INCL_RB_CENTER */
|
||
/* Slice: STAGE1_INCL_GREEN_CENTER:*/
|
||
/* 1: stage1 include center pixel for green output median 2x2+1 *Default**/
|
||
/* 0: stage1 do not include center pixel for green output median 2x2 */
|
||
#ifdef MRV_DPCC_STAGE1_INCL_GREEN_CENTER
|
||
#endif /* MRV_DPCC_STAGE1_INCL_GREEN_CENTER */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_dpcc_set_use: DPCC methods set usage for detection
|
||
* (0x00000008)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: STAGE1_USE_FIX_SET:*/
|
||
/* 1: stage1 use hard coded methods set *Default**/
|
||
/* 0: stage1 do not use hard coded methods set */
|
||
#ifdef MRV_DPCC_STAGE1_USE_FIX_SET
|
||
#endif /* MRV_DPCC_STAGE1_USE_FIX_SET */
|
||
/* Slice: STAGE1_USE_SET_3:*/
|
||
/* 1: stage1 use methods set 3 */
|
||
/* 0: stage1 do not use methods set 3 *Default**/
|
||
#ifdef MRV_DPCC_STAGE1_USE_SET_3
|
||
#endif /* MRV_DPCC_STAGE1_USE_SET_3 */
|
||
/* Slice: STAGE1_USE_SET_2:*/
|
||
/* 1: stage1 use methods set 2 */
|
||
/* 0: stage1 do not use methods set 2 *Default**/
|
||
#ifdef MRV_DPCC_STAGE1_USE_SET_2
|
||
#endif /* MRV_DPCC_STAGE1_USE_SET_2 */
|
||
/* Slice: STAGE1_USE_SET_1:*/
|
||
/* 1: stage1 use methods set 1 *Default**/
|
||
/* 0: stage1 do not use methods set 1 */
|
||
#ifdef MRV_DPCC_STAGE1_USE_SET_1
|
||
#endif /* MRV_DPCC_STAGE1_USE_SET_1 */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_dpcc_methods_set_1: Methods enable bits for SET_1
|
||
* (0x0000000c)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: RG_RED_BLUE1_ENABLE:*/
|
||
/* 1: enable Rank Gradient check for red_blue *Default**/
|
||
/* 0: bypass Rank Gradient check for red_blue */
|
||
#ifdef MRV_DPCC_RG_RED_BLUE1_ENABLE
|
||
#endif /* MRV_DPCC_RG_RED_BLUE1_ENABLE */
|
||
/* Slice: RND_RED_BLUE1_ENABLE:*/
|
||
/* 1: enable Rank Neighbor Difference check for red_blue *Default**/
|
||
/* 0: bypass Rank Neighbor Difference check for red_blue */
|
||
#ifdef MRV_DPCC_RND_RED_BLUE1_ENABLE
|
||
#endif /* MRV_DPCC_RND_RED_BLUE1_ENABLE */
|
||
/* Slice: RO_RED_BLUE1_ENABLE:*/
|
||
/* 1: enable Rank Order check for red_blue *Default**/
|
||
/* 0: bypass Rank Order check for red_blue */
|
||
#ifdef MRV_DPCC_RO_RED_BLUE1_ENABLE
|
||
#endif /* MRV_DPCC_RO_RED_BLUE1_ENABLE */
|
||
/* Slice: LC_RED_BLUE1_ENABLE:*/
|
||
/* 1: enable Line check for red_blue *Default**/
|
||
/* 0: bypass Line check for red_blue */
|
||
#ifdef MRV_DPCC_LC_RED_BLUE1_ENABLE
|
||
#endif /* MRV_DPCC_LC_RED_BLUE1_ENABLE */
|
||
/* Slice: PG_RED_BLUE1_ENABLE:*/
|
||
/* 1: enable Peak Gradient check for red_blue *Default**/
|
||
/* 0: bypass Peak Gradient check for red_blue */
|
||
#ifdef MRV_DPCC_PG_RED_BLUE1_ENABLE
|
||
#endif /* MRV_DPCC_PG_RED_BLUE1_ENABLE */
|
||
/* Slice: RG_GREEN1_ENABLE:*/
|
||
/* 1: enable Rank Gradient check for green *Default**/
|
||
/* 0: bypass Rank Gradient check for green */
|
||
#ifdef MRV_DPCC_RG_GREEN1_ENABLE
|
||
#endif /* MRV_DPCC_RG_GREEN1_ENABLE */
|
||
/* Slice: RND_GREEN1_ENABLE:*/
|
||
/* 1: enable Rank Neighbor Difference check for green *Default**/
|
||
/* 0: bypass Rank Neighbor Difference check for green */
|
||
#ifdef MRV_DPCC_RND_GREEN1_ENABLE
|
||
#endif /* MRV_DPCC_RND_GREEN1_ENABLE */
|
||
/* Slice: RO_GREEN1_ENABLE:*/
|
||
/* 1: enable Rank Order check for green *Default**/
|
||
/* 0: bypass Rank Order check for green */
|
||
#ifdef MRV_DPCC_RO_GREEN1_ENABLE
|
||
#endif /* MRV_DPCC_RO_GREEN1_ENABLE */
|
||
/* Slice: LC_GREEN1_ENABLE:*/
|
||
/* 1: enable Line check for green *Default**/
|
||
/* 0: bypass Line check for green */
|
||
#ifdef MRV_DPCC_LC_GREEN1_ENABLE
|
||
#endif /* MRV_DPCC_LC_GREEN1_ENABLE */
|
||
/* Slice: PG_GREEN1_ENABLE:*/
|
||
/* 1: enable Peak Gradient check for green *Default**/
|
||
/* 0: bypass Peak Gradient check for green */
|
||
#ifdef MRV_DPCC_PG_GREEN1_ENABLE
|
||
#endif /* MRV_DPCC_PG_GREEN1_ENABLE */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_dpcc_methods_set_2: Methods enable bits for SET_2
|
||
* (0x00000010)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: RG_RED_BLUE2_ENABLE:*/
|
||
/* 1: enable Rank Gradient check for red_blue *Default**/
|
||
/* 0: bypass Rank Gradient check for red_blue */
|
||
#ifdef MRV_DPCC_RG_RED_BLUE2_ENABLE
|
||
#endif /* MRV_DPCC_RG_RED_BLUE2_ENABLE */
|
||
/* Slice: RND_RED_BLUE2_ENABLE:*/
|
||
/* 1: enable Rank Neighbor Difference check for red_blue *Default**/
|
||
/* 0: bypass Rank Neighbor Difference check for red_blue */
|
||
#ifdef MRV_DPCC_RND_RED_BLUE2_ENABLE
|
||
#endif /* MRV_DPCC_RND_RED_BLUE2_ENABLE */
|
||
/* Slice: RO_RED_BLUE2_ENABLE:*/
|
||
/* 1: enable Rank Order check for red_blue *Default**/
|
||
/* 0: bypass Rank Order check for red_blue */
|
||
#ifdef MRV_DPCC_RO_RED_BLUE2_ENABLE
|
||
#endif /* MRV_DPCC_RO_RED_BLUE2_ENABLE */
|
||
/* Slice: LC_RED_BLUE2_ENABLE:*/
|
||
/* 1: enable Line check for red_blue *Default**/
|
||
/* 0: bypass Line check for red_blue */
|
||
#ifdef MRV_DPCC_LC_RED_BLUE2_ENABLE
|
||
#endif /* MRV_DPCC_LC_RED_BLUE2_ENABLE */
|
||
/* Slice: PG_RED_BLUE2_ENABLE:*/
|
||
/* 1: enable Peak Gradient check for red_blue *Default**/
|
||
/* 0: bypass Peak Gradient check for red_blue */
|
||
#ifdef MRV_DPCC_PG_RED_BLUE2_ENABLE
|
||
#endif /* MRV_DPCC_PG_RED_BLUE2_ENABLE */
|
||
/* Slice: RG_GREEN2_ENABLE:*/
|
||
/* 1: enable Rank Gradient check for green *Default**/
|
||
/* 0: bypass Rank Gradient check for green */
|
||
#ifdef MRV_DPCC_RG_GREEN2_ENABLE
|
||
#endif /* MRV_DPCC_RG_GREEN2_ENABLE */
|
||
/* Slice: RND_GREEN2_ENABLE:*/
|
||
/* 1: enable Rank Neighbor Difference check for green *Default**/
|
||
/* 0: bypass Rank Neighbor Difference check for green */
|
||
#ifdef MRV_DPCC_RND_GREEN2_ENABLE
|
||
#endif /* MRV_DPCC_RND_GREEN2_ENABLE */
|
||
/* Slice: RO_GREEN2_ENABLE:*/
|
||
/* 1: enable Rank Order check for green *Default**/
|
||
/* 0: bypass Rank Order check for green */
|
||
#ifdef MRV_DPCC_RO_GREEN2_ENABLE
|
||
#endif /* MRV_DPCC_RO_GREEN2_ENABLE */
|
||
/* Slice: LC_GREEN2_ENABLE:*/
|
||
/* 1: enable Line check for green *Default**/
|
||
/* 0: bypass Line check for green */
|
||
#ifdef MRV_DPCC_LC_GREEN2_ENABLE
|
||
#endif /* MRV_DPCC_LC_GREEN2_ENABLE */
|
||
/* Slice: PG_GREEN2_ENABLE:*/
|
||
/* 1: enable Peak Gradient check for green *Default**/
|
||
/* 0: bypass Peak Gradient check for green */
|
||
#ifdef MRV_DPCC_PG_GREEN2_ENABLE
|
||
#endif /* MRV_DPCC_PG_GREEN2_ENABLE */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_dpcc_methods_set_3: Methods enable bits for SET_3
|
||
* (0x00000014)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: RG_RED_BLUE3_ENABLE:*/
|
||
/* 1: enable Rank Gradient check for red_blue *Default**/
|
||
/* 0: bypass Rank Gradient check for red_blue */
|
||
#ifdef MRV_DPCC_RG_RED_BLUE3_ENABLE
|
||
#endif /* MRV_DPCC_RG_RED_BLUE3_ENABLE */
|
||
/* Slice: RND_RED_BLUE3_ENABLE:*/
|
||
/* 1: enable Rank Neighbor Difference check for red_blue *Default**/
|
||
/* 0: bypass Rank Neighbor Difference check for red_blue */
|
||
#ifdef MRV_DPCC_RND_RED_BLUE3_ENABLE
|
||
#endif /* MRV_DPCC_RND_RED_BLUE3_ENABLE */
|
||
/* Slice: RO_RED_BLUE3_ENABLE:*/
|
||
/* 1: enable Rank Order check for red_blue *Default**/
|
||
/* 0: bypass Rank Order check for red_blue */
|
||
#ifdef MRV_DPCC_RO_RED_BLUE3_ENABLE
|
||
#endif /* MRV_DPCC_RO_RED_BLUE3_ENABLE */
|
||
/* Slice: LC_RED_BLUE3_ENABLE:*/
|
||
/* 1: enable Line check for red_blue *Default**/
|
||
/* 0: bypass Line check for red_blue */
|
||
#ifdef MRV_DPCC_LC_RED_BLUE3_ENABLE
|
||
#endif /* MRV_DPCC_LC_RED_BLUE3_ENABLE */
|
||
/* Slice: PG_RED_BLUE3_ENABLE:*/
|
||
/* 1: enable Peak Gradient check for red_blue *Default**/
|
||
/* 0: bypass Peak Gradient check for red_blue */
|
||
#ifdef MRV_DPCC_PG_RED_BLUE3_ENABLE
|
||
#endif /* MRV_DPCC_PG_RED_BLUE3_ENABLE */
|
||
/* Slice: RG_GREEN3_ENABLE:*/
|
||
/* 1: enable Rank Gradient check for green *Default**/
|
||
/* 0: bypass Rank Gradient check for green */
|
||
#ifdef MRV_DPCC_RG_GREEN3_ENABLE
|
||
#endif /* MRV_DPCC_RG_GREEN3_ENABLE */
|
||
/* Slice: RND_GREEN3_ENABLE:*/
|
||
/* 1: enable Rank Neighbor Difference check for green *Default**/
|
||
/* 0: bypass Rank Neighbor Difference check for green */
|
||
#ifdef MRV_DPCC_RND_GREEN3_ENABLE
|
||
#endif /* MRV_DPCC_RND_GREEN3_ENABLE */
|
||
/* Slice: RO_GREEN3_ENABLE:*/
|
||
/* 1: enable Rank Order check for green *Default**/
|
||
/* 0: bypass Rank Order check for green */
|
||
#ifdef MRV_DPCC_RO_GREEN3_ENABLE
|
||
#endif /* MRV_DPCC_RO_GREEN3_ENABLE */
|
||
/* Slice: LC_GREEN3_ENABLE:*/
|
||
/* 1: enable Line check for green *Default**/
|
||
/* 0: bypass Line check for green */
|
||
#ifdef MRV_DPCC_LC_GREEN3_ENABLE
|
||
#endif /* MRV_DPCC_LC_GREEN3_ENABLE */
|
||
/* Slice: PG_GREEN3_ENABLE:*/
|
||
/* 1: enable Peak Gradient check for green *Default**/
|
||
/* 0: bypass Peak Gradient check for green */
|
||
#ifdef MRV_DPCC_PG_GREEN3_ENABLE
|
||
#endif /* MRV_DPCC_PG_GREEN3_ENABLE */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_dpcc_line_thresh_1: Line threshold SET_1 (0x00000018)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: LINE_THR_1_RB:*/
|
||
/* line threshold for set 1 red/blue */
|
||
#ifdef MRV_DPCC_LINE_THR_1_RB
|
||
#endif /* MRV_DPCC_LINE_THR_1_RB */
|
||
/* Slice: LINE_THR_1_G:*/
|
||
/* line threshold for set 1 green */
|
||
#ifdef MRV_DPCC_LINE_THR_1_G
|
||
#endif /* MRV_DPCC_LINE_THR_1_G */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_dpcc_line_mad_fac_1: Mean Absolute Difference (MAD) factor
|
||
* for Line check set 1 (0x0000001c)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: LINE_MAD_FAC_1_RB:*/
|
||
/* line MAD factor for set 1 red/blue */
|
||
#ifdef MRV_DPCC_LINE_MAD_FAC_1_RB
|
||
#endif /* MRV_DPCC_LINE_MAD_FAC_1_RB */
|
||
/* Slice: LINE_MAD_FAC_1_G:*/
|
||
/* line MAD factor for set 1 green */
|
||
#ifdef MRV_DPCC_LINE_MAD_FAC_1_G
|
||
#endif /* MRV_DPCC_LINE_MAD_FAC_1_G */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_dpcc_pg_fac_1: Peak gradient factor for set 1 (0x00000020)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: PG_FAC_1_RB:*/
|
||
/* Peak gradient factor for set 1 red/blue */
|
||
#ifdef MRV_DPCC_PG_FAC_1_RB
|
||
#endif /* MRV_DPCC_PG_FAC_1_RB */
|
||
/* Slice: PG_FAC_1_G:*/
|
||
/* Peak gradient factor for set 1 green */
|
||
#ifdef MRV_DPCC_PG_FAC_1_G
|
||
#endif /* MRV_DPCC_PG_FAC_1_G */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_dpcc_rnd_thresh_1: Rank Neighbor Difference threshold for
|
||
* set 1 (0x00000024)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: RND_THR_1_RB:*/
|
||
/* Rank Neighbor Difference threshold for set 1 red/blue */
|
||
#ifdef MRV_DPCC_RND_THR_1_RB
|
||
#endif /* MRV_DPCC_RND_THR_1_RB */
|
||
/* Slice: RND_THR_1_G:*/
|
||
/* Rank Neighbor Difference threshold for set 1 green */
|
||
#ifdef MRV_DPCC_RND_THR_1_G
|
||
#endif /* MRV_DPCC_RND_THR_1_G */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_dpcc_rg_fac_1: Rank gradient factor for set 1 (0x00000028)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: RG_FAC_1_RB:*/
|
||
/* Rank gradient factor for set 1 red/blue */
|
||
#ifdef MRV_DPCC_RG_FAC_1_RB
|
||
#endif /* MRV_DPCC_RG_FAC_1_RB */
|
||
/* Slice: RG_FAC_1_G:*/
|
||
/* Rank gradient factor for set 1 green */
|
||
#ifdef MRV_DPCC_RG_FAC_1_G
|
||
#endif /* MRV_DPCC_RG_FAC_1_G */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_dpcc_line_thresh_2: Line threshold SET_2 (0x0000002C)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: LINE_THR_2_RB:*/
|
||
/* line threshold for set 1 red/blue */
|
||
#ifdef MRV_DPCC_LINE_THR_2_RB
|
||
#endif /* MRV_DPCC_LINE_THR_2_RB */
|
||
/* Slice: LINE_THR_2_G:*/
|
||
/* line threshold for set 1 green */
|
||
#ifdef MRV_DPCC_LINE_THR_2_G
|
||
#endif /* MRV_DPCC_LINE_THR_2_G */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_dpcc_line_mad_fac_2: Mean Absolute Difference (MAD) factor
|
||
* for Line check set 1 (0x00000030)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: LINE_MAD_FAC_2_RB:*/
|
||
/* line MAD factor for set 1 red/blue */
|
||
#ifdef MRV_DPCC_LINE_MAD_FAC_2_RB
|
||
#endif /* MRV_DPCC_LINE_MAD_FAC_2_RB */
|
||
/* Slice: LINE_MAD_FAC_2_G:*/
|
||
/* line MAD factor for set 1 green */
|
||
#ifdef MRV_DPCC_LINE_MAD_FAC_2_G
|
||
#endif /* MRV_DPCC_LINE_MAD_FAC_2_G */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_dpcc_pg_fac_2: Peak gradient factor for set 1 (0x00000034)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: PG_FAC_2_RB:*/
|
||
/* Peak gradient factor for set 1 red/blue */
|
||
#ifdef MRV_DPCC_PG_FAC_2_RB
|
||
#endif /* MRV_DPCC_PG_FAC_2_RB */
|
||
/* Slice: PG_FAC_2_G:*/
|
||
/* Peak gradient factor for set 1 green */
|
||
#ifdef MRV_DPCC_PG_FAC_2_G
|
||
#endif /* MRV_DPCC_PG_FAC_2_G */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_dpcc_rnd_thresh_2: Rank Neighbor Difference threshold for
|
||
* set 1 (0x00000038)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: RND_THR_2_RB:*/
|
||
/* Rank Neighbor Difference threshold for set 1 red/blue */
|
||
#ifdef MRV_DPCC_RND_THR_2_RB
|
||
#endif /* MRV_DPCC_RND_THR_2_RB */
|
||
/* Slice: RND_THR_2_G:*/
|
||
/* Rank Neighbor Difference threshold for set 1 green */
|
||
#ifdef MRV_DPCC_RND_THR_2_G
|
||
#endif /* MRV_DPCC_RND_THR_2_G */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_dpcc_rg_fac_2: Rank gradient factor for set 1 (0x0000003C)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: RG_FAC_2_RB:*/
|
||
/* Rank gradient factor for set 1 red/blue */
|
||
#ifdef MRV_DPCC_RG_FAC_2_RB
|
||
#endif /* MRV_DPCC_RG_FAC_2_RB */
|
||
/* Slice: RG_FAC_2_G:*/
|
||
/* Rank gradient factor for set 1 green */
|
||
#ifdef MRV_DPCC_RG_FAC_2_G
|
||
#endif /* MRV_DPCC_RG_FAC_2_G */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_dpcc_line_thresh_3: Line threshold SET_3 (0x00000040)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: LINE_THR_3_RB:*/
|
||
/* line threshold for set 1 red/blue */
|
||
#ifdef MRV_DPCC_LINE_THR_3_RB
|
||
#endif /* MRV_DPCC_LINE_THR_3_RB */
|
||
/* Slice: LINE_THR_3_G:*/
|
||
/* line threshold for set 1 green */
|
||
#ifdef MRV_DPCC_LINE_THR_3_G
|
||
#endif /* MRV_DPCC_LINE_THR_3_G */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_dpcc_line_mad_fac_3: Mean Absolute Difference (MAD) factor
|
||
* for Line check set 1 (0x00000044)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: LINE_MAD_FAC_3_RB:*/
|
||
/* line MAD factor for set 1 red/blue */
|
||
#ifdef MRV_DPCC_LINE_MAD_FAC_3_RB
|
||
#endif /* MRV_DPCC_LINE_MAD_FAC_3_RB */
|
||
/* Slice: LINE_MAD_FAC_3_G:*/
|
||
/* line MAD factor for set 1 green */
|
||
#ifdef MRV_DPCC_LINE_MAD_FAC_3_G
|
||
#endif /* MRV_DPCC_LINE_MAD_FAC_3_G */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_dpcc_pg_fac_3: Peak gradient factor for set 1 (0x00000048)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: PG_FAC_3_RB:*/
|
||
/* Peak gradient factor for set 1 red/blue */
|
||
#ifdef MRV_DPCC_PG_FAC_3_RB
|
||
#endif /* MRV_DPCC_PG_FAC_3_RB */
|
||
/* Slice: PG_FAC_3_G:*/
|
||
/* Peak gradient factor for set 1 green */
|
||
#ifdef MRV_DPCC_PG_FAC_3_G
|
||
#endif /* MRV_DPCC_PG_FAC_3_G */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_dpcc_rnd_thresh_3: Rank Neighbor Difference threshold for
|
||
* set 1 (0x0000004C)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: RND_THR_3_RB:*/
|
||
/* Rank Neighbor Difference threshold for set 1 red/blue */
|
||
#ifdef MRV_DPCC_RND_THR_3_RB
|
||
#endif /* MRV_DPCC_RND_THR_3_RB */
|
||
/* Slice: RND_THR_3_G:*/
|
||
/* Rank Neighbor Difference threshold for set 1 green */
|
||
#ifdef MRV_DPCC_RND_THR_3_G
|
||
#endif /* MRV_DPCC_RND_THR_3_G */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_dpcc_rg_fac_3: Rank gradient factor for set 1 (0x00000050)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: RG_FAC_3_RB:*/
|
||
/* Rank gradient factor for set 1 red/blue */
|
||
#ifdef MRV_DPCC_RG_FAC_3_RB
|
||
#endif /* MRV_DPCC_RG_FAC_3_RB */
|
||
/* Slice: RG_FAC_3_G:*/
|
||
/* Rank gradient factor for set 1 green */
|
||
#ifdef MRV_DPCC_RG_FAC_3_G
|
||
#endif /* MRV_DPCC_RG_FAC_3_G */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_dpcc_ro_limits: Rank Order Limits (0x00000054)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: RO_LIM_3_RB:*/
|
||
/* Rank order limit for set 3 red/blue */
|
||
#ifdef MRV_DPCC_RO_LIM_3_RB
|
||
#endif /* MRV_DPCC_RO_LIM_3_RB */
|
||
/* Slice: RO_LIM_3_G:*/
|
||
/* Rank order limit for set 3 green */
|
||
#ifdef MRV_DPCC_RO_LIM_3_G
|
||
#endif /* MRV_DPCC_RO_LIM_3_G */
|
||
/* Slice: RO_LIM_2_RB:*/
|
||
/* Rank order limit for set 2 red/blue */
|
||
#ifdef MRV_DPCC_RO_LIM_2_RB
|
||
#endif /* MRV_DPCC_RO_LIM_2_RB */
|
||
/* Slice: RO_LIM_2_G:*/
|
||
/* Rank order limit for set 2 green */
|
||
#ifdef MRV_DPCC_RO_LIM_2_G
|
||
#endif /* MRV_DPCC_RO_LIM_2_G */
|
||
/* Slice: RO_LIM_1_RB:*/
|
||
/* Rank order limit for set 1 red/blue */
|
||
#ifdef MRV_DPCC_RO_LIM_1_RB
|
||
#endif /* MRV_DPCC_RO_LIM_1_RB */
|
||
/* Slice: RO_LIM_1_G:*/
|
||
/* Rank order limit for set 1 green */
|
||
#ifdef MRV_DPCC_RO_LIM_1_G
|
||
#endif /* MRV_DPCC_RO_LIM_1_G */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_dpcc_rnd_offs: Differential Rank Offsets for Rank Neighbor
|
||
* Difference (0x00000058)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: RND_OFFS_3_RB:*/
|
||
/* Rank Offset to Neighbor for set 3 red/blue */
|
||
#ifdef MRV_DPCC_RND_OFFS_3_RB
|
||
#endif /* MRV_DPCC_RND_OFFS_3_RB */
|
||
/* Slice: RND_OFFS_3_G:*/
|
||
/* Rank Offset to Neighbor for set 3 green */
|
||
#ifdef MRV_DPCC_RND_OFFS_3_G
|
||
#endif /* MRV_DPCC_RND_OFFS_3_G */
|
||
/* Slice: RND_OFFS_2_RB:*/
|
||
/* Rank Offset to Neighbor for set 2 red/blue */
|
||
#ifdef MRV_DPCC_RND_OFFS_2_RB
|
||
#endif /* MRV_DPCC_RND_OFFS_2_RB */
|
||
/* Slice: RND_OFFS_2_G:*/
|
||
/* Rank Offset to Neighbor for set 2 green */
|
||
#ifdef MRV_DPCC_RND_OFFS_2_G
|
||
#endif /* MRV_DPCC_RND_OFFS_2_G */
|
||
/* Slice: RND_OFFS_1_RB:*/
|
||
/* Rank Offset to Neighbor for set 1 red/blue */
|
||
#ifdef MRV_DPCC_RND_OFFS_1_RB
|
||
#endif /* MRV_DPCC_RND_OFFS_1_RB */
|
||
/* Slice: RND_OFFS_1_G:*/
|
||
/* Rank Offset to Neighbor for set 1 green */
|
||
#ifdef MRV_DPCC_RND_OFFS_1_G
|
||
#endif /* MRV_DPCC_RND_OFFS_1_G */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_dpcc_bpt_ctrl: bad pixel table settings (0x0000005c)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: BPT_RB_3x3:*/
|
||
/* 1: if BPT active red/blue 9 pixel (3x3) output median */
|
||
/* 0: if BPT active red/blue 4 or 5 pixel output median *Default**/
|
||
#ifdef MRV_DPCC_BPT_RB_3X3
|
||
#endif /* MRV_DPCC_BPT_RB_3X3 */
|
||
/* Slice: BPT_G_3x3:*/
|
||
/* 1: if BPT active green 9 pixel (3x3) output median */
|
||
/* 0: if BPT active green 4 or 5 pixel output median *Default**/
|
||
#ifdef MRV_DPCC_BPT_G_3X3
|
||
#endif /* MRV_DPCC_BPT_G_3X3 */
|
||
/* Slice: BPT_INCL_RB_CENTER:*/
|
||
/* 1: if BPT active include center pixel for red/blue output median 2x2+1 */
|
||
/* 0: if BPT active do not include center pixel for red/blue output median 2x2 *Default**/
|
||
#ifdef MRV_DPCC_BPT_INCL_RB_CENTER
|
||
#endif /* MRV_DPCC_BPT_INCL_RB_CENTER */
|
||
/* Slice: BPT_INCL_GREEN_CENTER:*/
|
||
/* 1: if BPT active include center pixel for green output median 2x2+1 */
|
||
/* 0: if BPT active do not include center pixel for green output median 2x2 *Default**/
|
||
#ifdef MRV_DPCC_BPT_INCL_GREEN_CENTER
|
||
#endif /* MRV_DPCC_BPT_INCL_GREEN_CENTER */
|
||
/* Slice: BPT_USE_FIX_SET:*/
|
||
/* 1: for BPT write use hard coded methods set */
|
||
/* 0: for BPT write do not use hard coded methods set *Default**/
|
||
#ifdef MRV_DPCC_BPT_USE_FIX_SET
|
||
#endif /* MRV_DPCC_BPT_USE_FIX_SET */
|
||
/* Slice: BPT_USE_SET_3:*/
|
||
/* 1: for BPT write use methods set 3 */
|
||
/* 0: for BPT write do not use methods set 3 *Default**/
|
||
#ifdef MRV_DPCC_BPT_USE_SET_3
|
||
#endif /* MRV_DPCC_BPT_USE_SET_3 */
|
||
/* Slice: BPT_USE_SET_2:*/
|
||
/* 1: for BPT write use methods set 2 */
|
||
/* 0: for BPT write do not use methods set 2 *Default**/
|
||
#ifdef MRV_DPCC_BPT_USE_SET_2
|
||
#endif /* MRV_DPCC_BPT_USE_SET_2 */
|
||
/* Slice: BPT_USE_SET_1:*/
|
||
/* 1: for BPT write use methods set 1 */
|
||
/* 0: for BPT write do not use methods set 1 *Default**/
|
||
#ifdef MRV_DPCC_BPT_USE_SET_1
|
||
#endif /* MRV_DPCC_BPT_USE_SET_1 */
|
||
/* Slice: bpt_cor_en:*/
|
||
/* table based correction enable */
|
||
/* 1: table based correction is enabled */
|
||
/* 0: table based correction is disabled */
|
||
#ifdef MRV_DPCC_BPT_COR_EN
|
||
#endif /* MRV_DPCC_BPT_COR_EN */
|
||
/* Slice: bpt_det_en:*/
|
||
/* Bad pixel detection write enable */
|
||
/* 1: bad pixel detection write to memory is enabled */
|
||
/* 0: bad pixel detection write to memory is disabled */
|
||
#ifdef MRV_DPCC_BPT_DET_EN
|
||
#endif /* MRV_DPCC_BPT_DET_EN */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_dpcc_bpt_addr: TABLE Start Address for table-based correction
|
||
* algorithm (0x00000064)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: bp_table_addr:*/
|
||
/* Table RAM start address for read or write operations. The address counter */
|
||
/* is incremented at each read or write access to the data register (auto-*/
|
||
/* increment mechanism).*/
|
||
#ifdef MRV_DPCC_BP_TABLE_ADDR
|
||
#endif /* MRV_DPCC_BP_TABLE_ADDR */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_dpcc_bpt_data: TABLE DATA register for read and write access
|
||
* of table RAM (0x00000068)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: bpt_v_addr:*/
|
||
/* Bad Pixel vertical address (pixel position)*/
|
||
#ifdef MRV_DPCC_BPT_V_ADDR
|
||
#endif /* MRV_DPCC_BPT_V_ADDR */
|
||
/* Slice: bpt_h_addr:*/
|
||
/* Bad Pixel horizontal address (pixel position)*/
|
||
#ifdef MRV_DPCC_BPT_H_ADDR
|
||
#endif /* MRV_DPCC_BPT_H_ADDR */
|
||
/*****************************************************************************/
|
||
/* ISP Wide Dynamic Range */
|
||
/*****************************************************************************/
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_wdr_ctrl: Control Bits for Wide Dynamic Range Unit (0x00000000)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: WDR_RGB_FACTOR:*/
|
||
/* rgb_factor defines how much influence the RGBmax approach has in comparison */
|
||
/* to Y. The illumination reference Iref is calculated according to the following */
|
||
/* formula:*/
|
||
/**/
|
||
/* Iref = (WDR_RGB_FACTOR * RGBYmax_tr + (8 - WDR_RGB_FACTOR) * Y) / 8 */
|
||
/**/
|
||
/* So, rgb_factor = 0 means that the standard approach is used. Use of this */
|
||
/* factor requires that Iref has been selected, see WDR_USE_IREF.*/
|
||
/**/
|
||
/* Value range of rgb_factor: 0...8 */
|
||
#ifdef MRV_WDR_RGB_FACTOR
|
||
#endif /* MRV_WDR_RGB_FACTOR */
|
||
/* Slice: WDR_DISABLE_TRANSIENT:*/
|
||
/* 1: disable transient between Y and RGBY_max */
|
||
/* 0: calculate transient between Y and RGBY_max (for noise reduction) *Default**/
|
||
/* Use of this bit requires that Iref has been selected, see WDR_USE_IREF.*/
|
||
#ifdef MRV_WDR_DISABLE_TRANSIENT
|
||
#endif /* MRV_WDR_DISABLE_TRANSIENT */
|
||
/* Slice: WDR_USE_RGB7_8:*/
|
||
/* 1: decrease RGBmax by 7/8 (for noise reduction)*/
|
||
/* 0: do not modify RGBmax *Default**/
|
||
/* Use of this bit requires that Iref has been selected, see WDR_USE_IREF.*/
|
||
#ifdef MRV_WDR_USE_RGB7_8
|
||
#endif /* MRV_WDR_USE_RGB7_8 */
|
||
/* Slice: WDR_USE_Y9_8:*/
|
||
/* 1: use R G B and Y*9/8 for maximum value calculation (for noise reduction)*/
|
||
/* 0: only use R G B for maximum value calculation (RGBYmax approach) *Default**/
|
||
/* Use of this bit requires that Iref has been selected, see WDR_USE_IREF.*/
|
||
#ifdef MRV_WDR_USE_Y9_8
|
||
#endif /* MRV_WDR_USE_Y9_8 */
|
||
/* Slice: WDR_USE_IREF:*/
|
||
/* 1: use Iref (Illumination reference) instead of Y for ToneMapping and Gain calculation */
|
||
/* 0: use Y for ToneMapping and Gain calculation *Default**/
|
||
/* Iref is calculated according to the following formula:*/
|
||
/* Iref = (WDR_RGB_FACTOR * RGBmax_tr + (8 - WDR_RGB_FACTOR) * Y) / 8 */
|
||
#ifdef MRV_WDR_USE_IREF
|
||
#endif /* MRV_WDR_USE_IREF */
|
||
/* Slice: WDR_CR_MAPPING_DISABLE:*/
|
||
/* 1: disable (bypass) Chrominance Mapping */
|
||
/* 0: enable Chrominance Mapping *Default**/
|
||
/* requires that Luminance/chrominance color space has been selected */
|
||
#ifdef MRV_WDR_CR_MAPPING_DISABLE
|
||
#endif /* MRV_WDR_CR_MAPPING_DISABLE */
|
||
/* Slice: WDR_COLOR_SPACE_SELECT:*/
|
||
/* 1: R, G, B color space */
|
||
/* 0: Luminance/Chrominance color space *Default**/
|
||
#ifdef MRV_WDR_COLOR_SPACE_SELECT
|
||
#endif /* MRV_WDR_COLOR_SPACE_SELECT */
|
||
/* Slice: WDR_ENABLE:*/
|
||
/* 1: enable WDR */
|
||
/* 0: bypass WDR *Default**/
|
||
#ifdef MRV_WDR_ENABLE
|
||
#endif /* MRV_WDR_ENABLE */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_wdr_tonecurve_1: Tone Curve sample points dYn definition
|
||
* (part 1) (0x00000004)
|
||
*
|
||
* isp_wdr_tonecurve_1_shd: Tone Curve sample points dYn definition
|
||
* shadow register (part 1) (0x000000a0)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: WDR_dY8:*/
|
||
/* Tone curve sample point definition dY8 on the horizontal axis (input)*/
|
||
#ifdef MRV_WDR_DY8
|
||
#endif /* MRV_WDR_DY8 */
|
||
/* Slice: WDR_dY7:*/
|
||
/* Tone curve sample point definition dY7 on the horizontal axis (input)*/
|
||
#ifdef MRV_WDR_DY7
|
||
#endif /* MRV_WDR_DY7 */
|
||
/* Slice: WDR_dY6:*/
|
||
/* Tone curve sample point definition dY6 on the horizontal axis (input)*/
|
||
#ifdef MRV_WDR_DY6
|
||
#endif /* MRV_WDR_DY6 */
|
||
/* Slice: WDR_dY5:*/
|
||
/* Tone curve sample point definition dY5 on the horizontal axis (input)*/
|
||
#ifdef MRV_WDR_DY5
|
||
#endif /* MRV_WDR_DY5 */
|
||
/* Slice: WDR_dY4:*/
|
||
/* Tone curve sample point definition dY4 on the horizontal axis (input)*/
|
||
#ifdef MRV_WDR_DY4
|
||
#endif /* MRV_WDR_DY4 */
|
||
/* Slice: WDR_dY3:*/
|
||
/* Tone curve sample point definition dY3 on the horizontal axis (input)*/
|
||
#ifdef MRV_WDR_DY3
|
||
#endif /* MRV_WDR_DY3 */
|
||
/* Slice: WDR_dY2:*/
|
||
/* Tone curve sample point definition dY2 on the horizontal axis (input)*/
|
||
#ifdef MRV_WDR_DY2
|
||
#endif /* MRV_WDR_DY2 */
|
||
/* Slice: WDR_dY1:*/
|
||
/* Tone curve sample point definition dY1 on the horizontal axis (input)*/
|
||
#ifdef MRV_WDR_DY1
|
||
#endif /* MRV_WDR_DY1 */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_wdr_tonecurve_2: Tone Curve sample points dYn definition
|
||
* (part 2) (0x00000008)
|
||
*
|
||
* isp_wdr_tonecurve_2_shd: Tone Curve sample points dYn definition
|
||
* shadow register (part 2) (0x000000a4)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: WDR_dY16:*/
|
||
/* Tone curve sample point definition dY16 on the horizontal axis (input)*/
|
||
#ifdef MRV_WDR_DY16
|
||
#endif /* MRV_WDR_DY16 */
|
||
/* Slice: WDR_dY15:*/
|
||
/* Tone curve sample point definition dY15 on the horizontal axis (input)*/
|
||
#ifdef MRV_WDR_DY15
|
||
#endif /* MRV_WDR_DY15 */
|
||
/* Slice: WDR_dY14:*/
|
||
/* Tone curve sample point definition dY14 on the horizontal axis (input)*/
|
||
#ifdef MRV_WDR_DY14
|
||
#endif /* MRV_WDR_DY14 */
|
||
/* Slice: WDR_dY13:*/
|
||
/* Tone curve sample point definition dY13 on the horizontal axis (input)*/
|
||
#ifdef MRV_WDR_DY13
|
||
#endif /* MRV_WDR_DY13 */
|
||
/* Slice: WDR_dY12:*/
|
||
/* Tone curve sample point definition dY12 on the horizontal axis (input)*/
|
||
#ifdef MRV_WDR_DY12
|
||
#endif /* MRV_WDR_DY12 */
|
||
/* Slice: WDR_dY11:*/
|
||
/* Tone curve sample point definition dY11 on the horizontal axis (input)*/
|
||
#ifdef MRV_WDR_DY11
|
||
#endif /* MRV_WDR_DY11 */
|
||
/* Slice: WDR_dY10:*/
|
||
/* Tone curve sample point definition dY10 on the horizontal axis (input)*/
|
||
#ifdef MRV_WDR_DY10
|
||
#endif /* MRV_WDR_DY10 */
|
||
/* Slice: WDR_dY9:*/
|
||
/* Tone curve sample point definition dY9 on the horizontal axis (input)*/
|
||
#ifdef MRV_WDR_DY9
|
||
#endif /* MRV_WDR_DY9 */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_wdr_tonecurve_3: Tone Curve sample points dYn definition
|
||
* (part 3) (0x0000000c)
|
||
*
|
||
* isp_wdr_tonecurve_3_shd: Tone Curve sample points dYn definition
|
||
* shadow register (part 3) (0x000000a8)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: WDR_dY24:*/
|
||
/* Tone curve sample point definition dY24 on the horizontal axis (input)*/
|
||
#ifdef MRV_WDR_DY24
|
||
#endif /* MRV_WDR_DY24 */
|
||
/* Slice: WDR_dY23:*/
|
||
/* Tone curve sample point definition dY23 on the horizontal axis (input)*/
|
||
#ifdef MRV_WDR_DY23
|
||
#endif /* MRV_WDR_DY23 */
|
||
/* Slice: WDR_dY22:*/
|
||
/* Tone curve sample point definition dY22 on the horizontal axis (input)*/
|
||
#ifdef MRV_WDR_DY22
|
||
#endif /* MRV_WDR_DY22 */
|
||
/* Slice: WDR_dY21:*/
|
||
/* Tone curve sample point definition dY21 on the horizontal axis (input)*/
|
||
#ifdef MRV_WDR_DY21
|
||
#endif /* MRV_WDR_DY21 */
|
||
/* Slice: WDR_dY20:*/
|
||
/* Tone curve sample point definition dY20 on the horizontal axis (input)*/
|
||
#ifdef MRV_WDR_DY20
|
||
#endif /* MRV_WDR_DY20 */
|
||
/* Slice: WDR_dY19:*/
|
||
/* Tone curve sample point definition dY19 on the horizontal axis (input)*/
|
||
#ifdef MRV_WDR_DY19
|
||
#endif /* MRV_WDR_DY19 */
|
||
/* Slice: WDR_dY18:*/
|
||
/* Tone curve sample point definition dY18 on the horizontal axis (input)*/
|
||
#ifdef MRV_WDR_DY18
|
||
#endif /* MRV_WDR_DY18 */
|
||
/* Slice: WDR_dY17:*/
|
||
/* Tone curve sample point definition dY17 on the horizontal axis (input)*/
|
||
#ifdef MRV_WDR_DY17
|
||
#endif /* MRV_WDR_DY17 */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_wdr_tonecurve_4: Tone Curve sample points dYn definition
|
||
* (part 4) (0x00000010)
|
||
*
|
||
* isp_wdr_tonecurve_4_shd: Tone Curve sample points dYn definition
|
||
* shadow register(part 4) (0x000000ac)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: WDR_dY32:*/
|
||
/* Tone curve sample point definition dY32 on the horizontal axis (input)*/
|
||
#ifdef MRV_WDR_DY32
|
||
#endif /* MRV_WDR_DY32 */
|
||
/* Slice: WDR_dY31:*/
|
||
/* Tone curve sample point definition dY31 on the horizontal axis (input)*/
|
||
#ifdef MRV_WDR_DY31
|
||
#endif /* MRV_WDR_DY31 */
|
||
/* Slice: WDR_dY30:*/
|
||
/* Tone curve sample point definition dY30 on the horizontal axis (input)*/
|
||
#ifdef MRV_WDR_DY30
|
||
#endif /* MRV_WDR_DY30 */
|
||
/* Slice: WDR_dY29:*/
|
||
/* Tone curve sample point definition dY29 on the horizontal axis (input)*/
|
||
#ifdef MRV_WDR_DY29
|
||
#endif /* MRV_WDR_DY29 */
|
||
/* Slice: WDR_dY28:*/
|
||
/* Tone curve sample point definition dY28 on the horizontal axis (input)*/
|
||
#ifdef MRV_WDR_DY28
|
||
#endif /* MRV_WDR_DY28 */
|
||
/* Slice: WDR_dY27:*/
|
||
/* Tone curve sample point definition dY27 on the horizontal axis (input)*/
|
||
#ifdef MRV_WDR_DY27
|
||
#endif /* MRV_WDR_DY27 */
|
||
/* Slice: WDR_dY26:*/
|
||
/* Tone curve sample point definition dY26 on the horizontal axis (input)*/
|
||
#ifdef MRV_WDR_DY26
|
||
#endif /* MRV_WDR_DY26 */
|
||
/* Slice: WDR_dY25:*/
|
||
/* Tone curve sample point definition dY25 on the horizontal axis (input)*/
|
||
#ifdef MRV_WDR_DY25
|
||
#endif /* MRV_WDR_DY25 */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register array: isp_wdr_tonecurve_ym: Tonemapping curve coefficient Ym_
|
||
* (0x0028 + n*0x4 (n=0..32))
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: tonecurve_ym_n:*/
|
||
/* Tone curve value definition y-axis (output) of WDR unit */
|
||
#ifdef MRV_WDR_TONECURVE_YM_N
|
||
#endif /* MRV_WDR_TONECURVE_YM_N */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_wdr_offset: Offset values for RGB path (0x00000098)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: LUM_OFFSET:*/
|
||
/* Luminance Offset value (a) for RGB operation mode */
|
||
/* unsigned 12 bit value */
|
||
#ifdef MRV_WDR_LUM_OFFSET
|
||
#endif /* MRV_WDR_LUM_OFFSET */
|
||
/* Slice: RGB_OFFSET:*/
|
||
/* RGB Offset value (b) for RGB operation mode */
|
||
/* unsigned 12 bit value */
|
||
#ifdef MRV_WDR_RGB_OFFSET
|
||
#endif /* MRV_WDR_RGB_OFFSET */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_wdr_deltamin: DeltaMin Threshold and Strength factor (0x0000009c)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: DMIN_STRENGTH:*/
|
||
/* strength factor for DMIN */
|
||
/* unsigned 5 bit value, range 0x00...0x10 */
|
||
#ifdef MRV_WDR_DMIN_STRENGTH
|
||
#endif /* MRV_WDR_DMIN_STRENGTH */
|
||
/* Slice: DMIN_THRESH:*/
|
||
/* Lower threshold for deltaMin value */
|
||
/* unsigned 12 bit value */
|
||
#ifdef MRV_WDR_DMIN_THRESH
|
||
#endif /* MRV_WDR_DMIN_THRESH */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register array: isp_wdr_tonecurve_ym_shd: Tonemapping curve coefficient
|
||
* shadow register (0x0160 + n*0x4 (n=0..32))
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: tonecurve_ym_n_shd:*/
|
||
/* Tone curve value definition y-axis (output) of WDR unit */
|
||
/* shadow register.*/
|
||
#ifdef MRV_WDR_TONECURVE_YM_N_SHD
|
||
#endif /* MRV_WDR_TONECURVE_YM_N_SHD */
|
||
/*****************************************************************************/
|
||
/* ISP Elliptic Auto White Balance Registers */
|
||
/*****************************************************************************/
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: awb_meas_mode: AWB Measure Mode (0x00000000)
|
||
*
|
||
*****************************************************************************/
|
||
/*! Register: awb_meas_mode: AWB Measure Mode (0x00000000)*/
|
||
/*! Slice: AWB_union_e5_and_e8:*/
|
||
/*! unite ellipse 5 with ellipse 8. Accu and count for ellipse 8.*/
|
||
#ifdef ISP_AWB_UNION_E5_AND_E8
|
||
#define ISP_AWB_UNION_E5_AND_E8_ON 1 /* 1: enable unite ellipse 5 with ellipse 8 */
|
||
#define ISP_AWB_UNION_E5_AND_E8_OFF 0 /* 0: disable unite ellipse 5 with ellipse 8 */
|
||
#endif /* ISP_AWB_UNION_E5_AND_E8 */
|
||
/*! Slice: AWB_union_e5_and_e7:*/
|
||
/*! unite ellipse 5 with ellipse 7. Accu and count for ellipse 7.*/
|
||
#ifdef ISP_AWB_UNION_E5_AND_E7
|
||
#define ISP_AWB_UNION_E5_AND_E7_ON 1 /* 1: enable unite ellipse 5 with ellipse 7 */
|
||
#define ISP_AWB_UNION_E5_AND_E7_OFF 0 /* 0: disable unite ellipse 5 with ellipse 7 */
|
||
#endif /* ISP_AWB_UNION_E5_AND_E7 */
|
||
/*! Slice: AWB_union_e5_and_e6:*/
|
||
/*! unite ellipse 5 with ellipse 6. Accu and count for ellipse 6.*/
|
||
#ifdef ISP_AWB_UNION_E5_AND_E6
|
||
#define ISP_AWB_UNION_E5_AND_E6_ON 1 /* 1: enable unite ellipse 5 with ellipse 6 */
|
||
#define ISP_AWB_UNION_E5_AND_E6_OFF 0 /* 0: disable unite ellipse 5 with ellipse 6 */
|
||
#endif /* ISP_AWB_UNION_E5_AND_E6 */
|
||
/*! Slice: AWB_union_e1_and_e4:*/
|
||
/*! unite ellipse 1 with ellipse 4. Accu and count for ellipse 4.*/
|
||
#ifdef ISP_AWB_UNION_E1_AND_E4
|
||
#define ISP_AWB_UNION_E1_AND_E4_ON 1 /* 1: enable unite ellipse 1 with ellipse 4 */
|
||
#define ISP_AWB_UNION_E1_AND_E4_OFF 0 /* 0: disable unite ellipse 1 with ellipse 4 */
|
||
#endif /* ISP_AWB_UNION_E1_AND_E4 */
|
||
/*! Slice: AWB_union_e1_and_e3:*/
|
||
/*! unite ellipse 1 with ellipse 3. Accu and count for ellipse 3.*/
|
||
#ifdef ISP_AWB_UNION_E1_AND_E3
|
||
#define ISP_AWB_UNION_E1_AND_E3_ON 1 /* 1: enable unite ellipse 1 with ellipse 3 */
|
||
#define ISP_AWB_UNION_E1_AND_E3_OFF 0 /* 0: disable unite ellipse 1 with ellipse 3 */
|
||
#endif /* ISP_AWB_UNION_E1_AND_E3 */
|
||
/*! Slice: AWB_union_e1_and_e2:*/
|
||
/*! unite ellipse 1 with ellipse 2. Accu and count for ellipse 2.*/
|
||
#ifdef ISP_AWB_UNION_E1_AND_E2
|
||
#define ISP_AWB_UNION_E1_AND_E2_ON 1 /* 1: enable unite ellipse 1 with ellipse 2 */
|
||
#define ISP_AWB_UNION_E1_AND_E2_OFF 0 /* 0: disable unite ellipse 1 with ellipse 2 */
|
||
#endif /* ISP_AWB_UNION_E1_AND_E2 */
|
||
/*! Slice: AWB_meas_chrom_switch:*/
|
||
/*! Accumulates Q1 and Q2 chromaticies instead of R, G, B color signals. Results are written on AWB_ACCU registers as well.*/
|
||
#ifdef ISP_AWB_MEAS_CHROM_SWITCH
|
||
#define ISP_AWB_MEAS_CHROM_SWITCH_ON 1 /* 1: accumulates Q1 and Q2 chromaticies */
|
||
#define ISP_AWB_MEAS_CHROM_SWITCH_OFF 0 /* 0: accumulates R, G, B color signals */
|
||
#endif /* ISP_AWB_MEAS_CHROM_SWITCH */
|
||
/* Slice: AWB_meas_irq_enable:*/
|
||
/* AWB measure done IRQ enable.*/
|
||
#ifdef ISP_AWB_MEAS_IRQ_ENABLE
|
||
#define ISP_AWB_MEAS_IRQ_ENABLE_ON 1 /* 1: enable measuring done irq */
|
||
#define ISP_AWB_MEAS_IRQ_ENABLE_OFF 0 /* 0: enable measuring done irq */
|
||
#endif /* ISP_AWB_MEAS_IRQ_ENABLE */
|
||
/* Slice: AWB_pre_filt_en:*/
|
||
/* median pre filter enable.*/
|
||
#ifdef ISP_AWB_PRE_FILT_EN
|
||
#define ISP_AWB_PRE_FILT_EN_ON 1 /* 1: enable median pre filter */
|
||
#define ISP_AWB_PRE_FILT_EN_OFF 0 /* 0: disable median pre filter */
|
||
#endif /* ISP_AWB_PRE_FILT_EN */
|
||
/* Slice: AWB_meas_en:*/
|
||
/* enable measure.*/
|
||
#ifdef ISP_AWB_MEAS_EN
|
||
#define ISP_AWB_MEAS_EN_ON 1 /* 1: enable measuring */
|
||
#define ISP_AWB_MEAS_EN_OFF 0 /* 0: disable measuring */
|
||
#endif /* ISP_AWB_MEAS_EN */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: awb_meas_h_offs: AWB window horizontal offset (0x00000004)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: AWB_h_offset:*/
|
||
/* Horizontal offset in pixels.*/
|
||
#ifdef ISP_AWB_H_OFFSET
|
||
#define ISP_AWB_H_OFFSET_MIN 0U
|
||
#define ISP_AWB_H_OFFSET_MAX (ISP_AWB_H_OFFSET_MASK >> ISP_AWB_H_OFFSET_SHIFT)
|
||
#endif /* ISP_AWB_H_OFFSET */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: awb_meas_v_offs: AWB window vertical offset (0x00000008)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: AWB_v_offset:*/
|
||
/* Vertical offset in pixels.*/
|
||
#ifdef ISP_AWB_V_OFFSET
|
||
#define ISP_AWB_V_OFFSET_MIN 0U
|
||
#define ISP_AWB_V_OFFSET_MAX (ISP_AWB_V_OFFSET_MASK >> ISP_AWB_V_OFFSET_SHIFT)
|
||
#endif /* ISP_AWB_V_OFFSET */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: awb_meas_h_size: Horizontal window size (0x0000000c)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: AWB_h_size:*/
|
||
/* Horizontal size in pixels.*/
|
||
#ifdef ISP_AWB_H_SIZE
|
||
#define ISP_AWB_H_SIZE_MIN 0U
|
||
#define ISP_AWB_H_SIZE_MAX (ISP_AWB_H_SIZE_MASK >> ISP_AWB_H_SIZE_SHIFT)
|
||
#endif /* ISP_AWB_H_SIZE */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: awb_meas_v_size: Vertical window size (0x00000010)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: AWB_v_size:*/
|
||
/* Vertical size.*/
|
||
#ifdef ISP_AWB_V_SIZE
|
||
#define ISP_AWB_V_SIZE_MIN 0U
|
||
#define ISP_AWB_V_SIZE_MAX (ISP_AWB_V_SIZE_MASK >> ISP_AWB_V_SIZE_SHIFT)
|
||
#endif /* ISP_AWB_V_SIZE */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: awb_meas_r_min_max: Min Max Compare Red (0x00000014)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: r_max:*/
|
||
/* max red value */
|
||
#ifdef ISP_AWB_R_MAX
|
||
#endif /* ISP_AWB_R_MAX */
|
||
/* Slice: r_min:*/
|
||
/* min red value */
|
||
#ifdef ISP_AWB_R_MIN
|
||
#endif /* ISP_AWB_R_MIN */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: awb_meas_g_min_max: Min Max Compare Green (0x00000018)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: g_max:*/
|
||
/* max green value */
|
||
#ifdef ISP_AWB_G_MAX
|
||
#endif /* ISP_AWB_G_MAX */
|
||
/* Slice: g_min:*/
|
||
/* min green value */
|
||
#ifdef ISP_AWB_G_MIN
|
||
#endif /* ISP_AWB_G_MIN */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: awb_meas_b_min_max: Min Max Compare Blue (0x0000001c)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: b_max:*/
|
||
/* max blue value */
|
||
#ifdef ISP_AWB_B_MAX
|
||
#endif /* ISP_AWB_B_MAX */
|
||
/*! Slice: b_min:*/
|
||
/*! min blue value */
|
||
#ifdef ISP_AWB_B_MIN
|
||
#endif /* ISP_AWB_B_MIN */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: awb_meas_divider_min: Min Compare Divider (0x00000020)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: div_min:*/
|
||
/* min divider value unsigned integer with 10 fractional Bits range 0 to 0.999 */
|
||
#ifdef ISP_AWB_DIV_MIN
|
||
#endif /* ISP_AWB_DIV_MIN */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: awb_meas_csc_coeff_0: Color conversion coefficient 0 (0x00000024)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: cc_coeff_0:*/
|
||
/* coefficient 0 for color space conversion */
|
||
#ifdef ISP_AWB_CC_COEFF_0
|
||
#endif /* ISP_AWB_CC_COEFF_0 */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: awb_meas_csc_coeff_1: Color conversion coefficient 1 (0x00000028)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: cc_coeff_1:*/
|
||
/* coefficient 1 for color space conversion */
|
||
#ifdef ISP_AWB_CC_COEFF_1
|
||
#endif /* ISP_AWB_CC_COEFF_1 */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: awb_meas_csc_coeff_2: Color conversion coefficient 2 (0x0000002c)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: cc_coeff_2:*/
|
||
/* coefficient 2 for color space conversion */
|
||
#ifdef ISP_AWB_CC_COEFF_2
|
||
#endif /* ISP_AWB_CC_COEFF_2 */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: awb_meas_csc_coeff_3: Color conversion coefficient 3 (0x00000030)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: cc_coeff_3:*/
|
||
/* coefficient 3 for color space conversion */
|
||
#ifdef ISP_AWB_CC_COEFF_3
|
||
#endif /* ISP_AWB_CC_COEFF_3 */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: awb_meas_csc_coeff_4: Color conversion coefficient 4 (0x00000034)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: cc_coeff_4:*/
|
||
/* coefficient 4 for color space conversion */
|
||
#ifdef ISP_AWB_CC_COEFF_4
|
||
#endif /* ISP_AWB_CC_COEFF_4 */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: awb_meas_csc_coeff_5: Color conversion coefficient 5 (0x00000038)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: cc_coeff_5:*/
|
||
/* coefficient 5 for color space conversion */
|
||
#ifdef ISP_AWB_CC_COEFF_5
|
||
#endif /* ISP_AWB_CC_COEFF_5 */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: awb_meas_csc_coeff_6: Color conversion coefficient 6 (0x0000003c)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: cc_coeff_6:*/
|
||
/* coefficient 6 for color space conversion */
|
||
#ifdef ISP_AWB_CC_COEFF_6
|
||
#endif /* ISP_AWB_CC_COEFF_6 */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: awb_meas_csc_coeff_7: Color conversion coefficient 7 (0x00000040)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: cc_coeff_7:*/
|
||
/* coefficient 7 for color space conversion */
|
||
#ifdef ISP_AWB_CC_COEFF_7
|
||
#endif /* ISP_AWB_CC_COEFF_7 */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: awb_meas_csc_coeff_8: Color conversion coefficient 8 (0x00000044)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: cc_coeff_8:*/
|
||
/* coefficient 8 for color space conversion */
|
||
#ifdef ISP_AWB_CC_COEFF_8
|
||
#endif /* ISP_AWB_CC_COEFF_8 */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: awb_meas_ellip1_cen_x: Ellipse 1 Center X (0x00000048)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: ellip1_cen_x:*/
|
||
/* Ellipse 1 Center X signed integer value with 9 bit fractional part, range -1 to 0.998 */
|
||
#ifdef ISP_AWB_ELLIP1_CEN_X
|
||
#endif /* ISP_AWB_ELLIP1_CEN_X */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: awb_meas_ellip1_cen_y: Ellipse 1 Center Y (0x0000004c)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: ellip1_cen_y:*/
|
||
/* Ellipse 1 Center Y signed integer value with 9 bit fractional part, range -1 to 0.998 */
|
||
#ifdef ISP_AWB_ELLIP1_CEN_Y
|
||
#endif /* ISP_AWB_ELLIP1_CEN_Y */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: awb_meas_ellip2_cen_x: Ellipse 2 Center X (0x00000050)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: ellip2_cen_x:*/
|
||
/* Ellipse 2 Center X signed integer value with 9 bit fractional part, range -1 to 0.998 */
|
||
#ifdef ISP_AWB_ELLIP2_CEN_X
|
||
#endif /* ISP_AWB_ELLIP2_CEN_X */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: awb_meas_ellip2_cen_y: Ellipse 2 Center Y (0x00000054)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: ellip2_cen_y:*/
|
||
/* Ellipse 2 Center Y signed integer value with 9 bit fractional part, range -1 to 0.998 */
|
||
#ifdef ISP_AWB_ELLIP2_CEN_Y
|
||
#endif /* ISP_AWB_ELLIP2_CEN_Y */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: awb_meas_ellip3_cen_x: Ellipse 3 Center X (0x00000058)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: ellip3_cen_x:*/
|
||
/* Ellipse 3 Center X signed integer value with 9 bit fractional part, range -1 to 0.998 */
|
||
#ifdef ISP_AWB_ELLIP3_CEN_X
|
||
#endif /* ISP_AWB_ELLIP3_CEN_X */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: awb_meas_ellip3_cen_y: Ellipse 3 Center Y (0x0000005c)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: ellip3_cen_y:*/
|
||
/* Ellipse 3 Center Y signed integer value with 9 bit fractional part, range -1 to 0.998 */
|
||
#ifdef ISP_AWB_ELLIP3_CEN_Y
|
||
#endif /* ISP_AWB_ELLIP3_CEN_Y */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: awb_meas_ellip4_cen_x: Ellipse 4 Center X (0x00000060)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: ellip4_cen_x:*/
|
||
/* Ellipse 4 Center X signed integer value with 9 bit fractional part, range -1 to 0.998 */
|
||
#ifdef ISP_AWB_ELLIP4_CEN_X
|
||
#endif /* ISP_AWB_ELLIP4_CEN_X */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: awb_meas_ellip4_cen_y: Ellipse 4 Center Y (0x00000064)
|
||
*
|
||
*****************************************************************************/
|
||
/* Register: awb_meas_ellip4_cen_y: Ellipse 4 Center Y (0x00000064)*/
|
||
/* Slice: ellip4_cen_y:*/
|
||
/* Ellipse 4 Center Y signed integer value with 9 bit fractional part, range -1 to 0.998 */
|
||
#ifdef ISP_AWB_ELLIP4_CEN_Y
|
||
#endif /* ISP_AWB_ELLIP4_CEN_Y */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: awb_meas_ellip5_cen_x: Ellipse 5 Center X (0x00000068)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: ellip5_cen_x:*/
|
||
/* Ellipse 5 Center X signed integer value with 9 bit fractional part, range -1 to 0.998 */
|
||
#ifdef ISP_AWB_ELLIP5_CEN_X
|
||
#endif /* ISP_AWB_ELLIP5_CEN_X */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: awb_meas_ellip5_cen_y: Ellipse 5 Center Y (0x0000006c)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: ellip5_cen_y:*/
|
||
/* Ellipse 5 Center Y signed integer value with 9 bit fractional part, range -1 to 0.998 */
|
||
#ifdef ISP_AWB_ELLIP5_CEN_Y
|
||
#endif /* ISP_AWB_ELLIP5_CEN_Y */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: awb_meas_ellip6_cen_x: Ellipse 6 Center X (0x00000070)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: ellip6_cen_x:*/
|
||
/* Ellipse 6 Center X signed integer value with 9 bit fractional part, range -1 to 0.998 */
|
||
#ifdef ISP_AWB_ELLIP6_CEN_X
|
||
#endif /* ISP_AWB_ELLIP6_CEN_X */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: awb_meas_ellip6_cen_y: Ellipse 6 Center Y (0x00000074)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: ellip6_cen_y:*/
|
||
/* Ellipse 6 Center Y signed integer value with 9 bit fractional part, range -1 to 0.998 */
|
||
#ifdef ISP_AWB_ELLIP6_CEN_Y
|
||
#endif /* ISP_AWB_ELLIP6_CEN_Y */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: awb_meas_ellip7_cen_x: Ellipse 7 Center X (0x00000078)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: ellip7_cen_x:*/
|
||
/* Ellipse 7 Center X signed integer value with 9 bit fractional part, range -1 to 0.998 */
|
||
#ifdef ISP_AWB_ELLIP7_CEN_X
|
||
#endif /* ISP_AWB_ELLIP7_CEN_X */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: awb_meas_ellip7_cen_y: Ellipse 7 Center Y (0x0000007c)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: ellip7_cen_y:*/
|
||
/* Ellipse 7 Center Y signed integer value with 9 bit fractional part, range -1 to 0.998 */
|
||
#ifdef ISP_AWB_ELLIP7_CEN_Y
|
||
#endif /* ISP_AWB_ELLIP7_CEN_Y */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: awb_meas_ellip8_cen_x: Ellipse 8 Center X (0x00000080)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: ellip8_cen_x:*/
|
||
/* Ellipse 8 Center X signed integer value with 9 bit fractional part, range -1 to 0.998 */
|
||
#ifdef ISP_AWB_ELLIP8_CEN_X
|
||
#endif /* ISP_AWB_ELLIP8_CEN_X */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: awb_meas_ellip8_cen_y: Ellipse 8 Center Y (0x00000084)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: ellip8_cen_y:*/
|
||
/* Ellipse 8 Center Y signed integer value with 9 bit fractional part, range -1 to 0.998 */
|
||
#ifdef ISP_AWB_ELLIP8_CEN_Y
|
||
#endif /* ISP_AWB_ELLIP8_CEN_Y */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: awb_meas_ellip1_a1: Ellipse 1 coefficient a1 (0x00000088)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: ellip1_a1:*/
|
||
/* Ellipse 1 Coefficient a1 signed integer value with 8 bit fractional part, range -7.996 to 7.996 */
|
||
#ifdef ISP_AWB_ELLIP1_A1
|
||
#endif /* ISP_AWB_ELLIP1_A1 */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: awb_meas_ellip1_a2: Ellipse 1 coefficient a2 (0x0000008c)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: ellip1_a2:*/
|
||
/* Ellipse 1 Coefficient a2 signed integer value with 8 bit fractional part, range -1 to 0.996 */
|
||
#ifdef ISP_AWB_ELLIP1_A2
|
||
#endif /* ISP_AWB_ELLIP1_A2 */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: awb_meas_ellip1_a3: Ellipse 1 coefficient a3 (0x00000090)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: ellip1_a3:*/
|
||
/* Ellipse 1 Coefficient a3 signed integer value with 8 bit fractional part, range -7.996 to 7.996 */
|
||
#ifdef ISP_AWB_ELLIP1_A3
|
||
#endif /* ISP_AWB_ELLIP1_A3 */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: awb_meas_ellip1_a4: Ellipse 1 coefficient a4 (0x00000094)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: ellip1_a4:*/
|
||
/* Ellipse 1 Coefficient a4 signed integer value with 8 bit fractional part, range -1 to 0.996 */
|
||
#ifdef ISP_AWB_ELLIP1_A4
|
||
#endif /* ISP_AWB_ELLIP1_A4 */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: awb_meas_ellip2_a1: Ellipse 2 coefficient a1 (0x00000098)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: ellip2_a1:*/
|
||
/* Ellipse 2 Coefficient a1 signed integer value with 8 bit fractional part, range -7.996 to 7.996 */
|
||
#ifdef ISP_AWB_ELLIP2_A1
|
||
#endif /* ISP_AWB_ELLIP2_A1 */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: awb_meas_ellip2_a2: Ellipse 2 coefficient a2 (0x0000009c)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: ellip2_a2:*/
|
||
/* Ellipse 2 Coefficient a2 signed integer value with 8 bit fractional part, range -1 to 0.996 */
|
||
#ifdef ISP_AWB_ELLIP2_A2
|
||
#endif /* ISP_AWB_ELLIP2_A2 */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: awb_meas_ellip2_a3: Ellipse 2 coefficient a3 (0x000000a0)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: ellip2_a3:*/
|
||
/* Ellipse 2 Coefficient a3 signed integer value with 8 bit fractional part, range -7.996 to 7.996 */
|
||
#ifdef ISP_AWB_ELLIP2_A3
|
||
#endif /* ISP_AWB_ELLIP2_A3 */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: awb_meas_ellip2_a4: Ellipse 2 coefficient a4 (0x000000a4)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: ellip2_a4:*/
|
||
/* Ellipse 2 Coefficient a4 signed integer value with 8 bit fractional part, range -1 to 0.996 */
|
||
#ifdef ISP_AWB_ELLIP2_A4
|
||
#endif /* ISP_AWB_ELLIP2_A4 */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: awb_meas_ellip3_a1: Ellipse 3 coefficient a1 (0x000000a8)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: ellip3_a1:*/
|
||
/* Ellipse 2 Coefficient a1 signed integer value with 8 bit fractional part, range -7.996 to 7.996 */
|
||
#ifdef ISP_AWB_ELLIP3_A1
|
||
#endif /* ISP_AWB_ELLIP3_A1 */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: awb_meas_ellip3_a2: Ellipse 3 coefficient a2 (0x000000ac)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: ellip3_a2:*/
|
||
/* Ellipse 2 Coefficient a2 signed integer value with 8 bit fractional part, range -1 to 0.996 */
|
||
#ifdef ISP_AWB_ELLIP3_A2
|
||
#endif /* ISP_AWB_ELLIP3_A2 */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: awb_meas_ellip3_a3: Ellipse 3 coefficient a3 (0x000000b0)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: ellip3_a3:*/
|
||
/* Ellipse 2 Coefficient a3 signed integer value with 8 bit fractional part, range -7.996 to 7.996 */
|
||
#ifdef ISP_AWB_ELLIP3_A3
|
||
#endif /* ISP_AWB_ELLIP3_A3 */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: awb_meas_ellip3_a4: Ellipse 3 coefficient a4 (0x000000b4)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: ellip3_a4:*/
|
||
/* Ellipse 2 Coefficient a4 signed integer value with 8 bit fractional part, range -1 to 0.996 */
|
||
#ifdef ISP_AWB_ELLIP3_A4
|
||
#endif /* ISP_AWB_ELLIP3_A4 */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: awb_meas_ellip4_a1: Ellipse 4 coefficient a1 (0x000000b8)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: ellip4_a1:*/
|
||
/* Ellipse 2 Coefficient a1 signed integer value with 8 bit fractional part, range -7.996 to 7.996 */
|
||
#ifdef ISP_AWB_ELLIP4_A1
|
||
#endif /* ISP_AWB_ELLIP4_A1 */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: awb_meas_ellip4_a2: Ellipse 4 coefficient a2 (0x000000bc)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: ellip4_a2:*/
|
||
/* Ellipse 2 Coefficient a2 signed integer value with 8 bit fractional part, range -1 to 0.996 */
|
||
#ifdef ISP_AWB_ELLIP4_A2
|
||
#endif /* ISP_AWB_ELLIP4_A2 */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: awb_meas_ellip4_a3: Ellipse 4 coefficient a3 (0x000000c0)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: ellip4_a3:*/
|
||
/* Ellipse 2 Coefficient a3 signed integer value with 8 bit fractional part, range -7.996 to 7.996 */
|
||
#ifdef ISP_AWB_ELLIP4_A3
|
||
#endif /* ISP_AWB_ELLIP4_A3 */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: awb_meas_ellip4_a4: Ellipse 4 coefficient a4 (0x000000c4)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: ellip4_a4:*/
|
||
/* Ellipse 2 Coefficient a4 signed integer value with 8 bit fractional part, range -1 to 0.996 */
|
||
#ifdef ISP_AWB_ELLIP4_A4
|
||
#endif /* ISP_AWB_ELLIP4_A4 */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: awb_meas_ellip5_a1: Ellipse 5 coefficient a1 (0x000000c8)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: ellip5_a1:*/
|
||
/* Ellipse 2 Coefficient a1 signed integer value with 8 bit fractional part, range -7.996 to 7.996 */
|
||
#ifdef ISP_AWB_ELLIP5_A1
|
||
#endif /* ISP_AWB_ELLIP5_A1 */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: awb_meas_ellip5_a2: Ellipse 5 coefficient a2 (0x000000cc)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: ellip5_a2:*/
|
||
/* Ellipse 2 Coefficient a2 signed integer value with 8 bit fractional part, range -1 to 0.996 */
|
||
#ifdef ISP_AWB_ELLIP5_A2
|
||
#endif /* ISP_AWB_ELLIP5_A2 */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: awb_meas_ellip5_a3: Ellipse 5 coefficient a3 (0x000000d0)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: ellip5_a3:*/
|
||
/* Ellipse 2 Coefficient a3 signed integer value with 8 bit fractional part, range -7.996 to 7.996 */
|
||
#ifdef ISP_AWB_ELLIP5_A3
|
||
#endif /* ISP_AWB_ELLIP5_A3 */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: awb_meas_ellip5_a4: Ellipse 5 coefficient a4 (0x000000d4)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: ellip5_a4:*/
|
||
/* Ellipse 2 Coefficient a4 signed integer value with 8 bit fractional part, range -1 to 0.996 */
|
||
#ifdef ISP_AWB_ELLIP5_A4
|
||
#endif /* ISP_AWB_ELLIP5_A4 */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: awb_meas_ellip6_a1: Ellipse 6 coefficient a1 (0x000000d8)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: ellip6_a1:*/
|
||
/* Ellipse 2 Coefficient a1 signed integer value with 8 bit fractional part, range -7.996 to 7.996 */
|
||
#ifdef ISP_AWB_ELLIP6_A1
|
||
#endif /* ISP_AWB_ELLIP6_A1 */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: awb_meas_ellip6_a2: Ellipse 6 coefficient a2 (0x000000dc)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: ellip6_a2:*/
|
||
/* Ellipse 2 Coefficient a2 signed integer value with 8 bit fractional part, range -1 to 0.996 */
|
||
#ifdef ISP_AWB_ELLIP6_A2
|
||
#endif /* ISP_AWB_ELLIP6_A2 */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: awb_meas_ellip6_a3: Ellipse 6 coefficient a3 (0x000000e0)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: ellip6_a3:*/
|
||
/* Ellipse 2 Coefficient a3 signed integer value with 8 bit fractional part, range -7.996 to 7.996 */
|
||
#ifdef ISP_AWB_ELLIP6_A3
|
||
#endif /* ISP_AWB_ELLIP6_A3 */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: awb_meas_ellip6_a4: Ellipse 6 coefficient a4 (0x000000e4)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: ellip6_a4:*/
|
||
/* Ellipse 2 Coefficient a4 signed integer value with 8 bit fractional part, range -1 to 0.996 */
|
||
#ifdef ISP_AWB_ELLIP6_A4
|
||
#endif /* ISP_AWB_ELLIP6_A4 */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: awb_meas_ellip7_a1: Ellipse 7 coefficient a1 (0x000000e8)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: ellip7_a1:*/
|
||
/* Ellipse 2 Coefficient a1 signed integer value with 8 bit fractional part, range -7.996 to 7.996 */
|
||
#ifdef ISP_AWB_ELLIP7_A1
|
||
#endif /* ISP_AWB_ELLIP7_A1 */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: awb_meas_ellip7_a2: Ellipse 7 coefficient a2 (0x000000ec)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: ellip7_a2:*/
|
||
/* Ellipse 2 Coefficient a2 signed integer value with 8 bit fractional part, range -1 to 0.996 */
|
||
#ifdef ISP_AWB_ELLIP7_A2
|
||
#endif /* ISP_AWB_ELLIP7_A2 */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: awb_meas_ellip7_a3: Ellipse 7 coefficient a3 (0x000000f0)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: ellip7_a3:*/
|
||
/* Ellipse 2 Coefficient a3 signed integer value with 8 bit fractional part, range -7.996 to 7.996 */
|
||
#ifdef ISP_AWB_ELLIP7_A3
|
||
#endif /* ISP_AWB_ELLIP7_A3 */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: awb_meas_ellip7_a4: Ellipse 7 coefficient a4 (0x000000f4)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: ellip7_a4:*/
|
||
/* Ellipse 2 Coefficient a4 signed integer value with 8 bit fractional part, range -1 to 0.996 */
|
||
#ifdef ISP_AWB_ELLIP7_A4
|
||
#endif /* ISP_AWB_ELLIP7_A4 */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: awb_meas_ellip8_a1: Ellipse 8 coefficient a1 (0x000000f8)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: ellip8_a1:*/
|
||
/* Ellipse 2 Coefficient a1 signed integer value with 8 bit fractional part, range -7.996 to 7.996 */
|
||
#ifdef ISP_AWB_ELLIP8_A1
|
||
#endif /* ISP_AWB_ELLIP8_A1 */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: awb_meas_ellip8_a2: Ellipse 8 coefficient a2 (0x000000fc)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: ellip8_a2:*/
|
||
/* Ellipse 2 Coefficient a2 signed integer value with 8 bit fractional part, range -1 to 0.996 */
|
||
#ifdef ISP_AWB_ELLIP8_A2
|
||
#endif /* ISP_AWB_ELLIP8_A2 */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: awb_meas_ellip8_a3: Ellipse 8 coefficient a3 (0x00000100)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: ellip8_a3:*/
|
||
/* Ellipse 2 Coefficient a3 signed integer value with 8 bit fractional part, range -7.996 to 7.996 */
|
||
#ifdef ISP_AWB_ELLIP8_A3
|
||
#endif /* ISP_AWB_ELLIP8_A3 */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: awb_meas_ellip8_a4: Ellipse 8 coefficient a4 (0x00000104)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: ellip8_a4:*/
|
||
/* Ellipse 2 Coefficient a4 signed integer value with 8 bit fractional part, range -1 to 0.996 */
|
||
#ifdef ISP_AWB_ELLIP8_A4
|
||
#endif /* ISP_AWB_ELLIP8_A4 */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: awb_meas_ellip1_rmax: Ellipse 1 r_max (0x00000108)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: ellip1_rmax:*/
|
||
/* Ellipse 1 max radius square compare value */
|
||
#ifdef ISP_AWB_ELLIP1_RMAX
|
||
#endif /* ISP_AWB_ELLIP1_RMAX */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: awb_meas_ellip2_rmax: Ellipse 2 r_max (0x0000010c)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: ellip2_rmax:*/
|
||
/* Ellipse 2 max radius square compare value */
|
||
#ifdef ISP_AWB_ELLIP2_RMAX
|
||
#endif /* ISP_AWB_ELLIP2_RMAX */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: awb_meas_ellip3_rmax: Ellipse 3 r_max (0x00000110)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: ellip3_rmax:*/
|
||
/* Ellipse 3 max radius square compare value */
|
||
#ifdef ISP_AWB_ELLIP3_RMAX
|
||
#endif /* ISP_AWB_ELLIP3_RMAX */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: awb_meas_ellip4_rmax: Ellipse 4 r_max (0x00000114)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: ellip4_rmax:*/
|
||
/* Ellipse 4 max radius square compare value */
|
||
#ifdef ISP_AWB_ELLIP4_RMAX
|
||
#endif /* ISP_AWB_ELLIP4_RMAX */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: awb_meas_ellip5_rmax: Ellipse 5 r_max (0x00000118)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: ellip5_rmax:*/
|
||
/* Ellipse 5 max radius square compare value */
|
||
#ifdef ISP_AWB_ELLIP5_RMAX
|
||
#endif /* ISP_AWB_ELLIP5_RMAX */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: awb_meas_ellip6_rmax: Ellipse 6 r_max (0x0000011c)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: ellip6_rmax:*/
|
||
/* Ellipse 6 max radius square compare value */
|
||
#ifdef ISP_AWB_ELLIP6_RMAX
|
||
#endif /* ISP_AWB_ELLIP6_RMAX */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: awb_meas_ellip7_rmax: Ellipse 7 r_max (0x00000120)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: ellip7_rmax:*/
|
||
/* Ellipse 7 max radius square compare value */
|
||
#ifdef ISP_AWB_ELLIP7_RMAX
|
||
#endif /* ISP_AWB_ELLIP7_RMAX */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: awb_meas_ellip8_rmax: Ellipse 8 r_max (0x00000124)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: ellip8_rmax:*/
|
||
/* Ellipse 8 max radius square compare value */
|
||
#ifdef ISP_AWB_ELLIP8_RMAX
|
||
#endif /* ISP_AWB_ELLIP8_RMAX */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: awb_meas_counter_1: AWB Counter 1 (0x00000128)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: count_1:*/
|
||
/* counted Pixels of Ellipse 1 */
|
||
#ifdef ISP_AWB_COUNT_1
|
||
#endif /* ISP_AWB_COUNT_1 */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: awb_meas_counter_2: AWB Counter 2 (0x0000012c)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: count_2:*/
|
||
/* counted Pixels of Ellipse 2 */
|
||
#ifdef ISP_AWB_COUNT_2
|
||
#endif /* ISP_AWB_COUNT_2 */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: awb_meas_counter_3: AWB Counter 3 (0x00000130)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: count_3:*/
|
||
/* counted Pixels of Ellipse 3 */
|
||
#ifdef ISP_AWB_COUNT_3
|
||
#endif /* ISP_AWB_COUNT_3 */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: awb_meas_counter_4: AWB Counter 4 (0x00000134)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: count_4:*/
|
||
/* counted Pixels of Ellipse 4 */
|
||
#ifdef ISP_AWB_COUNT_4
|
||
#endif /* ISP_AWB_COUNT_4 */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: awb_meas_counter_5: AWB Counter 5 (0x00000138)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: count_5:*/
|
||
/* counted Pixels of Ellipse 5 */
|
||
#ifdef ISP_AWB_COUNT_5
|
||
#endif /* ISP_AWB_COUNT_5 */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: awb_meas_counter_6: AWB Counter 6 (0x0000013c)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: count_6:*/
|
||
/* counted Pixels of Ellipse 6 */
|
||
#ifdef ISP_AWB_COUNT_6
|
||
#endif /* ISP_AWB_COUNT_6 */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: awb_meas_counter_7: AWB Counter 7 (0x00000140)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: count_7:*/
|
||
/* counted Pixels of Ellipse 7 */
|
||
#ifdef ISP_AWB_COUNT_7
|
||
#endif /* ISP_AWB_COUNT_7 */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: awb_meas_counter_8: AWB Counter 8 (0x00000144)
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: count_8:*/
|
||
/* counted Pixels of Ellipse 8 */
|
||
#ifdef ISP_AWB_COUNT_8
|
||
#endif /* ISP_AWB_COUNT_8 */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register array: awb_meas_accu: AWB Accu Read (0x298 + n*0x4 (n=0..23))
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: read_accu:*/
|
||
/* measured sum[34:3] of RGB values.*/
|
||
#ifdef ISP_AWB_READ_ACCU
|
||
#endif /* ISP_AWB_READ_ACCU */
|
||
#ifdef EE_CTRL_ENABLE
|
||
#define EE_CTRL_ENABLE_SET 1
|
||
#define EE_CTRL_ENABLE_CLEAR 0
|
||
#endif
|
||
/*****************************************************************************/
|
||
/**
|
||
* register array: awb_meas_accu: AWB Accu Read (0x298 + n*0x4 (n=0..23))
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: read_accu:*/
|
||
/* measured sum[34:3] of RGB values.*/
|
||
#ifdef ISP_VSM_DELTA_H
|
||
#endif /* ISP_AWB_READ_ACCU */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_vsm_h_offs: VSM window horizontal offset
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: vsm_h_offset:*/
|
||
/* Horizontal offset in pixels.*/
|
||
#ifdef ISP_VSM_H_OFFSET
|
||
#define ISP_VSM_H_OFFSET_MAX (ISP_VSM_H_OFFSET_MASK >> ISP_VSM_H_OFFSET_SHIFT)
|
||
#endif /* ISP_VSM_H_OFFSET */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_vsm_v_offs: VSM window vertical offset
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: vsm_v_offset:*/
|
||
/* Vertical offset in pixels.*/
|
||
#ifdef ISP_VSM_V_OFFSET
|
||
#define ISP_VSM_V_OFFSET_MAX (ISP_VSM_V_OFFSET_MASK >> ISP_VSM_V_OFFSET_SHIFT)
|
||
#endif /* ISP_VSM_V_OFFSET */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_vsm_h_size: Horizontal measure window size
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: vsm_h_size:*/
|
||
/* Horizontal size in pixels..*/
|
||
#ifdef ISP_VSM_H_SIZE
|
||
/* note: do not apply shift, since bit 0 is only excluded to get even values */
|
||
#define ISP_VSM_H_SIZE_MAX ISP_VSM_H_SIZE_MASK
|
||
#endif /* ISP_VSM_H_SIZE */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_vsm_v_size: Vertical measure window size
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: vsm_v_size:*/
|
||
/* Vertical size in pixels.*/
|
||
#ifdef ISP_VSM_V_SIZE
|
||
/* note: do not apply shift, since bit 0 is only excluded to get even values */
|
||
#define ISP_VSM_V_SIZE_MAX ISP_VSM_V_SIZE_MASK
|
||
#endif /* ISP_VSM_V_SIZE */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_vsm_h_segments: Iteration 1 horizontal segments
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: vsm_h_segments:*/
|
||
/* number of 16 point wide segments enclosed by the first iteration sample */
|
||
/* points in horizontal direction. Range: 1 ... 128 */
|
||
#ifdef ISP_VSM_H_SEGMENTS
|
||
#define ISP_VSM_H_SEGMENTS_MIN 1
|
||
#define ISP_VSM_H_SEGMENTS_MAX 128
|
||
#endif /* ISP_VSM_H_SEGMENTS */
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_vsm_v_segments: Iteration 1 vertical segments
|
||
*
|
||
*****************************************************************************/
|
||
/* Slice: vsm_v_segments:*/
|
||
/* number of 16 point wide segments enclosed by the first iteration sample */
|
||
/* points in vertical direction. Range: 1 ... 128 */
|
||
/* Note: number of 1st iteration sample points = vsm_v_segments + 1.*/
|
||
/* vsm_v_segments must be equal or smaller than vsm_h_segments.*/
|
||
#ifdef ISP_VSM_V_SEGMENTS
|
||
#define ISP_VSM_V_SEGMENTS_MIN 1
|
||
#define ISP_VSM_V_SEGMENTS_MAX 128
|
||
#endif /* ISP_VSM_V_SEGMENTS */
|
||
#ifdef ISP_GCMONO
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: isp_gcmono_ctrl: gcmono enable and lut table cfg
|
||
*
|
||
*****************************************************************************/
|
||
/*! Slice: mono_gc_enable */
|
||
/*! Control of gamma correction for mono sensor RAW data */
|
||
/*! 1'b0: disable GC and enter bypass mode */
|
||
/*! 1'b1: enable GC mode */
|
||
#ifdef ISP_GCMONO_SWITCH
|
||
#define ISP_GCMONO_SWITCH_DISABLE 0 /* 0: disable GC */
|
||
#define ISP_GCMONO_SWITCH_ENABLE 1 /* 1: enable GC */
|
||
#endif
|
||
/*! Slice: mono_gc_cfg_done */
|
||
/*! To notify the ISP HW the LUT configuration is done, ready to use, active high.*/
|
||
/*! Writing ZERO reset teh internal read/write pointer and also indicates that the LUT can be configured or read from CPU.*/
|
||
#ifdef ISP_GCMONO_CFG_DONE
|
||
#define ISP_GCMONO_CFG_DONE_CURVE_READY 1 /* 1: notify ISP HW LUT configuration is done */
|
||
#define ISP_GCMONO_CFG_DONE_SET_CURVE 0 /* 0: Write ZERO reset the internal pointer and can cfg LUT. */
|
||
#endif
|
||
#ifdef ISP_GCMONO_PARA_BASE
|
||
#endif
|
||
#endif
|
||
/*****************************************************************************/
|
||
/* MIV2 Registers */
|
||
/*****************************************************************************/
|
||
/*****************************************************************************/
|
||
/**
|
||
* register: miv2_mp_fmt: main path pixel format control register (0x1314)
|
||
*
|
||
*****************************************************************************/
|
||
// Slice: MP_WR_JDP_FMT
|
||
// 1: JPEG
|
||
// 0: DPCC
|
||
#ifdef MP_WR_JDP_FMT
|
||
#define MIV2_MP_WRITE_FORMAT_DPCC 0 //DPCC
|
||
#define MIV2_MP_WRITE_FORMAT_JPEG 1 //JPEG
|
||
#endif /* MP_WR_JDP_FMT */
|
||
// Slice: MP_WR_YUV_BIT:
|
||
// 1: 10bit YUV/RGB
|
||
// 0: 8bit YUV/RGB
|
||
#ifdef MP_WR_YUV_BIT
|
||
#define MIV2_MP_WRITE_FORMAT_8BIT 0 //8bit YUV/RGB
|
||
#define MIV2_MP_WRITE_FORMAT_10BIT 1 //10bit YUV/RGB
|
||
#endif /* MP_WR_YUV_BIT */
|
||
// Slice: MP_WR_YUV_FMT:
|
||
#ifdef MP_WR_YUV_FMT
|
||
#define MIV2_MP_WRITE_FORMAT_YUV420 0 // 00: YUV420
|
||
#define MIV2_MP_WRITE_FORMAT_YUV422 1 // 01: YUV422
|
||
#define MIV2_MP_WRITE_FORMAT_YUV444 2 // 10: YUV444
|
||
#endif /* MP_WR_YUV_FMT */
|
||
// Slice: MP_WR_YUV_STR:
|
||
#ifdef MP_WR_YUV_STR
|
||
#define MIV2_MP_WRITE_STRIDE_SEMIPLANAR 0 // 00: YUV/RGB SemiPlanar
|
||
#define MIV2_MP_WRITE_STRIDE_INTERLEAVE 1 // 01: YUV Interleave, RGB Raster
|
||
#define MIV2_MP_WRITE_STRIDE_PLANAR 2 // 10: YUV/RGB Planar
|
||
#endif /* MP_WR_YUV_STR */
|
||
// Slice: MP_WR_RAW_BIT:
|
||
#ifdef MP_WR_RAW_BIT
|
||
#define MIV2_MP_WRITE_FORMAT_RAW8 0 // 000: RAW8
|
||
#define MIV2_MP_WRITE_FORMAT_RAW10 1 // 001: RAW10
|
||
#define MIV2_MP_WRITE_FORMAT_RAW12 2 // 010: RAW12
|
||
#define MIV2_MP_WRITE_FORMAT_RAW14 3 // 011: RAW14
|
||
#define MIV2_MP_WRITE_FORMAT_RAW16 4 // 100: RAW16
|
||
#define MIV2_MP_WRITE_FORMAT_RAW20 5 // 101: RAW20
|
||
#endif /* MP_WR_RAW_BIT */
|
||
// Slice: MP_WR_YUV_ALIGNED
|
||
// 1: aligned
|
||
// 0: unaligned
|
||
#ifdef MP_WR_YUV_ALIGNED
|
||
#define MIV2_MP_WRITE_YUV_UNALIGNED 0 //unaligned
|
||
#define MIV2_MP_WRITE_YUV_ALIGNED 1 //aligned
|
||
#endif /* MP_WR_YUV_ALIGNED */
|
||
// Slice: MP_WR_RAW_ALIGNED:
|
||
#ifdef MP_WR_RAW_ALIGNED
|
||
#define MIV2_MP_WRITE_RAW_UNALIGNED 0 // 00: unaligned
|
||
#define MIV2_MP_WRITE_RAW_ALIGNED_MODE1 1 // 01: aligned mode1
|
||
#define MIV2_MP_WRITE_RAW_ALIGNED_MODE2 2 // 10: aligned mode2
|
||
#endif /* MP_WR_RAW_ALIGNED */
|
||
// Slice: MP_WR_YUV_NV21
|
||
// 1: Put U before V
|
||
// 0: Put V before U
|
||
#ifdef MP_WR_YUV_NV21
|
||
#define MIV2_MP_WRITE_YUV_NV21_UV 0 //Put U before V
|
||
#define MIV2_MP_WRITE_YUV_NV21_VU 1 //Put V before U
|
||
#endif /* MP_WR_YUV_NV21 */
|
||
// Slice: MP_WR_YUV_NVY:
|
||
#ifdef MP_WR_YUV_NVY
|
||
#define MIV2_MP_WRITE_YUV_NVY_YC1C2 0 // 00: Put Y first => YC1C2
|
||
#define MIV2_MP_WRITE_YUV_NVY_C1YC2 1 // 01: Put Y second => C1YC2
|
||
#define MIV2_MP_WRITE_YUV_NVY_C1C2Y 2 // 10: Put Y Third => C1C2Y
|
||
#endif /* MP_WR_YUV_NVY */
|
||
// =========================================================================================
|
||
#ifdef ISP_DEMOSAIC_DENOISE_STRENGTH
|
||
#define ISP_DEMOSAIC_DENOISE_STRENGTH_MIN 0
|
||
#define ISP_DEMOSAIC_DENOISE_STRENGTH_MAX 32
|
||
#endif
|
||
#ifdef ISP_DEMOSAIC_SHARPEN_SIZE
|
||
#define ISP_DEMOSAIC_SHARPEN_SIZE_MIN 0
|
||
#define ISP_DEMOSAIC_SHARPEN_SIZE_MAX 16
|
||
#endif
|
||
#ifdef ISP_DMSC_DEMOIRE_AREA_THR
|
||
#define ISP_DMSC_DEMOIRE_AREA_THR_MIN 0
|
||
#define ISP_DMSC_DEMOIRE_AREA_THR_MAX 32
|
||
#endif
|
||
#ifdef ISP_DMSC_DEMOIRE_SAT_SHRINK
|
||
#define ISP_DMSC_DEMOIRE_SAT_SHRINK_MIN 0
|
||
#define ISP_DMSC_DEMOIRE_SAT_SHRINK_MAX 32
|
||
#endif
|
||
#ifdef ISP_DMSC_SHARPEN_T4_SHIFT
|
||
#define ISP_DMSC_SHARPEN_SHIFT_MIN 0
|
||
#define ISP_DMSC_SHARPEN_SHIFT_MAX 11
|
||
#endif
|
||
#ifdef ISP_DMSC_SHARPEN_LINE_SHIFT1
|
||
#define ISP_DMSC_SHARPEN_LINE_SHIFT1_MIN 0
|
||
#define ISP_DMSC_SHARPEN_LINE_SHIFT1_MAX 10
|
||
#endif
|
||
#ifdef ISP_DMSC_HF_FILT_00
|
||
#define ISP_DMSC_HF_FILT_MIN 0
|
||
#define ISP_DMSC_HF_FILT_MAX 34
|
||
#endif
|
||
#ifdef ISP_DMSC_CBCR_MODE
|
||
#define ISP_DMSC_CBCR_MODE_MIN 0
|
||
#define ISP_DMSC_CBCR_MODE_MAX 3
|
||
#endif
|
||
#ifdef ISP_DMSC_DEPURPLE_SAT_SHRINK
|
||
#define ISP_DMSC_DEPURPLE_SAT_SHRINK_MIN 0
|
||
#define ISP_DMSC_DEPURPLE_SAT_SHRINK_MAX 8
|
||
#endif
|
||
#ifdef ISP_DMSC_X_NF
|
||
#define ISP_DMSC_X_NF_MIN 0
|
||
#define ISP_DMSC_X_NF_MAX 31
|
||
#endif
|
||
#ifdef ISP_DMSC_X_NS
|
||
#define ISP_DMSC_X_NS_MIN 0
|
||
#define ISP_DMSC_X_NS_MAX 15
|
||
#endif
|
||
#ifdef ISP_DMSC_Y_NF
|
||
#define ISP_DMSC_Y_NF_MIN 0
|
||
#define ISP_DMSC_Y_NF_MAX 31
|
||
#endif
|
||
#ifdef ISP_DMSC_Y_NS
|
||
#define ISP_DMSC_Y_NS_MIN 0
|
||
#define ISP_DMSC_Y_NS_MAX 15
|
||
#endif
|
||
/* =========================================================================================*/
|
||
/*! returns the value of slice \a name from register or variable \a reg
|
||
* \note "parameter" \a reg could be a hardware register or a (32bit) variable, but not a pointer! \n
|
||
* each slice (specified as "parameter" \a name) requires two \#defines: \n
|
||
* - <tt>\<name\>_MASK </tt>: defines the mask to use on register side
|
||
* - <tt>\<name\>_SHIFT </tt>: defines the shift value to use (left on write, right on read)
|
||
*/
|
||
#define REG_GET_SLICE(reg, name) \
|
||
(((reg) & (name##_MASK)) >> (name##_SHIFT))
|
||
/* =========================================================================================*/
|
||
/*! writes the value \a value into slice \a name of register or variable \a reg
|
||
* \note "parameter" \a reg could be a hardware register or a (32bit) variable, but not a pointer! \n
|
||
* each slice (specified as "parameter" \a name) requires two \#defines: \n
|
||
* - <tt>\<name\>_MASK </tt>: defines the mask to use on register side
|
||
* - <tt>\<name\>_SHIFT </tt>: defines the shift value to use (left on write, right on read)
|
||
*/
|
||
#define REG_SET_SLICE(reg, name, value) \
|
||
{ \
|
||
((reg) = (((reg) & ~(name##_MASK)) | (((value) << (name##_SHIFT)) & (name##_MASK))));\
|
||
}
|
||
#endif /* __MRV_ALL_BITS_H__ */
|