Thread (20 messages) flat view 20 messages, 4 authors, 2014-09-19

[PATCH v3] mfd: syscon: Decouple syscon interface from platform devices

From: Pankaj Dubey <hidden>
Date: 2014-09-17 11:19:30
Also in: linux-samsung-soc, lkml

Hi,

On Wednesday, September 17, 2014, Dong Aisheng Wrote,
quoted
+static struct syscon *of_syscon_register(struct device_node *np) {
+	struct syscon *syscon;
+	struct regmap *regmap;
+	void __iomem *base;
+
+	if (!of_device_is_compatible(np, "syscon"))
+		return ERR_PTR(-EINVAL);
+
+	syscon = kzalloc(sizeof(*syscon), GFP_KERNEL);
+	if (!syscon)
+		return ERR_PTR(-ENOMEM);
+
+	base = of_iomap(np, 0);
+	if (!base)
+		return ERR_PTR(-ENOMEM);
+
+	regmap = regmap_init_mmio(NULL, base, &syscon_regmap_config);
Does a NULL device pointer work?
Yes, it is safe, at least we are able to test on Exynos based SoC. 
I have tested it with kgene/for-next kernel on Exynos3250.
Also it has been tested on Exynos5250 based Snow board with 3.17-rc5 based
kernel
by Vivek Gautam. 

Patch V2 also has been tested by "Borris Brezillon" on AT91 platform.

I just tested on MX6SX SDB board and it seemed crashed at here in
regmap_init
function.
Can you please provide crash log which can give more information about the
crash?


Thanks,
Pankaj Dubey
Regards
Dong Aisheng
quoted
+	if (IS_ERR(regmap)) {
+		pr_err("regmap init failed\n");
+		return ERR_CAST(regmap);
+	}
+
+	syscon->regmap = regmap;
+	syscon->np = np;
+
+	spin_lock(&syscon_list_slock);
+	list_add_tail(&syscon->list, &syscon_list);
+	spin_unlock(&syscon_list_slock);
+
+	return syscon;
+}
+
 static int syscon_probe(struct platform_device *pdev)  {
 	struct device *dev = &pdev->dev;
@@ -167,7 +204,6 @@ static struct platform_driver syscon_driver = {
 	.driver = {
 		.name = "syscon",
 		.owner = THIS_MODULE,
-		.of_match_table = of_syscon_match,
 	},
 	.probe		= syscon_probe,
 	.id_table	= syscon_ids,
--
1.7.9.5


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel at lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help