drivers/media/platform/st/stm32/dma2d/dma2d-regs.h

Source file repositories/reference/linux-study-clean/drivers/media/platform/st/stm32/dma2d/dma2d-regs.h

File Facts

System
Linux kernel
Corpus path
drivers/media/platform/st/stm32/dma2d/dma2d-regs.h
Extension
.h
Size
2949 bytes
Lines
114
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 __DMA2D_REGS_H__
#define __DMA2D_REGS_H__

#define DMA2D_CR_REG		0x0000
#define CR_MODE_MASK		GENMASK(17, 16)
#define CR_MODE_SHIFT		16
#define CR_M2M			0x0000
#define CR_M2M_PFC		BIT(16)
#define CR_M2M_BLEND		BIT(17)
#define CR_R2M			(BIT(17) | BIT(16))
#define CR_CEIE			BIT(13)
#define CR_CTCIE		BIT(12)
#define CR_CAEIE		BIT(11)
#define CR_TWIE			BIT(10)
#define CR_TCIE			BIT(9)
#define CR_TEIE			BIT(8)
#define CR_ABORT		BIT(2)
#define CR_SUSP			BIT(1)
#define CR_START		BIT(0)

#define DMA2D_ISR_REG		0x0004
#define ISR_CEIF		BIT(5)
#define ISR_CTCIF		BIT(4)
#define ISR_CAEIF		BIT(3)
#define ISR_TWIF		BIT(2)
#define ISR_TCIF		BIT(1)
#define ISR_TEIF		BIT(0)

#define DMA2D_IFCR_REG		0x0008
#define IFCR_CCEIF		BIT(5)
#define IFCR_CCTCIF		BIT(4)
#define IFCR_CAECIF		BIT(3)
#define IFCR_CTWIF		BIT(2)
#define IFCR_CTCIF		BIT(1)
#define IFCR_CTEIF		BIT(0)

#define DMA2D_FGMAR_REG		0x000c
#define DMA2D_FGOR_REG		0x0010
#define FGOR_LO_MASK		GENMASK(13, 0)

#define DMA2D_BGMAR_REG		0x0014
#define DMA2D_BGOR_REG		0x0018
#define BGOR_LO_MASK		GENMASK(13, 0)

#define DMA2D_FGPFCCR_REG	0x001c
#define FGPFCCR_ALPHA_MASK	GENMASK(31, 24)
#define FGPFCCR_AM_MASK		GENMASK(17, 16)
#define FGPFCCR_CS_MASK		GENMASK(15, 8)
#define FGPFCCR_START		BIT(5)
#define FGPFCCR_CCM_RGB888	BIT(4)
#define FGPFCCR_CM_MASK		GENMASK(3, 0)

#define DMA2D_FGCOLR_REG	0x0020
#define FGCOLR_REG_MASK		GENMASK(23, 16)
#define FGCOLR_GREEN_MASK	GENMASK(15, 8)
#define FGCOLR_BLUE_MASK	GENMASK(7, 0)

#define DMA2D_BGPFCCR_REG	0x0024
#define BGPFCCR_ALPHA_MASK	GENMASK(31, 24)
#define BGPFCCR_AM_MASK		GENMASK(17, 16)
#define BGPFCCR_CS_MASK		GENMASK(15, 8)
#define BGPFCCR_START		BIT(5)
#define BGPFCCR_CCM_RGB888	BIT(4)
#define BGPFCCR_CM_MASK		GENMASK(3, 0)

#define DMA2D_BGCOLR_REG	0x0028
#define BGCOLR_REG_MASK		GENMASK(23, 16)
#define BGCOLR_GREEN_MASK	GENMASK(15, 8)
#define BGCOLR_BLUE_MASK	GENMASK(7, 0)

#define DMA2D_OPFCCR_REG	0x0034
#define OPFCCR_CM_MASK		GENMASK(2, 0)

#define DMA2D_OCOLR_REG		0x0038
#define OCOLR_ALPHA_MASK	GENMASK(31, 24)
#define OCOLR_RED_MASK		GENMASK(23, 16)
#define OCOLR_GREEN_MASK	GENMASK(15, 8)
#define OCOLR_BLUE_MASK		GENMASK(7, 0)

#define DMA2D_OMAR_REG		0x003c

#define DMA2D_OOR_REG		0x0040
#define OOR_LO_MASK		GENMASK(13, 0)

#define DMA2D_NLR_REG		0x0044
#define NLR_PL_MASK		GENMASK(29, 16)
#define NLR_NL_MASK		GENMASK(15, 0)

/* Hardware limits */
#define MAX_WIDTH		2592

Annotation

Implementation Notes