From patchwork Fri Jun 12 08:59:32 2009 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Rini van Zetten X-Patchwork-Id: 28631 X-Patchwork-Delegate: galak@kernel.crashing.org Return-Path: X-Original-To: patchwork-incoming@bilbo.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from ozlabs.org (ozlabs.org [203.10.76.45]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client CN "mx.ozlabs.org", Issuer "CA Cert Signing Authority" (verified OK)) by bilbo.ozlabs.org (Postfix) with ESMTPS id 71181B71DA for ; Fri, 12 Jun 2009 19:00:16 +1000 (EST) Received: by ozlabs.org (Postfix) id 63F82DDD0C; Fri, 12 Jun 2009 19:00:16 +1000 (EST) Delivered-To: patchwork-incoming@ozlabs.org Received: from bilbo.ozlabs.org (bilbo.ozlabs.org [203.10.76.25]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client CN "bilbo.ozlabs.org", Issuer "CAcert Class 3 Root" (verified OK)) by ozlabs.org (Postfix) with ESMTPS id 5F43DDDD04 for ; Fri, 12 Jun 2009 19:00:16 +1000 (EST) Received: from bilbo.ozlabs.org (localhost [127.0.0.1]) by bilbo.ozlabs.org (Postfix) with ESMTP id 9FA3DB7579 for ; Fri, 12 Jun 2009 18:59:49 +1000 (EST) Received: from ozlabs.org (ozlabs.org [203.10.76.45]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client CN "mx.ozlabs.org", Issuer "CA Cert Signing Authority" (verified OK)) by bilbo.ozlabs.org (Postfix) with ESMTPS id DA4BBB71D9 for ; Fri, 12 Jun 2009 18:59:41 +1000 (EST) Received: by ozlabs.org (Postfix) id C0761DDD0B; Fri, 12 Jun 2009 18:59:41 +1000 (EST) Delivered-To: linuxppc-dev@ozlabs.org Received: from smtp0.euronet.nl (smtp0.euronet.nl [194.134.35.141]) by ozlabs.org (Postfix) with ESMTP id EE8ADDDD04 for ; Fri, 12 Jun 2009 18:59:40 +1000 (EST) Received: from arv-010 (mf-22dc1.mxs.adsl.euronet.nl [81.70.75.193]) by smtp0.euronet.nl (Postfix) with ESMTP id 8B3B66ECF6; Fri, 12 Jun 2009 10:59:38 +0200 (MEST) Received: from arv-010 (localhost [127.0.0.1]) by arv-010 (Postfix) with ESMTP id 0F20032C95; Fri, 12 Jun 2009 10:59:38 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=arvoo.nl; h=message-id :date:from:mime-version:to:cc:subject:references:in-reply-to :content-type:content-transfer-encoding; s=arv-010; bh=JbeJMojc8 9O2IfG3FmBUhLMD44U=; b=V2aKK0h6iETQIGA8kdpTtV++deUUMZVbRCoYUOrcA huxAwSB6+1gosaautZ5PXMp8ENiW3VQsiAtcwWin4s3za/qbVA2UQrEccT/VcXtT IO6QBDHcQSt7xOLiS73NsZn3NLI2LubqRfvDiC8cxnhqewjstQVFDNg19qlku0q6 JM= Received: from arv-002.arvoo.nl (unknown [192.168.0.2]) by arv-010 (Postfix) with ESMTP id 3D18F32C95; Fri, 12 Jun 2009 10:59:33 +0200 (CEST) Received: from [192.168.0.72] (unknown [192.168.0.72]) by arv-002.arvoo.nl (Postfix) with ESMTP id 1937718027DA2; Fri, 12 Jun 2009 10:59:33 +0200 (CEST) Message-ID: <4A3218F4.20503@arvoo.nl> Date: Fri, 12 Jun 2009 10:59:32 +0200 From: Rini van Zetten User-Agent: Thunderbird 2.0.0.21 (X11/20090409) MIME-Version: 1.0 To: Kumar Gala Subject: [PATCH -mm][POWERPC] mpc8xxx : allow SPI without cs. References: <4A30CA1F.4000702@arvoo.nl> <7071E2AF-65ED-41C2-AFE7-06E9336619CB@kernel.crashing.org> In-Reply-To: <7071E2AF-65ED-41C2-AFE7-06E9336619CB@kernel.crashing.org> X-ARVOO-MailScanner-Information: Please contact the ISP for more information X-MailScanner-ID: 3D18F32C95.92C1C X-ARVOO-MailScanner: Found to be clean X-ARVOO-MailScanner-SpamCheck: not spam, SpamAssassin (not cached, score=-5.8, required 5, autolearn=not spam, ALL_TRUSTED -1.80, BAYES_00 -4.00) X-ARVOO-MailScanner-From: rini@arvoo.nl X-Spam-Status: No Cc: spi-devel-general@lists.sourceforge.net, Andrew Morton , linuxppc-dev list X-BeenThere: linuxppc-dev@lists.ozlabs.org X-Mailman-Version: 2.1.11 Precedence: list List-Id: Linux on PowerPC Developers Mail List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: linuxppc-dev-bounces+patchwork-incoming=ozlabs.org@lists.ozlabs.org Errors-To: linuxppc-dev-bounces+patchwork-incoming=ozlabs.org@lists.ozlabs.org This patch adds the possibility to have a spi device without a cs. For example, the dts file should look something like this: spi-controller { gpios = <&pio1 1 0 /* cs0 */ 0 /* cs1, no GPIO */ &pio2 2 0>; /* cs2 */ Signed-off-by: Rini van Zetten --- Changes : patch against 2.6.30-rc8-mm1 -- --- drivers/spi/spi_mpc8xxx.c.org 2009-06-12 10:45:21.000000000 +0200 +++ drivers/spi/spi_mpc8xxx.c 2009-06-12 10:54:48.000000000 +0200 @@ -666,9 +666,10 @@ static void mpc8xxx_spi_cs_control(struc struct mpc8xxx_spi_probe_info *pinfo = to_of_pinfo(dev->platform_data); u16 cs = spi->chip_select; int gpio = pinfo->gpios[cs]; - bool alow = pinfo->alow_flags[cs]; - - gpio_set_value(gpio, on ^ alow); + if (gpio != -EEXIST) { + bool alow = pinfo->alow_flags[cs]; + gpio_set_value(gpio, on ^ alow); + } } static int of_mpc8xxx_spi_get_chipselects(struct device *dev) @@ -707,27 +708,29 @@ static int of_mpc8xxx_spi_get_chipselect enum of_gpio_flags flags; gpio = of_get_gpio_flags(np, i, &flags); - if (!gpio_is_valid(gpio)) { + if (gpio_is_valid(gpio)) { + ret = gpio_request(gpio, dev_name(dev)); + if (ret) { + dev_err(dev, "can't request gpio #%d: %d\n", i, ret); + goto err_loop; + } + + pinfo->gpios[i] = gpio; + pinfo->alow_flags[i] = flags & OF_GPIO_ACTIVE_LOW; + + ret = gpio_direction_output(pinfo->gpios[i], + pinfo->alow_flags[i]); + if (ret) { + dev_err(dev, "can't set output direction for gpio " + "#%d: %d\n", i, ret); + goto err_loop; + } + } else if (gpio == -EEXIST) { + pinfo->gpios[i] = -EEXIST; + } else { dev_err(dev, "invalid gpio #%d: %d\n", i, gpio); goto err_loop; } - - ret = gpio_request(gpio, dev_name(dev)); - if (ret) { - dev_err(dev, "can't request gpio #%d: %d\n", i, ret); - goto err_loop; - } - - pinfo->gpios[i] = gpio; - pinfo->alow_flags[i] = flags & OF_GPIO_ACTIVE_LOW; - - ret = gpio_direction_output(pinfo->gpios[i], - pinfo->alow_flags[i]); - if (ret) { - dev_err(dev, "can't set output direction for gpio " - "#%d: %d\n", i, ret); - goto err_loop; - } } pdata->max_chipselect = ngpios;