mfd: Fix twl6040 build failure
authorSamuel Ortiz <sameo@linux.intel.com>
Wed, 23 May 2012 14:23:21 +0000 (16:23 +0200)
committerSamuel Ortiz <sameo@linux.intel.com>
Wed, 23 May 2012 14:24:14 +0000 (16:24 +0200)
Without it we get:

 CC      drivers/mfd/twl6040-core.o
drivers/mfd/twl6040-core.c: In function ‘twl6040_has_vibra’:
drivers/mfd/twl6040-core.c:55:2: error: implicit declaration of function
‘of_find_node_by_name’ [-Werror=implicit-function-declaration]

Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
drivers/mfd/twl6040-core.c

index 450a28f..4ded9e7 100644 (file)
 #define VIBRACTRL_MEMBER(reg) ((reg == TWL6040_REG_VIBCTLL) ? 0 : 1)
 #define TWL6040_NUM_SUPPLIES   (2)
 
+static bool twl6040_has_vibra(struct twl6040_platform_data *pdata,
+                             struct device_node *node)
+{
+       if (pdata && pdata->vibra)
+               return true;
+
+#ifdef CONFIG_OF
+       if (of_find_node_by_name(node, "vibra"))
+               return true;
+#endif
+
+       return false;
+}
+
 int twl6040_reg_read(struct twl6040 *twl6040, unsigned int reg)
 {
        int ret;
@@ -617,7 +631,7 @@ static int __devinit twl6040_probe(struct i2c_client *client,
        }
        children++;
 
-       if ((pdata && pdata->vibra) || of_find_node_by_name(node, "vibra")) {
+       if (twl6040_has_vibra(pdata, node)) {
                irq = twl6040->irq_base + TWL6040_IRQ_VIB;
 
                cell = &twl6040->cells[children];