/* 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				0x0000
#define ISI_CFG2				0x0004
#define ISI_PSIZE				0x0008
#define ISI_PDECF				0x000c
#define ISI_Y2R_SET0				0x0010
#define ISI_Y2R_SET1				0x0014
#define ISI_R2Y_SET0				0x0018
#define ISI_R2Y_SET1				0x001C
#define ISI_R2Y_SET2				0x0020
#define ISI_CTRL				0x0024
#define ISI_STATUS				0x0028
#define ISI_INTEN				0x002C
#define ISI_INTDIS				0x0030
#define ISI_INTMASK				0x0034
#define ISI_DMA_CHER				0x0038
#define ISI_DMA_CHDR				0x003C
#define ISI_DMA_CHSR				0x0040
#define ISI_DMA_P_ADDR				0x0044
#define ISI_DMA_P_CTRL				0x0048
#define ISI_DMA_P_DSCR				0x004C
#define ISI_DMA_C_ADDR				0x0050
#define ISI_DMA_C_CTRL				0x0054
#define ISI_DMA_C_DSCR				0x0058

/* 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		(0x7FF << ISI_CFG2_IM_VSIZE_OFFSET)
#define ISI_CFG2_IM_HSIZE_MASK		(0x7FF << 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	(0x3FF << ISI_PSIZE_PREV_VSIZE_OFFSET)
#define ISI_PSIZE_PREV_HSIZE_MASK	(0x3FF << ISI_PSIZE_PREV_HSIZE_OFFSET)

/* Bitfields in PDECF */
#define ISI_PDECF_DEC_FACTOR_MASK	(0xFF << 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				0x01
#define ISI_DATAWIDTH_10			0x02

struct v4l2_async_subdev;

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__ */
