From patchwork Fri Nov 9 14:00:20 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Steffen Trumtrar X-Patchwork-Id: 1720651 Return-Path: X-Original-To: patchwork-linux-arm@patchwork.kernel.org Delivered-To: patchwork-process-083081@patchwork2.kernel.org Received: from merlin.infradead.org (merlin.infradead.org [205.233.59.134]) by patchwork2.kernel.org (Postfix) with ESMTP id C7AD0DF264 for ; Fri, 9 Nov 2012 14:04:45 +0000 (UTC) Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.76 #1 (Red Hat Linux)) id 1TWpAC-0006ty-W7; Fri, 09 Nov 2012 14:02:29 +0000 Received: from metis.ext.pengutronix.de ([2001:6f8:1178:4:290:27ff:fe1d:cc33]) by merlin.infradead.org with esmtps (Exim 4.76 #1 (Red Hat Linux)) id 1TWp9C-0006cz-6m for linux-arm-kernel@lists.infradead.org; Fri, 09 Nov 2012 14:01:28 +0000 Received: from dude.hi.pengutronix.de ([2001:6f8:1178:2:21e:67ff:fe11:9c5c]) by metis.ext.pengutronix.de with esmtp (Exim 4.72) (envelope-from ) id 1TWp8g-0000Re-JL; Fri, 09 Nov 2012 15:00:54 +0100 Received: from str by dude.hi.pengutronix.de with local (Exim 4.80) (envelope-from ) id 1TWp8e-00021I-7j; Fri, 09 Nov 2012 15:00:52 +0100 From: Steffen Trumtrar To: devicetree-discuss@lists.ozlabs.org Subject: [PATCH 1/6] spi: imx: specify spi base for device tree probe Date: Fri, 9 Nov 2012 15:00:20 +0100 Message-Id: <1352469625-32024-2-git-send-email-s.trumtrar@pengutronix.de> X-Mailer: git-send-email 1.7.10.4 In-Reply-To: <1352469625-32024-1-git-send-email-s.trumtrar@pengutronix.de> References: <1352469625-32024-1-git-send-email-s.trumtrar@pengutronix.de> X-SA-Exim-Connect-IP: 2001:6f8:1178:2:21e:67ff:fe11:9c5c X-SA-Exim-Mail-From: str@pengutronix.de X-SA-Exim-Scanned: No (on metis.ext.pengutronix.de); SAEximRunCond expanded to false X-PTX-Original-Recipient: linux-arm-kernel@lists.infradead.org X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20121109_090126_555801_08236F7B X-CRM114-Status: GOOD ( 15.76 ) X-Spam-Score: -2.6 (--) X-Spam-Report: SpamAssassin version 3.3.2 on merlin.infradead.org summary: Content analysis details: (-2.6 points) pts rule name description ---- ---------------------- -------------------------------------------------- -0.7 RP_MATCHES_RCVD Envelope sender domain matches handover relay domain -1.9 BAYES_00 BODY: Bayes spam probability is 0 to 1% [score: 0.0000] Cc: alsa-devel@alsa-project.org, Mark Brown , Sascha Hauer , patches@opensource.wolfsonmicro.com, Grant Likely , Rob Landley , spi-devel-general@lists.sourceforge.net, Steffen Trumtrar , Liam Girdwood , 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 The DT probe uses a dynamically allocated base for the spi core. This is a completely different numbering scheme than in the non-DT probe. * This breaks compatibility with user space applications between non-DT and DT. * On platforms that are in between DT and non-DT, it breaks registration of devices via spi_board_info. Use the same method as 7e6086d9e54a159a6257c02bb7fc5805c614aad2 does for gpios: Use alias to identify the spi port, and then specify the base via the port id. If alias is not defined in DT, allocate the base dynamically. Signed-off-by: Steffen Trumtrar --- drivers/spi/spi-imx.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/spi/spi-imx.c b/drivers/spi/spi-imx.c index c9a0d84..d1e92b4 100644 --- a/drivers/spi/spi-imx.c +++ b/drivers/spi/spi-imx.c @@ -783,7 +783,7 @@ static int __devinit spi_imx_probe(struct platform_device *pdev) platform_set_drvdata(pdev, master); - master->bus_num = pdev->id; + master->bus_num = (pdev->id < 0) ? of_alias_get_id(np, "spi") : pdev->id; master->num_chipselect = num_cs; spi_imx = spi_master_get_devdata(master);