Thread (96 messages) flat view 96 messages, 12 authors, 2009-07-22

Re: [PATCH 2/2] mfd: twl4030: add twl4030-pwrbutton as our child

From: Andrew Morton <akpm@linux-foundation.org>
Date: 2009-02-27 20:39:45
Also in: lkml

On Fri, 27 Feb 2009 21:28:03 +0200
Felipe Balbi [off-list ref] wrote:
quoted hunk ↗ jump to hunk
From: Felipe Balbi <redacted>

Make that twl4030-pwrbutton.c driver probe with current
child creation api for twl4030.

Cc: Samuel Ortiz <redacted>
Cc: David Brownell <redacted>
Signed-off-by: Felipe Balbi <redacted>
---
This part is better off going via mfd.

 drivers/mfd/twl4030-core.c |   13 +++++++++++++
 1 files changed, 13 insertions(+), 0 deletions(-)
diff --git a/drivers/mfd/twl4030-core.c b/drivers/mfd/twl4030-core.c
index 68826f1..c86bc3b 100644
--- a/drivers/mfd/twl4030-core.c
+++ b/drivers/mfd/twl4030-core.c
@@ -101,6 +101,12 @@
 #define twl_has_usb()	false
 #endif
 
+#if defined(CONFIG_INPUT_TWL4030_PWRBUTTON) \
+	|| defined(CONFIG_INPUT_TWL4030_PWBUTTON_MODULE)
OK, this is "wrong".  The core shouldn't need to know about specific
clients.
quoted hunk ↗ jump to hunk
+#define twl_has_pwrbutton()	true
+#else
+#define twl_has_pwrbutton()	false
+#endif
 
 /* Triton Core internal information (BEGIN) */
 
@@ -526,6 +532,13 @@ add_children(struct twl4030_platform_data *pdata, unsigned long features)
 		usb_transceiver = child;
 	}
 
+	if (twl_has_pwrbutton()) {
+		child = add_child(1, "twl4030_pwrbutton",
+				NULL, 0, true, pdata->irq_base + 8 + 0, 0);
+		if (IS_ERR(child))
+			return PTR_ERR(child);
+	}
+
 	if (twl_has_regulator()) {
 		/*
 		child = add_regulator(TWL4030_REG_VPLL1, pdata->vpll1);
The client module should register itself with the core, rather than the core
registering the client.

What has gone wrong here?
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help