drivers/media/platform/renesas/vsp1/vsp1_regs.h

Source file repositories/reference/linux-study-clean/drivers/media/platform/renesas/vsp1/vsp1_regs.h

File Facts

System
Linux kernel
Corpus path
drivers/media/platform/renesas/vsp1/vsp1_regs.h
Extension
.h
Size
30447 bytes
Lines
896
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 __VSP1_REGS_H__
#define __VSP1_REGS_H__

/* -----------------------------------------------------------------------------
 * General Control Registers
 */

#define VI6_CMD(n)			(0x0000 + (n) * 4)
#define VI6_CMD_UPDHDR			BIT(4)
#define VI6_CMD_STRCMD			BIT(0)

#define VI6_CLK_DCSWT			0x0018
#define VI6_CLK_DCSWT_CSTPW_MASK	(0xff << 8)
#define VI6_CLK_DCSWT_CSTPW_SHIFT	8
#define VI6_CLK_DCSWT_CSTRW_MASK	(0xff << 0)
#define VI6_CLK_DCSWT_CSTRW_SHIFT	0

#define VI6_SRESET			0x0028
#define VI6_SRESET_SRTS(n)		BIT(n)

#define VI6_STATUS			0x0038
#define VI6_STATUS_FLD_STD(n)		BIT((n) + 28)
#define VI6_STATUS_SYS_ACT(n)		BIT((n) + 8)

#define VI6_WPF_IRQ_ENB(n)		(0x0048 + (n) * 12)
#define VI6_WPF_IRQ_ENB_UNDE		BIT(16)
#define VI6_WPF_IRQ_ENB_DFEE		BIT(1)
#define VI6_WPF_IRQ_ENB_FREE		BIT(0)

#define VI6_WPF_IRQ_STA(n)		(0x004c + (n) * 12)
#define VI6_WPF_IRQ_STA_UND		BIT(16)
#define VI6_WPF_IRQ_STA_DFE		BIT(1)
#define VI6_WPF_IRQ_STA_FRE		BIT(0)

#define VI6_DISP_IRQ_ENB(n)		(0x0078 + (n) * 60)
#define VI6_DISP_IRQ_ENB_DSTE		BIT(8)
#define VI6_DISP_IRQ_ENB_MAEE		BIT(5)
#define VI6_DISP_IRQ_ENB_LNEE(n)	BIT(n)

#define VI6_DISP_IRQ_STA(n)		(0x007c + (n) * 60)
#define VI6_DISP_IRQ_STA_DST		BIT(8)
#define VI6_DISP_IRQ_STA_MAE		BIT(5)
#define VI6_DISP_IRQ_STA_LNE(n)		BIT(n)

#define VI6_WPF_LINE_COUNT(n)		(0x0084 + (n) * 4)
#define VI6_WPF_LINE_COUNT_MASK		(0x1fffff << 0)

/* -----------------------------------------------------------------------------
 * Display List Control Registers
 */

#define VI6_DL_CTRL			0x0100
#define VI6_DL_CTRL_AR_WAIT_MASK	(0xffff << 16)
#define VI6_DL_CTRL_AR_WAIT_SHIFT	16
#define VI6_DL_CTRL_DC2			BIT(12)
#define VI6_DL_CTRL_DC1			BIT(8)
#define VI6_DL_CTRL_DC0			BIT(4)
#define VI6_DL_CTRL_CFM0		BIT(2)
#define VI6_DL_CTRL_NH0			BIT(1)
#define VI6_DL_CTRL_DLE			BIT(0)

#define VI6_DL_HDR_ADDR(n)		(0x0104 + (n) * 4)

#define VI6_DL_SWAP			0x0114
#define VI6_DL_SWAP_LWS			BIT(2)
#define VI6_DL_SWAP_WDS			BIT(1)
#define VI6_DL_SWAP_BTS			BIT(0)

#define VI6_DL_EXT_CTRL(n)		(0x011c + (n) * 36)
#define VI6_DL_EXT_CTRL_NWE		BIT(16)
#define VI6_DL_EXT_CTRL_POLINT_MASK	(0x3f << 8)
#define VI6_DL_EXT_CTRL_POLINT_SHIFT	8
#define VI6_DL_EXT_CTRL_DLPRI		BIT(5)
#define VI6_DL_EXT_CTRL_EXPRI		BIT(4)
#define VI6_DL_EXT_CTRL_EXT		BIT(0)

#define VI6_DL_EXT_AUTOFLD_INT		BIT(0)

#define VI6_DL_BODY_SIZE		0x0120
#define VI6_DL_BODY_SIZE_UPD		BIT(24)
#define VI6_DL_BODY_SIZE_BS_MASK	(0x1ffff << 0)
#define VI6_DL_BODY_SIZE_BS_SHIFT	0

/* -----------------------------------------------------------------------------
 * RPF Control Registers
 */

#define VI6_RPF_OFFSET			0x100

#define VI6_RPF_SRC_BSIZE		0x0300

Annotation

Implementation Notes