drivers/soc/renesas/renesas-soc.c

Source file repositories/reference/linux-study-clean/drivers/soc/renesas/renesas-soc.c

File Facts

System
Linux kernel
Corpus path
drivers/soc/renesas/renesas-soc.c
Extension
.c
Size
15280 bytes
Lines
561
Domain
Driver Families
Bucket
drivers/soc
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

struct renesas_family {
	const char name[16];
	u32 reg;			/* CCCR or PRR, if not in DT */
};

static const struct renesas_family fam_rcar_gen1 __initconst __maybe_unused = {
	.name	= "R-Car Gen1",
	.reg	= 0xff000044,		/* PRR (Product Register) */
};

static const struct renesas_family fam_rcar_gen2 __initconst __maybe_unused = {
	.name	= "R-Car Gen2",
	.reg	= 0xff000044,		/* PRR (Product Register) */
};

static const struct renesas_family fam_rcar_gen3 __initconst __maybe_unused = {
	.name	= "R-Car Gen3",
	.reg	= 0xfff00044,		/* PRR (Product Register) */
};

static const struct renesas_family fam_rcar_gen4 __initconst __maybe_unused = {
	.name	= "R-Car Gen4",
};

static const struct renesas_family fam_rcar_gen5 __initconst __maybe_unused = {
	.name   = "R-Car Gen5",
};

static const struct renesas_family fam_rmobile __initconst __maybe_unused = {
	.name	= "R-Mobile",
	.reg	= 0xe600101c,		/* CCCR (Common Chip Code Register) */
};

static const struct renesas_family fam_rza1 __initconst __maybe_unused = {
	.name	= "RZ/A1",
};

static const struct renesas_family fam_rza2 __initconst __maybe_unused = {
	.name	= "RZ/A2",
};

static const struct renesas_family fam_rzfive __initconst __maybe_unused = {
	.name	= "RZ/Five",
};

static const struct renesas_family fam_rzg1 __initconst __maybe_unused = {
	.name	= "RZ/G1",
	.reg	= 0xff000044,		/* PRR (Product Register) */
};

static const struct renesas_family fam_rzg2 __initconst __maybe_unused = {
	.name	= "RZ/G2",
	.reg	= 0xfff00044,		/* PRR (Product Register) */
};

static const struct renesas_family fam_rzg2l __initconst __maybe_unused = {
	.name	= "RZ/G2L",
};

static const struct renesas_family fam_rzg2ul __initconst __maybe_unused = {
	.name	= "RZ/G2UL",
};

static const struct renesas_family fam_rzv2l __initconst __maybe_unused = {
	.name	= "RZ/V2L",
};

static const struct renesas_family fam_rzv2m __initconst __maybe_unused = {
	.name	= "RZ/V2M",
};

static const struct renesas_family fam_shmobile __initconst __maybe_unused = {
	.name	= "SH-Mobile",
	.reg	= 0xe600101c,		/* CCCR (Common Chip Code Register) */
};

struct renesas_soc {
	const struct renesas_family *family;
	u32 id;
};

static const struct renesas_soc soc_rz_a1h __initconst __maybe_unused = {
	.family	= &fam_rza1,
};

static const struct renesas_soc soc_rz_a2m __initconst __maybe_unused = {
	.family	= &fam_rza2,
	.id	= 0x3b,
};

Annotation

Implementation Notes