From patchwork Thu Dec 27 12:10:47 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Larsson X-Patchwork-Id: 1912831 Return-Path: X-Original-To: patchwork-spi-devel-general@patchwork.kernel.org Delivered-To: patchwork-process-083081@patchwork1.kernel.org Received: from lists.sourceforge.net (lists.sourceforge.net [216.34.181.88]) by patchwork1.kernel.org (Postfix) with ESMTP id 7B1063FC66 for ; Thu, 27 Dec 2012 12:12:00 +0000 (UTC) Received: from localhost ([127.0.0.1] helo=sfs-ml-2.v29.ch3.sourceforge.com) by sfs-ml-2.v29.ch3.sourceforge.com with esmtp (Exim 4.76) (envelope-from ) id 1ToCJc-0005Ed-6Q; Thu, 27 Dec 2012 12:12:00 +0000 Received: from sog-mx-1.v43.ch3.sourceforge.com ([172.29.43.191] helo=mx.sourceforge.net) by sfs-ml-2.v29.ch3.sourceforge.com with esmtp (Exim 4.76) (envelope-from ) id 1ToCJa-0005EX-Nl for spi-devel-general@lists.sourceforge.net; Thu, 27 Dec 2012 12:11:58 +0000 X-ACL-Warn: Received: from vsp-authed02.binero.net ([195.74.38.226] helo=vsp-authed-01-02.binero.net) by sog-mx-1.v43.ch3.sourceforge.com with smtp (Exim 4.76) id 1ToCJZ-0005XE-6w for spi-devel-general@lists.sourceforge.net; Thu, 27 Dec 2012 12:11:58 +0000 Received: from smtp01.binero.se (unknown [195.74.38.28]) by vsp-authed-01-02.binero.net (Halon Mail Gateway) with ESMTP; Thu, 27 Dec 2012 13:11:15 +0100 (CET) Received: from localhost.localdomain (static-92-33-28-242.sme.bredbandsbolaget.se [92.33.28.242]) (Authenticated sender: andreas@gaisler.com) by smtp-08-01.atm.binero.net (Postfix) with ESMTPA id 4FBEB3A155; Thu, 27 Dec 2012 13:11:09 +0100 (CET) From: Andreas Larsson To: Grant Likely Subject: [PATCH 6/6] of_spi: Initialize cs_gpios and cs_gpio with -EEXIST Date: Thu, 27 Dec 2012 13:10:47 +0100 Message-Id: <1356610247-11491-7-git-send-email-andreas@gaisler.com> X-Mailer: git-send-email 1.7.0.4 In-Reply-To: <1356610247-11491-1-git-send-email-andreas@gaisler.com> References: <1356610247-11491-1-git-send-email-andreas@gaisler.com> X-Spam-Score: 0.0 (/) X-Spam-Report: Spam Filtering performed by mx.sourceforge.net. See http://spamassassin.org/tag/ for more details. -0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at http://www.dnswl.org/, no trust [195.74.38.226 listed in list.dnswl.org] X-Headers-End: 1ToCJZ-0005XE-6w Cc: software@gaisler.com, Linus Walleij , linux-kernel@vger.kernel.org, Rob Herring , spi-devel-general@lists.sourceforge.net, devicetree-discuss@lists.ozlabs.org X-BeenThere: spi-devel-general@lists.sourceforge.net X-Mailman-Version: 2.1.9 Precedence: list List-Id: Linux SPI core/device drivers discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Errors-To: spi-devel-general-bounces@lists.sourceforge.net Holes in the cs-gpios DT phandle list is supposed to mark that native chipselects is to be used. The value returned from of_get_named_gpio_flags in this case is -EEXIST. By initializing cs_gpios and cs_gpio with -EEXIST, this and only this errno will indicate to a spi controller driver that a native chipselect is to be used. Signed-off-by: Andreas Larsson --- drivers/spi/spi.c | 4 ++-- include/linux/spi/spi.h | 7 +++++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/drivers/spi/spi.c b/drivers/spi/spi.c index 6f1b717..7494bad 100644 --- a/drivers/spi/spi.c +++ b/drivers/spi/spi.c @@ -334,7 +334,7 @@ struct spi_device *spi_alloc_device(struct spi_master *master) spi->dev.parent = &master->dev; spi->dev.bus = &spi_bus_type; spi->dev.release = spidev_release; - spi->cs_gpio = -EINVAL; + spi->cs_gpio = -EEXIST; device_initialize(&spi->dev); return spi; } @@ -1097,7 +1097,7 @@ static int of_spi_register_master(struct spi_master *master) } for (i = 0; i < master->num_chipselect; i++) - cs[i] = -EINVAL; + cs[i] = -EEXIST; for (i = 0; i < nb; i++) cs[i] = of_get_named_gpio_flags(np, "cs-gpios", i, &flags[i]); diff --git a/include/linux/spi/spi.h b/include/linux/spi/spi.h index 96b1055..0701882 100644 --- a/include/linux/spi/spi.h +++ b/include/linux/spi/spi.h @@ -58,7 +58,8 @@ extern struct bus_type spi_bus_type; * @modalias: Name of the driver to use with this device, or an alias * for that name. This appears in the sysfs "modalias" attribute * for driver coldplugging, and in uevents used for hotplugging - * @cs_gpio: Negative or gpio for chip select. + * @cs_gpio: Negative or gpio for chip select. Set to -EEXIST when chipselect + * should be handled natively by the controller driver * @cs_gpio_flags: of_gpio_flags corresponding to cs_gpio * * A @spi_device is used to interchange data between an SPI slave @@ -262,7 +263,9 @@ static inline void spi_unregister_driver(struct spi_driver *sdrv) * @unprepare_transfer_hardware: there are currently no more messages on the * queue so the subsystem notifies the driver that it may relax the * hardware by issuing this call - * @cs_gpios: possible array of negative values or gpios for chip selects + * @cs_gpios: possible array of negative values or gpios for chip selects. A + * chipselect that should be handled natively by the controller driver is + * set to -EEXIST. * @cs_gpio_flags: possible array of of_gpio_flags corresponding to cs_gpios * * Each SPI master controller can communicate with one or more @spi_device