drivers/pinctrl/mvebu/pinctrl-dove.c

Source file repositories/reference/linux-study-clean/drivers/pinctrl/mvebu/pinctrl-dove.c

File Facts

System
Linux kernel
Corpus path
drivers/pinctrl/mvebu/pinctrl-dove.c
Extension
.c
Size
28856 bytes
Lines
874
Domain
Driver Families
Bucket
drivers/pinctrl
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

if (IS_ERR(gc_base)) {
			ret = PTR_ERR(gc_base);
			goto err_probe;
		}

		gconfmap = devm_regmap_init_mmio(&pdev->dev,
						 gc_base, &gc_regmap_config);
		if (IS_ERR(gconfmap)) {
			ret = PTR_ERR(gconfmap);
			goto err_probe;
		}
	}

	/* Warn on any missing DT resource */
	if (fb_res.start)
		dev_warn(&pdev->dev, FW_BUG "Missing pinctrl regs in DTB. Please update your firmware.\n");

	return mvebu_pinctrl_probe(pdev);
err_probe:
	clk_disable_unprepare(clk);
	return ret;
}

static struct platform_driver dove_pinctrl_driver = {
	.driver = {
		.name = "dove-pinctrl",
		.suppress_bind_attrs = true,
		.of_match_table = dove_pinctrl_of_match,
	},
	.probe = dove_pinctrl_probe,
};
builtin_platform_driver(dove_pinctrl_driver);

Annotation

Implementation Notes