From patchwork Thu Sep 6 12:12:15 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Peter Ujfalusi X-Patchwork-Id: 1413991 Return-Path: X-Original-To: patchwork-linux-arm@patchwork.kernel.org Delivered-To: patchwork-process-083081@patchwork1.kernel.org Received: from merlin.infradead.org (merlin.infradead.org [205.233.59.134]) by patchwork1.kernel.org (Postfix) with ESMTP id 0E4023FC85 for ; Thu, 6 Sep 2012 12:19:08 +0000 (UTC) Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.76 #1 (Red Hat Linux)) id 1T9az2-0002U6-Dz; Thu, 06 Sep 2012 12:14:56 +0000 Received: from na3sys009aog126.obsmtp.com ([74.125.149.155]) by merlin.infradead.org with smtps (Exim 4.76 #1 (Red Hat Linux)) id 1T9awt-0001An-Bg for linux-arm-kernel@lists.infradead.org; Thu, 06 Sep 2012 12:12:44 +0000 Received: from mail-ob0-f177.google.com ([209.85.214.177]) (using TLSv1) by na3sys009aob126.postini.com ([74.125.148.12]) with SMTP ID DSNKUEiTLv0gnY1gcav8dCfDZlKj/oLPusAo@postini.com; Thu, 06 Sep 2012 05:12:43 PDT Received: by obbta17 with SMTP id ta17so2325204obb.36 for ; Thu, 06 Sep 2012 05:12:30 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=from:to:cc:subject:date:message-id:x-mailer:in-reply-to:references :x-gm-message-state; bh=5qIXXo0EqOMvvZP/0JmdX50tvYbsJSKIPZPqowuMcZA=; b=YDtcVj3bVd4kFCH8FKj0gm0+kNK9//hFMT6Kba3bYSvV+DdDCA6KclOKgIYvFrnJNO J9eXvy2NjcoN7IVNkQ7VSAeeFz62RAPajwH+XmTaLSngCjrrSPMp0kZoky4zoR6LkOOl MwAZONNhHs9Xu7aUZ7WeKOuEsZiuaDPsRP78hRpu/qTQ9lEgMR/PXCsNuxzD1Op3gc37 yJRIVaIQoVh7cmUR0RHH93p5/dn7Yk5Oog6/HhCyHqetz3ZO6xIrC3KrjtFR61RR2St7 UOs+ByCnskLwJcixSV0ApErOYL6BVPNq9PAUqwtCpCn2GG5Qhzc3+LSDmSAb/nWxTnfs JWVw== Received: by 10.60.172.201 with SMTP id be9mr1607582oec.141.1346933550434; Thu, 06 Sep 2012 05:12:30 -0700 (PDT) Received: from barack.emea.dhcp.ti.com (dragon.ti.com. [192.94.94.33]) by mx.google.com with ESMTPS id zn9sm1795856obb.23.2012.09.06.05.12.27 (version=SSLv3 cipher=OTHER); Thu, 06 Sep 2012 05:12:29 -0700 (PDT) From: Peter Ujfalusi To: Mark Brown , Liam Girdwood , Tony Lindgren , Samuel Ortiz , Dmitry Torokhov , Grant Likely , Rob Herring Subject: [PATCH v3 08/14] Input: twl4030-vibra: Support for DT booted kernel Date: Thu, 6 Sep 2012 15:12:15 +0300 Message-Id: <1346933541-21547-9-git-send-email-peter.ujfalusi@ti.com> X-Mailer: git-send-email 1.7.12 In-Reply-To: <1346933541-21547-1-git-send-email-peter.ujfalusi@ti.com> References: <1346933541-21547-1-git-send-email-peter.ujfalusi@ti.com> X-Gm-Message-State: ALoCoQnmxeanV69877bqw5pcOaT/hDU8tiBihR6svazRyfwEJ2qv9NwvJn8AIz/j1hM9Ir5k3MFC X-Spam-Note: CRM114 invocation failed X-Spam-Score: -4.2 (----) X-Spam-Report: SpamAssassin version 3.3.2 on merlin.infradead.org summary: Content analysis details: (-4.2 points) pts rule name description ---- ---------------------- -------------------------------------------------- -2.3 RCVD_IN_DNSWL_MED RBL: Sender listed at http://www.dnswl.org/, medium trust [74.125.149.155 listed in list.dnswl.org] -0.0 SPF_PASS SPF: sender matches SPF record -1.9 BAYES_00 BODY: Bayes spam probability is 0 to 1% [score: 0.0000] Cc: alsa-devel@alsa-project.org, Benoit Cousson , devicetree-discuss@lists.ozlabs.org, linux-kernel@vger.kernel.org, Tero Kristo , linux-omap@vger.kernel.org, linux-arm-kernel@lists.infradead.org X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Sender: linux-arm-kernel-bounces@lists.infradead.org Errors-To: linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org Add support when the kernel has been booted with DT blob. In this case the pdata is NULL, we need to reach up to the core node and check if the codec part has been enabled to determine if we need to coexist with the codec or not. Signed-off-by: Peter Ujfalusi Acked-by: Dmitry Torokhov --- drivers/input/misc/twl4030-vibra.c | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/drivers/input/misc/twl4030-vibra.c b/drivers/input/misc/twl4030-vibra.c index fc0ed9b..15620f8 100644 --- a/drivers/input/misc/twl4030-vibra.c +++ b/drivers/input/misc/twl4030-vibra.c @@ -26,6 +26,7 @@ #include #include #include +#include #include #include #include @@ -194,13 +195,28 @@ static int twl4030_vibra_resume(struct device *dev) static SIMPLE_DEV_PM_OPS(twl4030_vibra_pm_ops, twl4030_vibra_suspend, twl4030_vibra_resume); +static bool twl4030_vibra_check_coexist(struct twl4030_vibra_data *pdata, + struct device_node *node) +{ + if (pdata && pdata->coexist) + return true; + +#ifdef CONFIG_OF + if (of_find_node_by_name(node, "codec")) + return true; +#endif + + return false; +} + static int __devinit twl4030_vibra_probe(struct platform_device *pdev) { struct twl4030_vibra_data *pdata = pdev->dev.platform_data; + struct device_node *twl4030_core_node = pdev->dev.parent->of_node; struct vibra_info *info; int ret; - if (!pdata) { + if (!pdata && !twl4030_core_node) { dev_dbg(&pdev->dev, "platform_data not available\n"); return -EINVAL; } @@ -210,7 +226,7 @@ static int __devinit twl4030_vibra_probe(struct platform_device *pdev) return -ENOMEM; info->dev = &pdev->dev; - info->coexist = pdata->coexist; + info->coexist = twl4030_vibra_check_coexist(pdata, twl4030_core_node); INIT_WORK(&info->play_work, vibra_play_work); info->input_dev = input_allocate_device();