drivers/media/platform/rockchip/rkcif/rkcif-regs.h

Source file repositories/reference/linux-study-clean/drivers/media/platform/rockchip/rkcif/rkcif-regs.h

File Facts

System
Linux kernel
Corpus path
drivers/media/platform/rockchip/rkcif/rkcif-regs.h
Extension
.h
Size
4811 bytes
Lines
154
Domain
Driver Families
Bucket
drivers/media
Inferred role
Driver Families: implementation source
Status
source implementation candidate

Why This File Exists

Repeatable hardware-adapter layer. Deep compatibility for every driver is out of scope; this atlas records patterns, probe lifecycles, bus glue, IRQ/DMA usage, and links back to core abstractions.

Dependency Surface

Detected Declarations

Annotated Snippet

#ifndef _RKCIF_REGS_H
#define _RKCIF_REGS_H

#define RKCIF_REGISTER_NOTSUPPORTED		0x420000
#define RKCIF_FETCH_Y(VAL)			((VAL) & 0x1fff)
#define RKCIF_XY_COORD(x, y)			(((y) << 16) | (x))

/* DVP register contents */
#define RKCIF_CTRL_ENABLE_CAPTURE		BIT(0)
#define RKCIF_CTRL_MODE_PINGPONG		BIT(1)
#define RKCIF_CTRL_MODE_LINELOOP		BIT(2)
#define RKCIF_CTRL_AXI_BURST_16			(0xf << 12)

#define RKCIF_INTEN_FRAME_END_EN		BIT(0)
#define RKCIF_INTEN_LINE_ERR_EN			BIT(2)
#define RKCIF_INTEN_BUS_ERR_EN			BIT(6)
#define RKCIF_INTEN_SCL_ERR_EN			BIT(7)
#define RKCIF_INTEN_PST_INF_FRAME_END_EN	BIT(9)

#define RKCIF_INTSTAT_CLS			0x3ff
#define RKCIF_INTSTAT_FRAME_END			BIT(0)
#define RKCIF_INTSTAT_LINE_END			BIT(1)
#define RKCIF_INTSTAT_LINE_ERR			BIT(2)
#define RKCIF_INTSTAT_PIX_ERR			BIT(3)
#define RKCIF_INTSTAT_DFIFO_OF			BIT(5)
#define RKCIF_INTSTAT_BUS_ERR			BIT(6)
#define RKCIF_INTSTAT_PRE_INF_FRAME_END		BIT(8)
#define RKCIF_INTSTAT_PST_INF_FRAME_END		BIT(9)
#define RKCIF_INTSTAT_FRAME_END_CLR		BIT(0)
#define RKCIF_INTSTAT_LINE_END_CLR		BIT(1)
#define RKCIF_INTSTAT_LINE_ERR_CLR		BIT(2)
#define RKCIF_INTSTAT_PST_INF_FRAME_END_CLR	BIT(9)
#define RKCIF_INTSTAT_ERR			0xfc

#define RKCIF_FRAME_STAT_CLS			0x00
#define RKCIF_FRAME_FRM0_STAT_CLS		0x20

#define RKCIF_FORMAT_VSY_HIGH_ACTIVE		BIT(0)
#define RKCIF_FORMAT_HSY_LOW_ACTIVE		BIT(1)

#define RKCIF_FORMAT_INPUT_MODE_YUV		(0x00 << 2)
#define RKCIF_FORMAT_INPUT_MODE_PAL		(0x02 << 2)
#define RKCIF_FORMAT_INPUT_MODE_NTSC		(0x03 << 2)
#define RKCIF_FORMAT_INPUT_MODE_BT1120		(0x07 << 2)
#define RKCIF_FORMAT_INPUT_MODE_RAW		(0x04 << 2)
#define RKCIF_FORMAT_INPUT_MODE_JPEG		(0x05 << 2)
#define RKCIF_FORMAT_INPUT_MODE_MIPI		(0x06 << 2)

#define RKCIF_FORMAT_YUV_INPUT_ORDER_UYVY	(0x00 << 5)
#define RKCIF_FORMAT_YUV_INPUT_ORDER_YVYU	(0x01 << 5)
#define RKCIF_FORMAT_YUV_INPUT_ORDER_VYUY	(0x02 << 5)
#define RKCIF_FORMAT_YUV_INPUT_ORDER_YUYV	(0x03 << 5)
#define RKCIF_FORMAT_YUV_INPUT_422		(0x00 << 7)
#define RKCIF_FORMAT_YUV_INPUT_420		BIT(7)

#define RKCIF_FORMAT_INPUT_420_ORDER_ODD	BIT(8)

#define RKCIF_FORMAT_CCIR_INPUT_ORDER_EVEN	BIT(9)

#define RKCIF_FORMAT_RAW_DATA_WIDTH_8		(0x00 << 11)
#define RKCIF_FORMAT_RAW_DATA_WIDTH_10		(0x01 << 11)
#define RKCIF_FORMAT_RAW_DATA_WIDTH_12		(0x02 << 11)

#define RKCIF_FORMAT_YUV_OUTPUT_422		(0x00 << 16)
#define RKCIF_FORMAT_YUV_OUTPUT_420		BIT(16)

#define RKCIF_FORMAT_OUTPUT_420_ORDER_EVEN	(0x00 << 17)
#define RKCIF_FORMAT_OUTPUT_420_ORDER_ODD	BIT(17)

#define RKCIF_FORMAT_RAWD_DATA_LITTLE_ENDIAN	(0x00 << 18)
#define RKCIF_FORMAT_RAWD_DATA_BIG_ENDIAN	BIT(18)

#define RKCIF_FORMAT_UV_STORAGE_ORDER_UVUV	(0x00 << 19)
#define RKCIF_FORMAT_UV_STORAGE_ORDER_VUVU	BIT(19)

#define RKCIF_FORMAT_BT1120_CLOCK_SINGLE_EDGES	(0x00 << 24)
#define RKCIF_FORMAT_BT1120_CLOCK_DOUBLE_EDGES	BIT(24)
#define RKCIF_FORMAT_BT1120_TRANSMIT_INTERFACE	(0x00 << 25)
#define RKCIF_FORMAT_BT1120_TRANSMIT_PROGRESS	BIT(25)
#define RKCIF_FORMAT_BT1120_YC_SWAP		BIT(26)

#define RKCIF_SCL_CTRL_ENABLE_SCL_DOWN		BIT(0)
#define RKCIF_SCL_CTRL_ENABLE_SCL_UP		BIT(1)
#define RKCIF_SCL_CTRL_ENABLE_YUV_16BIT_BYPASS	BIT(4)
#define RKCIF_SCL_CTRL_ENABLE_RAW_16BIT_BYPASS	BIT(5)
#define RKCIF_SCL_CTRL_ENABLE_32BIT_BYPASS	BIT(6)
#define RKCIF_SCL_CTRL_DISABLE_32BIT_BYPASS	(0x00 << 6)

#define RKCIF_INTSTAT_F0_READY			BIT(0)
#define RKCIF_INTSTAT_F1_READY			BIT(1)

Annotation

Implementation Notes