/* SPDX-License-Identifier: GPL-2.0-only */
/*
* Register definitions for the Atmel Image Sensor Interface.
*
* Copyright (C) 2011 Atmel Corporation
* Josh Wu, <josh.wu@atmel.com>
*
* Based on previous work by Lars Haring, <lars.haring@atmel.com>
* and Sedji Gaouaou
*/
#ifndef __ATMEL_ISI_H__
#define __ATMEL_ISI_H__
#include <linux/types.h>
/* ISI_V2 register offsets */
#define ISI_CFG1 0 x0000
#define ISI_CFG2 0 x0004
#define ISI_PSIZE 0 x0008
#define ISI_PDECF 0 x000c
#define ISI_Y2R_SET0 0 x0010
#define ISI_Y2R_SET1 0 x0014
#define ISI_R2Y_SET0 0 x0018
#define ISI_R2Y_SET1 0 x001C
#define ISI_R2Y_SET2 0 x0020
#define ISI_CTRL 0 x0024
#define ISI_STATUS 0 x0028
#define ISI_INTEN 0 x002C
#define ISI_INTDIS 0 x0030
#define ISI_INTMASK 0 x0034
#define ISI_DMA_CHER 0 x0038
#define ISI_DMA_CHDR 0 x003C
#define ISI_DMA_CHSR 0 x0040
#define ISI_DMA_P_ADDR 0 x0044
#define ISI_DMA_P_CTRL 0 x0048
#define ISI_DMA_P_DSCR 0 x004C
#define ISI_DMA_C_ADDR 0 x0050
#define ISI_DMA_C_CTRL 0 x0054
#define ISI_DMA_C_DSCR 0 x0058
/* Bitfields in CFG1 */
#define ISI_CFG1_HSYNC_POL_ACTIVE_LOW (1 << 2 )
#define ISI_CFG1_VSYNC_POL_ACTIVE_LOW (1 << 3 )
#define ISI_CFG1_PIXCLK_POL_ACTIVE_FALLING (1 << 4 )
#define ISI_CFG1_EMB_SYNC (1 << 6 )
#define ISI_CFG1_CRC_SYNC (1 << 7 )
/* Constants for FRATE(ISI_V2) */
#define ISI_CFG1_FRATE_CAPTURE_ALL (0 << 8 )
#define ISI_CFG1_FRATE_DIV_2 (1 << 8 )
#define ISI_CFG1_FRATE_DIV_3 (2 << 8 )
#define ISI_CFG1_FRATE_DIV_4 (3 << 8 )
#define ISI_CFG1_FRATE_DIV_5 (4 << 8 )
#define ISI_CFG1_FRATE_DIV_6 (5 << 8 )
#define ISI_CFG1_FRATE_DIV_7 (6 << 8 )
#define ISI_CFG1_FRATE_DIV_8 (7 << 8 )
#define ISI_CFG1_FRATE_DIV_MASK (7 << 8 )
#define ISI_CFG1_DISCR (1 << 11 )
#define ISI_CFG1_FULL_MODE (1 << 12 )
/* Definition for THMASK(ISI_V2) */
#define ISI_CFG1_THMASK_BEATS_4 (0 << 13 )
#define ISI_CFG1_THMASK_BEATS_8 (1 << 13 )
#define ISI_CFG1_THMASK_BEATS_16 (2 << 13 )
/* Bitfields in CFG2 */
#define ISI_CFG2_GS_MODE_2_PIXEL (0 << 11 )
#define ISI_CFG2_GS_MODE_1_PIXEL (1 << 11 )
#define ISI_CFG2_GRAYSCALE (1 << 13 )
#define ISI_CFG2_COL_SPACE_YCbCr (0 << 15 )
#define ISI_CFG2_COL_SPACE_RGB (1 << 15 )
/* Constants for YCC_SWAP(ISI_V2) */
#define ISI_CFG2_YCC_SWAP_DEFAULT (0 << 28 )
#define ISI_CFG2_YCC_SWAP_MODE_1 (1 << 28 )
#define ISI_CFG2_YCC_SWAP_MODE_2 (2 << 28 )
#define ISI_CFG2_YCC_SWAP_MODE_3 (3 << 28 )
#define ISI_CFG2_YCC_SWAP_MODE_MASK (3 << 28 )
#define ISI_CFG2_IM_VSIZE_OFFSET 0
#define ISI_CFG2_IM_HSIZE_OFFSET 16
#define ISI_CFG2_IM_VSIZE_MASK (0 x7FF << ISI_CFG2_IM_VSIZE_OFFSET)
#define ISI_CFG2_IM_HSIZE_MASK (0 x7FF << ISI_CFG2_IM_HSIZE_OFFSET)
/* Bitfields in PSIZE */
#define ISI_PSIZE_PREV_VSIZE_OFFSET 0
#define ISI_PSIZE_PREV_HSIZE_OFFSET 16
#define ISI_PSIZE_PREV_VSIZE_MASK (0 x3FF << ISI_PSIZE_PREV_VSIZE_OFFSET)
#define ISI_PSIZE_PREV_HSIZE_MASK (0 x3FF << ISI_PSIZE_PREV_HSIZE_OFFSET)
/* Bitfields in PDECF */
#define ISI_PDECF_DEC_FACTOR_MASK (0 xFF << 0 )
#define ISI_PDECF_NO_SAMPLING (16 )
/* Bitfields in CTRL */
/* Also using in SR(ISI_V2) */
#define ISI_CTRL_EN (1 << 0 )
#define ISI_CTRL_CDC (1 << 8 )
/* Also using in SR/IER/IDR/IMR(ISI_V2) */
#define ISI_CTRL_DIS (1 << 1 )
#define ISI_CTRL_SRST (1 << 2 )
/* Bitfields in SR */
#define ISI_SR_SIP (1 << 19 )
/* Also using in SR/IER/IDR/IMR */
#define ISI_SR_VSYNC (1 << 10 )
#define ISI_SR_PXFR_DONE (1 << 16 )
#define ISI_SR_CXFR_DONE (1 << 17 )
#define ISI_SR_P_OVR (1 << 24 )
#define ISI_SR_C_OVR (1 << 25 )
#define ISI_SR_CRC_ERR (1 << 26 )
#define ISI_SR_FR_OVR (1 << 27 )
/* Bitfields in DMA_C_CTRL & in DMA_P_CTRL */
#define ISI_DMA_CTRL_FETCH (1 << 0 )
#define ISI_DMA_CTRL_WB (1 << 1 )
#define ISI_DMA_CTRL_IEN (1 << 2 )
#define ISI_DMA_CTRL_DONE (1 << 3 )
/* Bitfields in DMA_CHSR/CHER/CHDR */
#define ISI_DMA_CHSR_P_CH (1 << 0 )
#define ISI_DMA_CHSR_C_CH (1 << 1 )
/* Definition for isi_platform_data */
#define ISI_DATAWIDTH_8 0 x01
#define ISI_DATAWIDTH_10 0 x02
struct isi_platform_data {
u8 has_emb_sync;
u8 hsync_act_low;
u8 vsync_act_low;
u8 pclk_act_falling;
u8 full_mode;
u32 data_width_flags;
/* Using for ISI_CFG1 */
u32 frate;
};
#endif /* __ATMEL_ISI_H__ */
Messung V0.5 in Prozent C=86 H=100 G=93
¤ Dauer der Verarbeitung: 0.8 Sekunden
(vorverarbeitet am 2026-06-06)
¤
*© Formatika GbR, Deutschland