Thread (47 messages) flat view 47 messages, 9 authors, 2007-05-22

Re: [PATCH 10/13] mpc83xx: Power Management support

From: Guennadi Liakhovetski <hidden>
Date: 2007-05-22 21:08:28

On Mon, 7 May 2007, Scott Wood wrote:
quoted hunk ↗ jump to hunk
diff --git a/arch/powerpc/sysdev/fsl_soc.c b/arch/powerpc/sysdev/fsl_soc.c
index 3b99433..1fd9f51 100644
--- a/arch/powerpc/sysdev/fsl_soc.c
+++ b/arch/powerpc/sysdev/fsl_soc.c
@@ -138,6 +138,33 @@ u32 get_baudrate(void)
 EXPORT_SYMBOL(get_baudrate);
 #endif /* CONFIG_CPM2 */
 
+int fsl_sleep_init(struct fsl_sleep_platform_data *sleep,
+                   struct device_node *node)
+{
+	int proplen, ret = -ENODEV;
+	const u32 *sleepdata = of_get_property(node, "sleep", &proplen);
+	struct device_node *sleep_controller;
+
+	if (!sleepdata || proplen != 8)
+		return -ENODEV;
+
+	sleep_controller = of_find_node_by_phandle(sleepdata[0]);
+	if (!sleep_controller)
+		return -ENODEV;
+
+	/* There can only be one fsl,mpc83xx-pmc device in the system;
+	 * it is assumed that it is the one that the pmc driver matches.
+	 */
+	if (of_device_is_compatible(sleep_controller, "fsl,mpc83xx-pmc")) {
+		sleep->sccr_mask = sleepdata[1];
+		ret = 0;
+	}
Just wondering - do we really want to special-case 83xx-pmc here? What 
when / if further "sleep controllers" get implemented? Shouldn't this be 
some callback?

BTW, do we have an interface similar to platform-driver/device for of? 
Like of_driver/device. This would be a use case for it. Just register a 
of_driver, which would trigger a dt-scan (just a find_compatible), calling 
driver's probe()... Would it make sense?

Thanks
Guennadi
---
Guennadi Liakhovetski
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help