linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
From: lee.jones@linaro.org (Lee Jones)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 09/15] drivers/mfd: Enable Device Tree support for the db8500-prcmu
Date: Fri,  4 May 2012 19:23:19 +0100	[thread overview]
Message-ID: <1336155805-18554-10-git-send-email-lee.jones@linaro.org> (raw)
In-Reply-To: <1336155805-18554-1-git-send-email-lee.jones@linaro.org>

This patch will enable probing to occur during a Device Tree enabled
boot. The IRQ base is expected to be located in and will be fetched
from the DT itself. We also prevent any of the db8500 regulators
from being registered here, as they will be enabled via DT instead.

Signed-off-by: Lee Jones <lee.jones@linaro.org>
---
 drivers/mfd/db8500-prcmu.c |   29 +++++++++++++++++++----------
 1 file changed, 19 insertions(+), 10 deletions(-)

diff --git a/drivers/mfd/db8500-prcmu.c b/drivers/mfd/db8500-prcmu.c
index 7a83bf0..9bc75a8 100644
--- a/drivers/mfd/db8500-prcmu.c
+++ b/drivers/mfd/db8500-prcmu.c
@@ -2960,7 +2960,8 @@ static struct mfd_cell db8500_prcmu_devs[] = {
  */
 static int __devinit db8500_prcmu_probe(struct platform_device *pdev)
 {
-	int err = 0;
+	struct device_node *np = pdev->dev.of_node;
+	int irq = 0, err = 0;
 
 	if (ux500_is_svp())
 		return -ENODEV;
@@ -2970,8 +2971,14 @@ static int __devinit db8500_prcmu_probe(struct platform_device *pdev)
 	/* Clean up the mailbox interrupts after pre-kernel code. */
 	writel(ALL_MBOX_BITS, PRCM_ARM_IT1_CLR);
 
-	err = request_threaded_irq(IRQ_DB8500_PRCMU1, prcmu_irq_handler,
-		prcmu_irq_thread_fn, IRQF_NO_SUSPEND, "prcmu", NULL);
+	if (np)
+		irq = platform_get_irq(pdev, 0);
+
+	if (!np || irq <= 0)
+		irq = IRQ_DB8500_PRCMU1;
+
+	err = request_threaded_irq(irq, prcmu_irq_handler,
+	        prcmu_irq_thread_fn, IRQF_NO_SUSPEND, "prcmu", NULL);
 	if (err < 0) {
 		pr_err("prcmu: Failed to allocate IRQ_DB8500_PRCMU1.\n");
 		err = -EBUSY;
@@ -2981,14 +2988,16 @@ static int __devinit db8500_prcmu_probe(struct platform_device *pdev)
 	if (cpu_is_u8500v20_or_later())
 		prcmu_config_esram0_deep_sleep(ESRAM0_DEEP_SLEEP_STATE_RET);
 
-	err = mfd_add_devices(&pdev->dev, 0, db8500_prcmu_devs,
-			      ARRAY_SIZE(db8500_prcmu_devs), NULL,
-			      0);
+	if (!np) {
+		err = mfd_add_devices(&pdev->dev, 0, db8500_prcmu_devs,
+				ARRAY_SIZE(db8500_prcmu_devs), NULL, 0);
+		if (err) {
+			pr_err("prcmu: Failed to add subdevices\n");
+			return err;
+		}
+	}
 
-	if (err)
-		pr_err("prcmu: Failed to add subdevices\n");
-	else
-		pr_info("DB8500 PRCMU initialized\n");
+	pr_info("DB8500 PRCMU initialized\n");
 
 no_irq_return:
 	return err;
-- 
1.7.9.5

  parent reply	other threads:[~2012-05-04 18:23 UTC|newest]

Thread overview: 75+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-05-04 18:23 [PATCH 00/15] DT enablement for Snowball Lee Jones
2012-05-04 18:23 ` [PATCH 01/15] i2c/busses: Add Device Tree support to the Nomadik I2C driver Lee Jones
2012-05-04 20:02   ` Arnd Bergmann
2012-05-04 21:27     ` Lee Jones
2012-05-05  6:17     ` Lee Jones
2012-05-09  8:42       ` Linus Walleij
2012-05-04 18:23 ` [PATCH 02/15] ARM: ux500: Remove unused i2c platform_data initialisation code Lee Jones
2012-05-09  8:46   ` Linus Walleij
2012-05-09 10:22     ` Lee Jones
2012-05-10 11:24       ` Linus Walleij
2012-05-04 18:23 ` [PATCH 03/15] ARM: ux500: Provide auxdata to be used as name base clock search for nmk-i2c Lee Jones
2012-05-09  8:48   ` Linus Walleij
2012-05-04 18:23 ` [PATCH 04/15] ARM: ux500: CONFIG: Compile in support for leds-gpio Lee Jones
2012-05-09  8:49   ` Linus Walleij
2012-05-09 10:23     ` Lee Jones
2012-05-10 11:25       ` Linus Walleij
2012-05-04 18:23 ` [PATCH 05/15] ARM: ux500: Enable the user LED on Snowball via Device Tree Lee Jones
2012-05-09  8:50   ` Linus Walleij
2012-05-04 18:23 ` [PATCH 06/15] mfd/ab8500: Remove confusing ab8500-i2c file and merge into ab8500-core Lee Jones
2012-05-04 20:25   ` Arnd Bergmann
2012-05-04 21:24     ` Lee Jones
2012-05-05  6:30       ` Lee Jones
2012-05-07 16:54   ` Mark Brown
2012-05-09 12:20   ` Linus Walleij
2012-05-14  8:41     ` Lee Jones
2012-05-14  9:11       ` Linus Walleij
2012-05-04 18:23 ` [PATCH 07/15] drivers/power: Carry out platform_data error checking on ab8500 devices Lee Jones
2012-05-09  8:51   ` Linus Walleij
2012-05-09 10:24     ` Lee Jones
2012-05-04 18:23 ` [PATCH 08/15] ARM: ux500: PRCMU related configuration and layout corrections for Device Tree Lee Jones
2012-05-09  8:53   ` Linus Walleij
2012-05-09 10:27     ` Lee Jones
2012-05-10 11:27       ` Linus Walleij
2012-05-04 18:23 ` Lee Jones [this message]
2012-05-09  8:56   ` [PATCH 09/15] drivers/mfd: Enable Device Tree support for the db8500-prcmu Linus Walleij
2012-05-09 14:30   ` Samuel Ortiz
2012-05-04 18:23 ` [PATCH 10/15] drivers/mfd: db8500-prcmu: Add support for regulator supply for nmk-i2c.4 Lee Jones
2012-05-09  8:56   ` Linus Walleij
2012-05-09 14:31   ` Samuel Ortiz
2012-05-04 18:23 ` [PATCH 11/15] drivers/mfd: Enable Device Tree for ab8500-core driver Lee Jones
2012-05-09  9:02   ` Linus Walleij
2012-05-09 10:28     ` Lee Jones
2012-05-09 11:18       ` Mark Brown
2012-05-09 11:56     ` Arnd Bergmann
2012-05-10 10:26     ` Russell King - ARM Linux
2012-05-10 12:27       ` Linus Walleij
2012-05-11 10:12   ` Samuel Ortiz
2012-05-14  8:45     ` Lee Jones
2012-05-04 18:23 ` [PATCH 12/15] drivers/regulator: ab8500: Split up probe() into manageable pieces Lee Jones
2012-05-07 16:58   ` Mark Brown
     [not found]     ` <CAF2Aj3h7pgh=Kbt+M5Xd_RDRbJN7K+WbaH1+8nM2Eakb1QNpsg@mail.gmail.com>
2012-05-07 18:44       ` Mark Brown
2012-05-08 11:08         ` Lee Jones
2012-05-04 18:23 ` [PATCH 13/15] ARM: ux500: Add support for ab8500 regulators into the Device Tree Lee Jones
2012-05-09  9:04   ` Linus Walleij
2012-05-04 18:23 ` [PATCH 14/15] drivers/regulators: Enable the ab8500 for " Lee Jones
2012-05-07 17:08   ` Mark Brown
2012-05-08 12:04     ` Lee Jones
2012-05-08 12:19       ` Mark Brown
2012-05-08 12:38         ` Lee Jones
2012-05-08 13:34           ` Mark Brown
2012-05-08 14:54             ` Lee Jones
2012-05-08 14:57               ` Mark Brown
2012-05-08 17:00                 ` Lee Jones
2012-05-08 13:48           ` Arnd Bergmann
2012-05-08 14:29             ` Mark Brown
2012-05-08 14:36               ` Arnd Bergmann
2012-05-08 14:44                 ` Mark Brown
2012-05-14 15:49     ` Lee Jones
2012-05-14 16:18       ` Arnd Bergmann
2012-05-14 17:01       ` Mark Brown
2012-05-14 15:57     ` Lee Jones
2012-05-14 16:39       ` Mark Brown
2012-05-04 18:23 ` [PATCH 15/15] ARM: ux500: Disable platform setup of the ab8500 when DT is enabled Lee Jones
2012-05-09  9:05   ` Linus Walleij
2012-05-04 20:26 ` [PATCH 00/15] DT enablement for Snowball Arnd Bergmann

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1336155805-18554-10-git-send-email-lee.jones@linaro.org \
    --to=lee.jones@linaro.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).